GNOME Bugzilla – Bug 711006
GCancellable: connect -> cancel deadlock
Last modified: 2013-10-28 18:24:59 UTC
Created attachment 258295 [details] stack This may have been filed before, but I just hit this deadlock on gnome-shell in RHEL7 beta. From what I can tell the GCancellable mutex is non-recursive, so it's a simple case of calling cancel() inside connect() will deadlock, and the fact the GDBus thread is *also* blocked on that mutex is just a red herring. Is this just a case of "applications should never do that"? I neglected to get a JS backtrace unfortunately =/ If there were a way we could make this work it'd be nice, since I suspect this is part of a complex chain of cleanup inside the shell.
Indeed, calling further cancellable operations from inside of connect() is unsupported and has always been. that said, Alex fixed this with his (now reverted) commit in bug 705395. We reverted it only because it landed during hard freeze, a day before the release. We should recommit that part of the patch now (master only) to make this go away.
*** This bug has been marked as a duplicate of bug 705395 ***