This bug was fixed in the package glib2.0 - 2.24.1-0ubuntu2 --------------- glib2.0 (2.24.1-0ubuntu2) lucid-proposed; urgency=low
* debian/patches/90-context-unlock.patch (LP: #887946): - gmain: move finalization of GSource outside of context lock -- Ante Karamatic <iv...@ubuntu.com> Wed, 09 Nov 2011 10:33:37 +0100 ** Changed in: glib2.0 (Ubuntu Lucid) Status: Fix Committed => Fix Released -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to glib2.0 in Ubuntu. https://bugs.launchpad.net/bugs/887946 Title: [SRU] Deadlocks in main loop Status in “glib2.0” package in Ubuntu: Invalid Status in “glib2.0” source package in Lucid: Fix Released Status in “glib2.0” source package in Maverick: Won't Fix Bug description: Some applications get stuck in a deadlock when utilizing glib. One of examples is lrmadmin, when connecting to lrmd. Upstream provided a fix for this bug and Ubuntu's version 11.04 and newer do not have this issue. Ubuntu 10.04 and 10.10 do not contain the fix. Upstream fix: https://mail.gnome.org/archives/commits-list/2010-November/msg01816.html [Impact] Remove potential and demonstratable deadlocks in glib code. [Development Fix] Bug is fixed in Ubuntu 11.04 and later by the simple fact that these version have newer version of glib2.0 which contains this fix. [Stable Fix] Proposed fix is cherry picked from the upstream's, at the time, latest version of glib. This part of the code did not change since then. [Test Case] * Install lucid * Install python-software-properties: apt-get install python-software-properties * add ubuntu-ha-maintainers lucid ppa and update repo: apt-add-repository ppa:ubuntu-ha-maintainers/ppa ; apt-get update * Install pacemaker: apt-get -y install pacemaker * Enable corosync (/etc/default/corosync) and start it: sed -i -e 's/START=no/START=yes/' /etc/default/corosync service corosync start * Open two client->server connections: lrmadmin -C ; lrmadmin -C It deadlocks on second run (it actually never finishes the first run). * Kill lrmd and stop corosync: killall -9 lrmd ; service corosync stop * install fix apt-get update && apt-get install libglib2.0-0 * Start corosync: service corosync start * Run the test again: lrmadmin -C ; lrmadmin -C ; lrmadmin -C ; lrmadmin -C * It doesn't deadlock. [Regression Potential] Regression potential should be very small. This change is still present in almost unmodified upstream code to this day (g_source_unref_internal of glib/gmain.c). The upstream trunk commit is at http://git.gnome.org/browse/glib/commit/?id=b358202856682e5cdefb0b4b8aaed3a45d9a85fa . To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/glib2.0/+bug/887946/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp