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:
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] pp=KDE System Notifications
LastConfiguredA
[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: :notify( ) in notifybysound.cpp:
Add the following to the very beginning of NotifyBySound:
if(d->playerMode == Private::NoSound)
{
finish( eventId );
return;
}
It would be nice if someone could confirm any of this.