Bug 200477

Summary: Starting GNOME, sometimes gnome-panel freezes.
Product: [Fedora] Fedora Reporter: sangu <sangu.fedora>
Component: gnome-panelAssignee: Ray Strode [halfline] <rstrode>
Status: CLOSED RAWHIDE QA Contact:
Severity: urgent Docs Contact:
Priority: medium    
Version: rawhideKeywords: Reopened
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-08-16 04:41:06 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 150224    
Attachments:
Description Flags
Possible fix
none
gnome-panel backtrace file none

Description sangu 2006-07-28 01:58:26 UTC
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

Comment 1 Alexander Larsson 2006-07-28 22:49:43 UTC
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.

Comment 2 Matthias Clasen 2006-07-30 16:17:58 UTC
Should we get this patch upstream in b.g.o or send it directly to meeks for some
wider scrutiny ?

Comment 3 Matthias Clasen 2006-07-31 16:58:40 UTC
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

Comment 4 Alexander Larsson 2006-08-11 13:23:47 UTC
I added a bug.server file that pointed to /bin/false, and that reproduces the hang.

Comment 5 Alexander Larsson 2006-08-11 14:08:08 UTC
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?)

Comment 6 Alexander Larsson 2006-08-11 14:17:37 UTC
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.

Comment 7 sangu 2006-08-12 16:27:32 UTC
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

Comment 8 Alexander Larsson 2006-08-14 10:27:40 UTC
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).


Comment 9 Matthias Clasen 2006-08-14 16:48:04 UTC
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.

Comment 10 Matthias Clasen 2006-08-15 22:23:14 UTC
sangu ?

Comment 11 sangu 2006-08-16 04:41:06 UTC
gnome-panel-2.15.91-1.fc6 works well in libbonobo-2.15.3-1.fc6.