GNOME Bugzilla – Bug 72167
Crash after adding and removing tasklist applet.
Last modified: 2015-03-24 13:00:31 UTC
Package: gnome-panel Severity: normal Version: 1.5.10 Synopsis: Crash after adding and removing tasklist applet. Bugzilla-Product: gnome-panel Bugzilla-Component: Panel BugBuddy-GnomeVersion: 2.0 (1.112.0) Description: Description of Problem: The panel crashed after adding and removing the tasklist applet. Steps to reproduce the problem: 1. 2. 3. Actual Results: Expected Results: How often does this happen? Additional Information: Debugging Information: [New Thread 1024 (LWP 6176)] 0x40a6fa49 in __wait4 () from /lib/i686/libc.so.6
+ Trace 18108
Thread 1 (Thread 1024 (LWP 6176))
------- Bug moved to this database by unknown@bugzilla.gnome.org 2002-02-21 14:43 ------- Reassigning to the default owner of the component, gnome-panel-maint@bugzilla.gnome.org.
Hrm. I now get a different crash when trying this: --- [New Thread 1024 (LWP 9898)] 0x4090fe29 in __wait4 () from /lib/libc.so.6
+ Trace 18129
Thread 1 (Thread 1024 (LWP 9898))
The gconf_client notify listeners should be removed when the tasklist widget is destroyed. Also in libwnck/tasklist.c when the tasklist widget is destroyed the signal handlers connected to the WnckScreen object should be disconnected. Observed that the same happens in pager.c although the panel doesnt crash when the Workspace Switcher applet is removed. Attaching a patch as the fix
Created attachment 6880 [details] [review] patch
*** Bug 72507 has been marked as a duplicate of this bug. ***
Very similar to http://bugzilla.gnome.org/show_bug.cgi?id=72646, as the crashing function also is called from notify_listeners_callback. Alex, Havoc, could you look at the patch, is it correct?
The patch looks right to me. In libwnck, I would rather use g_signal_connect_object() to auto-disconnect the signals; I think there's actually another open libwnck bug containing a patch that does it that way, but i could be wrong.
I have just commited modified patch to CVS. Alex already had fixed libwnck using with g_signal_connect_object()