** Description changed: 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 + https://mail.gnome.org/archives/commits-list/2010-November/msg01816.html [Impact] Remove potential and demonstratable deadlocks in glib code. [Test Case] - * Install lucid - * add ubuntu-ha-maintainers lucid ppa and update repo: - apt-add-repository ppa:ubuntu-ha-maintainers/lucid-cluster ; 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). + * 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/lucid-cluster ; 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. + * 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 .
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/887946 Title: [SRU] Deadlocks in main loop To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/glib2.0/+bug/887946/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs