Bug#352461: gnome-panel: icons do not work and applets disappeared after upgrade

Brice Goglin Brice.Goglin at ens-lyon.org
Mon Feb 20 22:37:57 UTC 2006


Sjoerd Simons wrote:

>As i can't reproduce this, so i will need to ask you to upgrade again. Is one
>of the applets or the panel using a lot of cpu when this happens maybe ? If not
>could you strace or ltrace the panel and mail a small piece of the output
>(Especially if it loops at some point)
>  
>
Here's the output of ps -u <mylogin> after Gnome started.

 8283 tty1     00:00:00 bash
 8334 ?        00:00:00 .xsession
 8383 ?        00:00:00 tpb
 8399 ?        00:00:00 ssh-agent
 8402 ?        00:00:00 dbus-launch
 8403 ?        00:00:00 dbus-daemon
 8406 ?        00:00:00 gnome-session
 8409 ?        00:00:03 gconfd-2
 8414 ?        00:00:00 gnome-keyring-d
 8416 ?        00:00:00 bonobo-activati
 8418 ?        00:00:00 metacity
 8422 ?        00:00:00 gnome-settings-
 8429 ?        00:00:00 gam_server
 8433 ?        00:00:00 gnome-panel
 8435 ?        00:00:00 nautilus
 8437 ?        00:00:00 gnome-volume-ma
 8449 ?        00:00:00 xscreensaver-co
 8456 ?        00:00:00 gnome-vfs-daemo
 8471 ?        00:00:00 sleep
 8477 ?        00:00:00 mapping-daemon
 8479 ?        00:03:27 wnck-applet  <<<< takes 100% of the CPU
 8481 ?        00:00:00 xscreensaver
 8486 ?        00:00:00 gnome-cups-icon
 8567 tty1     00:00:00 ps

strace/ltrace on this wnck-applet don't get anything. So it looks like
it's calling there's no syscall and no external lib call. Then I ran gdb
to see what's going on and that's interesting:

0xb79dc2ba in __i686.get_pc_thunk.bx ()
   from /lib/tls/libpthread.so.0
(gdb) where
#0  0xb79dc2ba in __i686.get_pc_thunk.bx () from /lib/tls/libpthread.so.0
#1  0xb79dedb7 in pthread_mutex_lock () from /lib/tls/libpthread.so.0
#2  0xb7a92067 in g_type_init_with_debug_flags () from
/usr/lib/libgobject-2.0.so.0
#3  0xb7a922f2 in g_type_init () from /usr/lib/libgobject-2.0.so.0
#4  0xb7fbc6e6 in wnck_window_get_type () from /usr/lib/libwnck-1.so.18
#5  0xb7fbcbf9 in wnck_window_get_transient () from /usr/lib/libwnck-1.so.18
#6  0xb7fb8f8d in wnck_tasklist_get_size_hint_list () from
/usr/lib/libwnck-1.so.18
#7  0xb7fbb4ef in wnck_tasklist_get_size_hint_list () from
/usr/lib/libwnck-1.so.18
#8  0xb7fbb6e2 in wnck_tasklist_set_screen () from /usr/lib/libwnck-1.so.18
#9  0xb7fbb883 in wnck_tasklist_new () from /usr/lib/libwnck-1.so.18
#10 0x0804e272 in window_list_applet_fill ()
#11 0xb7fd6c60 in panel_applet_marshal_BOOLEAN__STRING () from
/usr/lib/libpanel-applet-2.so.0
#12 0xb7a78839 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#13 0xb74a489f in bonobo_closure_invoke_va_list () from
/usr/lib/libbonobo-2.so.0
#14 0xb74a4b65 in bonobo_closure_invoke () from /usr/lib/libbonobo-2.so.0
#15 0xb7fd2835 in panel_applet_get_type () from
/usr/lib/libpanel-applet-2.so.0
#16 0xb7a84f0b in g_cclosure_marshal_VOID__VOID () from
/usr/lib/libgobject-2.0.so.0
#17 0xb7a78839 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#18 0xb7a880ea in g_signal_stop_emission () from
/usr/lib/libgobject-2.0.so.0
#19 0xb7a89970 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#20 0xb7a89cd9 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#21 0xb7ebedf7 in bonobo_control_add_listener () from
/usr/lib/libbonoboui-2.so.0
#22 0xb74a6329 in _ORBIT_skel_small_Bonobo_Control_setFrame () from
/usr/lib/libbonobo-2.so.0
#23 0xb743ef86 in ORBit_POA_setup_root () from /usr/lib/libORBit-2.so.0
#24 0xb7443574 in ORBit_OAObject_invoke () from /usr/lib/libORBit-2.so.0
#25 0xb743030b in ORBit_small_invoke_adaptor () from
/usr/lib/libORBit-2.so.0
#26 0xb743f297 in ORBit_POAObject_post_invoke () from
/usr/lib/libORBit-2.so.0
#27 0xb743f894 in ORBit_POAObject_post_invoke () from
/usr/lib/libORBit-2.so.0
#28 0xb7441ef8 in ORBit_c_stub_invoke () from /usr/lib/libORBit-2.so.0
#29 0xb7443471 in ORBit_handle_request () from /usr/lib/libORBit-2.so.0
#30 0xb742d1a6 in giop_connection_handle_input () from
/usr/lib/libORBit-2.so.0
#31 0xb7449b09 in link_connection_set_max_buffer () from
/usr/lib/libORBit-2.so.0
#32 0xb744b6e7 in link_servers_move_io_T () from /usr/lib/libORBit-2.so.0
#33 0xb7a0fb8c in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#34 0xb7a12f6b in g_main_context_check () from /usr/lib/libglib-2.0.so.0
#35 0xb7a132c7 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#36 0xb7492758 in bonobo_main () from /usr/lib/libbonobo-2.so.0
#37 0xb7490bf2 in bonobo_generic_factory_main_timeout () from
/usr/lib/libbonobo-2.so.0
#38 0xb7490c77 in bonobo_generic_factory_main () from
/usr/lib/libbonobo-2.so.0
#39 0xb7fd4523 in panel_applet_factory_main_closure () from
/usr/lib/libpanel-applet-2.so.0
#40 0xb7fd4603 in panel_applet_factory_main () from
/usr/lib/libpanel-applet-2.so.0
#41 0x0804cacf in main ()

continue for a couple seconds, and break gives (removed the top of the
stack since it's the same):

#0  0xb79df1d1 in pthread_mutex_unlock () from /lib/tls/libpthread.so.0
#1  0xb7a2e8e3 in g_static_rw_lock_writer_unlock () from
/usr/lib/libglib-2.0.so.0
#2  0xb7a92090 in g_type_init_with_debug_flags () from
/usr/lib/libgobject-2.0.so.0
#3  0xb7a922f2 in g_type_init () from /usr/lib/libgobject-2.0.so.0

again and again:

#0  0xb7a2e64a in g_static_rw_lock_writer_lock () from
/usr/lib/libglib-2.0.so.0
#1  0xb7a92078 in g_type_init_with_debug_flags () from
/usr/lib/libgobject-2.0.so.0
#2  0xb7a922f2 in g_type_init () from /usr/lib/libgobject-2.0.so.0

#0  0xb7a2e84c in g_static_rw_lock_writer_unlock () from
/usr/lib/libglib-2.0.so.0
#1  0xb7a92090 in g_type_init_with_debug_flags () from
/usr/lib/libgobject-2.0.so.0
#2  0xb7a922f2 in g_type_init () from /usr/lib/libgobject-2.0.so.0

#0  0xb79df1d1 in pthread_mutex_unlock () from /lib/tls/libpthread.so.0
#1  0xb7a2e6d0 in g_static_rw_lock_writer_lock () from
/usr/lib/libglib-2.0.so.0
#2  0xb7a92078 in g_type_init_with_debug_flags () from
/usr/lib/libgobject-2.0.so.0
#3  0xb7a922f2 in g_type_init () from /usr/lib/libgobject-2.0.so.0

So looks like g_type_init_with_debug_flags is always involved. Let's see
if it returns sometimes:

(gdb) frame 2
#2  0xb7a92078 in g_type_init_with_debug_flags () from
/usr/lib/libgobject-2.0.so.0
(gdb) finish
Run till exit from #2  0xb7a92078 in g_type_init_with_debug_flags ()
from /usr/lib/libgobject-2.0.so.0
0xb7a922f2 in g_type_init () from /usr/lib/libgobject-2.0.so.0
(gdb) c
Continuing.

It never returned. So looks like g_type_init_with_debug_flags is stucked.

If I kill wnck-applet, gnome shows one or two windows saying that such
applet or gnome-panel has crashed. I click on "Reload" and the whole
panel appears with all icons and applets working. So the situation is
actually not so bad since I can get a usable environment after killing a
process and clicking on Reload once or twice.
Later, wnck-applet sometimes comes back to 100% cpu. I kill it again and
everything works fine again.

In case it matters, I have the following in my .xsession:
    #!/bin/bash
    ssh-add < /dev/null &
    xmodmap -e 'keycode 113 = Multi_key'
    gnome-session
The ssh-askpass window appears before Gnome startup. It looks like
closing this window as soon as possible (I mean before the Gnome panel
appears) prevents the bug from occuring. But I can't really be sure this
is always true.

Thanks,
Brice






More information about the Pkg-gnome-maintainers mailing list