Re: bug 86235 and 86241

regarding the vicious bug 86235 and its duplicates (that will probably
pour in any moment now), here's what I just put in bugzilla:

I know this is a lengthy comment, but...

up to this week, ggv seemed (and was) quite stable, but lately this
segfaulting stuff happens to me as well: it seems to have started after
upgrading the gnome installation.

a short summary would be: GGV only starts successfully in about 50% of
cases when it needs to run a new ggv-postscript-viewer factory to get
the control from. if it reuses an already running factory, it _always_
starts up without problems.

I believe that it is this bug that comes in (at least) two different
incarnations: sometimes ggv (the shell) just segfaults upon startup and
sometimes it gives messages of the following kind: 

(ggv:28631): Bonobo-WARNING **: Excess widgets at the end of the
container; weird
Bonobo-Message: Widget type '(null)' with node: '/Sidebar/GgvSidebar'
Bonobo-Message: Widget type '(null)' with node: '/Sidebar/GgvSidebar'
Bonobo-Message: Widget type '(null)' with node: '/Sidebar/GgvSidebar'

and then the sidebar looks weird. but, behold: if the very
ggv-postscript-viewer factory process that was used in the above case if
used for one more instance of GGV, it works excellently: even the
sidebar looks normal.

as stated above, I have found out that this _only_ occurs when the GGV
viewer factory is being started (the ggv-postscript-viewer executable is
being run by bonobo-activation-server). if an already running factory is
used (ie when one GGV instance is already running and one continuously
starts and stops another instance of GGV) everything works fine.

I have also noticed that after upgrading the gnome installation eog also
started to fail (in about 1 out of 5 attempts to run it with a picture
filename from a command line):

** (eog:29214): WARNING **: Unknown CORBA exception id: '

but the eog viewer factory runs just fine and further attempts to
retrieve controls from that very factory succeed.

Nautilus sometimes crashes as well when loading a PS document via GGV
control: it doesn't take down the ggv-postscript-viewer process though 
even when it uses an already running one, only nautilus dies and the
ggv-postscript-viewer factory can be reused by a new GGV (or nautilus).

so I started to wonder: might ORBit or bonobo be the culprits in this
case? perhaps some sort of communication error?

I also noticed that GGV fails (with symptoms similar to the above) when
it needs to start a new factory process in a slow environment (like when
running it from gdb, see below). a timeout expiring too soon?

btw, I can't debug GGV by running it from gdb when GGV needs to run a
new factory - it receives a SIGPIPE in writev. I can run it from gdb
when it can reuse an already running factory. here's the stack

#0  0x409f4257 in writev () from /lib/
#1  0x40787037 in write_data (cnx=0x80a0dd8, qw=0xbffff22c)
    at linc-connection.c:547
#2  0x407871a2 in linc_connection_writev (cnx=0x80a0dd8, vecs=0x8078900,
    nvecs=2, opt_write_opts=0x8079160) at linc-connection.c:647
#3  0x40697656 in giop_send_buffer_write (buf=0x8078780, cnx=0x80a0dd8, 
    blocking=0) at giop-send-buffer.c:406
#4  0x4069c66c in orbit_small_marshal (obj=0x80a1930, cnx=0x80a0dd8, 
    mqe=0xbffff348, request_id=3221222248, m_data=0x406835c4,
    ctx=0x8070f10) at orbit-small.c:364
#5  0x4069cefc in ORBit_small_invoke_stub (obj=0x80a1930,
    ret=0xbffff3e4, args=0xbffff3e8, ctx=0x8070f10, ev=0xbffff86c)
    at orbit-small.c:621
#6  0x4069cdb3 in ORBit_small_invoke_stub_n (object=0x80a1930, 
    methods=0x40683664, index=8, ret=0xbffff3e4, args=0xbffff3e8, 
    ctx=0x8070f10, ev=0xbffff86c) at orbit-small.c:573
#7  0x4067b217 in Bonobo_ActivationContext_activate_from_id
    aid=0x80a3168 "OAFIID:GNOME_GGV_Control", flags=0, _ctx=0x8070f10, 
    ev=0xbffff86c) at Bonobo_ActivationContext-stubs.c:345
#8  0x4067c759 in bonobo_activation_activate_from_id (
    aid=0x80a3168 "OAFIID:GNOME_GGV_Control", flags=0, ret_aid=0x0, 
    ev=0xbffff86c) at bonobo-activation-activate.c:475
#9  0x4008ce7d in bonobo_moniker_oaf_resolve (moniker=0x80a3570, 
    requested_interface=0x80a3148 "IDL:Bonobo/Control:1.0",
    at bonobo-moniker-oaf.c:42
#10 0x404d2bea in bonobo_marshal_BOXED__RESOLVEOPTIONS_STRING_BOXED (
    closure=0x80a3230, return_value=0xbffff67c, n_param_values=5, 
    param_values=0x80a2488, invocation_hint=0x0, marshal_data=0x0)
    at bonobo-moniker-simple.c:59
#11 0x4079dfbb in g_closure_invoke (closure=0x80a3230, 
    return_value=0xbffff67c, n_param_values=5, param_values=0x80a2488, 
    invocation_hint=0x0) at gclosure.c:437
#12 0x404e03fb in bonobo_closure_invoke_va_list (closure=0x80a3230, 
    return_value=0xbffff67c, var_args=0xbffff6a4) at bonobo-types.c:415
#13 0x404e0611 in bonobo_closure_invoke (closure=0x80a3230, 
    return_type=134695801) at bonobo-types.c:474
#14 0x404d2cf1 in simple_resolve (moniker=0x80a3570, options=0xbffff7b4,
    requested_interface=0x80a3148 "IDL:Bonobo/Control:1.0",
    at bonobo-moniker-simple.c:87
#15 0x404d21a5 in impl_resolve (servant=0x80a3584, options=0xbffff7b4, 
    requested_interface=0x80a3148 "IDL:Bonobo/Control:1.0",
    at bonobo-moniker.c:325
#16 0x404e0c14 in Bonobo_Moniker_resolve (_obj=0x80a3678,
    requestedInterface=0x80a3148 "IDL:Bonobo/Control:1.0",
    at Bonobo-stubs.c:111
#17 0x404d3d26 in bonobo_moniker_client_resolve_default
    interface_name=0x8057f4a "Bonobo/Control", opt_ev=0xbffff86c)
    at bonobo-moniker-util.c:586
#18 0x404d3e65 in bonobo_get_object (
    name=0x8057f59 "OAFIID:GNOME_GGV_Control", 
    interface_name=0x8057f4a "Bonobo/Control", opt_ev=0xbffff86c)
    at bonobo-moniker-util.c:635



email: jaka gnu org

Attachment: signature.asc
Description: This is a digitally signed message part

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