Description of problem: (gdb) bt #0 0xb7f1b402 in __kernel_vsyscall () #1 0x026e4cad in poll () from /lib/libc.so.6 #2 0x007e4353 in g_main_context_iterate (context=0x84d3080, block=1, dispatch=1, self=0x84b2dd8) at gmain.c:2977 #3 0x007e4885 in IA__g_main_context_iteration (context=0x84d3080, may_block=1) at gmain.c:2734 #4 0x005bbdb7 in link_main_iteration (block_for_reply=1) at linc.c:283 #5 0x0059f387 in giop_recv_buffer_get (ent=0xbfd64060) at giop-recv-buffer.c:718 #6 0x005a34cd in ORBit_small_invoke_stub (obj=0x84de0e8, m_data=0x1269c0, ret=0xbfd64150, args=0xbfd6413c, ctx=0x84d40a8, ev=0xbfd64c0c) at orbit-small.c:657 #7 0x005a36ce in ORBit_small_invoke_stub_n (object=0x84de0e8, methods=0x126ac4, index=-1, ret=0xbfd64150, args=0xbfd6413c, ctx=0x84d40a8, ev=0x8) at orbit-small.c:575 #8 0x005b0912 in ORBit_c_stub_invoke (obj=0x84de0e8, methods=0x126ac4, method_index=7, ret=0xbfd64150, args=0xbfd6413c, ctx=0x84d40a8, ev=0xbfd64c0c, class_id=0, method_offset=32, skel_impl=0x1185f0 <_ORBIT_skel_small_Bonobo_ActivationContext_activateMatchingFull>) at poa.c:2644 #9 0x0011a5ba in Bonobo_ActivationContext_activateMatchingFull ( _obj=0x84de0e8, requirements=0xbfd64200 "iid == 'OAFIID:GNOME_ShowDesktopApplet'", selection_order=0xbfd641bc, environment=0x126eb0, flags=0, client=0x84de1c8, _ctx=0x84d40a8, ev=0xbfd64c0c) ---Type <return> to continue, or q <return> to quit--- at Bonobo_ActivationContext-stubs.c:87 #10 0x0011cee9 in bonobo_activation_activate ( requirements=0xbfd64200 "iid == 'OAFIID:GNOME_ShowDesktopApplet'", selection_order=0x0, flags=0, ret_aid=0x0, opt_ev=0xbfd64c0c) at bonobo-activation-activate.c:380 #11 0x0011d150 in bonobo_activation_activate_from_id ( aid=0x85e4d08 "OAFIID:GNOME_ShowDesktopApplet", flags=0, ret_aid=0x0, opt_ev=0xbfd64c0c) at bonobo-activation-activate.c:437 #12 0x0085bb68 in bonobo_moniker_oaf_resolve (moniker=0x8513bb0, options=0xbfd642e4, requested_interface=0x85ce91 "IDL:Bonobo/ItemContainer:1.0", ev=0xbfd64c0c) at bonobo-moniker-oaf.c:44 #13 0x001902c8 in bonobo_marshal_BOXED__RESOLVEOPTIONS_STRING_BOXED ( closure=0x85e55d0, return_value=0xbfd644d4, n_param_values=5, param_values=0x85e54e0, invocation_hint=0x0, marshal_data=0x85bb00) at bonobo-moniker-simple.c:59 #14 0x0054cf0b in IA__g_closure_invoke (closure=0x85e55d0, return_value=0xbfd644d4, n_param_values=5, param_values=0x85e54e0, invocation_hint=0x0) at gclosure.c:490 #15 0x001a0b64 in bonobo_closure_invoke_va_list (closure=0x85e55d0, return_value=0xbfd644d4, var_args=0xbfd6450c "�M^\b�;Q\bX-^\b\001") at bonobo-types.c:404 #16 0x001a0dcc in bonobo_closure_invoke (closure=0x85e55d0, return_type=139163489) at bonobo-types.c:467 #17 0x00190638 in simple_resolve (moniker=0x8513bb0, options=0xbfd646b4, ---Type <return> to continue, or q <return> to quit--- requested_interface=0x85ce91 "IDL:Bonobo/ItemContainer:1.0", ev=0xbfd64c0c) at bonobo-moniker-simple.c:87 #18 0x0018f8e5 in impl_resolve (servant=0x8513bc4, options=0xbfd646b4, requested_interface=0x85ce91 "IDL:Bonobo/ItemContainer:1.0", ev=0xbfd64c0c) at bonobo-moniker.c:314 #19 0x001a2318 in _ORBIT_skel_small_Bonobo_Moniker_resolve ( _o_servant=0x8513bc4, _o_retval=0xbfd64650, _o_args=0xbfd64648, _o_ctx=0x0, _o_ev=0xbfd64c0c, _impl_resolve=0x18f880 <impl_resolve>) at Bonobo-common.c:32 #20 0x005b08b0 in ORBit_c_stub_invoke (obj=0x85e5848, methods=0x1cdac4, method_index=4, ret=0xbfd64650, args=0xbfd64648, ctx=0x0, ev=0xbfd64c0c, class_id=9, method_offset=20, skel_impl=0x1a22f0 <_ORBIT_skel_small_Bonobo_Moniker_resolve>) at poa.c:2631 #21 0x001ace59 in Bonobo_Moniker_resolve (_obj=0x85e5848, options=0xbfd646b4, requestedInterface=0x85ce91 "IDL:Bonobo/ItemContainer:1.0", ev=0xbfd64c0c) at Bonobo-stubs.c:42 #22 0x0085b791 in bonobo_moniker_item_resolve (moniker=0x8513b50, options=0xbfd646b4, requested_interface=0x85e3ae9 "IDL:Bonobo/Control:1.0", ev=0xbfd64c0c) at bonobo-moniker-item.c:40 #23 0x001902c8 in bonobo_marshal_BOXED__RESOLVEOPTIONS_STRING_BOXED ( closure=0x85e4db8, return_value=0xbfd648a4, n_param_values=5, param_values=0x85e5458, invocation_hint=0x0, marshal_data=0x85b730) at bonobo-moniker-simple.c:59 ---Type <return> to continue, or q <return> to quit--- #24 0x0054cf0b in IA__g_closure_invoke (closure=0x85e4db8, return_value=0xbfd648a4, n_param_values=5, param_values=0x85e5458, invocation_hint=0x0) at gclosure.c:490 #25 0x001a0b64 in bonobo_closure_invoke_va_list (closure=0x85e4db8, return_value=0xbfd648a4, var_args=0xbfd648dc "�M^\bP;Q\bX-^\b�Kֿ ") at bonobo-types.c:404 #26 0x001a0dcc in bonobo_closure_invoke (closure=0x85e4db8, return_type=139163489) at bonobo-types.c:467 #27 0x00190638 in simple_resolve (moniker=0x8513b50, options=0xbfd64a20, requested_interface=0x85e3ae9 "IDL:Bonobo/Control:1.0", ev=0xbfd64c0c) at bonobo-moniker-simple.c:87 #28 0x0018f8e5 in impl_resolve (servant=0x8513b64, options=0xbfd64a20, requested_interface=0x85e3ae9 "IDL:Bonobo/Control:1.0", ev=0xbfd64c0c) at bonobo-moniker.c:314 #29 0x001a2318 in _ORBIT_skel_small_Bonobo_Moniker_resolve ( _o_servant=0x8513b64, _o_retval=0xbfd64a80, _o_args=0xbfd64a60, _o_ctx=0xbfd64af8, _o_ev=0xbfd64c0c, _impl_resolve=0x18f880 <impl_resolve>) at Bonobo-common.c:32 #30 0x005b06e7 in ORBit_POAObject_invoke (pobj=0x85e5178, ret=0xbfd64a80, args=0xbfd64a60, ctx=0xbfd64af8, data=0xbfd64b78, ev=0xbfd64c0c) at poa.c:1145 #31 0x005b6845 in ORBit_OAObject_invoke (adaptor_obj=0x85e5178, ret=0xbfd64a80, args=0xbfd64a60, ctx=0xbfd64af8, data=0xbfd64b78, ev=0xbfd64c0c) at orbit-adaptor.c:336 #32 0x005a3c1c in ORBit_small_invoke_adaptor (adaptor_obj=0x85e5178, ---Type <return> to continue, or q <return> to quit--- recv_buffer=0x8516b10, m_data=0x1cd9c0, data=0xbfd64b78, ev=0xbfd64c0c) at orbit-small.c:835 #33 0x005b440e in ORBit_POAObject_handle_request (pobj=0x85e5178, opname=0x8516d40 "resolve", ret=0x0, args=0x0, ctx=0x0, recv_buffer=0x8516b10, ev=0xbfd64c0c) at poa.c:1354 #34 0x005b4ab2 in ORBit_POAObject_invoke_incoming_request (pobj=0x85e5178, recv_buffer=0x8516b10, opt_ev=0xbfd64c0c) at poa.c:1422 #35 0x005b5603 in ORBit_POA_handle_request (poa=0x84d3df8, recv_buffer=0x8516b10, objkey=0x8516b34) at poa.c:1644 #36 0x005b69e2 in ORBit_handle_request (orb=0x84d3d58, recv_buffer=0x8516b10) at orbit-adaptor.c:296 #37 0x0059fba7 in giop_connection_handle_input (lcnx=0x8552490) at giop-recv-buffer.c:1282 #38 0x005bd58d in link_connection_io_handler (gioc=0x0, condition=<value optimized out>, data=0x8552490) at linc-connection.c:1367 #39 0x005c042e in link_source_dispatch (source=0x8516ac0, callback=0x5bd4b0 <link_connection_io_handler>, user_data=0x8552490) at linc-source.c:159 #40 0x007e1342 in IA__g_main_context_dispatch (context=0x84d2248) at gmain.c:2043 #41 0x007e431f in g_main_context_iterate (context=0x84d2248, block=1, dispatch=1, self=0x84b2dd8) at gmain.c:2675 #42 0x007e46c9 in IA__g_main_loop_run (loop=0x85abf40) at gmain.c:2879 #43 0x010b73c4 in IA__gtk_main () at gtkmain.c:1000 #44 0x08061857 in main (argc=5, argv=0xbfd64f84) at main.c:94 Version-Release number of selected component (if applicable): 2.14.2-6 How reproducible: sometimes Steps to Reproduce: 1. starting GNOME 2. 3. Actual results: gnome-panel freezes Expected results: Additional info: ORBit2-2.14.0-3.1, libbonobo-2.15.0-1
Created attachment 133272 [details] Possible fix I looked into this a bit, and what i saw was the panel waiting for a reply from bonobo-activation activating the applet. Bonobo activation was waiting for the spawning of the geyes applet, but the geyes process wasn't around. b-a was stuck reading the error reporting pipe from geyes though. I believe the reason this happens is because we launched some other applets and they inherited the error pipe, so geyes dying did not close the other side of the pipe. This patch fixes this by closing all unneeded fds in processed spawned by bonobo-activation-server. The patch is not really tested though.
Should we get this patch upstream in b.g.o or send it directly to meeks for some wider scrutiny ?
Patch didn't actually make a big difference for me. I tried two things: 1) point the geyes .server file to a nonexisting binary 2) add an exit(1) to geyes_applet_fill(). The first case was handled ok with or without the patch (you get a dialog telling you there is a problem) The second hangs b-a-s with or without the patch, and occasionally, the panel crashes, too
I added a bug.server file that pointed to /bin/false, and that reproduces the hang.
Using a /bin/false applet .server it was pretty easy to reproduce the hang, however with the patch apply i'm totally failing to reproduce it, so I think its right. (Although maybe not a full solution?)
I'm building this patch in libbonobo-2.15.0-3. I'm gonna close this bug and hope it has gone away. However, if you see this hang on a live system that has 2.15.0-3 or later, please reopen this bug.
Created attachment 134087 [details] gnome-panel backtrace file This problem still happens in libbonobo-2.15.0-3. $rpm -q libbonobo gnome-panel libbonobo-2.15.0-3 gnome-panel-2.15.90-4.fc6
It would be more interesting to have a backtrace of bonobo-activation-server. If you see this again, please get that backtrace (for all threads).
Note that todays rawhide has libbonobo-2.15.3, which seems to have some more fixes from Michael Meeks. It would be nice if you could retest with that version.
sangu ?
gnome-panel-2.15.91-1.fc6 works well in libbonobo-2.15.3-1.fc6.