[BUG]CPU spin when starting notification area and acme



Dear all,

Problem:
When starting a gnome session ( 2.4.0/1 ) with a notification area
applet and acme; the gnome-panel, notification area, acme and X use up
100% CPU between them.

How to repeat;
Add notification area to the gnome panel. Start acme ( ie from command
line ). Save desktop session so acme starts up automatically. Logout,
kill all background gnome servers (might not be needed).
Log back in; gnome-panel, acme, X and notification lock the CPU.

Workaround;
As soon as you login click on the gnome-panel, this gives it focus and
stops the spinning.

Details:
This is using acme-2.4.0, gnome-panel-2.4.0, gtk+-2.2.4, glib-2.2.3.
Xfree-4.3.0 all on a Gentoo system.

I have attached gdb on the locking processes and took a sample of the
backtraces:

acme:
#0  0xffffe410 in ?? ()
#1  0xbffff4f8 in ?? ()
#2  0xffffffff in ?? ()
#3  0x00000008 in ?? ()
#4  0x48b6f27e in poll () from /lib/libc.so.6
#5  0x48d3c25e in g_main_context_poll () from /usr/lib/libglib-2.0.so.0
#6  0x48d3d742 in g_main_context_iterate () from
/usr/lib/libglib-2.0.so.0
#7  0x48d3bda5 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#8  0x490b3c87 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#9  0x0804ec32 in main ()

gnome-panel:
#0  0xffffe410 in ?? ()
#1  0xbffff488 in ?? ()
#2  0x00002c72 in ?? ()
#3  0x00000015 in ?? ()
#4  0x48b6f27e in poll () from /lib/libc.so.6
#5  0x48d3c25e in g_main_context_poll () from /usr/lib/libglib-2.0.so.0
#6  0x48d3d742 in g_main_context_iterate () from
/usr/lib/libglib-2.0.so.0
#7  0x48d3bda5 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#8  0x490b3c87 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#9  0x0806090c in main ()

notification-area-applet:
#0  0xffffe410 in ?? ()
#1  0xbfffcda8 in ?? ()
#2  0x00000030 in ?? ()
#3  0x08063828 in ?? ()
#4  0x48d0ee63 in __write_nocancel () from /lib/libpthread.so.0
#5  0x48c51a90 in _X11TransSocketWrite () from
/usr/X11R6/lib/libX11.so.6
#6  0x48c508df in _X11TransWrite () from /usr/X11R6/lib/libX11.so.6
#7  0x48c31b47 in _XFlushInt () from /usr/X11R6/lib/libX11.so.6
#8  0x48c32f3d in _XReply () from /usr/X11R6/lib/libX11.so.6
#9  0x48c2eda5 in XSync () from /usr/X11R6/lib/libX11.so.6
#10 0x48f8b1e8 in gdk_display_sync () from /usr/lib/libgdk-x11-2.0.so.0
#11 0x491a8285 in _gtk_xembed_send_message () from
/usr/lib/libgtk-x11-2.0.so.0
#12 0x491a55d6 in gtk_plug_set_focus () from
/usr/lib/libgtk-x11-2.0.so.0
#13 0x48da2d04 in g_cclosure_marshal_VOID__OBJECT ()
   from /usr/lib/libgobject-2.0.so.0
#14 0x48d8f5c6 in g_type_class_meta_marshal ()
   from /usr/lib/libgobject-2.0.so.0
#15 0x48d8eeb4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#16 0x48da17ca in signal_emit_unlocked_R () from
/usr/lib/libgobject-2.0.so.0
#17 0x48da0c97 in g_signal_emit_valist () from
/usr/lib/libgobject-2.0.so.0
#18 0x48da0f80 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#19 0x4919c2fa in _gtk_window_internal_set_focus ()
   from /usr/lib/libgtk-x11-2.0.so.0
#20 0x49194a7b in gtk_widget_real_grab_focus ()
   from /usr/lib/libgtk-x11-2.0.so.0
#21 0x48da20ff in g_cclosure_marshal_VOID__VOID ()
   from /usr/lib/libgobject-2.0.so.0
#22 0x48d8f5c6 in g_type_class_meta_marshal ()
   from /usr/lib/libgobject-2.0.so.0
#23 0x48d8eeb4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#24 0x48da17ca in signal_emit_unlocked_R () from
/usr/lib/libgobject-2.0.so.0
#25 0x48da0c97 in g_signal_emit_valist () from
/usr/lib/libgobject-2.0.so.0
#26 0x48da0f80 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#27 0x491948da in gtk_widget_grab_focus () from
/usr/lib/libgtk-x11-2.0.so.0
#28 0x491a725c in gtk_socket_claim_focus () from
/usr/lib/libgtk-x11-2.0.so.0
#29 0x491a730a in gtk_socket_focus () from /usr/lib/libgtk-x11-2.0.so.0
#30 0x490b5914 in _gtk_marshal_BOOLEAN__ENUM ()
   from /usr/lib/libgtk-x11-2.0.so.0
#31 0x48d8f5c6 in g_type_class_meta_marshal ()
   from /usr/lib/libgobject-2.0.so.0
#32 0x48d8eeb4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#33 0x48da17ca in signal_emit_unlocked_R () from
/usr/lib/libgobject-2.0.so.0
#34 0x48da095e in g_signal_emit_valist () from
/usr/lib/libgobject-2.0.so.0
#35 0x48da0f80 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#36 0x491971bd in gtk_widget_child_focus () from
/usr/lib/libgtk-x11-2.0.so.0
#37 0x4905b21b in gtk_container_focus_move () from
/usr/lib/libgtk-x11-2.0.so.0
#38 0x4905a7f6 in gtk_container_focus () from
/usr/lib/libgtk-x11-2.0.so.0
#39 0x490b5914 in _gtk_marshal_BOOLEAN__ENUM ()
   from /usr/lib/libgtk-x11-2.0.so.0
#40 0x48d8f5c6 in g_type_class_meta_marshal ()
   from /usr/lib/libgobject-2.0.so.0
#41 0x48d8eeb4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#42 0x48da17ca in signal_emit_unlocked_R () from
/usr/lib/libgobject-2.0.so.0
#43 0x48da095e in g_signal_emit_valist () from
/usr/lib/libgobject-2.0.so.0
#44 0x48da0f80 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#45 0x491971bd in gtk_widget_child_focus () from
/usr/lib/libgtk-x11-2.0.so.0
#46 0x4905b21b in gtk_container_focus_move () from
/usr/lib/libgtk-x11-2.0.so.0
#47 0x4905a7f6 in gtk_container_focus () from
/usr/lib/libgtk-x11-2.0.so.0
#48 0x490b5914 in _gtk_marshal_BOOLEAN__ENUM ()
   from /usr/lib/libgtk-x11-2.0.so.0
#49 0x48d8f5c6 in g_type_class_meta_marshal ()
   from /usr/lib/libgobject-2.0.so.0
#50 0x48d8eeb4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#51 0x48da17ca in signal_emit_unlocked_R () from
/usr/lib/libgobject-2.0.so.0
#52 0x48da095e in g_signal_emit_valist () from
/usr/lib/libgobject-2.0.so.0
#53 0x48da0f80 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#54 0x491971bd in gtk_widget_child_focus () from
/usr/lib/libgtk-x11-2.0.so.0
#55 0x4905b21b in gtk_container_focus_move () from
/usr/lib/libgtk-x11-2.0.so.0
#56 0x4905a7f6 in gtk_container_focus () from
/usr/lib/libgtk-x11-2.0.so.0
#57 0x498b8a45 in panel_applet_focus () from
/usr/lib/libpanel-applet-2.so.0
#58 0x490b5914 in _gtk_marshal_BOOLEAN__ENUM ()
   from /usr/lib/libgtk-x11-2.0.so.0
#59 0x48d8f5c6 in g_type_class_meta_marshal ()
   from /usr/lib/libgobject-2.0.so.0
#60 0x48d8eeb4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#61 0x48da17ca in signal_emit_unlocked_R () from
/usr/lib/libgobject-2.0.so.0
#62 0x48da095e in g_signal_emit_valist () from
/usr/lib/libgobject-2.0.so.0
#63 0x48da0f80 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#64 0x491971bd in gtk_widget_child_focus () from
/usr/lib/libgtk-x11-2.0.so.0
#65 0x491a58e3 in gtk_plug_focus () from /usr/lib/libgtk-x11-2.0.so.0
#66 0x490b5914 in _gtk_marshal_BOOLEAN__ENUM ()
   from /usr/lib/libgtk-x11-2.0.so.0
#67 0x48d8f5c6 in g_type_class_meta_marshal ()
   from /usr/lib/libgobject-2.0.so.0
#68 0x48d8eeb4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#69 0x48da17ca in signal_emit_unlocked_R () from
/usr/lib/libgobject-2.0.so.0
#70 0x48da095e in g_signal_emit_valist () from
/usr/lib/libgobject-2.0.so.0
#71 0x48da0f80 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#72 0x491971bd in gtk_widget_child_focus () from
/usr/lib/libgtk-x11-2.0.so.0
#73 0x491a7a0f in advance_toplevel_focus () from
/usr/lib/libgtk-x11-2.0.so.0
#74 0x491a7c7f in gtk_socket_filter_func () from
/usr/lib/libgtk-x11-2.0.so.0
#75 0x48f94848 in gdk_event_apply_filters () from
/usr/lib/libgdk-x11-2.0.so.0
#76 0x48f9659b in gdk_event_translate () from
/usr/lib/libgdk-x11-2.0.so.0
#77 0x48f9689f in _gdk_events_queue () from /usr/lib/libgdk-x11-2.0.so.0
#78 0x48f96a75 in gdk_event_dispatch () from
/usr/lib/libgdk-x11-2.0.so.0
#79 0x48d3d303 in g_main_dispatch () from /usr/lib/libglib-2.0.so.0
#80 0x48d3b7e8 in g_main_context_dispatch () from
/usr/lib/libglib-2.0.so.0
#81 0x48d3d7bb in g_main_context_iterate () from
/usr/lib/libglib-2.0.so.0
#82 0x48d3bda5 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#83 0x49679f0c in bonobo_main () from /usr/lib/libbonobo-2.so.0
#84 0x49677b41 in bonobo_generic_factory_main_timeout ()
   from /usr/lib/libbonobo-2.so.0
#85 0x49677a61 in bonobo_generic_factory_main () from
/usr/lib/libbonobo-2.so.0
#86 0x498b64a1 in panel_applet_factory_main_closure ()
   from /usr/lib/libpanel-applet-2.so.0
#87 0x498b65d3 in panel_applet_factory_main ()
   from /usr/lib/libpanel-applet-2.so.0
#88 0x0804b2a5 in main ()

As you can see it is something to do with notification area sending
focus signals some where ( acme and/or gnome-panel ?? ). Only when you
click on the panel ( I assume) is the signal sent correctly, thus
breaking the loop. ( This is all a guess, the gtk+ program loop is
beyond me! )

Is this a known problem; any patches to try?

Please CC me in replies ( as I am not on the list ).
Anymore debugging / information will be freely offered, just ask!

Thanks,

Stefan




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]