GNOME Bugzilla – Bug 323996
Panel crashes while complaining about applet that didn't load
Last modified: 2005-12-21 09:41:27 UTC
Attached is backtrace from gnome-panel 2.3.13, it is crashing while complaining that it couldn't load the ontv applet, the interesting thing is that the line that it is crashing on is g_free (frame) however no other code path free's 'frame' is this because because it isn't supposed to be free'd ?
Created attachment 55956 [details] Backtrace
Interesting. frame should be free'd. Maybe it's free'd twice, but I don't see why this would happen. I suppose you can easily reproduce the bug. Can you have a quick look in gdb with a breakpoint on panel_applet_frame_loading_failed() to see if frame is invalid or if we go there twice?
Err, isn't a PanelAppletFrame a widget ..... (gdb) b panel_applet_frame_loading_failed Breakpoint 1 at 0x80821a3: file /build/buildd/gnome-panel-2.13.3/./gnome-panel/panel-applet-frame.c, line 993. (gdb) c Continuing.
+ Trace 64587
Thread NaN (LWP 12690)
$1 = (PanelAppletFrame *) 0x8212df0 (gdb) p *frame $2 = {event_box = {bin = {container = {widget = {object = {parent_instance = { g_type_instance = {g_class = 0x8211ce0}, ref_count = 1, qdata = 0x2}, flags = 2098690}, private_flags = 15360, state = 0 '\0', saved_state = 0 '\0', name = 0x0, style = 0x813c9a0, requisition = {width = 0, height = 0}, allocation = {x = -1, y = -1, width = 1, height = 1}, window = 0x0, parent = 0x0}, focus_child = 0x0, border_width = 0, need_resize = 0, resize_mode = 0, reallocate_redraws = 0, has_focus_chain = 0}, child = 0x0}}, priv = 0x8212e48}
Oh right. How did I miss that? Does it work better with gtk_widget_destroy()? :-)
Right, gtk_widget_destroy () works better, I'll attach the patch I'm using. Note that I set frame->priv->idd to NULL to ensure the finalize function doesn't try and free it too.
Created attachment 55964 [details] [review] Patch
Thanks, fixed in HEAD.
*** Bug 324661 has been marked as a duplicate of this bug. ***