[Bug 887946] Re: Deadlocks in main loop
Scott Moser
smoser at ubuntu.com
Wed Jun 6 17:51:11 UTC 2012
** 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).
+
+ * 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 .
** Summary changed:
- Deadlocks in main loop
+ [SRU] Deadlocks in main loop
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, 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
* 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.
[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
More information about the foundations-bugs
mailing list