Search This Blog

Sunday, March 4, 2012

Desktop Freezes in 4.8.x

Hi all,

As I wrote in Plasma NM 0.9.0 release post the main reason for 0.9.0 release was bug #287002 "panel freezes". You problaby have noticed the freezing problem after upgrading to 4.8.0, me too.

The source of the problem is the fact that kded is sometimes frozen by one or more of its modules. Plasma NM < 0.9.0 used to do several synchronous calls to networkmanagement module in kded, specially to get the signal strengh of wifi access points and 3G connections. You can imagine how often wifi access points (all access points in range, even the ones you are not connected to) can trigger signal strengh... signals :-/ Yes, every often.

Any delay in kded causes freezes in Plasma NM's plasmoid and since any plasmoid can also freeze the entire plasma-desktop process the problem is propagated to the entire desktop. I have heard a lot of complaints about kded and Plasma being susceptible to freezes caused by one of their modules (plasmoids in Plasma case), you do not need to repeat them in the comments section of this post. Any Plasma developer is aware of the problem by now, I just do not know if anybody is working on fixing it, so do not ask me.

Several weeks ago I pushed a commit to make Plasma NM use asynchronous API to retrieve data from networkmanagement module. There is also a commit to kde-workspace to do the same for the Solid ModemManager backend, the same change went to QtModemManager as well. This last commit will be in kde-workspace 4.8.1. Those changes seem to easy the problem but, of course, it does not solve it since other plasmoids trying to contact kded will also cause freezes in the desktop.

In bug #287002 it is stated that apper is one of programs that freezes kded. Just as a notice I have never used apper. Until now everybody that has disabled apper's kded module reported that it fixes the freezing problem. You can try it yourself, just go to systemsettings -> Startup and Shutdown -> Service Manager, locate the "apper" service, stop it and uncheck the checkbox in "Use" column for that service. Then click on the "Ok" button.

It is curious that only with 4.8.0 those problems become visible. Plasma NM uses synchronous calls to contact kded since the begining, in 4.4.x time. That is even before I started to use Plasma NM. I guess several other programs do use synchronous DBus API. You can check that by looking for the QDBusReply object declaration and waitForfinished() calls in your source code. If you are using them you should really think about how to avoid them, specially if your program is a plasmoid and/or contact a kded module.

14 comments:

Anonymous said...

You are an useless piece of shit

Tomaz said...

and by that comment, what should you be, dear anonymous? Lamarque is an very important piece on KDE, is doing an awesome work on bug triaging, you by the other hand, looks like an Opensource supporter that locks the door to use windows ;)

MaikB said...

I'm using the NM plasma applet since kde 4.6. The freezes always happen when the notebook is sent to sleep at home and woken up at work. It can be fixed by pulling down yakuake, killing plasma-desktop and starting it again. It is annoying, yes, but in total the awesomess of this applet makes me willing to live with this glitch. For some reason I was under the impression this was a widely known issue that everybody just accepted just like I did. Was it not?

Synergy said...

I'm using hte latest Apper 0.7.1 and I haven't ran into this issue yet. However I didn't see it before so, huh? Maybe that's an advantage of packaging my own KDE 4 builds.

Lamarque said...

@Tomaz, thanks.

@MaikB, no, I was not aware of this problem until bug #287002 was assigned to me.

@Synergy, I do not use apper so I do not know why sometimes it blocks kded, which is the cause of the problem. For some reason, this problem seems not to happen with KDE SC below 4.8.0. Which KDE SC version do you use?

Anonymous said...

Thanks a lot for mentioning apper as the blocking factor, removing it really made my day! I always thought it was normal for KDE to be that slow at startup (openSuse 12.1 hier), since I never saw it different :)

Anonymous said...

Men, I thought it was just KDE that is so damn slow at startup since I never saw it different. Removing apper made my day, thanks a lot for sharing this!

Anonymous said...

uh, sorry for posting 2 times..

Anonymous said...

Interesting to see anoter issue with kded on KDE SC 4.8...
https://bugs.kde.org/show_bug.cgi?id=294441

Anonymous said...

Thanks for your blog on this issue. In my case, my KDE desktop would completely freeze (and stay frozen for as long as I cared to wait). I was using a wired network. However, I can speculate that the issue was related to using USB 3.0 external storage. I saw this with OpenSuse 12.1. The issue struck me as a showstopper and made me continue my search for a DE to replace Unity. This bug (or whatever similar bug I experienced) serious undermined my confidence in KDE as my new desktop. I cannot consider using a desktop that is subject to this kind of locking up. ( I never found a way to recover short of a hard reboot.)

Anonymous said...

I too am experiencing the Apper bug on debian wheezy, KDE 4.7.4, which is very annoying because 1) dolphin takes forever before opening a window, and 2) several other programs affected include the right mouse button desktop menu (!), and system settings->startup & shutdown, which freezes when selecting the "services" panel - just so I can't remove the Apper monitor applet :-)

Detecting Apper lockup is easy: every time the system is working, the Apper upgrade reminder icon will pop up in your panel within a couple minutes from login (provided there are any upgrades available). When it doesn't show up...you're in for a spin. Also, you cannot launch another package manager while Apper is locked. So all you can do is reboot...

Anonymous said...

I'm not sure if it helps anyone, but I'm on Kubuntu 12.04 with KDE 4.8.4 and NM 0.9.0.1-0ubuntu2. I do *not* have apper installed.

After much reading and experimentation, it appears as though an autostart shell script that I have to startup pogoplug fs was the culprit. Once I removed that from starting, the panel returned to normal behavior.

I have removed wicd and reinstated NM, and all seems to continue to work normally.

So in my case, it seems to have been some interaction with trying to mount my pogoplug from the work wireless network, which worked previously, I might add.

GreyGeek77 said...

Here we are, over a year later, and the problem is still around. The plasma-desktop in Kubuntu 12.04.x, and now in KWheezy 1.3 frequently freezes. Luckily the keyboard still works and I can use Ctrl+Esc to open ksysmon and then I right mouse on the plasma-deskstop line and send it an "INT" signal, which unfreezes it immediately.

I just disabled apper. Will see if that helps.
GG

Anonymous said...

Thank you, you just solved my problem!!! My plasma desktop under Kubuntu 12.04 just kept freezing when using a slow internet connection. It was indeed Apper update service that was blocking it (the other plasmoids apps maybe slowed it down but never froze it completely like did Apper). Disabled it and now it works perfectly!
Marc