Bug 24117

Summary: "orca -l" and "accerciser" crash
Product: at-spi2 Reporter: Willie Walker <walker.willie>
Component: atkAssignee: Mark Doffman <mark.doffman>
Status: ASSIGNED --- QA Contact:
Severity: normal    
Priority: medium CC: mgorse, rob.taylor
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Willie Walker 2009-09-23 06:58:14 UTC
This may be a re-entrancy problem, but I'm not sure.

1) Enable the new pyatspi to run as part of the gnome-session (see bug #24106 and bug #24108)

2) Log out and log back in.

3) Run the following command to verify things are connected to the registry:

python -c "import pyatspi; print map(lambda y: y.name, filter(lambda x: x is not None, pyatspi.Registry.getDesktop(0)))"

You should see output similar to the following:

[dbus.String(u'gnome-session'), dbus.String(u'metacity'), dbus.String(u'gnome-panel'), dbus.String(u'nautilus'), dbus.String(u'gnome-power-manager'), dbus.String(u'nwam-manager'), dbus.String(u'updatemanagernotifier'), dbus.String(u'gnome-settings-daemon'), dbus.String(u'wnck-applet'), dbus.String(u'trashapplet'), dbus.String(u'iiim-panel'), dbus.String(u'gnome-netstatus-applet'), dbus.String(u'clock-applet'), dbus.String(u'mixer_applet2'), dbus.String(u'notification-area-applet'), dbus.String(u'seahorse-daemon'), dbus.String(u'<unknown>'), dbus.String(u'gnome-terminal'), dbus.String(u'firefox-bin')]

4) Run orca -l -- this command tells orca to merely list the applications it finds on the desktop. With this command, orca doesn't bring up a GUI, but instead should just print this list on the console and then exit.  Instead, we get this trace:

wwalker@nb205:~$ orca -l
Traceback (most recent call last):
  File "<string>", line 1, in ?
  File "/usr/lib/python2.4/vendor-packages/orca/orca.py", line 54, in ?
    import mouse_review
  File "/usr/lib/python2.4/vendor-packages/orca/mouse_review.py", line 28, in ?
    import debug
  File "/usr/lib/python2.4/vendor-packages/orca/debug.py", line 32, in ?
    import pyatspi
  File "/usr/lib/python2.4/site-packages/pyatspi2/pyatspi/__init__.py", line 18, in ?
    Registry = registry._Registry()
  File "/usr/lib/python2.4/site-packages/pyatspi2/pyatspi/registry.py", line 86, in __init__
    self._app_cache = ApplicationCache(self, self._bus)
  File "/usr/lib/python2.4/site-packages/pyatspi2/pyatspi/applicationcache.py", line 152, in __init__
    self.application_cache[bus_name] = AccessibleCache(self._registry, self._connection, bus_name)
  File "/usr/lib/python2.4/site-packages/pyatspi2/pyatspi/accessiblecache.py", line 98, in __init__
    self._update_objects(get_method())
  File "/usr/lib/python2.4/vendor-packages/dbus/proxies.py", line 139, in __call__
    args,
  File "/usr/lib/python2.4/vendor-packages/dbus/connection.py", line 621, in call_blocking
    reply_message = self.send_message_with_reply_and_block(
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

Note that a similar thing happens with accerciser.
Comment 1 Willie Walker 2009-09-24 08:50:37 UTC
NOTE: this definitely seems to be a reentrancy problem.  If I run Orca with "NO_GAIL=1 orca -l", I get the desired output.
Comment 2 Mark Doffman 2010-01-24 08:41:09 UTC
Will re-try this test once re-entrancy is again enabled.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.