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 640132 - Orca sometimes becomes non-responsive after an app is quit
Orca sometimes becomes non-responsive after an app is quit
Status: RESOLVED FIXED
Product: orca
Classification: Applications
Component: general
2.91.x
Other All
: Normal major
: ---
Assigned To: Joanmarie Diggs (IRC: joanie)
Orca Maintainers
refactor, regression
Depends on:
Blocks:
 
 
Reported: 2011-01-21 03:08 UTC by Joanmarie Diggs (IRC: joanie)
Modified: 2011-02-05 08:11 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Debug.out after Orca started with login with showing a freeze with end of before Orca restart (565.12 KB, application/octet-stream)
2011-01-21 07:27 UTC, Hammer Attila
Details

Description Joanmarie Diggs (IRC: joanie) 2011-01-21 03:08:43 UTC
I'm still figuring out exactly how to trigger this reliably, but our wining (and refactor-related traceback is:

DEQUEUED OBJECT:CHILDREN-CHANGED:REMOVE  <----------

vvvvv PROCESS OBJECT EVENT object:children-changed:remove vvvvv
OBJECT EVENT: object:children-changed:remove           detail=(10,0,None)

Traceback (most recent call last):
  • File "/usr/lib/python2.7/dist-packages/orca/event_manager.py", line 236 in _dequeue
    self._processObjectEvent(event)
  • File "/usr/lib/python2.7/dist-packages/orca/event_manager.py", line 432 in _processObjectEvent
    _scriptManager.reclaimScripts()
  • File "/usr/lib/python2.7/dist-packages/orca/script_manager.py", line 250 in reclaimScripts
    _eventManager.deregisterListeners(script)
  • File "/usr/lib/python2.7/dist-packages/orca/event_manager.py", line 331 in deregisterListeners
    self._deregisterListener(eventType)
  • File "/usr/lib/python2.7/dist-packages/orca/event_manager.py", line 306 in _deregisterListener
    self._listenerCounts[eventType] -= 1
KeyError: 'object:state-changed:selected'

event_manager._dequeue: the event queue is empty!
Comment 1 Joanmarie Diggs (IRC: joanie) 2011-01-21 03:22:01 UTC
See also bug 640072 which might be related -- or the same bug.

Also, I forgot to mention in my opening report that this only seems to happen when the app is quit and no other window is given focus by the window manager.
Comment 2 Joanmarie Diggs (IRC: joanie) 2011-01-21 04:08:37 UTC
I could reproduce this problem sometimes (they were cases of my quitting an app and Orca becoming unresponsive). With the following commit, I can no longer reproduce the error. But I'm not yet convinced I've caught them all. Therefore people who have encountered this problem are encouraged to pull master and continue testing. Thanks!

http://git.gnome.org/browse/orca/commit/?id=52ec5760581d48d0ab88903864a05178a89a1bbd
Comment 3 Hammer Attila 2011-01-21 07:27:05 UTC
Created attachment 178912 [details]
Debug.out after Orca started with login with showing a freeze with end of before Orca restart

Sorry Joanie, I think I happy earli.
Difficulter ask Orca happening the freeze, but the problem is still present I think.
I doed a big stress test with opening and closing lot of applications, reading my e-mails, launch gedit and closing more time, launch Firefox, etc.
After I last close the gedit if more application is opened, Orca full unresponsive, I think this is happening 10 minute later after I login.
I modifyed the /desktop/gnome/applications/at/visual/exec gconf key to ask orca make a debug.out file after started the login.
I see interesting lines in debug.out file after the 11908 line number:
KeyError deregistering object:state-changed:selected listener
This line repeating I think next 85 lines after I closed last the Gedit application before Orca is freezing.
The last gedit closing related information is beginning the debug.out file after 11886 line number.

Another interesting think, I don't no this is important or not, entire debug.out file have lot of following traceback error messages.
One type:
Traceback (most recent call last):
  • File "/usr/local/lib/python2.6/dist-packages/orca/orca.py", line 1241 in _processKeyboardEvent
    keyEcho(keyboardEvent)
  • File "/usr/local/lib/python2.6/dist-packages/orca/orca.py", line 969 in keyEcho
    and (orca_state.locusOfFocus.getRole() == pyatspi.ROLE_PASSWORD_TEXT):
  • File "/usr/lib/python2.6/dist-packages/pyatspi/accessible.py", line 572 in getRole
    return _getAndCache(self, 'role', self._mix_getRole)
  • File "/usr/lib/python2.6/dist-packages/pyatspi/accessible.py", line 158 in _getAndCache
    value = get_method()
  • File "/usr/lib/python2.6/dist-packages/pyatspi/accessible.py", line 238 in _inner
    raise LookupError(e) LookupError
  • File "/usr/local/lib/python2.6/dist-packages/orca/event_manager.py", line 454 in _processObjectEvent
    state = event.source.getState()
  • File "/usr/lib/python2.6/dist-packages/pyatspi/accessible.py", line 238 in _inner
    raise LookupError(e) LookupError

What showing the debug.out file? This is an error or I need only a full system reinstall?

Attila
Comment 4 Joanmarie Diggs (IRC: joanie) 2011-01-21 14:00:02 UTC
Both errors boil down to the same thing: The accessible object we're trying to access has gone away. That is normal and something we've always seen. The question remains why is Orca unresponsive. I shall keep digging. Thanks!!
Comment 5 Joanmarie Diggs (IRC: joanie) 2011-01-21 17:59:18 UTC
I'm still digging into this, but hopefully am getting close. At least on the issue I'm looking at. :-)

One of the things which had been swallowed up silently by focus tracking presenter is failures associated with reclaiming scripts. When Orca becomes unresponsive (in the case I'm looking at), various and sundry things have gone wrong when we try to reclaim scripts including, but not limited to:

* Things which are not actually applications showing up in the app list, including objects of ROLE_UNKNOWN

* Dead accessibles

* LookupErrors (which shouldn't be a problem, but might be)

So I'm going to see about tracking these things down and handling them properly. Stay tuned!
Comment 6 Joanmarie Diggs (IRC: joanie) 2011-01-21 21:24:31 UTC
Another note to self: When I see unresponsiveness with the latest master, it follows shortly after this error gets printed to the terminal from which I started Orca:

/usr/lib/pymodules/python2.7/pyatspi/registry.py:364: GtkWarning: IA__gtk_widget_is_toplevel: assertion `GTK_IS_WIDGET (widget)' failed
  bonobo.main()
Comment 7 Hammer Attila 2011-01-22 06:54:08 UTC
Joanie, latest updates I think resolve lot of freezing problems. For example after I pulled latest master and doed full recompile and reinstall, Orca don't freeze since I using (30 or 40 minutes). I think this good result related the #639876 and #640218 bug fixes.
Comment 8 Joanmarie Diggs (IRC: joanie) 2011-01-22 18:50:03 UTC
Thanks Attila.

Yeah, much of these issues have been inter-related. But I've been trying to open new bugs and commit separate fixes for the purpose of both tracking and, should it be needed, hunting down new regressions.

Anyhoo, I'll keep this bug opened for a little longer as it was a tricky one to pin down. If you'll keep testing, I'll be most grateful.

Thanks again!
Comment 9 Trevor Saunders (IRC: tbsaunde) 2011-02-05 07:53:52 UTC
Its been a while and no issues seem to have come so do we want to close?
Comment 10 Joanmarie Diggs (IRC: joanie) 2011-02-05 08:11:24 UTC
(In reply to comment #9)
> Its been a while and no issues seem to have come so do we want to close?

Yeah, probably. Thanks for the reminder, Trev!