[g-a-devel] Re: GTK_MODULE (G)Option breakage & init ordering ...



On 2/7/06, michael meeks <michael meeks novell com> wrote:
> Hi there,
>
>         So - I've been chasing a rather interesting bug:
>
>                  "GNOME hangs on login with a11y enabled"
>
>         Of course - clobbering the proximate cause: gnome-session activating
> vino-server synchronously works around this nicely; but there is a
> deeper problem:
>
>         When bonobo-activation-server spawns a process; it requires that
> process to send back to the parent an IOR reference on a given
> file-descriptor - specified in the arguments. If this is not found, the
> server registers another way [ as if it were run by hand ]. So - far so
> good.
>
>         Like other libraries - bonobo has a double-init guard; so these
> arguments need to get to the 1st 'bonobo_init' call; otherwise we
> potentially never get the --oaf-ior-fd=NN argument, and bad things
> happen[1].
>
>         So - in the 'bad old days' (gtk-2.4) - this worked beautifully. When
> you enable a11y you do:
>
>         export GTK_MODULES=gail:atk-bridge
>
>         The arguments passed to gtk_init got dupped, and subsequently passed to
> gtk_module_init and onwards to libbonobo & the registration all passed
> away nicely.
>
>         Unfortunately - the introduction of GOption clobbered all GtkModule
> argument passing; and ensures that no GtkModule gets anything but a
> 0/NULL argc/argv cf.
>
>         gtkmain.c (do_post_parse_initialization)
>

Looks like this is a bug that got introduced when we first switched to
GOption, and never
discovered. Surprising that nobody noticed it before.  I'll look into
it, we may just have to
do the argv-duping earlier.

Matthias



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