GNOME Bugzilla – Bug 382622
2.17.x way of starting at-spi-registryd is causing crash when not using gnome-session
Last modified: 2006-12-12 11:31:11 UTC
Starting with 2.17.x, gnome-session is supposed to start at-spi-registryd for the entire session. This is preventing usage of any GNOME application outside GNOME desktop environment (for instance in KDE or icewm) when accessibility is enabled, since at-spi-registryd is never started. Moreover, all applications are currently crashing in this particular configuration with the following stacktrace : (gdb) r Starting program: /usr/bin/gedit Reading symbols from shared object read from target memory...done. Loaded system supplied DSO at 0xbfffe000 [Thread debugging using libthread_db enabled] [New Thread -1228708160 (LWP 30989)] Bonobo accessibility support initialized GTK Accessibility Module initialized ** (gedit:30989): CRITICAL **: AT_SPI_REGISTRY was not started at session startup. ** (gedit:30989): WARNING **: IOR not set. ** ERROR **: Could not locate registry aborting... Program received signal SIGABRT, Aborted.
+ Trace 91781
Thread NaN (LWP 30989)
Thanks for filing this bug Frederic. I think we know/understand the problem. I'll work on a patch to make the "failed to find registry" event non-fatal.
Great ;) As a side node, if at-spi-registryd is started manually, apps can be started, but if it is killed, apps can also be started because AT_SPI_IOR atom is present on root window but at-spi-registryd is not restarted at all (and I think it should be, after quick reading bridge.c in at-spi).
We probably need a SIGKILL/SIGERR/SIGSEGV trap that scrubs the IOR if at-spi-registryd dies in an unexpected way.
Bill, the last patch in 163132 might fix the crash. But the problem is that for KDE users or users not running gnome-session, even they have the a11y gconf key set, the app's a11y won't work as the app could not find the registry. This might be a big problem.
I agree that the crash should be fixed by that patch. KDE users (or any users of something other than the default gnome-session as their session manager) will need to find another way of launching at-spi-registryd. This is a known change, but was a conscious decision to make the AT-SPI registry launch the responsibility of the session manager (for instance, gnome-session, KDE session manager, gdm, etc.). The primary advantage of the change is that it removes the dependency on bonobo-activation as a means of invoking the registry, as well as allowing access to remote apps. Marking as Fixed (in CVS).
OK, we understand. So before the changes are made to KDE and others, the temporary workaround for them to use accessibility is to launch /usr/lib/at-spi-registryd manually or to put it in some session startup script.