Currently we have a deadlock which is worked around with a watchdog in telepathy_fargo.tac. This makes me very sad, and makes it hard to keep the process alive for long enough to properly benchmark it. This is what I am currently working on. Expect a patch to dbus-python or something soon.
After a most excellent adventure into gdb+python, via http://dmalcolm.livejournal.com/4545.html and recompiling python2.5 from source, I managed to isolate the bug and fix it. While the deadlock happens because of a non-reentrant lock in dbus python, I don't think a reentrant lock would be safe, so I just pushed unregistering into an idle. I should probably do some more load testing just to make sure we don't have any other sneaky deadlocks.
This is terrifying, but looks OK. Ship it, and if you can suggest an improvement to dbus-python, please do so.
Did you merge this in the end?
Oops: not pushed to origin. Done now. Closing.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.