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 316911 - dragging the top panel around with a multiload-applet-2 in it causes a crash
dragging the top panel around with a multiload-applet-2 in it causes a crash
Status: RESOLVED FIXED
Product: gnome-applets
Classification: Other
Component: multiload
2.12.x
Other Linux
: High critical
: 2.14
Assigned To: gnome-applets Maintainers
gnome-applets Maintainers
: 169211 322902 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2005-09-22 07:57 UTC by Sebastien Bacher
Modified: 2010-01-24 01:07 UTC
See Also:
GNOME target: ---
GNOME version: 2.11/2.12



Description Sebastien Bacher 2005-09-22 07:57:01 UTC
This bug has been opened here: http://bugzilla.ubuntu.com/show_bug.cgi?id=15999

"Here's how:

1. right-click in some empty space on the panel at the top of the screen
2. "Add to Panel..."
3. click "System Monitor" in the "System & Hardware" section
4. click "Add"
5. right-click on the cpu-meter that appears in the panel
6. click 'Preferences'
7. turn on 3 or 4 of the graphs.  I use "processor", "network", "swap space" and
"harddisk"
8. click 'Close"
9. find some more empty space on the panel at the top of the screen
10. click and hold the left mouse button on that empty space in the panel.  the
mouse cursor should become a fist
11. drag the fist to the left border of the screen.  the panel will redraw along
the left side.  I usually get a crash at this point.  if you don't get a crash,
keep the left mouse button held down and try dragging to the right side and the
bottom edge in turn.  wave the mouse around all over the screen.  I always get a
crash within a few seconds of doing this.

The crash looks like this:

  The application "multiload-applet-2" has quit unexpectedly.

At that time, my mouse cursor is stuck as a fist, and won't click anywhere, so I
have to use the keyboard to chose "close".  Then I see:

  "System Monitor" has quit unexpectedly, along with the option to reload it."
Comment 1 Sebastien Bacher 2005-09-22 07:59:00 UTC
backtrace of the crash using gnome-applets 2.12

  • #0 IA__g_object_unref
    at gobject.c line 1651
  • #1 load_graph_destroy
    at /build/buildd/gnome-applets-2.12.0/./multiload/load-graph.c line 251
  • #2 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #3 IA__g_closure_invoke
    at gclosure.c line 492
  • #4 signal_emit_unlocked_R
    at gsignal.c line 2485
  • #5 IA__g_signal_emit_valist
    at gsignal.c line 2244
  • #6 IA__g_signal_emit
    at gsignal.c line 2288
  • #7 gtk_object_dispose
    at gtkobject.c line 378
  • #8 gtk_widget_dispose
    at gtkwidget.c line 6656
  • #9 IA__g_object_run_dispose
    at gobject.c line 567
  • #10 IA__gtk_object_destroy
    at gtkobject.c line 363
  • #11 IA__gtk_widget_destroy
    at gtkwidget.c line 1995
  • #12 gtk_box_forall
    at gtkbox.c line 703
  • #13 IA__gtk_container_foreach
    at gtkcontainer.c line 1292
  • #14 gtk_container_destroy
    at gtkcontainer.c line 829
  • #15 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #16 g_type_class_meta_marshal
    at gclosure.c line 569
  • #17 IA__g_closure_invoke
    at gclosure.c line 492
  • #18 signal_emit_unlocked_R
    at gsignal.c line 2601
  • #19 IA__g_signal_emit_valist
    at gsignal.c line 2244
  • #20 IA__g_signal_emit
    at gsignal.c line 2288
  • #21 gtk_object_dispose
    at gtkobject.c line 378
  • #22 gtk_widget_dispose
    at gtkwidget.c line 6656
  • #23 IA__g_object_run_dispose
    at gobject.c line 567
  • #24 IA__gtk_object_destroy
    at gtkobject.c line 363
  • #25 IA__gtk_widget_destroy
    at gtkwidget.c line 1995
  • #26 gtk_frame_forall
    at gtkframe.c line 303
  • #27 IA__gtk_container_foreach
    at gtkcontainer.c line 1292
  • #28 gtk_container_destroy
    at gtkcontainer.c line 829
  • #29 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #30 g_type_class_meta_marshal
  • #31 IA__g_closure_invoke
    at gclosure.c line 492
  • #32 signal_emit_unlocked_R
    at gsignal.c line 2601
  • #33 IA__g_signal_emit_valist
    at gsignal.c line 2244
  • #34 IA__g_signal_emit
    at gsignal.c line 2288
  • #35 gtk_object_dispose
    at gtkobject.c line 378
  • #36 gtk_widget_dispose
    at gtkwidget.c line 6656
  • #37 IA__g_object_run_dispose
    at gobject.c line 567
  • #38 IA__gtk_object_destroy
    at gtkobject.c line 363
  • #39 IA__gtk_widget_destroy
    at gtkwidget.c line 1995
  • #40 gtk_box_forall
    at gtkbox.c line 703
  • #41 IA__gtk_container_foreach
    at gtkcontainer.c line 1292
  • #42 gtk_container_destroy
    at gtkcontainer.c line 829
  • #43 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #44 g_type_class_meta_marshal
    at gclosure.c line 569
  • #45 IA__g_closure_invoke
    at gclosure.c line 492
  • #46 signal_emit_unlocked_R
    at gsignal.c line 2601
  • #47 IA__g_signal_emit_valist
    at gsignal.c line 2244
  • #48 IA__g_signal_emit
    at gsignal.c line 2288
  • #49 gtk_object_dispose
    at gtkobject.c line 378
  • #50 gtk_widget_dispose
    at gtkwidget.c line 6656
  • #51 IA__g_object_run_dispose
    at gobject.c line 567
  • #52 IA__gtk_object_destroy
    at gtkobject.c line 363
  • #53 IA__gtk_widget_destroy
    at gtkwidget.c line 1995
  • #54 gtk_box_forall
    at gtkbox.c line 703
  • #55 IA__gtk_container_foreach
    at gtkcontainer.c line 1292
  • #56 gtk_container_destroy
    at gtkcontainer.c line 829
  • #57 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #58 g_type_class_meta_marshal
    at gclosure.c line 569
  • #59 IA__g_closure_invoke
    at gclosure.c line 492
  • #60 signal_emit_unlocked_R
    at gsignal.c line 2601
  • #61 IA__g_signal_emit_valist
    at gsignal.c line 2244
  • #62 IA__g_signal_emit
    at gsignal.c line 2288
  • #63 gtk_object_dispose
    at gtkobject.c line 378
  • #64 gtk_widget_dispose
    at gtkwidget.c line 6656
  • #65 IA__g_object_run_dispose
    at gobject.c line 567
  • #66 IA__gtk_object_destroy
    at gtkobject.c line 363
  • #67 IA__gtk_widget_destroy
    at gtkwidget.c line 1995
  • #68 multiload_applet_refresh
    at /build/buildd/gnome-applets-2.12.0/./multiload/main.c line 457
  • #69 multiload_change_orient_cb
    at /build/buildd/gnome-applets-2.12.0/./multiload/main.c line 162
  • #70 IA__g_cclosure_marshal_VOID__UINT
    at gmarshal.c line 251
  • #71 IA__g_closure_invoke
    at gclosure.c line 492
  • #72 signal_emit_unlocked_R
    at gsignal.c line 2485
  • #73 IA__g_signal_emit_valist
    at gsignal.c line 2244
  • #74 IA__g_signal_emit
    at gsignal.c line 2288
  • #75 panel_applet_set_prop
    at panel-applet.c line 1158
  • #76 bonobo_marshal_VOID__BOXED_UINT_BOXED
    from /usr/lib/libbonobo-2.so.0
  • #77 IA__g_closure_invoke
    at gclosure.c line 492
  • #78 bonobo_closure_invoke_va_list
    from /usr/lib/libbonobo-2.so.0
  • #79 bonobo_closure_invoke
    from /usr/lib/libbonobo-2.so.0
  • #80 bonobo_property_bag_get_type
    from /usr/lib/libbonobo-2.so.0
  • #81 _ORBIT_skel_small_Bonobo_PropertyBag_setValue
    from /usr/lib/libbonobo-2.so.0
  • #82 ORBit_POA_setup_root
    from /usr/lib/libORBit-2.so.0
  • #83 ORBit_OAObject_invoke
    from /usr/lib/libORBit-2.so.0
  • #84 ORBit_small_invoke_adaptor
    from /usr/lib/libORBit-2.so.0
  • #85 ORBit_POAObject_post_invoke
    from /usr/lib/libORBit-2.so.0
  • #86 ORBit_POAObject_post_invoke
    from /usr/lib/libORBit-2.so.0
  • #87 ORBit_c_stub_invoke
    from /usr/lib/libORBit-2.so.0
  • #88 ORBit_handle_request
    from /usr/lib/libORBit-2.so.0
  • #89 giop_connection_handle_input
    from /usr/lib/libORBit-2.so.0
  • #90 link_connection_set_max_buffer
    from /usr/lib/libORBit-2.so.0
  • #91 link_servers_move_io_T
    from /usr/lib/libORBit-2.so.0
  • #92 IA__g_main_context_dispatch
    at gmain.c line 1934
  • #93 g_main_context_iterate
    at gmain.c line 2565
  • #94 IA__g_main_loop_run
    at gmain.c line 2769
  • #95 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #96 bonobo_generic_factory_main_timeout
    from /usr/lib/libbonobo-2.so.0
  • #97 bonobo_generic_factory_main
    from /usr/lib/libbonobo-2.so.0
  • #98 panel_applet_factory_main_closure
    at panel-applet.c line 1671
  • #99 panel_applet_factory_main
    at panel-applet.c line 1695
  • #100 main
    at /build/buildd/gnome-applets-2.12.0/./multiload/main.c line 580

Comment 2 Christian Kirbach 2005-09-22 21:49:46 UTC
I can reproduce 


==================================
Backtrace was generated from '/opt/gnome211/libexec/multiload-applet-2'

Using host libthread_db library "/lib/tls/libthread_db.so.1".
`system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols.
[Thread debugging using libthread_db enabled]
[New Thread -1223215424 (LWP 5862)]
0xb7d1f1de in __waitpid_nocancel () from /lib/tls/libpthread.so.0

Thread 1 (Thread -1223215424 (LWP 5862))

  • #0 __waitpid_nocancel
    from /lib/tls/libpthread.so.0
  • #1 libgnomeui_segv_handle
    at gnome-ui-init.c line 749
  • #2 <signal handler called>
  • #3 IA__g_object_unref
    at gobject.c line 1651
  • #4 load_graph_destroy
    at load-graph.c line 251
  • #5 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #6 IA__g_closure_invoke
    at gclosure.c line 492
  • #7 signal_emit_unlocked_R
    at gsignal.c line 2485
  • #8 IA__g_signal_emit_valist
    at gsignal.c line 2244
  • #9 IA__g_signal_emit
    at gsignal.c line 2288
  • #10 gtk_object_dispose
    from /opt/gnome211/lib/libgtk-x11-2.0.so.0
  • #11 gtk_widget_dispose
    from /opt/gnome211/lib/libgtk-x11-2.0.so.0
  • #12 IA__g_object_run_dispose
    at gobject.c line 567
  • #13 gtk_object_destroy
    from /opt/gnome211/lib/libgtk-x11-2.0.so.0
  • #14 gtk_widget_destroy
    from /opt/gnome211/lib/libgtk-x11-2.0.so.0
  • #15 gtk_box_forall
    from /opt/gnome211/lib/libgtk-x11-2.0.so.0
  • #16 gtk_container_foreach
    from /opt/gnome211/lib/libgtk-x11-2.0.so.0
  • #17 gtk_container_destroy
    from /opt/gnome211/lib/libgtk-x11-2.0.so.0
  • #18 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #19 g_type_class_meta_marshal
    at gclosure.c line 569
  • #20 IA__g_closure_invoke
    at gclosure.c line 492
  • #21 signal_emit_unlocked_R
    at gsignal.c line 2601
  • #22 IA__g_signal_emit_valist
    at gsignal.c line 2244

Comment 3 Christian Kirbach 2005-09-22 21:51:25 UTC
*** Bug 169211 has been marked as a duplicate of this bug. ***
Comment 4 Danielle Madeley 2005-12-21 06:09:45 UTC
Confirmed with FC4. Some experimentation suggests that the same bug exists in charpick and may be filed as #315723.
Comment 5 Danielle Madeley 2005-12-21 06:13:04 UTC
*** Bug 322902 has been marked as a duplicate of this bug. ***
Comment 6 Christian Kirbach 2006-01-28 01:34:04 UTC
this just happened with only the cpu meter enabled.
Comment 7 Christian Kirbach 2006-01-28 01:48:40 UTC
seems to happen when trying to unref the tooltips widget ?

g_object_unref (g->tooltips);
Comment 8 Danielle Madeley 2006-02-13 08:29:23 UTC
This is from a gdb trace (don't ask me why it is creating and destroying so many objects) during the crash it seems that *g is pointing to non-useful memory:

Breakpoint 2, load_graph_load_config (g=0x810cfc0) at load-graph.c:273
Breakpoint 2, load_graph_load_config (g=0x810e138) at load-graph.c:273
Breakpoint 2, load_graph_load_config (g=0x810e500) at load-graph.c:273
Breakpoint 2, load_graph_load_config (g=0x810e940) at load-graph.c:273
Breakpoint 2, load_graph_load_config (g=0x810ebb8) at load-graph.c:273
Breakpoint 2, load_graph_load_config (g=0x810ee68) at load-graph.c:273

Breakpoint 3, load_graph_destroy (widget=0x80e5658, data_ptr=0x810cfc0)
Breakpoint 3, load_graph_destroy (widget=0x80e56d8, data_ptr=0x810e500)
Breakpoint 3, load_graph_destroy (widget=0x80e5798, data_ptr=0x810ee68)
Breakpoint 3, load_graph_destroy (widget=0x80e5698, data_ptr=0x810e138)
Breakpoint 3, load_graph_destroy (widget=0x80e5718, data_ptr=0x810e940)
Breakpoint 3, load_graph_destroy (widget=0x80e5758, data_ptr=0x810ebb8)

Breakpoint 2, load_graph_load_config (g=0x810e940) at load-graph.c:273
Breakpoint 2, load_graph_load_config (g=0x810e138) at load-graph.c:273
Breakpoint 2, load_graph_load_config (g=0x81101c8) at load-graph.c:273
Breakpoint 2, load_graph_load_config (g=0x81180e8) at load-graph.c:273
Breakpoint 2, load_graph_load_config (g=0x8118518) at load-graph.c:273
Breakpoint 2, load_graph_load_config (g=0x81186a8) at load-graph.c:273

Breakpoint 3, load_graph_destroy (widget=0x80e5820, data_ptr=0x810e940)
Breakpoint 3, load_graph_destroy (widget=0x80e58a0, data_ptr=0x81101c8)
Breakpoint 3, load_graph_destroy (widget=0x80e5960, data_ptr=0x81186a8)
Breakpoint 3, load_graph_destroy (widget=0x80e5860, data_ptr=0x810e138)
Breakpoint 3, load_graph_destroy (widget=0x80e58e0, data_ptr=0x81180e8)
Breakpoint 3, load_graph_destroy (widget=0x80e5920, data_ptr=0x8118518)

Breakpoint 2, load_graph_load_config (g=0x810ebb8) at load-graph.c:273
Breakpoint 2, load_graph_load_config (g=0x8115328) at load-graph.c:273
Breakpoint 2, load_graph_load_config (g=0x8118360) at load-graph.c:273
Breakpoint 2, load_graph_load_config (g=0x8117ff8) at load-graph.c:273
Breakpoint 2, load_graph_load_config (g=0x811a0c8) at load-graph.c:273
Breakpoint 2, load_graph_load_config (g=0x811a258) at load-graph.c:273

Breakpoint 3, load_graph_destroy (widget=0x80e59a0, data_ptr=0x810ebb8)
Breakpoint 3, load_graph_destroy (widget=0x80e5a20, data_ptr=0x8118360)
Breakpoint 3, load_graph_destroy (widget=0x80e58e0, data_ptr=0x811a258)
Breakpoint 3, load_graph_destroy (widget=0x80e59e0, data_ptr=0x8115328)

Program received signal SIGSEGV, Segmentation fault.
0x008d117b in g_object_unref () from /usr/lib/libgobject-2.0.so.0
(gdb) bt
  • #0 g_object_unref
    from /usr/lib/libgobject-2.0.so.0
  • #1 load_graph_destroy
    at load-graph.c line 251
  • #2 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #3 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #4 g_signal_override_class_closure
    from /usr/lib/libgobject-2.0.so.0
  • #5 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #6 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #7 gtk_object_destroy
    from /usr/lib/libgtk-x11-2.0.so.0
  • #8 gtk_widget_hide
    from /usr/lib/libgtk-x11-2.0.so.0
  • #9 g_object_run_dispose
    from /usr/lib/libgobject-2.0.so.0
  • #10 gtk_object_destroy
    from /usr/lib/libgtk-x11-2.0.so.0
  • #11 gtk_widget_destroy
    from /usr/lib/libgtk-x11-2.0.so.0

Comment 9 Danielle Madeley 2006-02-13 08:45:17 UTC
Here is a somewhat more readable trace.
 >> load_graph_new (8528638) multiload @ 8507180
 << load_graph_new
 >> load_graph_new (852cc00) multiload @ 8507180
 << load_graph_new
 >> load_graph_new (8531d68) multiload @ 8507180
 << load_graph_new
 >> load_graph_new (8532258) multiload @ 8507180
 << load_graph_new
 >> load_graph_new (8532578) multiload @ 8507180
 << load_graph_new
 >> load_graph_new (8532880) multiload @ 8507180
 << load_graph_new
glibtop: This machine has 1 CPUs, 1 are being monitored.
 >> load_graph_destroy (8528638)
 << load_graph_destroy
 >> load_graph_destroy (8531d68)
 << load_graph_destroy
 >> load_graph_destroy (8532880)
 << load_graph_destroy
 >> load_graph_destroy (852cc00)

Program received signal SIGSEGV, Segmentation fault.
  • #7 load_graph_destroy
    at load-graph.c line 252
$1 = {multiload = 0x8532570, n = 139667576, id = 23, speed = 88, size = 1,
  orient = 88, pixel_size = 3, draw_width = 124, draw_height = 21,
  get_data = 0x58, allocated = 23, colors = 0x7c, data = 0x1, data_size = 124,
  pos = 0x17, colors_allocated = 127, main_widget = 0x1, frame = 0x7e,
  box = 0x17, disp = 0x7f, pixmap = 0x1, gc = 0x58, timer_index = -1,
  tooltips = 0x7c, show_frame = 21, cpu_time = {88, 23, 124, 0, 0},
  cpu_last = {0, 0, 0, 25, 17228120}, cpu_initialized = 139681104,
  visible = 0, tooltip_update = 0, name = 0xa0 <Address 0xa0 out of bounds>}
Comment 10 Danielle Madeley 2006-02-13 08:56:27 UTC
It fails on the ones that aren't on my panel.

The three that ran are cpuload, netload and diskload. I then added swapload to my panel and it then did 4 correctly. If I have all 6, it doesn't crash.
Comment 11 Danielle Madeley 2006-02-14 01:57:47 UTC
2006-02-14  Davyd Madeley  <davyd@madeley.id.au>

        * main.c: Unconditionally destroy the graph widgets even if they're
          not visible, otherwise they will simply be destroyed when their
          container is destroyed, only it will crash now that it's user_data
          has been free'd. Closes #316911.