** 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 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: Confirmed 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. [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 : [email protected] Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp

