[Bug 887946] Re: [SRU] Deadlocks in main loop
Ante Karamatić
887946 at bugs.launchpad.net
Fri Jun 8 07:23:39 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).
+ * 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
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
* 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
More information about the foundations-bugs
mailing list