GNOME Bugzilla – Bug 372172
Using AT-SPI getAttributeRun crashes application
Last modified: 2006-12-11 22:04:26 UTC
1) Open gedit 2) Enter some text. 3) Use an AT that calls getAttributeRun at the caret position (e.g. getAttributeRun(3, False)) 4) gedit crashes This occurs in any gtk text area. Try it in any gtk text field and the application under inspection will crash. When using the older getAttributes method or the getDefaultAttributes method, the crash does not occur. I'm marking the component as gail, but it's just a guess. Here's a bug buddy report from the gedit crash: Distribution: Fedora Core release 6 (Zod) Gnome Release: 2.16.0 2006-09-04 (Red Hat, Inc) BugBuddy Version: 2.16.0 System: Linux 2.6.18-1.2798.fc6 #1 SMP Mon Oct 16 14:37:32 EDT 2006 i686 X Vendor: The X.Org Foundation X Vendor Release: 70101000 Selinux: No Accessibility: Enabled ----------- .xsession-errors (22837 sec old) --------------------- ** (swriter.bin:6344): WARNING **: Invalidate all children called ** (swriter.bin:6344): WARNING **: Invalidate all children called ** (swriter.bin:6344): WARNING **: Invalidate all children called ** (swriter.bin:6344): WARNING **: Invalidate all children called ** (swriter.bin:6344): ...Too much output, ignoring rest... -------------------------------------------------- Memory status: size: 61358080 vsize: 0 resident: 61358080 share: 0 rss: 20676608 rss_rlim: 0 CPU usage: start_time: 1162931211 rtime: 0 utime: 53 stime: 0 cutime:47 cstime: 0 timeout: 6 it_real_value: 0 frequency: 0 Backtrace was generated from '/usr/bin/gedit' (no debugging symbols found) Using host libthread_db library "/lib/libthread_db.so.1". (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread -1208534272 (LWP 16410)] (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) 0x00df9402 in __kernel_vsyscall ()
+ Trace 84113
Thread 1 (Thread -1208534272 (LWP 16410))
*** Bug 381279 has been marked as a duplicate of this bug. ***
Hi Peter, which AT are you referring to? orca, gok?
I was using LSR, but then wrote an external test script using pyORBit alone to confirm. I can dig up that script and attach if it will help you test and debug.
Peter - does the problem also occur if you pass includeDefaults==TRUE in getAttributeRun? I am guessing that this is a latent bug (with empty sets) in all the getAttribute implementations for text - but that the default attribute set is always non-empty. I am not in a good position to test live ATM but attach a patch - if you happen to be able to test the patch today it would be helpful. Bill
Created attachment 78136 [details] [review] proposed patch that allocates CORBA sequence even if empty Peter, does this patch solve the problem for you?
> Peter - does the problem also occur if you pass includeDefaults==TRUE in > getAttributeRun? Good thought. It does *not* crash with includeDefaults=True. > I am not in a good position to test live ATM but attach a patch - if you happen > to be able to test the patch today it would be helpful. I am not setup to test the patch, unfortunately. But it sounds like you're headed in the right direction with correcting the non-default case.
Hi Peter - my tests here seem to confirm that the patch above works (at least, I cannot reproduce the problem, when calling Text.getAttributeRun with includeDefaults==FALSE. Will commit when ChangeLog is ready. Thanks for reporting the bug.