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 72296 - Crash after remove panel [possibly related to window list?]
Crash after remove panel [possibly related to window list?]
Status: RESOLVED FIXED
Product: libwnck
Classification: Core
Component: general
0.x
Other other
: High critical
: ---
Assigned To: Panel Maintainers
Panel Maintainers
: 73060 73852 74075 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2002-02-22 21:33 UTC by f.h.tiffany
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: 2.0



Description f.h.tiffany 2002-02-22 21:33:03 UTC
Package: gnome-panel
Severity: normal
Version: 1.5.10
Synopsis: Crash after remove panel
Bugzilla-Product: gnome-panel
Bugzilla-Component: Panel
BugBuddy-GnomeVersion: 2.0 (1.112.0)

Description:
Description of Problem:
When attempting to remove one to the panels, the entire app crashes

Steps to reproduce the problem:
1. run gnome-panel-2
2. right click on either panel
3. click on remove panel

Actual Results:
Seg Fault

Expected Results:
Chosen panel to no longer be running, but other panels to keep running

How often does this happen?
Every time it is tried

Additional Information:




Debugging Information:

[New Thread 1024 (LWP 23947)]
0x4092ae29 in __wait4 () from /lib/libc.so.6

Thread 1 (Thread 1024 (LWP 23947))

  • #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_task_update_visible_state
    at tasklist.c line 1399
  • #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_name_changed
    at window.c line 1615
  • #13 force_update_now
    at window.c line 1542
  • #14 update_idle
    at window.c line 1589
  • #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/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_task_update_visible_state
    at tasklist.c line 1399
  • #7 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77




------- Bug moved to this database by unknown@bugzilla.gnome.org 2002-02-22 16:33 -------

The original reporter (f.h.tiffany@larc.nasa.gov) of this bug does not have an account here.
Reassigning to the exporter, unknown@bugzilla.gnome.org.
Reassigning to the default owner of the component, gnome-panel-maint@bugzilla.gnome.org.

Comment 1 Gediminas Paulauskas 2002-02-22 23:54:46 UTC
Yes, reproducible every time, but only if that panel contains either
tasklist or pager.
Comment 2 Luis Villa 2002-03-01 22:58:33 UTC
this now happens for me when I remove even an empty panel, but I get a
completely different stack trace. Not sure if these are separate
traces or not. Could someone take a look at this, please? [from CVS
from 02-28]
---
[New Thread 1024 (LWP 16514)]
0x40934e29 in __wait4 () from /lib/libc.so.6

Thread 1 (Thread 1024 (LWP 16514))

  • #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 g_main_context_prepare
    at gmain.c line 1924
  • #7 g_main_context_iterate
    at gmain.c line 2221
  • #8 g_main_loop_run
    at gmain.c line 2461
  • #9 gtk_main
    at gtkmain.c line 882
  • #10 main
    at main.c line 235
  • #11 __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 g_main_context_prepare
    at gmain.c line 1924
  • #7 g_main_context_iterate
    at gmain.c line 2221

Comment 3 Luis Villa 2002-03-02 04:10:55 UTC
*** Bug 73060 has been marked as a duplicate of this bug. ***
Comment 4 Gediminas Paulauskas 2002-03-02 15:49:12 UTC
Adding Alex and Havoc to CC, as this may be libwnck bug, or at least
tasklist. Change component if so.

Panel windows are hidden from task list, and when you remove one panel
window, libwnck tries to update it's visible state. panel does not
have it's icon, nor tooltips, does it?

From http://bugzilla.gnome.org/show_bug.cgi?id=73060 I see that cast
fails here:

gtk_image_set_from_pixbuf (GTK_IMAGE (task->image),
			     pixbuf);

or from this backtrace, it crashes here:

gtk_tooltips_set_tip (task->tasklist->priv->tooltips, task->button,
text, NULL);

which one is NULL or invalid?
Comment 5 Gediminas Paulauskas 2002-03-07 20:24:40 UTC
*** Bug 73852 has been marked as a duplicate of this bug. ***
Comment 6 Gediminas Paulauskas 2002-03-07 20:25:46 UTC
in 73852, user got the same backtrace not removing a panel, just

"Switched workspace (using keyboard shortcuts), and gnome-panel crashed."

Comment 7 Luis Villa 2002-03-11 19:28:29 UTC
*** Bug 74075 has been marked as a duplicate of this bug. ***
Comment 8 Luis Villa 2002-03-11 19:29:15 UTC
Possibly related to having a window list in the panel.
Comment 9 Luis Villa 2002-03-13 22:23:18 UTC
This still happens 100% repeatably.
Comment 10 Havoc Pennington 2002-03-13 22:45:31 UTC
Putting on libwnck so I can find it, if it turns out to not be libwnck
then I'll give it back ;-)
Comment 11 Havoc Pennington 2002-03-24 03:35:22 UTC
2002-03-23  Havoc Pennington  <hp@pobox.com>

	* libwnck/screen.c (wnck_screen_finalize): set
	screen pointer to NULL when the screen is finalized

	* libwnck/tasklist.c: fixes related to #72296
	(wnck_tasklist_finalize): Assert that we have no remaining tasks.
	(wnck_task_popup_menu): use connect_object out of sheer paranoia
	(wnck_task_new_from_application): use connect_object for
	robustness
	(wnck_task_create_widgets): connect_object
	(wnck_tasklist_remove): unparent task->button, then 
	unref task. This function was the actual cause of #72296 
	I believe.
	(wnck_task_create_widgets): add weak pointer for 
	task->button