Hi Sam,

On Tue, Jan 20, 2009 at 6:11 AM, Quiring, Sam <[email protected]>wrote:

>  Nagappan,
>
> Thank you for your most helpful response.  This explains a lot of things to
> us.  Is getwindowlist() part of LDTP?
>

Yes its LDTP function.
http://ldtp.freedesktop.org/user-doc/getwindowlist.html

>
> Does at-spi-registryd have a log file so we could figure out what the
> problem is?
>

Not sure about this.

>
> Pretend for a second that the phrase "we just restart the X [server]" is
> not something I am familiar with doing.  Could you detail the steps
> involved?
>

Based on distribution we do, as we need to test VMware workstation product
in all possible Linux distributions.

in case of SUSE we do /etc/init.d/xdm restart
in Ubuntu /etc/init.d/gdm restart
in RHEL /usr/sbin/gdm-restart

Thanks
Nagappan

>
> Thanks again.
>
> -Sam
>
>  ------------------------------
> *From:* Nagappan A [mailto:[email protected]]
> *Sent:* Monday, January 19, 2009 3:06 PM
> *To:* Quiring, Sam
> *Cc:* [email protected]
> *Subject:* Re: [g-a-devel] Segfault in Accessible_getChildAtIndex
>
> Hello Quiring,
>
> I have noticed this happening in both Ubuntu and RHEL environment when we
> test them in VMware Workstation product. What I noticed is, there is a delay
> in starting at-spi-registryd.
>
> So wrote a small utility to check whether everything is set correct or not
> and then we start our test.
>
> getwindowlist ()
>
> If any LdtpExecutionError exception is thrown, that means there is an issue
> starting at-spi-registryd, then in our environment we just restart the X and
> most of the time it fixed the issue. You may need to re-iterate a logic
> something like this, to work around the issue.
>
> Thanks
> Nagappan
>
> 2009/1/19 Quiring, Sam <[email protected]>
>
>>  Greetings,
>>
>> One of the guys on my team is getting a segfault in
>> Accessible_getChildAtIndex.  We've have been trying to track this down for
>> days and are at wit's end.  This is our environment:
>>
>> Ubuntu 8.04
>> Gnome 2.22.3
>> at-spi 1.22.1
>>
>> Both he and I run Ubuntu on VMWare Workstation.  We are both running
>> identical Ubuntu images on VMware.  Tthe error does not happen for me, he is
>> getting it all the time.  The main difference between our two laptops:  his
>> is significantly slower than mine.
>>
>> We have a standalone application that displays all the apps, (i.e, direct
>> children of desktop), on the machine.  Here is the loop to retrieve them:
>>
>> 1    Accessible *desktop = SPI_getDesktop(0);
>> 2    int dtChildCount = Accessible_getChildCount(desktop);
>> 3    int child;
>> 4    for(child = 0; child < dtChildCount; child++) {
>> 5        Accessible *desktopChild = Accessible_getChildAtIndex(desktop,
>> child);
>> 6        if(desktopChild == 0) {
>> 7            myLog("getChild returned 0");
>> 8            continue;
>> 9        }
>> 10       ...  -- display info about each app
>> 11   }
>> This loop in the standalone application works for both of us, although two
>> of the apps get SPI Exceptions.  For app 18 (child == 17) we get an
>> SPI_Exception (*) and the Accessible_getChildAtIndex returns 0 (the call on
>> line 6, above).  Here is the output:
>>
>> app 1/21 (n:x-session-manager,d:,r:application)  [actions: ] [subs:
>> Application ] (children: 0)
>> app 2/21 (n:gnome-settings-daemon,d:,r:application)  [actions: ] [subs:
>> Application ] (children: 0)
>> app 3/21 (n:gnome-screensaver,d:,r:application)  [actions: ] [subs:
>> Application ] (children: 0)
>> app 4/21 (n:gnome-panel,d:,r:application)  [actions: ] [subs: Application
>> ] (children: 2)
>> app 5/21 (n:nautilus,d:,r:application)  [actions: ] [subs: Application ]
>> (children: 1)
>> app 6/21 (n:metacity,d:,r:application)  [actions: ] [subs: Application ]
>> (children: 0)
>> app 7/21 (n:bluetooth-applet,d:,r:application)  [actions: ] [subs:
>> Application ] (children: 0)
>> app 8/21 (n:update-notifier,d:,r:application)  [actions: ] [subs:
>> Application ] (children: 0)
>> app 9/21 (n:gnome-volume-manager,d:,r:application)  [actions: ] [subs:
>> Application ] (children: 0)
>> app 10/21 (n:gnome-power-manager,d:,r:application)  [actions: ] [subs:
>> Application ] (children: 0)
>> app 11/21 (n:evolution-alarm-notify,d:,r:application)  [actions: ] [subs:
>> Application ] (children: 0)
>> app 12/21 (n:tracker-applet,d:,r:application)  [actions: ] [subs:
>> Application ] (children: 0)
>> app 13/21 (n:applet.py,d:,r:application)  [actions: ] [subs: Application ]
>> (children: 0)
>> app 14/21 (n:gnome-terminal,d:,r:application)  [actions: ] [subs:
>> Application ] (children: 3)
>> app 15/21 (n:vmware-user,d:,r:application)  [actions: ] [subs: Application
>> ] (children: 0)
>> ---- spiException on app 15/21 retrieving the attributes:
>> Accessible_getAttributes()
>> app 16/21 (n:notification-daemon,d:,r:application)  [actions: ] [subs:
>> Application ] (children: 0)
>> app 17/21 (n:nm-applet,d:,r:application)  [actions: ] [subs: Application ]
>> (children: 0)
>> ---- NULL app 18: spiException
>> app 19/21 (n:Firefox,d:,r:application)  [actions: ] [subs: Application ]
>> (children: 1)
>> app 19/21   - [states: enabled, sensitive, showing, visible]
>> app 20/21 (n:evince,d:,r:application)  [actions: ] [subs: Application ]
>> (children: 2)
>> app 21/21 (n:sbq,d:,r:application)  [actions: ] [subs: Application ]
>> (children: 0)
>>
>> (*) Both exceptions display as:
>>
>> TCF 57:30.032: AT-SPI Exception: IDL:omg.org/CORBA/COMM_FAILURE:1.0
>> TCF 57:30.032:        - Code: unknown type or doesn't fit the other types
>> TCF 57:30.032:        - Type: Do not know or cannot tell where the problem
>> is
>> In our primary application, which is multithreaded, we go through a loop
>> identical in structure to the one above.  This time, when we get to Gnome
>> desktop app 18 our application gets a SIGSEGV directly.   The
>> SPI_ExceptionHandler we pushed does *not* get called.  We've put in a
>> SIGSEV handler and a stack walker to figure out what is going on and we get
>> this stack dump:
>>
>>  /usr/lib/libcspi.so.0 [0xb78da969]  called by
>>  /usr/lib/libcspi.so.0 [0xb78d6be2]  called by
>>  /usr/lib/libcspi.so.0(Accessible_getChildAtIndex+0x52)
>> [0xb78d4372]  called by     *<== Accessible_getChildAtIndex()!
>> * ./stp-atspi(getFramesUnderMouse+0x6d) [0x8063a65]  called by
>>  ./stp-atspi(stackingOrderUnderMouse+0x9a) [0x8063c1e]  called by
>> ...
>>
>> Any suggestions for working around this would be greatly appreciated.
>> Here is some information we've learned:
>>
>> If the VMWare image is rebooted and we comment out all calls to
>> Accessible_getAtttributes(), then we do not get the segfault (SIGSEGV).
>> However, if we leave the calls in to Accessible_getAttributes() then we will
>> start getting the SIGSEGV as describe above.  Our theory is that there is a
>> bug in the Accessible_getAttributes implementation that gets a segfault and
>> leaves some AT-SPI data structure in a bad state.  That bad data
>> structure causes the AT-SPI implementation to get a suprise SIGSEGV from
>> then on every time we try to access application 18.
>>
>> -Sam
>>
>> PS:  Again, this error does not happen in my VMWare instance, only on my
>> teammate's slower laptop.  But one important fact is that the two of us are
>> running identical Ubuntu images.
>>
>> _______________________________________________
>> Gnome-accessibility-devel mailing list
>> [email protected]
>> http://mail.gnome.org/mailman/listinfo/gnome-accessibility-devel
>>
>>
>
>
> --
> Linux Desktop (GUI Application) Testing Project -
> http://ldtp.freedesktop.org
> http://nagappanal.blogspot.com
>



-- 
Linux Desktop (GUI Application) Testing Project -
http://ldtp.freedesktop.org
http://nagappanal.blogspot.com
_______________________________________________
Gnome-accessibility-devel mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gnome-accessibility-devel

Reply via email to