Comment 28 for bug 410466

Revision history for this message
In , Daniel Brownlees (dbrownlees) wrote :

I can confirm this bug with Kubuntu 9.04, KDE 4.3 Final, and I believe it is related to KNotify hanging (or crashing) when attempting to play the logout sound. Hence the bug may need to be reassigned to KNotify.

On my system I can fix the problem by disabling the logout sound in System Settings->Notifications->KDE System Notifications, and then unchecking play sound for Logout. Can anyone else confirm this workaround? Alternatively you can try removing your ~/.kde/share/config/knotifyrc)

To Reproduce: From a brief investigation: Using the following knotifyrc on a clean user account with KDE4.3 will cause the bug:

knotifyrc:

[Misc]
LastConfiguredApp=KDE System Notifications

[Phonon::AudioOutput]
KNotify_Volume=1

[Sounds]
No sound=true
Use external player=false
Volume=100

(Note: This will also have other symptoms, such as slower login due to startup sounds failing, but it isn't noticed so strongly.)

Theory: (this is unconfirmed, I have only briefly browsed the code and don't have a dev environment handy to check this): If sounds are still set for events, but sound is disabled in knotifyrc, then knotify's NotifyBySound::notify() does not check it's NoSound variable and will try to load and play the sound, I think on a non-existant player (and hence hang or crash).

Possible fix:
Add the following to the very beginning of NotifyBySound::notify() in notifybysound.cpp:

if(d->playerMode == Private::NoSound)
{
    finish( eventId );
    return;
}

It would be nice if someone could confirm any of this.