GNOME Bugzilla – Bug 598797
Gnome-Terminal and VTE dump core when using Orca
Last modified: 2009-10-19 16:04:43 UTC
Created attachment 145694 [details] First debug file when I crashed in terminal; second debug file when restarted If I start up Orca and then go to the terminal Orca still talks fine but as soon as I press the keypad-enter key, I lose all speech. If I go to a native console as root I see still see an Orca process running. I can kill with 'orca -q' and then return to my gnome session. When I attempt to restart Orca from the gnome run dialog, I only hear "Welcome to Orca." No other speech is heard. I have two debug files which I am attaching; orca-debug1.out contains activity up till when I had to kill Orca from a root terminal; orca-debug2.out contains all activity from the time I restarted Orca unsuccessfully.
I cannot reproduce it all of the time, but I was just able to reproduce it in OpenSolaris (build 125). Blek. :-( I'll take this one. Thanks for the report Steve!
Created attachment 145696 [details] This is actually the first file I had mentioned.
This is a VTE bug. For some reason, calling text.getText(0, -1) is triggering an assertion: Vte:ERROR:vteaccess.c:946:vte_terminal_accessible_get_text: assertion failed: ((start_offset >= 0) && (end_offset >= -1)) Which causes VTE (or gnome-terminal) to core dump. :-( We can work around it with a text.getText(0, text.characterCount) in the gnome-terminal script. But first I want to know why the assertion is getting triggered because the start_offset is (should in theory be) 0 and the end_offset is (should in theory be) -1.
Created attachment 145701 [details] [review] fix This fixes it for me. Pylints to a 10. And is a simple enough fix. Therefore, it has been committed to master; it has not yet been committed to the gnome-2-28 branch. Steve: Please pull the latest Orca from git master and see if this solves the problem for you. Will: Please review. If there is anything that needs changing, I'll do that and then commit to the gnome-2-28 branch. *NOW* I'll see if I can work out what the VTE guys broke....
Turns out the VTE guys did something silly. They added a check to see if start_offset > end_offset and, if so, they assume the offsets are reversed and swap 'em. Problem solved by adding an additional check to be sure end_offset ain't -1. I opened bug 598814 against VTE and attached a patch which does that.
I just tried it out and hitting the KP_Enter key over and over never causes the crash. It seems to work for me. not sure about other instances where I thought it failed before but all seems good now.
Review of attachment 145701 [details] [review]: Looks good. Commit for 2.28.1.
Comment on attachment 145701 [details] [review] fix Already committed to master; just now committed to the gnome-2-28 branch.