Bug 31012 - Combined bug report from LDTPv2
Summary: Combined bug report from LDTPv2
Status: NEW
Alias: None
Product: at-spi2
Classification: Unclassified
Component: core (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) All
: medium normal
Assignee: Rob Taylor
QA Contact: Nagappan Alagappan
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-20 13:54 UTC by Nagappan Alagappan
Modified: 2011-04-13 16:50 UTC (History)
5 users (show)

See Also:
i915 platform:
i915 features:


Attachments
at-spi1 combo box have text entry (26.01 KB, image/png)
2011-01-24 16:36 UTC, Nagappan Alagappan
Details
at-spi2 combo box doesn't have text entry (16.71 KB, image/png)
2011-01-24 16:36 UTC, Nagappan Alagappan
Details
On executing the test, 2 crash are reproducible in openSUSE11.4 (1.50 KB, text/x-python)
2011-04-13 16:50 UTC, Nagappan Alagappan
Details

Description Nagappan Alagappan 2010-10-20 13:54:45 UTC
Hello,

I'm planing to add all the bugs found using LDTPv2 on this, if you feel that it has to be submitted in individual bugs, please feel free to raise the concern.

>>> desktop = pyatspi.Registry.getDesktop(0)
/usr/lib/python2.6/site-packages/dbus/connection.py:242: DeprecationWarning: object.__init__() takes no parameters
  super(Connection, self).__init__(*args, **kwargs)
ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/dbus/connection.py", line 214, in maybe_handle_message
    self._handler(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/cache.py", line 205, in _property_change_handler
    app._property_change_handler(minor, detail1, detail2, any_data, app, interface, sender, member, path)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/cache.py", line 281, in _property_change_handler
    if (sender, path) in self._cache.soft:
AttributeError: 'AccessibleCache' object has no attribute 'soft'
ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/dbus/connection.py", line 214, in maybe_handle_message
    self._handler(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/cache.py", line 205, in _property_change_handler
    app._property_change_handler(minor, detail1, detail2, any_data, app, interface, sender, member, path)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/cache.py", line 281, in _property_change_handler
    if (sender, path) in self._cache.soft:
AttributeError: 'AccessibleCache' object has no attribute 'soft'
ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/dbus/connection.py", line 214, in maybe_handle_message
    self._handler(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/cache.py", line 205, in _property_change_handler
    app._property_change_handler(minor, detail1, detail2, any_data, app, interface, sender, member, path)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/cache.py", line 281, in _property_change_handler
    if (sender, path) in self._cache.soft:
AttributeError: 'AccessibleCache' object has no attribute 'soft'
ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/dbus/connection.py", line 214, in maybe_handle_message
    self._handler(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/cache.py", line 205, in _property_change_handler
    app._property_change_handler(minor, detail1, detail2, any_data, app, interface, sender, member, path)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/cache.py", line 281, in _property_change_handler
    if (sender, path) in self._cache.soft:
AttributeError: 'AccessibleCache' object has no attribute 'soft'

Thanks
Comment 1 Nagappan Alagappan 2010-10-20 13:58:43 UTC
>>> appnames = []
>>> for app in desktop:
...    if not app: continue
...    appnames.append(app.name)
... 
>>> appnames
[dbus.String(u'vino-server', variant_level=1), dbus.String(u'evolution-alarm-notify', variant_level=1), dbus.String(u'gnome-power-manager', variant_level=1), dbus.String(u'<unknown>', variant_level=1), dbus.String(u'gnome-screensaver', variant_level=1), dbus.String(u'gpk-update-icon', variant_level=1), dbus.String(u'Do', variant_level=1), dbus.String(u'applet.py', variant_level=1), dbus.String(u'gnome-settings-daemon', variant_level=1), dbus.String(u'gnome-terminal', variant_level=1), dbus.String(u'xchat', variant_level=1), dbus.String(u'gnomesu', variant_level=1), dbus.String(u'y2controlcenter-gnome', variant_level=1)]

with at-spi1, we get the appnames, just as list of string, in v2 its dbus.String !
Comment 2 Nagappan Alagappan 2010-10-20 16:09:28 UTC
Just copy this code block in a file, say test.py and run 'python test.py' couple of times:

from ldtp import *

launchapp('gedit')

waittillguiexist('*-gedit')

settextvalue('*-gedit', 'txt1', 'Hello World')

print gettextvalue('*-gedit', 'txt1')

selectmenuitem('*-gedit', 'mnuFile;mnuQuit')

waittillguiexist('Question')

click('Question', 'Close without Saving')

Result:

Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/busutils/bus.py", line 87, in _event_dispatch
    func (*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/appevent.py", line 231, in handler_wrapper
    return event_handler(event)
  File "/usr/local/lib/python2.6/site-packages/ldtpd/core.py", line 86, in _event_cb
    event.source)
  File "/usr/local/lib/python2.6/site-packages/ldtpd/utils.py", line 345, in _ldtpize_accessible
    re.sub(strip, '', (label_acc or acc).name), \
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/accessible.py", line 501, in _get_name
    return self._pgetter(ATSPI_ACCESSIBLE, "Name")
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/busutils/proxy.py", line 125, in dbus_method_func
    raise data.error
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Message did not receive a reply (timeout by message bus)
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/busutils/bus.py", line 87, in _event_dispatch
    func (*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/appevent.py", line 231, in handler_wrapper
    return event_handler(event)
  File "/usr/local/lib/python2.6/site-packages/ldtpd/utils.py", line 244, in _on_window_event
    event.source)
  File "/usr/local/lib/python2.6/site-packages/ldtpd/utils.py", line 314, in _ldtpize_accessible
    rel_set = acc.getRelationSet()
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/accessible.py", line 414, in getRelationSet
    relation_set = func()
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/accessible.py", line 199, in dbus_method_func
    raise LookupError(e)
LookupError: org.freedesktop.DBus.Error.ServiceUnknown: The name :1.10 was not provided by any .service files
GTK Accessibility Module initialized
Traceback (most recent call last):
  File "/usr/lib64/python2.6/site-packages/twisted/web/server.py", line 150, in process
    self.render(resrc)
  File "/usr/lib64/python2.6/site-packages/twisted/web/server.py", line 157, in render
    body = resrc.render(self)
  File "/usr/lib64/python2.6/site-packages/twisted/web/resource.py", line 190, in render
    return m(request)
  File "/usr/local/lib/python2.6/site-packages/ldtpd/xmlrpc_daemon.py", line 101, in render_POST
    xmlrpc.defer.maybeDeferred(function, *args, **kwargs).\
--- <exception caught here> ---
  File "/usr/lib64/python2.6/site-packages/twisted/internet/defer.py", line 106, in maybeDeferred
    result = f(*args, **kw)
  File "/usr/local/lib/python2.6/site-packages/ldtpd/text.py", line 126, in settextvalue
    obj = self._get_object(window_name, object_name)
  File "/usr/local/lib/python2.6/site-packages/ldtpd/utils.py", line 711, in _get_object
    self._get_window_handle(window_name)
  File "/usr/local/lib/python2.6/site-packages/ldtpd/utils.py", line 664, in _get_window_handle
    for gui in self._list_guis():
  File "/usr/local/lib/python2.6/site-packages/ldtpd/utils.py", line 294, in _list_guis
    for gui in app[0]:
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/accessible.py", line 265, in __getitem__
    n = self.childCount
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/accessible.py", line 475, in _get_childCount
    return Int32(self._pgetter(ATSPI_ACCESSIBLE, "ChildCount"))
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/busutils/proxy.py", line 125, in dbus_method_func
    raise data.error
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name :1.10 was not provided by any .service files
Comment 3 Nagappan Alagappan 2010-10-20 16:20:20 UTC
After comment #2, the only option left to me is, kill the ldtp instance and then re-run the test !
Comment 4 Nagappan Alagappan 2010-10-20 16:45:14 UTC
(In reply to comment #1)
> 
> with at-spi1, we get the appnames, just as list of string, in v2 its
> dbus.String !

Output with v1

>>> getapplist()
['gnome-session', 'metacity', 'gnome-panel', 'nautilus', 'gnome-screensaver', 'gpk-update-icon', 'gnome-settings-daemon', 'bluetooth-applet', 'nm-applet', 'tracker-status-icon', 'Do', 'applet.py', 'gnome-volume-control-applet', 'gnome-power-manager', 'vino-server', 'evolution-alarm-notify', 'polkit-gnome-authentication-agent-1', 'gnome-terminal', 'gnome-terminal']
Comment 5 Nagappan Alagappan 2010-10-20 16:46:49 UTC
Another issue:

I can kill the instance of ldtp, by pressing control+c, if I start it manually as ldtp from terminal with at-spi1, but with at-spi2, it just hangs, need to debug further !

All of the above and following testing are based on openSUSE 11.3 (64-bit) and at-spi2 built by Stephen for my testing and its available here - http://download.opensuse.org/repositories/Mono:/UIA:/ldtp2/openSUSE_11.3/
Comment 6 Nagappan Alagappan 2010-10-20 16:56:09 UTC
from at-spi1 openSUSE11.3 64-bit

>>> getwindowlist()
['frmBottomExpandedEdgePanel', 'frmTopExpandedEdgePanel', 'frmx-nautilus-desktop', 'frmadministrator@w1-hutlab080:~', 'frmpastebin.engprivatepastebin-collaborativedebuggingtool-MozillaFirefox']

from at-spi2 openSUSE11.3 64-bit

>>> getwindowlist()
['frmadministrator@w1-hutlab081:~', u'frmBug31012\u2013CombinedbugreportfromLDTPv2-MozillaFirefox', 'frmXChat:nags@GimpNet/#atspidbus(+tn)']

Note the difference !?!

gnome-panel, nautilus are not accessible, atleast not visible just on the start of the system. I even tried launching nautilus, but it doesn't show up in getwindowlist() output !
Comment 7 Nagappan Alagappan 2010-10-20 16:58:01 UTC
The following two steps, just hanged the execution

>>> launchapp('nautilus')
14000
>>> getwindowlist()
^CTraceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.6/site-packages/ldtp/client.py", line 50, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1489, in __request
    verbose=self.__verbose
  File "/usr/local/lib/python2.6/site-packages/ldtp/client.py", line 73, in request
    self, host, handler, request_body, verbose=0)
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1237, in request
    errcode, errmsg, headers = h.getreply()
  File "/usr/lib64/python2.6/httplib.py", line 1060, in getreply
    response = self._conn.getresponse()
  File "/usr/lib64/python2.6/httplib.py", line 986, in getresponse
    response.begin()
  File "/usr/lib64/python2.6/httplib.py", line 391, in begin
    version, status, reason = self._read_status()
  File "/usr/lib64/python2.6/httplib.py", line 349, in _read_status
    line = self.fp.readline()
  File "/usr/lib64/python2.6/socket.py", line 397, in readline
    data = recv(1)
KeyboardInterrupt

Need to kill ldtp process
Comment 8 Nagappan Alagappan 2010-10-20 17:07:45 UTC
(In reply to comment #2)

Things seem to work fine, if I just run the script directly, without starting the ldtp instance manually !

There are 2 ways to run the test:

* start 'ldtp' binary manually for debugging purpose from one terminal with export LDTP_DEBUG=2 and then from another terminal, run 'python test.py'
* Just run 'python test.py', as this internally start ldtp instance, by forking 'python -c "import ldtpd;ldtpd.main()"'
Comment 9 Nagappan Alagappan 2010-10-20 17:15:20 UTC
(In reply to comment #0)

I'm getting the same issue with accerciser 1.11.1 from Stephan repository

administrator@w1-hutlab081:~> accerciser 

** (accerciser:16101): WARNING **: Trying to register gtype 'WnckWindowState' as enum when in fact it is of type 'GFlags'

** (accerciser:16101): WARNING **: Trying to register gtype 'WnckWindowActions' as enum when in fact it is of type 'GFlags'

** (accerciser:16101): WARNING **: Trying to register gtype 'WnckWindowMoveResizeMask' as enum when in fact it is of type 'GFlags'
/usr/lib/python2.6/site-packages/dbus/connection.py:242: DeprecationWarning: object.__init__() takes no parameters
  super(Connection, self).__init__(*args, **kwargs)
ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/dbus/connection.py", line 214, in maybe_handle_message
    self._handler(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/cache.py", line 205, in _property_change_handler
    app._property_change_handler(minor, detail1, detail2, any_data, app, interface, sender, member, path)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/cache.py", line 281, in _property_change_handler
    if (sender, path) in self._cache.soft:
AttributeError: 'AccessibleCache' object has no attribute 'soft'
Comment 10 Nagappan Alagappan 2010-10-20 17:18:40 UTC
In accerciser, navigated to gnome-terminal, File menu and selected Open Tab, then clicked Perform action, in accerciser console, I got this error message:

ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/dbus/connection.py", line 214, in maybe_handle_message
    self._handler(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/cache.py", line 196, in _children_changed_handler
    app._children_changed_handler(minor, detail1, detail2, any_data, app, interface, sender, member, path)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/cache.py", line 303, in _children_changed_handler
    item.children.remove (any_data)
ValueError: list.remove(x): x not in list
Comment 11 Nagappan Alagappan 2010-10-20 17:29:56 UTC
While testing, VMware workstation:

The following exception happened, when the window was just closed and the call was on waittillguinotexist, I guess

GTK Accessibility Module initialized
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/busutils/bus.py", line 87, in _event_dispatch
    func (*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/appevent.py", line 231, in handler_wrapper
    return event_handler(event)
  File "/usr/local/lib/python2.6/site-packages/ldtpd/utils.py", line 244, in _on_window_event
    event.source)
  File "/usr/local/lib/python2.6/site-packages/ldtpd/utils.py", line 314, in _ldtpize_accessible
    rel_set = acc.getRelationSet()
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/accessible.py", line 414, in getRelationSet
    relation_set = func()
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/accessible.py", line 199, in dbus_method_func
    raise LookupError(e)
LookupError: org.freedesktop.DBus.Error.Failed: Method "GetRelationSet" with signature "" on interface "org.a11y.atspi.Accessible" could not be processed as object /org/a11y/atspi/accessible/428 does not exist
Comment 12 Nagappan Alagappan 2010-10-20 17:33:53 UTC
On doing ldtp gettabcount(), something equivalent with gedit gettabcount('*-gedit', 'ptl0')

and following with VMware Workstation:

Traceback (most recent call last):
  File "executetests.py", line 243, in runTests
    testcaseInst.startTest(testData)
  File "./../WSScripts/bats.py", line 41, in startTest
    vmInst.VerifyVMSummaryInfo ('Windows XP Professional', 'Windows XP Professional')
  File "./../WSActions/vm.py", line 1780, in VerifyVMSummaryInfo
    tabCount = gettabcount (mainWindow, 'ptl0')
  File "/usr/local/lib/python2.6/site-packages/ldtp/client.py", line 50, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1489, in __request
    verbose=self.__verbose
  File "/usr/local/lib/python2.6/site-packages/ldtp/client.py", line 98, in request
    raise e
Fault: <Fault 8002: "Can't serialize output: cannot marshal <type 'dbus.Int32'> objects">
Comment 13 Nagappan Alagappan 2010-10-20 17:44:48 UTC
when I add waittillguinotexist('Question') at end of the script in comment #2, I notice this on the console:

Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/busutils/bus.py", line 87, in _event_dispatch
    func (*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/appevent.py", line 231, in handler_wrapper
    return event_handler(event)
  File "/usr/local/lib/python2.6/site-packages/ldtpd/utils.py", line 244, in _on_window_event
    event.source)
  File "/usr/local/lib/python2.6/site-packages/ldtpd/utils.py", line 314, in _ldtpize_accessible
    rel_set = acc.getRelationSet()
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/accessible.py", line 414, in getRelationSet
    relation_set = func()
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/accessible.py", line 199, in dbus_method_func
    raise LookupError(e)
LookupError: org.freedesktop.DBus.Error.ServiceUnknown: The name :1.77 was not provided by any .service files
Traceback (most recent call last):
  File "/usr/local/lib/python2.6/site-packages/ldtpd/waiters.py", line 71, in _timeout_cb
    self.poll()
  File "/usr/local/lib/python2.6/site-packages/ldtpd/waiters.py", line 311, in poll
    gui, _window_name = self._get_window_handle(self._frame_name)
  File "/usr/local/lib/python2.6/site-packages/ldtpd/utils.py", line 664, in _get_window_handle
    for gui in self._list_guis():
  File "/usr/local/lib/python2.6/site-packages/ldtpd/utils.py", line 294, in _list_guis
    for gui in app[0]:
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/accessible.py", line 265, in __getitem__
    n = self.childCount
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/accessible.py", line 475, in _get_childCount
    return Int32(self._pgetter(ATSPI_ACCESSIBLE, "ChildCount"))
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/busutils/proxy.py", line 125, in dbus_method_func
    raise data.error
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name :1.77 was not provided by any .service files
Comment 14 Nagappan Alagappan 2010-10-20 18:14:48 UTC
I'm unable to run multiple test, ldtp daemon just get hang, most of the time, the script calls waittillguinotexist

Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/busutils/bus.py", line 87, in _event_dispatch
    func (*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/appevent.py", line 231, in handler_wrapper
    return event_handler(event)
  File "/usr/local/lib/python2.6/site-packages/ldtpd/utils.py", line 253, in _on_window_event
    event.source)
  File "/usr/local/lib/python2.6/site-packages/ldtpd/utils.py", line 323, in _ldtpize_accessible
    rel_set = acc.getRelationSet()
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/accessible.py", line 414, in getRelationSet
    relation_set = func()
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/accessible.py", line 199, in dbus_method_func
    raise LookupError(e)
LookupError: org.freedesktop.DBus.Error.ServiceUnknown: The name :1.111 was not provided by any .service files
Traceback (most recent call last):
  File "/usr/local/lib/python2.6/site-packages/ldtpd/waiters.py", line 71, in _timeout_cb
    self.poll()
  File "/usr/local/lib/python2.6/site-packages/ldtpd/waiters.py", line 295, in poll
    gui, _window_name = self._get_window_handle(self._frame_name)
  File "/usr/local/lib/python2.6/site-packages/ldtpd/utils.py", line 673, in _get_window_handle
    for gui in self._list_guis():
  File "/usr/local/lib/python2.6/site-packages/ldtpd/utils.py", line 303, in _list_guis
    for gui in app[0]:
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/accessible.py", line 265, in __getitem__
    n = self.childCount
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/accessible.py", line 475, in _get_childCount
    return Int32(self._pgetter(ATSPI_ACCESSIBLE, "ChildCount"))
  File "/usr/lib/python2.6/site-packages/pyatspi_dbus/busutils/proxy.py", line 125, in dbus_method_func
    raise data.error
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name :1.111 was not provided by any .service files

Its blocker from LDTP side.
Comment 15 Nagappan Alagappan 2011-01-21 18:41:34 UTC
With at-spi2-core 1.91.5-0ubu I get the following error message:

** (ldtp:1947): WARNING **: AT-SPI: Got error: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" could not be processed as object /org/a11y/atspi/accessible/400 does not exist

** (ldtp:1947): WARNING **: AT-SPI: Got error: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" could not be processed as object /org/a11y/atspi/accessible/400 does not exist

** (ldtp:1947): WARNING **: AT-SPI: Got error: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" could not be processed as object /org/a11y/atspi/accessible/400 does not exist

This in between

Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/ldtpd/core.py", line 111, in _event_cb
    self._window_uptime[win_name] = [event.source_name,
AttributeError: 'Event' object has no attribute 'source_name'

and this too in between

** (ldtp:1947): WARNING **: AT-SPI: Got error: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" could not be processed as object /org/a11y/atspi/accessible/522 does not exist

** (ldtp:1947): WARNING **: AT-SPI: Got error: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" could not be processed as object /org/a11y/atspi/accessible/522 does not exist
Comment 16 Nagappan Alagappan 2011-01-21 18:46:23 UTC
When I leave the ldtp process idle for sometime, I get the following message printed on console:

** (ldtp:1947): WARNING **: AT-SPI: Got error: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" could not be processed as object /org/a11y/atspi/accessible/672 does not exist



** (ldtp:1947): WARNING **: AT-SPI: Got error: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" could not be processed as object /org/a11y/atspi/accessible/672 does not exist



** (ldtp:1947): WARNING **: AT-SPI: Got error: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" could not be processed as object /org/a11y/atspi/accessible/672 does not exist


Not sure, whey the number keeps changing !
Comment 17 Nagappan Alagappan 2011-01-21 19:21:46 UTC
These warning messages can be avoided ?

** (ldtp:1947): WARNING **: AT-SPI: Got error: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

This happened when I stopped the test in between.

Not sure what these error messages are:

** (ldtp:2152): WARNING **: AT-SPI: Got error: The name :1.23 was not provided by any .service files


** (ldtp:2152): WARNING **: AT-SPI: Got error: The name :1.23 was not provided by any .service files
Comment 18 Nagappan Alagappan 2011-01-21 19:26:25 UTC
        try:
            texti = obj.queryEditableText()
        except NotImplementedError:
            raise LdtpServerException('Text cannot be entered into object.')

        return int(texti.setTextContents(data.encode('utf-8')))

setTextContents fails, but insertText works !
Comment 19 Nagappan Alagappan 2011-01-24 16:36:23 UTC
Created attachment 42424 [details]
at-spi1 combo box have text entry

at-spi1 combo box have text entry
Comment 20 Nagappan Alagappan 2011-01-24 16:36:54 UTC
Created attachment 42425 [details]
at-spi2 combo box doesn't have text entry

at-spi2 combo box doesn't have text entry
Comment 21 Mike Gorse 2011-01-31 15:50:34 UTC
The warnings should have been exceptions (at-spi2-atk thinks that the accessibles aren't there anymore), so they will show up as exceptions now.

setTextContents is fixed.

Querying for source_name should work now.

As far as the combo box child issue goes, I haven't been able to reproduce it per se--the combo box seems to show up as having no children even with AT-SPI1.  It is possible that I'm not following the right procedure to reproduce it.  I don't see any code in gail to send a children-changed event when an entry is added or removed from a combo box, so it may be related to that.  As a work-around for these kinds of issues, I've added a function called setcacheMask into AT-SPI/pyatspi.  If you put something like this near the beginning of your script, then I wonder if the problem will disappear:

desktop = pyatspi.Registry.getDesktop(0)
desktop.setCacheMask(pyatspi.cache(pyatspi.cache.ALL ^ pyatspi.cache.CHILDREN))

If that gets things to work, then we really should fix GAIL; AT-SPI2 will cache an object's children, parent, name, description, and states by default to reduce the number of round-trip calls that it needs to make, since they are more expensive with DBus than with ORBit.  As a result, it is sensitive to the lack of events in a way that AT-SPI-CORBA was not.
Comment 22 Mike Gorse 2011-02-03 10:16:06 UTC
I'm not sure why you'd still get tracebacks calling setTextContents with pyatspi 1.91.6.  However, I needed to refactor EditableText anyhow since the existing code did not allow Text functions (ie, getText() to be called from the interface returned by queryEditableText.  So perhaps the change I just pushed will fix the issue.
Comment 23 Mike Gorse 2011-03-13 17:54:46 UTC
What versions of gedit and gtk+ are you using that show the text child in AT-SPI1?  I am not seeing a text child in natty with either AT-SPI1 or AT-SPI2, and the script at http://pastebin.com/8uz5W5fB fails to find the child with both AT-SPI1, and AT-SPI2.  Looking at the sources of gedit 2.30.4 and gtk+ 2.24.1 (the versions I have on natty), I can't see how the text child could ever be exposed correctly.

gailcombobox.c, used for a GtkComboBox, exposes 1 or 2 children: a MENU child and an additional TEXT child if the has-entry property is set.

The combo boxes in the gedit find dialog are GeditHistoryEntry dialogues.  GeditHistoryEntry as of v2.30.4 was based on GtkComboBoxEntry.  GtkComboBoxEntry was based on GtkComboBox but did not set has_entry.  Rather, it created its own entry child.  GAIL does not appear to have a separate class for GtkComboBoxEntry, so it will use the logic for GtkComboBox, overriding the normal logic for determining the number of children and thus ignoring the entry that GtkComboBoxEntry adds.  Note that GtkComboBoxEntry was deprecated in GTK+ 2.24 and is removed in GTK+ 3, so later versions of gedit do not use it.

So, if you are seeing a text child with these versions of gedit and gtk+, then I am confused...
Comment 24 Nagappan Alagappan 2011-03-13 18:30:21 UTC
(In reply to comment #23)
> What versions of gedit and gtk+ are you using that show the text child in
> AT-SPI1?  I am not seeing a text child in natty with either AT-SPI1 or AT-SPI2,
> and the script at http://pastebin.com/8uz5W5fB fails to find the child with

This script works fine with Ubuntu 10.10, gedit 2.30.3 / gtk 2.22.0 with at-spi1. Tomorrow at work, let me enable at-spi1 and verify this, I have verified the above test with at-spi2 in Ubuntu 11.04 (natty).

> So, if you are seeing a text child with these versions of gedit and gtk+, then
> I am confused...

Interesting, will update the bug tomorrow.

Thanks
Comment 25 Nagappan Alagappan 2011-04-13 16:50:46 UTC
Created attachment 45597 [details]
On executing the test, 2 crash are reproducible in openSUSE11.4

with Mike Gorse repository


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.