GNOME Bugzilla – Bug 619809
Orca freezes when building the flat review context of the Keybindings table
Last modified: 2010-06-18 23:18:33 UTC
Hi, i discovered this bug using Orca 2.30 in Ubuntu Lucid distro. Debug mode doesn't show any information about this problem, almost for me, and not only orca get freezes, desktop too. To reproduce it, you can follow this steps: 1.- Using laptop's keyboard layout, create a new keybind for 'increaseSpeechRate' using KP_3 key (an already defined keybinding for an action in desktop's layout) . Save settings and check for its functionally. 2.- Now, change the keyboard layout to 'Desktop' and save settings again. 3.- When i press KP_3 my system starts to hang up and must kill orca's main process in a terminal. Please anybody can confirm the problem too? I think this problem can be fixed in an easy way. Cheers!
I'm afraid I cannot confirm it. When I perform the same steps, Orca enters flat review. (Yeah, I see your point about the uncaught and now conflicting binding. We should address that. However, I see no hangs.) If you can reliably reproduce it, I'd be curious to know exactly what the cause is (and why you're seeing it and I'm not). Thanks Javier!
It happens to me. I attached a debug log. At then end of the file, in my machine, festival process get hang (100% cpu cycles).
Created attachment 163558 [details] debug log of bug 619809
I'm curious, can you reproduce this hang if you do NOT pick a desktop flat review command? (i.e. are you sure the hang is related to the keybinding conflict and not to something going wrong in flat review?)
The reason I couldn't reproduce the bug before is because I didn't realize that it was necessary to be viewing the keybindings page and then enter flat review. If I set up the offending keybindings as described in the opening report, quit Orca, restart it, view the list of keybindings, and then press a totally different flat review key (e.g. KP_8) I can reproduce this hang. It's one (or more) flat review bugs. The keybinding stuff seems to be a red herring. Still digging into the problem.
(In reply to comment #5) > The reason I couldn't reproduce the bug before is because I didn't realize that > it was necessary to be viewing the keybindings page and then enter flat review. > > If I set up the offending keybindings as described in the opening report, quit > Orca, restart it, view the list of keybindings, and then press a totally > different flat review key (e.g. KP_8) I can reproduce this hang. It's one (or > more) flat review bugs. The keybinding stuff seems to be a red herring. > > Still digging into the problem. Exactly, for me also hang in second try.
You don't even have to rebind stuff.... This has nothing to do with keybindings. Though I'm grateful that this bug was found. Yikes! We're getting stuck in the inner while loop of script_utilities.showingDescendants(). And I can make the problem go away by breaking if we fail to get an object from getAccessibleAtPoint(). But that's not the right answer. Still investigating....
Tossed dtrace at the hang. The problem seems to be that this call libgail.so gail_tree_view_ref_accessible_at_point ain't returning. :-( I'll investigate more later. In the meantime.... Defensive patch on its way.
Created attachment 163645 [details] [review] proposed fix This solves the problem for me. Ale, could you please see if it does for you as well? Thanks!
Created attachment 163646 [details] [review] proposed fix for the gnome-2-30 branch gnome-2-30 branch compatible version of the proposed fix
BTW Ale, tarballs for the 2.30.2 release (the last of the official/scheduled 2.30 releases) are due 21 June. So if we want to commit a fix for this flat review bug for the stable release....
Comment on attachment 163645 [details] [review] proposed fix http://git.gnome.org/browse/orca/commit/?id=eddf2f07d0c57d73f4e09c06d294c854c9e114f8
Comment on attachment 163646 [details] [review] proposed fix for the gnome-2-30 branch http://git.gnome.org/browse/orca/commit/?id=225f2e1d656d7853f4223afb6ff3ea4bfff40f0e
This solves the hang for me and passes the regression tests. The fix has been committed to both the gnome-2-30 branch and to master and will be included in the 2.30.2 stable release.