Help: Crash in gnome-panel 2.2.0.1



After the recent change to applets/notification_area/eggtraymanager.c, I
can get a 100% reproduceable crash when logging out of GNOME on FreeBSD
if the notification area applet is in my panel.  I have been racking my
brain on this one, and for the life of me, I can't explain what I'm
seeing.  Attached is a stack trace with some prints to show what's going
on.  Basically, it looks like the memory is being corrupted between the
egg_tray_manager_finalize() function and the egg_tray_manager_unmanage()
function.  Weird thing is, if I check to see if manager->invisible is
NULL in egg_tray_manager_finalize(), it still calls
egg_tray_manager_unmanage().

I've reproduced this on FreeBSD 5.x and FreeBSD -stable.  I can revert
back to the previous rev of eggtraymanager.c to fix this crash, but I'm
not sure what other bugs I would be reintroducing.  I'll file a bug, but
this is kind of holding up my putting GNOME 2.2 in the FreeBSD ports
tree.  I'd appreciate any advice.  Thanks.

Joe

-- 
Joe Marcus Clarke
FreeBSD GNOME Team	::	marcus FreeBSD org
http://www.FreeBSD.org/gnome


#0  0x2856adda in gdk_x11_drawable_get_xdisplay (drawable=0x210650)
    at gdkdrawable-x11.c:909
#1  0x0804c2da in egg_tray_manager_unmanage (manager=0x210650)
        at eggtraymanager.c:402
#2  0x0804bd65 in egg_tray_manager_finalize (object=0x2859aadc)
	    at eggtraymanager.c:167
#3  0x288fce5e in g_object_last_unref ()
	       from /usr/local/lib/libgobject-2.0.so.200
#4  0x288ffda8 in g_object_unref () from /usr/local/lib/libgobject-2.0.so.200
#5  0x0804b393 in free_tray (tray=0x2859aadc) at main.c:285
#6  0x2893c75b in g_datalist_clear () from /usr/local/lib/libglib-2.0.so.200
#7  0x288fcd82 in g_object_finalize ()
	          from /usr/local/lib/libgobject-2.0.so.200
#8  0x283d1329 in gtk_object_finalize (gobject=0x80afc80) at gtkobject.c:406
#9  0x2849f456 in gtk_widget_finalize (object=0x80afc80) at gtkwidget.c:5987
#10 0x28073c28 in panel_applet_finalize (object=0x80afc80)
		      at panel-applet.c:409
#11 0x288fce5e in g_object_last_unref ()
		         from /usr/local/lib/libgobject-2.0.so.200

(gdb) frame 2
#2  0x0804bd65 in egg_tray_manager_finalize (object=0x2859aadc)
    at eggtraymanager.c:167
167       egg_tray_manager_unmanage (manager);
(gdb) print manager
$4 = (struct _EggTrayManager *) 0x808ad40
(gdb) frame 1
#1  0x0804c2da in egg_tray_manager_unmanage (manager=0x210650)
    at eggtraymanager.c:402
402       display = GDK_WINDOW_XDISPLAY (manager->invisible);
(gdb) print manager
$5 = (struct _EggTrayManager *) 0x210650
(gdb) frame 2
#2  0x0804bd65 in egg_tray_manager_finalize (object=0x2859aadc)
    at eggtraymanager.c:167
167       egg_tray_manager_unmanage (manager);
(gdb) print manager->invisible
$6 = (struct _GtkWidget *) 0x0
(gdb) frame 1
#1  0x0804c2da in egg_tray_manager_unmanage (manager=0x210650)
    at eggtraymanager.c:402
402       display = GDK_WINDOW_XDISPLAY (manager->invisible);
(gdb) print manager->invisible
Error accessing memory address 0x210668: Bad address.

Attachment: signature.asc
Description: This is a digitally signed message part



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]