Bug 138555

Summary: call to kded can hang amarok indefinitely
Product: [Applications] amarok Reporter: Erik Hovland <erik>
Component: generalAssignee: Amarok Developers <amarok-bugs-dist>
Status: RESOLVED WORKSFORME    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: uses the timeout argument to DCOP::Client::call()

Description Erik Hovland 2006-12-08 23:53:36 UTC
Version:           SVN trunk (using KDE Devel)
Installed from:    Compiled sources
Compiler:          gcc (GCC) 4.0.1 (4.0.1-5mdk for Mandriva Linux release 2006.0) 
OS:                Linux

On my Mandriva 2006.0 linux workstation I experienced a situation where amarok would hang indefinitely. I tracked the problem down to an issue with amarok attempting to communicate to kded through dcop. In amarok/src/devicemanager.cpp there is a line to DCOP::Client::call() which has no timeout specified. If kded is out to lunch, then amarok will hang indefinitely too. In my case there were several kded processes and none of them seem to be cooperating. I was able to fix the problem on my workstation by killing all of the kded, restarting hald and then logging back in (which brought up only one kded). But it would be nice of amarok was able to move on from this problem and report an issue with the dcop call.
Comment 1 Erik Hovland 2006-12-08 23:57:42 UTC
Created attachment 18857 [details]
uses the timeout argument to DCOP::Client::call()

Since kded can hang this DCOP::Client::call() I have augmented the code to use
the timeout argument. This will allow amarok to timeout and attempt to recover
from the failure of this call.
Comment 2 Erik Hovland 2006-12-14 00:45:23 UTC
I committed this patch to svn today.