with glib 2.37 from git master, unity-panel-service crashes when windows close

Bug #1173262 reported by Adam Dingle
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
DBus Menu
Fix Released
Critical
Charles Kerr
libdbusmenu (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

I run Ubuntu 13.04. I generally install glib built from git master, which is either brave or foolish, depending on your perspective. :) Recently I updated glib and found a pretty significant regression in my desktop environment: whenever I close a terminal window or most other windows, unity-panel-service crashes. It restarts automatically, but I see all indicators on the system panel vanish and then reappear.

I bisected glib and found that this broke with a recent change to gobject:

commit 31fde567a95ff8f50b6b0e75d4010da9b73514ed
Author: Ryan Lortie <email address hidden>
Date: Mon Apr 22 12:33:30 2013 -0400

    gtype: put private data before the instance

For more details, see https://bugzilla.gnome.org/show_bug.cgi?id=698595 .

Related branches

Revision history for this message
Allison Karlitskaya (desrt) wrote :

hi Adam,

Not sure what the issue is here but I have a sneaky suspicion that this is something that was already broken before the change and the change had the effect of turning some undefined behaviour into an outright crash. We've already found a couple of cases where the change of the memory setup caused by this patch has turned 'harmless' memory errors into outright crashers.

That being said, if you're also running git-master Gtk, it could have been this highly related patch which went in right about the same time:

https://git.gnome.org/browse/gtk+/commit/?id=ca0a18918c4737327a47f8180f064084ae5a6af1

I don't _really_ think this is the case, but this patch changed how the accel label was created and associated with the menu (which is what the backtrace is talking all about) so I thought I'd mention it as a first rule-out.

Revision history for this message
Adam Dingle (adam-yorba) wrote :

Ryan, thanks for your comments. I'm sure this was caused by the GLib change because I used git bisect on GLib and it pointed to that change exactly, and because although I normally run GTK from git master I reverted to GTK 3.8.0 while doing that bisection.

So I bet you're right that there's a memory error in unity-panel-service already. In fact I see lots of other crash report for unity-panel-service:

https://bugs.launchpad.net/unity?field.searchtext=unity-panel-service&search=Search&field.status%3Alist=NEW&field.status%3Alist=INCOMPLETE_WITH_RESPONSE&field.status%3Alist=INCOMPLETE_WITHOUT_RESPONSE&field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.status%3Alist=FIXCOMMITTED&field.assignee=&field.bug_reporter=&field.omit_dupes=on&field.has_patch=&field.has_no_package=

At least we now have a reproducible case. :)

Revision history for this message
Allison Karlitskaya (desrt) wrote :

I ran the unity-panel-service against the GLib already in the distribution and found that this critical is popping up:

(unity-panel-service.:17248): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matched: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(unity-panel-service.:17248): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `(null)'

(unity-panel-service.:17248): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matched: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(unity-panel-service.:17248): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `(null)'

with a very similar backtrace to the one you found. This is pretty clearly a case of already-broken behaviour in Unity being pushed over the line by changes to memory layout.

Revision history for this message
Adam Dingle (adam-yorba) wrote :

Good sleuthing. Now, who's the right person to fix this? :)

Charles Kerr (charlesk)
affects: unity → libdbusmenu
Changed in libdbusmenu:
status: New → Confirmed
importance: Undecided → Critical
status: Confirmed → In Progress
assignee: nobody → Charles Kerr (charlesk)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:libdbusmenu at revision 442, scheduled for release in libdbusmenu, milestone Unknown

Changed in libdbusmenu:
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package libdbusmenu - 12.10.3daily13.05.15-0ubuntu1

---------------
libdbusmenu (12.10.3daily13.05.15-0ubuntu1) saucy; urgency=low

  [ Charles Kerr ]
  * In gtkclient's destructor, balance client's earlier
    gtk_widget_add_accelerator() calls with
    gtk_widget_remove_accelerator() calls. (LP: #1173262)

  [ Mathieu Trudel-Lapierre ]
  * Remove stray g_message().

  [ Ubuntu daily release ]
  * Automatic snapshot from revision 443
 -- Ubuntu daily release <email address hidden> Wed, 15 May 2013 12:44:56 +0000

Changed in libdbusmenu (Ubuntu):
status: New → Fix Released
Ted Gould (ted)
Changed in libdbusmenu:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.