indicator-applet-appmenu crashed with SIGSEGV in gtk_menu_item_paint()

Bug #758759 reported by Michael Terry
18
This bug affects 2 people
Affects Status Importance Assigned to Milestone
DBus Menu
Fix Released
Undecided
Unassigned
libdbusmenu (Ubuntu)
Fix Released
Undecided
Michael Terry

Bug Description

Binary package hint: indicator-application

Reproduction steps (thanks to Achim):
1) Install Gnome Commander
2) Run it and maximize it
3) Ensure that you have a folder in your Bookmarks (i.e. add one if you haven't before)
4) Now in the menu (on the Panel) go with your mouse cursor to Bookmarks.
5) Nothing really appears now, wait a second (your hope, you will see something) - and: Crash.

ProblemType: Crash
DistroRelease: Ubuntu 11.04
Package: indicator-application 0.3.1-0ubuntu2
ProcVersionSignature: Ubuntu 2.6.38-8.42-generic 2.6.38.2
Uname: Linux 2.6.38-8-generic x86_64
Architecture: amd64
CrashCounter: 1
Date: Tue Apr 12 09:26:26 2011
ExecutablePath: /usr/lib/indicator-applet/indicator-applet-appmenu
ProcCmdline: /usr/lib/indicator-applet/indicator-applet-appmenu
ProcEnviron:
 SHELL=/bin/bash
 LC_MESSAGES=en_US.UTF-8
 PATH=(custom, user)
 LANGUAGE=en_US:en
 LANG=en_GB.utf8
SegvAnalysis:
 Segfault happened at: 0x7ffe85e4de9b <gtk_menu_item_expose+539>: mov 0x30(%rdx),%rdx
 PC (0x7ffe85e4de9b) ok
 source "0x30(%rdx)" (0x00000030) not located in a known VMA region (needed readable region)!
 destination "%rdx" ok
SegvReason: reading NULL VMA
Signal: 11
SourcePackage: indicator-application
StacktraceTop:
 gtk_menu_item_paint (widget=0xc95440, event=0xe9b670) at /build/buildd/gtk+2.0-2.24.4/gtk/gtkmenuitem.c:1284
 gtk_menu_item_expose (widget=0xc95440, event=0xe9b670) at /build/buildd/gtk+2.0-2.24.4/gtk/gtkmenuitem.c:1361
 _gtk_marshal_BOOLEAN__BOXED (closure=0xab9840, return_value=0x7fffc021d2e0, n_param_values=<value optimized out>, param_values=0xd37b20, invocation_hint=<value optimized out>, marshal_data=<value optimized out>) at /build/buildd/gtk+2.0-2.24.4/gtk/gtkmarshalers.c:86
 g_closure_invoke (closure=0xab9840, return_value=0x7fffc021d2e0, n_param_values=2, param_values=0xd37b20, invocation_hint=0x7fffc021d2a0) at /build/buildd/glib2.0-2.28.5/./gobject/gclosure.c:767
 signal_emit_unlocked_R (node=<value optimized out>, detail=0, instance=0xc95440, emission_return=0x7fffc021d450, instance_and_params=0xd37b20) at /build/buildd/glib2.0-2.28.5/./gobject/gsignal.c:3290
Title: indicator-applet-appmenu crashed with SIGSEGV in gtk_menu_item_paint()
UpgradeStatus: Upgraded to natty on 2010-09-28 (196 days ago)
UserGroups: adm admin cdrom dialout dip fax floppy fuse lpadmin plugdev sambashare tape video

Related branches

Revision history for this message
Michael Terry (mterry) wrote :
visibility: private → public
Revision history for this message
Apport retracing service (apport) wrote :

StacktraceTop:
 gtk_menu_item_paint (widget=0xc95440, event=0xe9b670) at /build/buildd/gtk+2.0-2.24.4/gtk/gtkmenuitem.c:1284
 gtk_menu_item_expose (widget=0xc95440, event=0xe9b670) at /build/buildd/gtk+2.0-2.24.4/gtk/gtkmenuitem.c:1361
 _gtk_marshal_BOOLEAN__BOXED (closure=0xab9840, return_value=0x7fffc021d2e0, n_param_values=<value optimized out>, param_values=0xd37b20, invocation_hint=<value optimized out>, marshal_data=<value optimized out>) at /build/buildd/gtk+2.0-2.24.4/gtk/gtkmarshalers.c:86
 g_closure_invoke (closure=0xab9840, return_value=0x7fffc021d2e0, n_param_values=2, param_values=0xd37b20, invocation_hint=0x7fffc021d2a0) at /build/buildd/glib2.0-2.28.5/./gobject/gclosure.c:767
 signal_emit_unlocked_R (node=<value optimized out>, detail=0, instance=0xc95440, emission_return=0x7fffc021d450, instance_and_params=0xd37b20) at /build/buildd/glib2.0-2.28.5/./gobject/gsignal.c:3290

Revision history for this message
Apport retracing service (apport) wrote : Stacktrace.txt
Revision history for this message
Apport retracing service (apport) wrote : ThreadStacktrace.txt
Changed in indicator-application (Ubuntu):
importance: Undecided → Medium
tags: removed: need-amd64-retrace
Revision history for this message
Michael Terry (mterry) wrote :

So the problem here is:

1) GNOME Commander creates an empty GtkMenuItem and adds it to the menu then adds a manually created GtkLabel to the item.
2) dbusmenu handles situations *like* this, but not exactly this -- it isn't watching for child additions, rather it watches the "label" property of the GtkMenuItem, which isn't being set here.
3) dbusmenu ends up creating a menu item with a submenu but no actual child content itself which crashes GTK.

Working on it.

affects: indicator-application (Ubuntu) → libdbusmenu (Ubuntu)
Changed in libdbusmenu (Ubuntu):
assignee: nobody → Michael Terry (mterry)
importance: Medium → Undecided
status: New → In Progress
Ted Gould (ted)
Changed in dbusmenu:
status: New → Fix Committed
milestone: none → 0.4.3
Ted Gould (ted)
Changed in dbusmenu:
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package libdbusmenu - 0.4.3-0ubuntu1

---------------
libdbusmenu (0.4.3-0ubuntu1) natty; urgency=low

  [ Ken VanDine ]
  * debian/rules
    - Fixed package names in build targets (LP: #760102)
    - Dropped makeshlibs in favor of symbols files
  * +debian/libdbusmenu-glib3.symbols
  * +debian/libdbusmenu-gtk3-3.symbols
  * +debian/libdbusmenu-gtk3.symbols

  [ Ted Gould ]
  * New upstream release.
    ∘ Handle cases where labels are added later as subwidgets
      in the menuitem (LP: #758759)
    ∘ Fix the destruction of the attached GTK menuitem (LP: #746091)
    ∘ Guard against an activation that does not actually have an
      associated menu-hide (LP: #750588)
 -- Ted Gould <email address hidden> Thu, 14 Apr 2011 16:49:13 -0500

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

Duplicates of this bug

Other bug subscribers

Remote bug watches

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