After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 323996 - Panel crashes while complaining about applet that didn't load
Panel crashes while complaining about applet that didn't load
Status: RESOLVED FIXED
Product: gnome-panel
Classification: Other
Component: panel
2.13.x
Other Linux
: Normal critical
: ---
Assigned To: Panel Maintainers
Panel Maintainers
: 324661 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2005-12-13 17:20 UTC by Crispin Flowerday (not receiving bugmail)
Modified: 2005-12-21 09:41 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Backtrace (3.20 KB, text/plain)
2005-12-13 17:21 UTC, Crispin Flowerday (not receiving bugmail)
  Details
Patch (953 bytes, patch)
2005-12-13 22:31 UTC, Crispin Flowerday (not receiving bugmail)
committed Details | Review

Description Crispin Flowerday (not receiving bugmail) 2005-12-13 17:20:40 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 ?
Comment 1 Crispin Flowerday (not receiving bugmail) 2005-12-13 17:21:07 UTC
Created attachment 55956 [details]
Backtrace
Comment 2 Vincent Untz 2005-12-13 19:21:39 UTC
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?
Comment 3 Crispin Flowerday (not receiving bugmail) 2005-12-13 19:34:28 UTC
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.

Thread NaN (LWP 12690)

  • #0 panel_applet_frame_loading_failed
    at /build/buildd/gnome-panel-2.13.3/./gnome-panel/panel-applet-frame.c line 993
  • #1 panel_applet_frame_activated
    at /build/buildd/gnome-panel-2.13.3/./gnome-panel/panel-applet-frame.c line 1241
  • #2 bonobo_moniker_resolve_async_default
    from /usr/lib/libbonobo-2.so.0
  • #3 bonobo_moniker_client_new_from_name_async
    from /usr/lib/libbonobo-2.so.0
  • #4 ORBit_small_demarshal_async
    from /usr/lib/libORBit-2.so.0
  • #5 giop_invoke_async
    from /usr/lib/libORBit-2.so.0
  • #6 giop_thread_queue_process
    from /usr/lib/libORBit-2.so.0
  • #7 giop_thread_queue_process
    from /usr/lib/libORBit-2.so.0
  • #8 link_servers_move_io_T
    from /usr/lib/libORBit-2.so.0
  • #9 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #10 g_main_context_check
    from /usr/lib/libglib-2.0.so.0
  • #11 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #12 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #13 main
    at /build/buildd/gnome-panel-2.13.3/./gnome-panel/main.c line 84
$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}
Comment 4 Vincent Untz 2005-12-13 20:00:59 UTC
Oh right. How did I miss that?
Does it work better with gtk_widget_destroy()? :-)
Comment 5 Crispin Flowerday (not receiving bugmail) 2005-12-13 22:30:19 UTC
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.
Comment 6 Crispin Flowerday (not receiving bugmail) 2005-12-13 22:31:29 UTC
Created attachment 55964 [details] [review]
Patch
Comment 7 Vincent Untz 2005-12-14 20:46:48 UTC
Thanks, fixed in HEAD.
Comment 8 Sebastien Bacher 2005-12-21 09:41:27 UTC
*** Bug 324661 has been marked as a duplicate of this bug. ***