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 328057 - wnck-applet crashes on dual head display
wnck-applet crashes on dual head display
Status: RESOLVED DUPLICATE of bug 317333
Product: gnome-panel
Classification: Other
Component: workspace switcher
unspecified
Other other
: High critical
: ---
Assigned To: Panel Maintainers
Panel Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-01-21 19:03 UTC by Karl Wagener
Modified: 2006-01-26 10:11 UTC
See Also:
GNOME target: ---
GNOME version: 2.11/2.12



Description Karl Wagener 2006-01-21 19:03:30 UTC
Distribution: Slackware Slackware 10.2.0
Package: gnome-panel
Severity: Normal
Version: GNOME2.12.2 0
Gnome-Distributor: Dropline GNOME
Synopsis: wnck-applet crashes on dual head display
Bugzilla-Product: gnome-panel
Bugzilla-Component: Workspace Switcher Applet
Bugzilla-Version: 0
BugBuddy-GnomeVersion: 2.0 (2.12.0)
Description:
Description of the crash:
wnck-applet crashes every time natilus is opened on display :0.1
nautilus starts ok, then a message is displayed telling me the
wnck-applet has crashed. I click close. After that, all window lists and
workspace switchers will crash also and a box appears for each one
asking wether it should be reloaded or closed.

Steps to reproduce the crash:
1. move mouse pointer to display :0.1
2. click on file browser (nautilus) icon in the panel

Expected Results:
file browser should open with no problems

How often does this happen?
about 90% of the time. Depends on what else is already running on that
display I think.

Additional Information:
Other actions also cause the crash. When I log out for instance,
wnck-applet crashes usually (90% of the time) just before gdm is
re-spawned.


Debugging Information:

Backtrace was generated from '/usr/libexec/wnck-applet'

(no debugging symbols found)
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1225664832 (LWP 21400)]
(no debugging symbols found)
0xb7a6e3ee in __waitpid_nocancel () from /lib/tls/libpthread.so.0
  • #0 __waitpid_nocancel
    from /lib/tls/libpthread.so.0
  • #1 libgnomeui_module_info_get
    from /usr/lib/libgnomeui-2.so.0
  • #2 ??
  • #3 ??
  • #4 ??
  • #5 ??
    from /usr/lib/libgobject-2.0.so.0
  • #6 ??
  • #7 g_cclosure_marshal_VOID__OBJECT
    from /usr/lib/libgobject-2.0.so.0
  • #8 ??
  • #9 ??
  • #10 g_signal_type_cclosure_new
    from /usr/lib/libgobject-2.0.so.0
  • #11 ??
  • #12 ??
  • #13 pthread_mutex_lock
    from /lib/tls/libpthread.so.0




------- Bug created by bug-buddy at 2006-01-21 19:03 -------


Unknown version 0 in product gnome-panel.  Setting version to "unspecified".

Comment 1 Vincent Untz 2006-01-21 21:22:22 UTC
Thanks for the bug report. Unfortunately, that stack trace is not very useful in determining the cause of the crash. Can you get us one with debugging symbols? Please see http://live.gnome.org/GettingTraces for more information on how to do so.


Bugsquad: do not close since instructions to reproduce are clear and it might be possible to get a stack trace.
Comment 2 Karl Wagener 2006-01-22 03:18:50 UTC
Unfortunately this is all I can generate at the moment (in both bug-buddy and gdb) should I compile a more verbose version somehow?:


Backtrace was generated from '/usr/libexec/wnck-applet'

(no debugging symbols found)
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1226434880 (LWP 9521)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
0xb79b23ee in __waitpid_nocancel () from /lib/tls/libpthread.so.0
  • #0 __waitpid_nocancel
    from /lib/tls/libpthread.so.0
  • #1 libgnomeui_module_info_get
    from /usr/lib/libgnomeui-2.so.0
  • #2 ??
  • #3 ??
  • #4 ??
  • #5 ??
    from /usr/lib/libgobject-2.0.so.0
  • #6 ??
  • #7 g_cclosure_marshal_VOID__OBJECT
    from /usr/lib/libgobject-2.0.so.0
  • #8 ??
  • #9 ??
  • #10 g_signal_type_cclosure_new
    from /usr/lib/libgobject-2.0.so.0
  • #11 ??
  • #12 ??
  • #13 pthread_mutex_lock
    from /lib/tls/libpthread.so.0

Comment 3 Karl Wagener 2006-01-22 03:22:37 UTC
I just read up on this and will ask the dropline team for help with this, thanks.
Comment 4 Vincent Untz 2006-01-22 09:58:14 UTC
If you can compile a more verbose version, yes, please do it :-)
Comment 5 Karl Wagener 2006-01-23 21:45:49 UTC
is this ok? (see backtrace). I noticed that when I start firefox on either display, the startup notification appears in the window list on both displays :0.0 & :0.1 even though I ask it to only show windows from the current desktop. Might that be related, or a small bug?



Backtrace was generated from '/usr/libexec/wnck-applet'

Using host libthread_db library "/lib/tls/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1226086176 (LWP 13143)]
0xb707a3ee in __waitpid_nocancel () from /lib/tls/libpthread.so.0
  • #0 __waitpid_nocancel
    from /lib/tls/libpthread.so.0
  • #1 libgnomeui_module_info_get
    from /usr/lib/libgnomeui-2.so.0
  • #2 ??
  • #3 ??
  • #4 ??
  • #5 ??
  • #6 ??
    from /usr/lib/libgobject-2.0.so.0
  • #7 ??
  • #8 g_cclosure_marshal_VOID__OBJECT
    from /usr/lib/libgobject-2.0.so.0
  • #9 ??
  • #10 ??
  • #11 g_signal_type_cclosure_new
    from /usr/lib/libgobject-2.0.so.0
  • #12 ??
  • #13 ??
  • #14 ??
  • #15 g_type_is_a
    from /usr/lib/libgobject-2.0.so.0
  • #16 ??
  • #17 ??
  • #18 ??
  • #19 pthread_mutex_unlock
    from /lib/tls/libpthread.so.0

Comment 6 Vincent Untz 2006-01-23 21:56:09 UTC
Stack trace is not helpful either :/
Please see http://live.gnome.org/GettingTraces on how to get a good stack trace.

About your question: if you're using your multihead setup as one big screen, then I believe it's expected. If not, then it's probably a bug.
Comment 7 Karl Wagener 2006-01-23 23:34:57 UTC
are there too many "??" here? Would I need to add debug symbols to other programs too? Sorry but I've never debugged anything before :/

quote: "if you're using your multihead setup as one big screen," yes I am.
to clarify, xorg.conf:

Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        Screen      1  "Screen1" rightOf "Screen0"



(gdb) thread apply all bt

Thread 1 (Thread -1226106656 (LWP 15051))

  • #0 wnck_window_get_transient
    from /usr/lib/libwnck-1.so.18
  • #1 ??
  • #2 ??
    from /usr/lib/libwnck-1.so.18
  • #3 ??
  • #4 wnck_tasklist_new
    from /usr/lib/libwnck-1.so.18
  • #5 ??
  • #6 wnck_tasklist_new
    from /usr/lib/libwnck-1.so.18
  • #7 ??
  • #8 ??
  • #9 ??
  • #10 ??
    from /usr/lib/libwnck-1.so.18
  • #11 ??
  • #12 ??
  • #13 ??
  • #14 wnck_tasklist_new
    from /usr/lib/libwnck-1.so.18
  • #15 g_cclosure_marshal_VOID__OBJECT
    from /usr/lib/libgobject-2.0.so.0
  • #16 ??
  • #17 ??
  • #18 g_cclosure_marshal_VOID__POINTER
    from /usr/lib/libgobject-2.0.so.0
  • #19 ??
  • #20 ??
  • #21 ??
  • #22 ??
  • #23 ??
  • #24 ??
  • #25 ??
  • #26 g_param_spec_override
    from /usr/lib/libgobject-2.0.so.0
  • #27 ??
  • #28 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #29 ??
  • #30 ??
  • #31 ??
  • #32 ??
  • #33 ??
  • #34 ??
  • #35 ??
  • #36 ??
  • #37 ??
  • #38 g_object_steal_data
    from /usr/lib/libgobject-2.0.so.0
  • #39 ??
  • #40 ??
  • #41 ??
  • #42 ??
  • #43 ??
  • #44 ??
  • #45 g_value_set_instance
    from /usr/lib/libgobject-2.0.so.0
  • #46 ??
  • #47 ??
  • #48 ??
  • #49 ??
  • #50 ??
  • #51 ??
  • #52 ??
    from /usr/lib/libgobject-2.0.so.0
  • #53 ??
  • #54 ??
  • #55 ??
  • #56 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #57 ??

Comment 8 Karl Wagener 2006-01-23 23:39:53 UTC
I did a "export CFLAGS=-g" and "export CXXFLAGS=-g" before compiling, is that enough? I am using the dropline build system.
Comment 9 Karl Wagener 2006-01-24 00:28:08 UTC
Hi again, I made sure that -g was in the cflags by putting it in the dropline config script. Here is what I got (more of the same I'm afraid) with the stuff before the crash too. If it looks like a lost cause then sorry for causing you so much spam ;)
By the way, after trying to get it to crash it isn't anywhere near as unstable as I first thought, it takes about 30 clicks on various things to get it to crash after gdb runs it.


Starting program: /usr/libexec/wnck-applet
[Thread debugging using libthread_db enabled]
[New Thread -1226381088 (LWP 16337)]

(wnck-applet:16337): Gtk-CRITICAL **: gtk_icon_theme_load_icon: assertion `GTK_IS_ICON_THEME (icon_theme)' failed

(wnck-applet:16337): Gtk-CRITICAL **: gtk_icon_theme_load_icon: assertion `GTK_IS_ICON_THEME (icon_theme)' failed

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1226381088 (LWP 16337)]
0xb7edb7db in wnck_window_get_transient () from /usr/lib/libwnck-1.so.18
(gdb) thread apply all bt

Thread 1 (Thread -1226381088 (LWP 16337))

  • #0 wnck_window_get_transient
    from /usr/lib/libwnck-1.so.18
  • #1 ??
  • #2 ??
    from /usr/lib/libwnck-1.so.18
  • #3 ??
  • #4 wnck_tasklist_new
    from /usr/lib/libwnck-1.so.18
  • #5 ??
  • #6 wnck_tasklist_new
    from /usr/lib/libwnck-1.so.18
  • #7 ??
  • #8 ??
  • #9 ??
  • #10 ??
    from /usr/lib/libwnck-1.so.18
  • #11 ??
  • #12 ??
  • #13 ??
  • #14 wnck_tasklist_new
    from /usr/lib/libwnck-1.so.18
  • #15 g_cclosure_marshal_VOID__OBJECT
    from /usr/lib/libgobject-2.0.so.0
  • #16 ??
  • #17 ??
  • #18 g_cclosure_marshal_VOID__POINTER
    from /usr/lib/libgobject-2.0.so.0
  • #19 ??
  • #20 ??
  • #21 ??
  • #22 ??
  • #23 ??
  • #24 ??
  • #25 ??
  • #26 g_param_spec_override
    from /usr/lib/libgobject-2.0.so.0
  • #27 ??
  • #28 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #29 ??
  • #30 ??
  • #31 ??
  • #32 ??
  • #33 ??
  • #34 ??
  • #35 ??
  • #36 ??
  • #37 ??
  • #38 g_object_steal_data
    from /usr/lib/libgobject-2.0.so.0
  • #39 ??
  • #40 ??
  • #41 ??
  • #42 ??
  • #43 ??
  • #44 ??
  • #45 g_value_set_instance
    from /usr/lib/libgobject-2.0.so.0
  • #46 ??
  • #47 ??
  • #48 ??
  • #49 ??
  • #50 ??
  • #51 ??
  • #52 ??
    from /usr/lib/libgobject-2.0.so.0
  • #53 ??
  • #54 ??
  • #55 ??
  • #56 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #57 ??
Kill the program being debugged? (y or n) y
(gdb) q
Comment 10 Vincent Untz 2006-01-24 07:43:59 UTC
Yes, new stack traces are still not very useful (lots of ?? is not good).

Could you add this patch (in gnome-panel/applets/wncklet) and see if it still happens:
http://cvs.gnome.org/viewcvs/gnome-panel/applets/wncklet/window-list.c?r1=1.74&r2=1.75&makepatch=1&diff_format=h

It might help for the critical warnings.

So, I don't know dropline. Usually, you just have to compile with -g and without -O2 (or -O3) and optimization flags. You might want to ask some dropline people how to get a good stack trace if it doesn't work.

Also, libwnck is a good candidate for a debug build too since it's probably involved in the crash.

Thanks for being so helpful!
Comment 11 Karl Wagener 2006-01-25 19:51:34 UTC
Hi, just to say I am making progress. Have to make glib2-2.8.4 with debugging symbols as well, maybe more. Receiving lots of help from the dropline team and reading lots! - will return
Comment 12 Karl Wagener 2006-01-25 20:33:18 UTC
Here's the new backtrace (gnome-panel, libwnk and glib2 all compiled with -g only). A couple of messages I don't understand, "window.c: No such file or directory" and "Previous frame inner to this frame (corrupt stack?)", you have any ideas why they appear?:

Starting program: /usr/libexec/wnck-applet
[Thread debugging using libthread_db enabled]
[New Thread -1226221344 (LWP 9176)]

(wnck-applet:9176): Wnck-CRITICAL **: wnck_screen_get_windows: assertion `WNCK_IS_SCREEN (screen)' failed

(wnck-applet:9176): Wnck-CRITICAL **: wnck_screen_get_active_window: assertion `WNCK_IS_SCREEN (screen)' failed

(wnck-applet:9176): Wnck-CRITICAL **: wnck_screen_get_windows: assertion `WNCK_IS_SCREEN (screen)' failed

(wnck-applet:9176): Wnck-CRITICAL **: wnck_screen_get_active_window: assertion `WNCK_IS_SCREEN (screen)' failed

(wnck-applet:9176): Wnck-CRITICAL **: wnck_window_get_transient: assertion `WNCK_IS_WINDOW (window)' failed

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1226221344 (LWP 9176)]
0xb7f2322d in wnck_window_get_transient (window=0x8183ec0) at window.c:487
487     window.c: No such file or directory.
        in window.c
(gdb) thread apply all bt

Thread 1 (Thread -1226221344 (LWP 9176))

  • #0 wnck_window_get_transient
    at window.c line 487
  • #1 wnck_tasklist_active_window_changed
    at tasklist.c line 1979
  • #2 wnck_tasklist_update_lists
    at tasklist.c line 1873
  • #3 wnck_tasklist_window_added
    at tasklist.c line 2118
  • #4 IA__g_cclosure_marshal_VOID__OBJECT
    at gmarshal.c line 636
  • #5 IA__g_closure_invoke
    at gclosure.c line 492
  • #6 signal_emit_unlocked_R
    at gsignal.c line 2485
  • #7 IA__g_signal_emit_valist
    at gsignal.c line 2244
  • #8 IA__g_signal_emit
  • #9 emit_window_opened
    at screen.c line 1584
  • #10 update_client_list
    at screen.c line 1062
  • #11 do_update_now
    at screen.c line 1511
  • #12 update_idle
    at screen.c line 1532
  • #13 g_idle_dispatch
    at gmain.c line 3817
  • #14 g_main_dispatch
    at gmain.c line 1934
  • #15 IA__g_main_context_dispatch
    at gmain.c line 2484
  • #16 g_main_context_iterate
    at gmain.c line 2565
  • #17 IA__g_main_loop_run
    at gmain.c line 2769
  • #18 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #19 ??
  • #20 ??
  • #21 ??
  • #22 ??
  • #23 bonobo_activate
    from /usr/lib/libbonobo-2.so.0
  • #24 ??
    from /usr/lib/libbonobo-2.so.0
  • #25 ??
  • #26 bonobo_generic_factory_main_timeout
  • #27 ??
  • #28 ??
  • #29 nullserv
    from /lib/tls/libc.so.6
  • #30 ??
  • #31 ??
  • #32 ??
  • #33 ??
  • #34 ??
    from /usr/lib/libbonobo-2.so.0
  • #35 nullserv
    from /lib/tls/libc.so.6
  • #36 ??
  • #37 ??
  • #38 bonobo_generic_factory_main
    from /usr/lib/libbonobo-2.so.0
  • #39 ??
  • #40 panel_applet_callback_data_free
    at panel-applet.c line 1620

Comment 13 Karl Wagener 2006-01-25 20:34:44 UTC
I'm doing libbonobo now ;)
Comment 14 Karl Wagener 2006-01-25 21:20:29 UTC
Hi, I *think* I've cracked it:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1225819936 (LWP 4547)]
0xb712c145 in IA__g_type_check_instance_is_a (type_instance=0x817bd10,
    iface_type=134973976) at gtype.c:3127
3127    gtype.c: No such file or directory.
        in gtype.c
(gdb) thread apply all bt

Thread 1 (Thread -1225819936 (LWP 4547))

  • #0 IA__g_type_check_instance_is_a
    at gtype.c line 3127
  • #1 wnck_window_get_transient
    at window.c line 487
  • #2 wnck_tasklist_active_window_changed
    at tasklist.c line 1979
  • #3 wnck_tasklist_update_lists
    at tasklist.c line 1873
  • #4 wnck_tasklist_window_added
    at tasklist.c line 2118
  • #5 IA__g_cclosure_marshal_VOID__OBJECT
    at gmarshal.c line 636
  • #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 emit_window_opened
    at screen.c line 1584
  • #11 update_client_list
    at screen.c line 1062
  • #12 do_update_now
    at screen.c line 1511
  • #13 update_idle
    at screen.c line 1532
  • #14 g_idle_dispatch
    at gmain.c line 3817
  • #15 g_main_dispatch
    at gmain.c line 1934
  • #16 IA__g_main_context_dispatch
    at gmain.c line 2484
  • #17 g_main_context_iterate
    at gmain.c line 2565
  • #18 IA__g_main_loop_run
    at gmain.c line 2769
  • #19 bonobo_main
    at bonobo-main.c line 395
  • #20 bonobo_generic_factory_main_timeout
    at bonobo-generic-factory.c line 412
  • #21 bonobo_generic_factory_main
  • #22 panel_applet_factory_main_closure
    at panel-applet.c line 1673
  • #23 panel_applet_factory_main
    at panel-applet.c line 1697
  • #24 main
    at wncklet.c line 225

Comment 15 Vincent Untz 2006-01-26 10:11:04 UTC
Thanks for your work. This crash is already filed here: bug 317333.

*** This bug has been marked as a duplicate of 317333 ***