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 72167 - Crash after adding and removing tasklist applet.
Crash after adding and removing tasklist applet.
Status: RESOLVED FIXED
Product: gnome-panel
Classification: Other
Component: window list
unspecified
Other other
: High critical
: ---
Assigned To: Panel Maintainers
Panel Maintainers
: 72507 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2002-02-21 19:45 UTC by Kjartan Maraas
Modified: 2015-03-24 13:00 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
patch (7.64 KB, patch)
2002-02-26 13:11 UTC, Shivram U
none Details | Review

Description Kjartan Maraas 2002-02-21 19:43:08 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

Thread 1 (Thread 1024 (LWP 6176))

  • #0 __wait4
    from /lib/i686/libc.so.6
  • #1 __DTOR_END__
    from /lib/i686/libc.so.6
  • #2 waitpid
    at wrapsyscall.c line 172
  • #3 libgnomeui_segv_handle
    at gnome-ui-init.c line 598
  • #4 pthread_sighandler
    at signals.c line 97
  • #5 <signal handler called>
  • #6 g_type_check_instance_cast
    at gtype.c line 2604
  • #7 tasklist_update
    at tasklist.c line 72
  • #8 move_unminimized_windows_changed
    at tasklist.c line 310
  • #9 notify_listeners_callback
    at gconf-client.c line 2351
  • #10 notify_listener_list
    at gconf-listeners.c line 588
  • #11 ltable_notify
    at gconf-listeners.c line 654
  • #12 notify_one_entry
    at gconf-client.c line 2373
  • #13 gconf_client_flush_notifies
    at gconf-client.c line 2410
  • #14 notify_idle_callback
    at gconf-client.c line 2310
  • #15 g_idle_dispatch
    at gmain.c line 3128
  • #16 g_main_dispatch
    at gmain.c line 1616
  • #17 g_main_context_dispatch
    at gmain.c line 2160
  • #18 g_main_context_iterate
    at gmain.c line 2241
  • #19 g_main_loop_run
    at gmain.c line 2461
  • #20 gtk_main
    at gtkmain.c line 881
  • #21 main
    at main.c line 240
  • #22 __libc_start_main
    at ../sysdeps/generic/libc-start.c line 129
  • #0 __wait4
    from /lib/i686/libc.so.6
  • #0 __wait4
    from /lib/i686/libc.so.6
  • #1 __DTOR_END__
    from /lib/i686/libc.so.6
  • #2 waitpid
    at wrapsyscall.c line 172
  • #3 libgnomeui_segv_handle
    at gnome-ui-init.c line 598
  • #4 pthread_sighandler
    at signals.c line 97
  • #5 <signal handler called>
  • #6 g_type_check_instance_cast
    at gtype.c line 2604
  • #7 tasklist_update
    at tasklist.c line 72




------- 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.

Comment 1 Luis Villa 2002-02-21 23:03:02 UTC
Hrm. I now get a different crash when trying this:
---
[New Thread 1024 (LWP 9898)]
0x4090fe29 in __wait4 () from /lib/libc.so.6

Thread 1 (Thread 1024 (LWP 9898))

  • #0 __wait4
    from /lib/libc.so.6
  • #1 __DTOR_END__
    from /lib/libc.so.6
  • #2 waitpid
    at wrapsyscall.c line 172
  • #3 libgnomeui_segv_handle
    at gnome-ui-init.c line 598
  • #4 pthread_sighandler
    at signals.c line 97
  • #5 <signal handler called>
  • #6 wnck_tasklist_active_window_changed
    at tasklist.c line 1036
  • #7 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #8 g_closure_invoke
    at gclosure.c line 437
  • #9 signal_emit_unlocked_R
    at gsignal.c line 2340
  • #10 g_signal_emit_valist
    at gsignal.c line 2099
  • #11 g_signal_emit
    at gsignal.c line 2143
  • #12 emit_active_window_changed
    at screen.c line 1101
  • #13 update_active_window
    at screen.c line 1008
  • #14 do_update_now
    at screen.c line 1061
  • #15 update_idle
    at screen.c line 1074
  • #16 g_idle_dispatch
    at gmain.c line 3128
  • #17 g_main_dispatch
    at gmain.c line 1616
  • #18 g_main_context_dispatch
    at gmain.c line 2160
  • #19 g_main_context_iterate
    at gmain.c line 2241
  • #20 g_main_loop_run
    at gmain.c line 2461
  • #21 gtk_main
    at gtkmain.c line 881
  • #22 main
    at main.c line 240
  • #23 __libc_start_main
    at ../sysdeps/generic/libc-start.c line 129
  • #0 __wait4
    from /lib/libc.so.6
  • #0 __wait4
    from /lib/libc.so.6
  • #1 __DTOR_END__
    from /lib/libc.so.6
  • #2 waitpid
    at wrapsyscall.c line 172
  • #3 libgnomeui_segv_handle
    at gnome-ui-init.c line 598
  • #4 pthread_sighandler
    at signals.c line 97
  • #5 <signal handler called>
  • #6 wnck_tasklist_active_window_changed
    at tasklist.c line 1036
  • #7 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77

Comment 2 Shivram U 2002-02-26 13:10:28 UTC
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
Comment 3 Shivram U 2002-02-26 13:11:42 UTC
Created attachment 6880 [details] [review]
patch
Comment 4 Luis Villa 2002-02-26 21:18:16 UTC
*** Bug 72507 has been marked as a duplicate of this bug. ***
Comment 5 Gediminas Paulauskas 2002-03-02 16:04:56 UTC
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?
Comment 6 Havoc Pennington 2002-03-02 16:21:06 UTC
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.
Comment 7 Gediminas Paulauskas 2002-03-02 23:20:21 UTC
I have just commited modified patch to CVS.
Alex already had fixed libwnck using with g_signal_connect_object()