Comment 2 for bug 904801

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.