[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: Re: kded4 lockup (which makes the desktop unusable so this is
From: "Andreas Hartmetz" <ahartmetz () gmail ! com>
Date: 2008-05-08 16:08:42
Message-ID: f3642e6b0805080908v44529d68tef761e01758c9864 () mail ! gmail ! com
[Download RAW message or body]
2008/5/8 Andreas Hartmetz <ahartmetz@gmail.com>:
> Hi all,
>
> yesterday I finally got around to doing some research into the
> infamous problem that sometimes when you alt-tab the alt key would
> "stick" and effectively make the desktop useless.
> It seems to be caused by a completely stuck kded4. It is stuck in the
> dirwatcher part, apparently.
> The following output from gdb and .xsession-errors is probably
> information enough information to find the bug for somebody who knows
> the code involved (David maybe?).
> Note that after I killed kded4 when I had extracted enough information
> out of it the keyboard started to work normally again and I could
> continue to use the desktop (I did the debugging from a different
> machine over ssh).
>
> I think we should also consider ways to make kded4 less brittle
> because it's quite important. Resistance against crashes in modules
> would be cool but also somewhat heavyweight so maybe one thread per
> module would help? This is assuming that QDBus can work sensibly in a
> multithreaded environment, only blocking one thread waiting for one
> response.
>
> Anyway, here is the debug output etc.
>
>
> #0 0xb7fd3410 in __kernel_vsyscall ()
> #1 0xb75ae8f3 in __write_nocancel () from
> #/lib/tls/i686/cmov/libpthread.so.0
> #2 0xb6b58dca in Client::writeToServer () from /usr/lib/libfam.so.0
> #3 0xb6b5b9ef in ?? () from /usr/lib/libfam.so.0
Did you know...
FAM has been the default backend of KDirWatch for years but it was not
actually used due to a typo in an #ifdef (!!!) that was fixed four
days ago.
As a workaround for that nasty lockup I have modified KDirWatch to use
inotify as the default backend again, this time in a more obvious
manner:
Index: kdirwatch.cpp
===================================================================
--- kdirwatch.cpp (Revision 805216)
+++ kdirwatch.cpp (Arbeitskopie)
@@ -124,7 +124,7 @@
m_nfsPollInterval = config.readEntry("NFSPollInterval", 5000);
m_PollInterval = config.readEntry("PollInterval", 500);
- QString method = config.readEntry("PreferredMethod", "Fam");
+ QString method = config.readEntry("PreferredMethod", "inotify");
if (method == "Fam")
{
m_preferredMethod = Fam;
I can't believe it.
Update your kdelibs now.
I believe that we should still look for ways to make kded (way) more
robust. Strange things will happen everytime one module takes down or,
worse, locks up kded.
Cheers,
Andreas
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic