Touching the volume part of the applet causes it to crash

Bug #904801 reported by Dunkirk
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Indicator Display Objects
New
Undecided
Unassigned
ido (Ubuntu)
New
Undecided
Ken VanDine

Bug Description

My computer at work and my computer at home are setup virtually identically, except that, at work, I have 2 screens, and use Xinerama. Home is an upgrade from 11.04 to 11.10. Work is a clean install to 11.10.

At home, the indicator-applet-complete gives me full date along with the time, and works great. The volume widget works as expected. It looks like Banshee is integrated with it, though I never use Banshee. At work, however, if I touch the volume widget, the whole applet crashes and I get asked if I would like to reload. I also do not (and see no option to) get the date displayed on the time. I don't know if these things are related.

I've tried comparing the two systems to see if there's a configuration file involved. I found .gconf/apps/panel/applets/indicator_applet_screen0/%gconf.xml at home, but not at work (I didn't even have the "applets" subdirectory), so I copied it over, but that didn't make a difference.

Since Bashee is sort of involved, I noticed that there were some leftover mono-2 libraries at home. I installed them at work, but, again, this hasn't made a difference.

Revision history for this message
Dunkirk (david-davidkrider) wrote :
Download full text (8.9 KiB)

It appears to be related to Xinerama. I reconfigured X without it (`nvidia-xconfig --twinview --no-xinerama'), and it has stopped crashing.

I also got a backtrace. I know it's not a very good one. I installed several dozen -dev packages, but I apparently still don't have enough.

Program received signal SIGSEGV, Segmentation fault.
gdk_window_new (parent=0x9117e0, attributes=0x7fffffffb050, attributes_mask=44) at /build/buildd/gtk+3.0-3.2.0/./gdk/gdkwindow.c:1359
1359 /build/buildd/gtk+3.0-3.2.0/./gdk/gdkwindow.c: No such file or directory.
        in /build/buildd/gtk+3.0-3.2.0/./gdk/gdkwindow.c

#0 gdk_window_new (parent=0x9117e0, attributes=0x7fffffffb050, attributes_mask=44) at /build/buildd/gtk+3.0-3.2.0/./gdk/gdkwindow.c:1359
#1 0x00007fffe23eebb5 in ?? () from /usr/lib/libido3-0.1.so.0
#2 0x00007ffff69570a4 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#3 0x00007ffff696881a in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#4 0x00007ffff69726b1 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#5 0x00007ffff6972852 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6 0x00007ffff72c3190 in gtk_widget_realize (widget=0x8dc3c0) at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkwidget.c:4401
#7 0x00007ffff72c3e28 in gtk_widget_map (widget=0x8dc3c0) at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkwidget.c:4171
#8 0x00007ffff70c2d34 in gtk_box_forall (container=<optimized out>, include_internals=<optimized out>, callback=0x7ffff7100b10 <gtk_container_map_child>,
    callback_data=0x0) at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkbox.c:1856
#9 0x00007ffff710447f in gtk_container_map (widget=0x8dc480) at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkcontainer.c:3248
#10 0x00007ffff6956ffa in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#11 0x00007ffff696881a in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007ffff69726b1 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff6972852 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007ffff72c3d1a in gtk_widget_map (widget=0x8dc480) at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkwidget.c:4173
#15 0x00007ffff710447f in gtk_container_map (widget=0x993050) at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkcontainer.c:3248
#16 0x00007ffff719ac72 in gtk_menu_item_map (widget=<optimized out>) at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkmenuitem.c:1651
#17 0x00007ffff6956ffa in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x00007ffff696881a in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#19 0x00007ffff69726b1 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#20 0x00007ffff6972852 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#21 0x00007ffff72c3d1a in gtk_widget_map (widget=0x993050) at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkwidget.c:4173
#22 0x00007ffff719e17d in gtk_menu_shell_forall (container=<optimized out>, include_internals=<optimized out>,
    callback=0x7ffff7100b10 <gtk_container_map_child>, callback_data=0x0) at /build/buildd/gtk+3.0-3.2.0/...

Read more...

Revision history for this message
Jason Conti (jconti) wrote :

I managed to reproduce this in precise using both indicator-applet and unity. The bug is actually in ido, here is the relevant part of the stack trace:

Program received signal SIGSEGV, Segmentation fault.
gdk_window_new (parent=0x825b3f0, attributes=0xbfffd1e8, attributes_mask=44)
    at /build/buildd/gtk+3.0-3.3.4/./gdk/gdkwindow.c:1359
1359 /build/buildd/gtk+3.0-3.3.4/./gdk/gdkwindow.c: No such file or directory.
        in /build/buildd/gtk+3.0-3.3.4/./gdk/gdkwindow.c
(gdb) bt
#0 gdk_window_new (parent=0x825b3f0, attributes=0xbfffd1e8, attributes_mask=44)
    at /build/buildd/gtk+3.0-3.3.4/./gdk/gdkwindow.c:1359
#1 0xb64182e1 in ido_offscreen_proxy_realize (widget=0x81b6478) at /tmp/buildd/ido-0.3.1/./src/idooffscreenproxy.c:218

I'm going to attempt to move this to ido and link a branch which seems to fix it. In ido/src/idooffscreenproxy.c:ido_offscreen_proxy_realize, it sets attributes.visual to gdk_screen_get_rgba_visual(gdk_screen_get_default()), but from the GDK documentation, it is possible for gdk_screen_get_rgba_visual to return NULL if it isn't supported, which seems to be the case with nvidia and xinerama. The fix seems to be only setting the GDK_GA_VISUAL attribute if attributes.visual is non-NULL, and let GDK figure it out. I'm not getting the crashing anymore with this change, and the volume slider menuitem seems to still be working correctly.

affects: indicator-applet → ido
Revision history for this message
Sebastien Bacher (seb128) wrote :

Thank you for your work there

Ken, could you make sure somebody in dx is reviewing the patch there? Not sure if they look at ido requests since nobody is actively working on it nowadays...

Changed in ido (Ubuntu):
assignee: nobody → Ken VanDine (ken-vandine)
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.