Frank Weng \(a.k.a. Franklin\) posted on Thu, 20 May 2010 16:06:21 +0800 as excerpted: > Here is my problem. I keep getting error messages saying that there are > old akonadi server error logs. I deleted them and next time or > next-next time I get it again. > > However, looking at these two files, I really don't know what the > problem would be. It was quite annoying. :( > > Of course I just log out normally (with the lock/logout button) everyday > I finished my job in the office. Just so you know, you hijacked Jerry's thread. That can be kind of confusing. Starting your own is traditional. Your problem sounds like one I had. There's a bug in most current versions of MySQL (theres a fix but it's new and if there are releases out with it, they are /very/ new, I believe I've installed one new version since the patch, which probably has it, but I'm not sure about other MySQL version series) having to do with characterset, whereby it can only be set once per session. The problem is that while kde was starting the (per-user) session when kde started, it wasn't shutting it down when kde quit, so the next time I tried to start kde without rebooting, it would produce this error as it tried to set the characterset during the init of the already running MySQL session. IOW, it would run properly the first time I started kde after a reboot, but wouldn't run after that because mysql hadn't shut down when I shutdown kde, and trying to reinit the existing mysql session on subsequent kde startup would produce the error. Well, I only have mysql installed for kde/akonadi, and it should only be running with the kde/akonadi session, so why kde/akonadi could start it when it needed it, but not stop it when it didn't, I don't know (tho with Kevin's post, it seems it was likely a race condition, with the components needed to properly shut it down already down by the time the command was issued), but I didn't want the thing running when kde wasn't running anyway, so the solution was simple enough. Similar to what Kevin proposed, if kde/akonadi can't or won't shut down its own mysql session, I have to make it shutdown. Placing a script in kde's shutdown dir that simply called "killall mysql" did the trick, as that issues a SIGTERM, which allows mysql to cleanup its session and terminate normally. Now, when kde starts, there's no existing session it can try to reinit to trigger that bug, so stuff works as it should. Kevin's suggestion with akonadictl stop is I believe the akonadi specific method of my solution, which uses the traditional Unix/Linux signal framework, specifically SIGTERM, -15, as issued by killall by default to the named process(es), allowing them to terminate gracefully. (SIGKILL, killall -9, would be the last resort method if an app refuses to terminate with SIGTERM, but that's a kill by the kernel that doesn't allow an app time to clean up its open files and the like, so it's somewhat dangerous, but still useful as a last resort at times, but not here.) -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman ___________________________________________________ This message is from the kde mailing list. Account management: https://mail.kde.org/mailman/listinfo/kde. Archives: http://lists.kde.org/. More info: http://www.kde.org/faq.html.