! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
*** Error in `/usr/lib/xfce4/panel/wrapper-1.0': free(): invalid pointer: 0x0...
Status:
RESOLVED: FIXED
Product:
Xfce4-systemload-plugin
Component:
General

Comments

Description Robby Workman editbugs 2015-03-17 05:50:06 CET
(xfce4-session:10994): Gtk-CRITICAL **: IA__gtk_widget_set_visible: assertion 'GTK_IS_WIDGET (widget)' failed
*** Error in `/usr/lib/xfce4/panel/wrapper-1.0': free(): invalid pointer: 0x092d8c30 ***
======= Backtrace: =========
/lib/libc.so.6(+0x70cc3)[0xb6dbecc3]
/lib/libc.so]
/usr/lib/libglib-2.0.so.0(g_free+0x20)[0xb6f39ff0]
/usr/lib/xfce4/panel/plugins/libsystemload.so(+0x2eca)[0xb776aeca]
/usr/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOIDv+0x49)[0xb70495c9]
/usr/lib/libgobject-2.0.so.0(+0xdbbe)[0xb7047bbe]
/usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x462)[0xb7060712]
/usr/lib/libgobject-2.0.so.0(g_signal_emit+0x33)[0xb7061213]
/usr/lib/libxfce4panel-1.0.so.4(+0x68a7)[0xb772f8a7]
/usr/lib/libgobject-2.0.so.0(g_object_run_dispose+0x67)[0xb704dfd7]
/usr/lib/libgtk-x11-2.0.so.0(gtk_object_destroy+0x6e)[0xb7419f5e]
/usr/lib/libgtk-x11-2.0.so.0(+0x6d87d)[0xb732c87d]
/usr/lib/libgtk-x11-2.0.so.0(gtk_container_foreach+0x8f)[0xb73686bf]
/usr/lib/libgtk-x11-2.0.so.0(+0xaa5c8)[0xb73695c8]
/usr/lib/libgtk-x11-2.0.so.0(+0x276d31)[0xb7535d31]
/usr/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0x73)[0xb7049553]
/usr/lib/libgobject-2.0.so.0(+0xc494)[0xb7046494]
/usr/lib/libgobject-2.0.so.0(g_closure_invoke+0x13e)[0xb704796e]
/usr/lib/libgobject-2.0.so.0(+0x1f901)[0xb7059901]
/usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0xd94)[0xb7061044]
/usr/lib/libgobject-2.0.so.0(g_signal_emit+0x33)[0xb7061213]
/usr/lib/libgtk-x11-2.0.so.0(+0x15a26b)[0xb741926b]
/usr/lib/libgtk-x11-2.0.so.0(+0x264ffe)[0xb7523ffe]
/usr/lib/libgtk-x11-2.0.so.0(+0x271760)[0xb7530760]
/usr/lib/libgobject-2.0.so.0(g_object_run_dispose+0x67)[0xb704dfd7]
/usr/lib/libgtk-x11-2.0.so.0(gtk_object_destroy+0x6e)[0xb7419f5e]
/usr/lib/xfce4/panel/wrapper-1.0(main+0x451)[0x804aa11]
/lib/libc.so.6(__libc_start_main+0xf3)[0xb6d67983]
/usr/lib/xfce4/panel/wrapper-1.0[0x804ab86]


Going forward from 1.1.1, this first appears in a08eacc1afa245e4d66d29815958c67de3d6bb2f which was later modified by 6f522991a869ac7489089be6d969f7e0b01bef776f522991a869ac7489089be6d969f7e0b01bef77, but the bug is present in 1.1.2.
Comment 1 Robby Workman editbugs 2015-03-17 05:51:11 CET
This looks to also be reported in https://bugs.launchpad.net/ubuntu/+source/xfce4-panel/+bug/1282541 but I guess reporting bugs upstream is not as efficient as it should be.
Comment 2 Robby Workman editbugs 2015-03-17 19:22:26 CET
Here's a more useful backtrack:

Program received signal SIGABRT, Aborted.
0xb6dd0d3c in raise () from /lib/libc.so.6
(gdb) bt
#0  0xffffffff in raise () at /lib/libc.so.6
#1  0xffffffff in abort () at /lib/libc.so.6
#2  0xffffffff in  () at /lib/libc.so.6
#3  0xffffffff in _int_free () at /lib/libc.so.6
#4  0xffffffff in g_free () at /usr/lib/libglib-2.0.so.0
#5  0xffffffff in monitor_free (plugin=0x9790080, global=0x97b6820) at systemload.c:397
#6  0xffffffff in g_cclosure_marshal_VOID__VOIDv () at /usr/lib/libgobject-2.0.so.0
#7  0xffffffff in  () at /usr/lib/libgobject-2.0.so.0
#8  0xffffffff in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#9  0xffffffff in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#10 0xffffffff in xfce_panel_plugin_dispose (object=0x9790080) at xfce-panel-plugin.c:902
#11 0xffffffff in g_object_run_dispose () at /usr/lib/libgobject-2.0.so.0
#12 0xffffffff in gtk_object_destroy () at /usr/lib/libgtk-x11-2.0.so.0
#13 0xffffffff in  () at /usr/lib/libgtk-x11-2.0.so.0
#14 0xffffffff in gtk_container_foreach () at /usr/lib/libgtk-x11-2.0.so.0
#15 0xffffffff in  () at /usr/lib/libgtk-x11-2.0.so.0
#16 0xffffffff in  () at /usr/lib/libgtk-x11-2.0.so.0
#17 0xffffffff in g_cclosure_marshal_VOID__VOID () at /usr/lib/libgobject-2.0.so.0
#18 0xffffffff in  () at /usr/lib/libgobject-2.0.so.0
#19 0xffffffff in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#20 0xffffffff in  () at /usr/lib/libgobject-2.0.so.0
#21 0xffffffff in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#22 0xffffffff in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#23 0xffffffff in  () at /usr/lib/libgtk-x11-2.0.so.0
#24 0xffffffff in  () at /usr/lib/libgtk-x11-2.0.so.0
#25 0xffffffff in  () at /usr/lib/libgtk-x11-2.0.so.0
#26 0xffffffff in g_object_run_dispose () at /usr/lib/libgobject-2.0.so.0
#27 0xffffffff in gtk_object_destroy () at /usr/lib/libgtk-x11-2.0.so.0
#28 0x0804ad9c in main (argc=8, argv=0xbf81a714) at main.c:412

Looks like this makes the crash stop:

diff --git a/panel-plugin/systemload.c b/panel-plugin/systemload.c
index 628947e..4df29e5 100644
--- a/panel-plugin/systemload.c
+++ b/panel-plugin/systemload.c
@@ -394,7 +394,6 @@ monitor_free(XfcePanelPlugin *plugin, t_global_monitor *global)
         g_source_remove(global->timeout_id);
 
     g_free(global->command.command_text);
-    g_free(global->menu_item);
 
     for(count = 0; count < 3; count++)
     {
Comment 3 Landry Breuil editbugs 2015-03-17 22:08:19 CET
Hmm, looking at the code, i'm not sure it makes sense to g_free() a GtkWidget... which is not allocated with g_strdup or g_new.... so yeah :)
Comment 4 Landry Breuil editbugs 2015-03-17 22:11:50 CET
Pushed to master in ca2b7fd

Bug #11713

Reported by:
Robby Workman
Reported on: 2015-03-17
Last modified on: 2015-03-17

People

Assignee:
Xfce-Goodies Maintainers
CC List:
1 user

Version

Version:
unspecified

Attachments

Additional information