GNOME Bugzilla – Bug 171231
yelp AtkObject hierarchy broken: contains cyclic parent/child relationships
Last modified: 2012-03-31 19:01:20 UTC
Using latest milestone build of linux, gnome 2.6 and gok 0.12.4 Steps to reproduce: * Start up gok * Click on Activate -> Bottom Panel * Click on UI Grab -> Launch -> Help * Click on UI Grab -> Desktop -> Accesssibility Guide -> Section -> Using the Keyboard to Navigate the Desktop * Move the right-most scrollbar down until section 3.9 is visible * Click on UI Grab -> Section 3.9 * Click on UI Grab -> Home -> Back (the Back for the Toolbar "Back" button - not gok's back to main back option) Note: gok will go into a tight loop (tested by a remote login to the test machine) and will freeze. Note the combination of the home button followed by the back button doesn't work for all instances.
by 'doesn't work...' I think Gary means that sometimes the Back button of the Help browser triggers this bug, sometimes it doesn't. Note also that the Help browser continues to work, and if you strace gok, you'll see that there's lots of communication over GIOP, but GOK's keyboards no longer respond to GUI changes, and the GOK pointer doesn't seem to work anymore either.
This is a regression, but probably not a GOK regression since I cannot reproduce it on my Cinnabar machine with an early cinnabar build but the most recent GOK.
Gary can you provide the version of Yelp you are using (yelp --version)? Since this is fairly urgent AFAIK, I am going to post notes here as I investigate in case anyone else is working in parallel. Since this is reported as a regression I'm currently fishing for suspects. Here is one: http://cvs.gnome.org/viewcvs/yelp/src/yelp-history.c?r1=1.14&r2=1.14.2.1&only_with_tag=YELP_2_6_5
gnome yelp 2.6.1
OK. So my suspect goes free. That changes was made for 2.6.2. Still looking...
Bill has confirmed this bug. I should be able to recreate within the hour.
I've found the problem - under some conditions, yelp creates a recursive atkobject hierarchy (circular parent/child relationships). Under these conditions, at-poke will hang too! Unfortunately if you kill yelp and return to the same part of the document, then on subsequent loading of the doc, the atk object hierarchy looks fine, i.e. it only becomes broken under certain conditions. ugh
we worked around this in gok, fix for that is in CVS. Lowering AP value, but gtkhtml2's hierarchy is still badly broken. At or around a depth of 10, parent==child cycles are encountered!
Bill, Can you identify a test case which yields a recursive hierarchy?
Padraig: it seems to depend on the version of GNOME and the version of the help doc being used. Gary has one scenarion (comment #1), and I've seen it in Section 3.3.1 of the same document. It seems to happen when you traverse a link and then use 'Back' via GOK. When the problem occurs, you can see the recursive hierarchy using at-poke, as long as you don't continue using Yelp (under some conditions the problem will 'right itself' during further Yelp use).
According to its developer, gtkhtml2 is not under active development anymore. It is unlikely that there will be any further active development. Closing this report as WONTFIX as part of Bugzilla Housekeeping - Please feel free to reopen this bug report in the future if anyone takes the responsibility for active development again.