[Bug 887946] Re: [SRU] Deadlocks in main loop

Launchpad Bug Tracker 887946 at bugs.launchpad.net
Tue Jul 10 05:26:45 UTC 2012


** Branch linked: lp:ubuntu/lucid-proposed/glib2.0

-- 
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:
  Fix Committed
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




More information about the foundations-bugs mailing list