GNOME Bugzilla – Bug 155732
Speech crashes while using layer 3-7 on a menu
Last modified: 2004-12-22 21:47:04 UTC
Using gnopernicus 0.9.14 - Launch gnopernicus - Launch gnome-terminal - navigate to the menubar and to the file menu - Enable layer 3 (ensure that numlock is on and type 0,3 on the numpad) - Press 7 (read whole window) Notice that the titlebar and menubar menu names will be declared. Then speech stops. Also, the computer appears to slow down dramatically. While testing, I got the session to freeze up on two occassions.
Is this bug present in other applications?
I can not reproduce this bug on my Solaris system. I am currently using gnopernicus 0.9.16 and speech continues to work when I access layer 3, KP7. I believe this issue can be caused by gnopernicus version. The patch for bug #154250 [Speech will be stopped when gnopernicus runs for a period of time.] is not included in 0.9.14. Can you try to update your gnopernicus version and check if you still can reproduce this bug?
Does speech contiue to work after pressing CONTROL LEFT key (= shutup key)?
No, pressing CONTROL LEFT has no effect whatsoever.
John, can you reproduce the bug with gnopernicus 0.9.16 ?
Yes, I have 0.9.16 and the problem is still there.
I have also tried to reproduce the problem in gedit and gcalctool without success. It seems to happen only with the terminal menu.
I do not understand something in your scenario. You say: "- navigate to the menubar and to the file menu - Enable layer 3 (ensure that numlock is on and type 0,3 on the numpad)" I can not enable layer 3 as long as the File menu in gnome-teminal is expanded. I have to press Esc (the menu will be collapsed) and only after that I can enable layer 3. Can you switch to layer 3 as long as the menu is expanded ? I am asking this because you said in the previous comment "It seems to happen only with the terminal menu".
While trying to reproduce this speech seems to stop and a pstack on srcore process gives the result below John, When the problem occurs can you get a spatck of srcore process. You will probably need to either telnet into the system or use xterm or dtterm instead of a gnome-terminal. anymachine:/export/home/padraigo/REBUILD/gail/tests 93 % pstack 16147 16147: srcore fe13c80c pollsys (133420, d, 0, 0) fe0da66c poll (133420, d, ffffffff, fdac8000, 0, 0) + 7c fe2d7fdc g_main_context_poll (65868, ffffffff, d, 133420, d, fe0da5f0) + ec fe2d73e4 g_main_context_iterate (133420, 1, 1, 65868, 65870, d) + 42c fe2d761c g_main_context_iteration (65868, fe33ec00, fe168b00, 65868, fe33ec00, 0) + 94 fe705718 link_main_iteration (1, 1813b0, 0, 121888, ffbfde48, 0) + 40 fe6c303c giop_recv_buffer_get (ffbfdecc, 1813b0, ffbfdecc, ffbfdf34, ff2301ac, ffbfe038) + 17c fe6cd014 ORBit_small_invoke_stub (1634a0, ff2301ac, 0, ffbfe038, 0, ff2623b0) + 254 fe6ccd9c ORBit_small_invoke_stub_n (1634a0, ff2304b8, a, 0, ffbfe038, 0) + d4 fe6f7628 ORBit_c_stub_invoke (2c, ff2304b8, a, 0, ffbfe038, 0) + 198 ff1fb2f4 Accessibility_Text_getCharacterExtents (ff2304b4, 2c, ff2623b0, ff20bd44, ffbfe0bc, ffbfe0b8) + b4 ff24ed30 AccessibleText_getCharacterExtents (1cdb90, 0, ffbfe144, ffbfe148, ffbfe14c, ffbfe150) + 70 ff31a3b8 srw_text_chunk_get_clipped_string (1513c8, 487118, 487118, 487128, 487128, 50) + 10c ff31ab34 srw_text_chunk_to_string (1513c8, 1, 1cdc30, 1513c8, 13640, 1) + 34 ff31af54 srw_text_chunk_list_to_string (17bec0, 1cdc30, 0, 1513c8, 0, ff31dfdc) + 68 ff31b128 srw_line_generate_output (125d48, ffbfe358, ffbfe354, 1cdc30, 0, ffffffff) + 14 ff31c788 screen_review_get_line (3, ffbfe358, ffbfe354, 400, 11a3c, 0) + 7c 0002e054 src_hierarchy_flat (164830, 0, 2fbf0, 12c, 46800, 1c) + 140 0002e844 src_cmd_process (e69c0, 726561, 726570, 72656164, 80808080, 47400) + 54 0002ebbc src_cmd_queue_process (e69c0, 35800, 1, 0, 47778, 35558) + 368 0002ed48 src_key_process (1d7ac0, 47400, fe1355cc, 1db0e8, e69c0, 1dcc4c) + 94 0002edd0 src_key_queue_process (66288, 1d7ac0, 0, 66288, 4777c, ffbfe4fc) + 78 0002ee44 src_ctrl_process_key (1d7ac0, 47400, 0, 0, 0, 47400) + 5c 000175ac src_process_layer_event (159690, 0, fe168b00, fdac8000, 16b1e0, 2fc00) + 54 0001a50c src_event_sink (1a3cc, 0, 1a000, 13c, 20, 46b18) + 110 ff271858 ke_repot_layer_cmd (1d7bb0, ff27181c, 127f4, fe2d56e4, 0, ff28401c) + 3c fe2d5a0c g_main_dispatch (652c8, fe33ec00, 0, 0, fffffffd, ffffffef) + 19c fe2d6f40 g_main_context_dispatch (652c8, c8, 0, 1, fe33ec00, 652c8) + 9c fe2d740c g_main_context_iterate (1, 1, 1, 652c8, 652d0, 12) + 454 fe2d7b88 g_main_loop_run (1d0000, fe33ec00, fe1355cc, 48d68, fe32a800, fe32a800) + 348 fe89414c bonobo_main (0, 388, ff261580, fe8d9198, 450b0, 0) + 6c 0001b2a4 main (46800, ffffffff, 31000, 46800, 0, 0) + 2f8 00015668 _start (0, 0, 0, 0, 0, 0) + 108
top shows gnome-terminal and srcore both using about 40% of CPU. It looks like a loop in srcore.
I can repriduce it by doing Alt+f in gnome-terminal and then pressing layer keys.
Dana, I have no trouble clicking on the terminal menubar and then accessing gnoperniucs layers (any of them). This is the same with any application with a menubar that I have tried. When a menu has dropped down, on a random item, I just press 0, then 3 on the numberpad (with numlock enabled). I am then informed by speech of that selected layer. I can only reproduce the bug on gnome terminal's menus, the layer 3 -7 option seems to work fine elsewhere.
I managed to reproduce the bug (when I tried first to reproduce it I can not enable the layers as long as the menu was expanded but after reboot it seems I am able to do this). This (enabling layers with a menu expanded) is a Solaris-only behavior? We didn't see it on Linux.
This is probably because Solaris uses XEVIE.
Apologies for spam-- ensuring Sun a11y team are cc'ed on all current a11y bugs. Filter on "SUN A11Y SPAM" to ignore.
This bug can be reproduced only in gnome-terminal's menus because AccessibleText_getTextAtOffset (called with the current offset and with SPI_TEXT_BOUNDARY_WORD_END) returns wrong values: 1. In the lines containing the prompt, AccessibleText_getTextAtOffset returns a wrong value for endOffset. This value is the same as for startOffset (startOffset is correctly reported). As a consequence, the returned string is allways empty. 2. In the lines which doesn't conatain the prompt following problems appears: word1<space><space>word2 (the start offset is 0). If AccessibleText_getTextAtOffset is called with offset 0, the correct values are reported: startOffset = 0 endOffset = 7 text = word1 If AccessibleText_getTextAtOffset is called with offset 7 (the endOffset of the previous word), the wrong values are reported: startOffset = 0 endOffset = 7 text = word1 This is the root cause of the loop in srcore. I will provide a patch to avoid this loop, but I believe the main fixes should be done in gnome-terminal.
Bug http://bugzilla.gnome.org/show_bug.cgi?id=156161 was filed against gnome-terminal
Created attachment 32927 [details] [review] proposed patch
Since the problem is in vte and bug #156161 has an appropriate patch which seems to solve the problem, I will close this bug as a duplicate of bug #156161. *** This bug has been marked as a duplicate of 156161 ***