After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 382622 - 2.17.x way of starting at-spi-registryd is causing crash when not using gnome-session
2.17.x way of starting at-spi-registryd is causing crash when not using gnome...
Status: RESOLVED FIXED
Product: at-spi
Classification: Platform
Component: registry
1.7.x
Other Linux
: Normal normal
: ---
Assigned To: bill.haneman
bill.haneman
Depends on:
Blocks:
 
 
Reported: 2006-12-05 15:15 UTC by Frederic Crozat
Modified: 2006-12-12 11:31 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Frederic Crozat 2006-12-05 15:15:13 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.

Thread NaN (LWP 30989)

  • #0 __kernel_vsyscall
  • #1 raise
    from /lib/i686/libc.so.6
  • #2 abort
    from /lib/i686/libc.so.6
  • #3 IA__g_logv
    at gmessages.c line 497
  • #4 IA__g_log
    at gmessages.c line 517
  • #5 spi_atk_bridge_do_registration
    at bridge.c line 250
  • #6 atk_bridge_init
    at bridge.c line 226
  • #7 gnome_accessibility_module_init
    at bridge.c line 614
  • #8 accessibility_invoke_module
    at gnome-program.c line 1598
  • #9 gnome_program_postinit
    at gnome-program.c line 1629
  • #10 gnome_program_init_common
    at gnome-program.c line 1931
  • #11 gnome_program_init
    at gnome-program.c line 1747
  • #12 main
    at gedit.c line 452

Comment 1 bill.haneman 2006-12-05 15:29:50 UTC
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.
Comment 2 Frederic Crozat 2006-12-05 15:43:06 UTC
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).
Comment 3 bill.haneman 2006-12-05 15:48:50 UTC
We probably need a SIGKILL/SIGERR/SIGSEGV trap that scrubs the IOR if at-spi-registryd dies in an unexpected way.
Comment 4 Harry Lu 2006-12-12 03:52:06 UTC
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. 
Comment 5 bill.haneman 2006-12-12 10:33:53 UTC
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).
Comment 6 Harry Lu 2006-12-12 11:31:11 UTC
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.