Autopilot3 on vivid desktop fails: "RuntimeError: Unable to instantiate any backends"

Bug #1432700 reported by Nicholas Skaggs
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Autopilot
Fix Released
Undecided
Leo Arias
autopilot (Ubuntu)
New
Undecided
Unassigned
Vivid
New
Undecided
Unassigned

Bug Description

Running a compiled qt binary or qml application on the desktop fails when run with autopilot3. The same test run with autopilot2 works. Note however python-autopilot is 1.4.1+14.10.20140822-0ubuntu1, while python3-autopilot is 1.5.0+15.04.20150226.1-0ubuntu1. I suspect then the new version of autopilot suffers from this issue and this is not a python2/python3 issue.

  File "/usr/lib/python3/dist-packages/autopilot/testcase.py", line 281, in launch_test_application
    return launcher.launch(application, arguments, **launch_args)
  File "/usr/lib/python3/dist-packages/autopilot/application/_launcher.py", line 384, in launch
    pid=process.pid
  File "/usr/lib/python3/dist-packages/autopilot/introspection/_search.py", line 183, in get_proxy_object_for_existing_process
    emulator_base
  File "/usr/lib/python3/dist-packages/autopilot/introspection/_search.py", line 439, in _make_proxy_object
    return proxy_class(cls_state, path, backends.Backend(dbus_address))
  File "/usr/lib/python3/dist-packages/ubuntuuitoolkit/_custom_proxy_objects/_common.py", line 77, in __init__
    self.pointing_device = get_pointing_device()
  File "/usr/lib/python3/dist-packages/ubuntuuitoolkit/_custom_proxy_objects/_common.py", line 49, in get_pointing_device
    return input.Pointer(device=input_device_class.create())
  File "/usr/lib/python3/dist-packages/autopilot/input/__init__.py", line 298, in create
    return _pick_backend(backends, preferred_backend)
  File "/usr/lib/python3/dist-packages/autopilot/utilities.py", line 62, in _pick_backend
    "Unable to instantiate any backends\n%s" % '\n'.join(failure_reasons))
RuntimeError: Unable to instantiate any backends
X11: DisplayConnectionError(':0', b'No protocol specified\n')

=====================
Full log and further details
=====================

What's installed:

dpkg -l | grep autopilot
ii autopilot-desktop 1.5.0+15.04.20150226.1-0ubuntu1 all Autopilot support for the ubuntu Desktop platform
ii autopilot-desktop-legacy 1.4.1+14.10.20140822-0ubuntu1 all Autopilot support for the ubuntu Desktop platform
ii autopilot-qt4 1.4+14.10.20140820-0ubuntu1 amd64 make Qt applications introspectable by autopilot - Qt4 plugin
ii autopilot-qt5 1.4+14.10.20140820-0ubuntu1 amd64 make Qt applications introspectable by autopilot - Qt5 plugin
ii autopilot-touch 1.5.0+15.04.20150226.1-0ubuntu1 all Autopilot support for the ubuntu Touch platform
ii libautopilot-gtk:amd64 1.4+15.04.20141218-0ubuntu1 amd64 Makes GTK+ applications introspectable by autopilot.
ii libautopilot-qt 1.4+14.10.20140820-0ubuntu1 amd64 make Qt applications introspectable by autopilot
ii python-autopilot 1.4.1+14.10.20140822-0ubuntu1 all Utility to write and run integration tests easily
ii python-autopilot-trace 1.4.1+14.10.20140822-0ubuntu1 amd64 Support for tracing in autopilot
ii python-autopilot-vis 1.4.1+14.10.20140822-0ubuntu1 all The visualisation application for Autopilot.
ii python3-autopilot 1.5.0+15.04.20150226.1-0ubuntu1 all Utility to write and run integration tests easily (Python 3)
ii python3-autopilot-trace 1.5.0+15.04.20150226.1-0ubuntu1 amd64 Support for tracing in autopilot (Python 3)
ii python3-autopilot-vis 1.5.0+15.04.20150226.1-0ubuntu1 all visualisation application for Autopilot (Python 3)
ii qttestability-autopilot 1.4+14.10.20140820-0ubuntu1 amd64 make Qt applications introspectable by autopilot
ii ubuntu-ui-toolkit-autopilot 1.2.1433+15.04.20150306-0ubuntu1 amd64 Test package for Ubuntu UI Toolkit

Grab any qt code with autopilot tests and run them from source. Both compiled binaries and pure qml are affected.

Running with autopilot2 works properly (though calendar does require python3 to run, try the clock app to see that)

bzr branch lp:ubuntu-calendar-app
cd ubuntu-calendar-app/tests/autopilot
autopilot3 run -v calendar_app.tests.test_dayview.TestDayView.test_show_next_days

10:52:26.230 INFO run:235 - Autopilot Source Version: 1.5.0
Autopilot Package Version: 1.5.0+15.04.20150226.1-0ubuntu1
Loading tests from: /home/nskaggs/projects/ubuntutouch/ubuntu-calendar-app/tests/autopilot

Tests running...
10:52:26.263 INFO _logging:40 - ************************************************************
10:52:26.263 INFO _logging:41 - Starting test calendar_app.tests.test_dayview.TestDayView.test_show_next_days
10:52:26.443 DEBUG __init__:97 - Copying .Xauthority to /tmp/tmp1l39_rur
10:52:26.443 DEBUG __init__:124 - Patched home to fake home directory /tmp/tmp1l39_rur
10:52:26.446 DEBUG __init__:150 - Restarted evolution daemons
10:52:26.446 INFO logging:45 - TestDayView: launch_test_local. Arguments (). Keyword arguments: {}.
10:52:26.447 WARNING base:52 - This function is deprecated. Use get_toolkit_launcher_command() instead.
10:52:26.477 INFO _launcher:373 - Attempting to launch application '/usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene' with arguments '/home/nskaggs/projects/ubuntutouch/ubuntu-calendar-app/calendar.qml' as a normal process
10:52:26.481 INFO _launcher:431 - Launching process: ['/usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene', '-testability', '/home/nskaggs/projects/ubuntutouch/ubuntu-calendar-app/calendar.qml']
10:52:28.139 INFO _launcher:544 - waiting for process to exit.
10:52:28.139 INFO _launcher:567 - Killing process 27413

(evolution-source-registry:27405): accounts-glib-WARNING **: Error initializing DB: attempt to write a readonly database

(evolution-source-registry:27405): accounts-glib-CRITICAL **: ag_manager_list: assertion 'AG_IS_MANAGER (manager)' failed

(evolution-source-registry:27405): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(evolution-source-registry:27405): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(evolution-source-registry:27405): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(evolution-source-registry:27405): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(evolution-source-registry:27449): accounts-glib-WARNING **: Error initializing DB: disk I/O error

(evolution-source-registry:27449): accounts-glib-CRITICAL **: ag_manager_list: assertion 'AG_IS_MANAGER (manager)' failed

(evolution-source-registry:27449): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(evolution-source-registry:27449): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(evolution-source-registry:27449): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(evolution-source-registry:27449): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
10:52:29.206 ERROR testresult:44 - ERROR: calendar_app.tests.test_dayview.TestDayView.test_show_next_days
10:52:29.206 ERROR testresult:44 - Binary attachment: "FailedTestScreenshot" (image/png)
10:52:29.206 ERROR testresult:44 - traceback: {{{
Traceback (most recent call last):
  File "/home/nskaggs/projects/ubuntutouch/ubuntu-calendar-app/tests/autopilot/calendar_app/tests/test_dayview.py", line 38, in setUp
    super(TestDayView, self).setUp()
  File "/home/nskaggs/projects/ubuntutouch/ubuntu-calendar-app/tests/autopilot/calendar_app/tests/__init__.py", line 159, in setUp
    self.app = calendar_app.CalendarApp(self.launcher(), self.test_type)
  File "/usr/lib/python3/dist-packages/autopilot/logging.py", line 46, in inner
    return f(instance, *args, **kwargs)
  File "/home/nskaggs/projects/ubuntutouch/ubuntu-calendar-app/tests/autopilot/calendar_app/tests/__init__.py", line 70, in launch_test_local
    emulator_base=ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase)
  File "/usr/lib/python3/dist-packages/autopilot/testcase.py", line 281, in launch_test_application
    return launcher.launch(application, arguments, **launch_args)
  File "/usr/lib/python3/dist-packages/autopilot/application/_launcher.py", line 384, in launch
    pid=process.pid
  File "/usr/lib/python3/dist-packages/autopilot/introspection/_search.py", line 183, in get_proxy_object_for_existing_process
    emulator_base
  File "/usr/lib/python3/dist-packages/autopilot/introspection/_search.py", line 439, in _make_proxy_object
    return proxy_class(cls_state, path, backends.Backend(dbus_address))
  File "/usr/lib/python3/dist-packages/ubuntuuitoolkit/_custom_proxy_objects/_common.py", line 77, in __init__
    self.pointing_device = get_pointing_device()
  File "/usr/lib/python3/dist-packages/ubuntuuitoolkit/_custom_proxy_objects/_common.py", line 49, in get_pointing_device
    return input.Pointer(device=input_device_class.create())
  File "/usr/lib/python3/dist-packages/autopilot/input/__init__.py", line 298, in create
    return _pick_backend(backends, preferred_backend)
  File "/usr/lib/python3/dist-packages/autopilot/utilities.py", line 62, in _pick_backend
    "Unable to instantiate any backends\n%s" % '\n'.join(failure_reasons))
RuntimeError: Unable to instantiate any backends
X11: DisplayConnectionError(':0', b'No protocol specified\n')
}}}
10:52:29.206 ERROR testresult:44 - traceback-1: {{{
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/autopilot/utilities.py", line 348, in action_on_test_end
    obj.on_test_end(test_instance)
  File "/usr/lib/python3/dist-packages/autopilot/input/_X11.py", line 496, in on_test_end
    move_mouse_to_screen(0)
  File "/usr/lib/python3/dist-packages/autopilot/display/__init__.py", line 71, in move_mouse_to_screen
    Mouse.create().move(x, y, False)
  File "/usr/lib/python3/dist-packages/autopilot/input/__init__.py", line 298, in create
    return _pick_backend(backends, preferred_backend)
  File "/usr/lib/python3/dist-packages/autopilot/utilities.py", line 62, in _pick_backend
    "Unable to instantiate any backends\n%s" % '\n'.join(failure_reasons))
RuntimeError: Unable to instantiate any backends
X11: DisplayConnectionError(':0', b'No protocol specified\n')
}}}
10:52:29.206 ERROR testresult:44 - process-return-code (/usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene): {{{
-15}}}
10:52:29.206 ERROR testresult:44 - process-stderr (/usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene): {{{
Qt: Session management error: None of the authentication protocols specified are supported
Testability driver loaded. Wire protocol version is "1.4".
<Unknown File>: Invalid empty URL
Fail to connect with sync monitor: QDBusError("org.freedesktop.DBus.Error.ServiceUnknown", "The name com.canonical.SyncMonitor was not provided by any .service files")
}}}
10:52:29.207 ERROR testresult:44 - /var/log/syslog: {{{
Mar 16 10:52:26 balloons kernel: [30193.302596] input: autopilot-finger as /devices/virtual/input/input40
}}}
10:52:29.207 ERROR testresult:44 - process-stdout (/usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene): {{{
}}}
======================================================================
ERROR: calendar_app.tests.test_dayview.TestDayView.test_show_next_days
----------------------------------------------------------------------
Binary content:
  FailedTestScreenshot (image/png)
Empty attachments:
  process-stdout (/usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene)

/var/log/syslog: {{{Mar 16 10:52:26 balloons kernel: [30193.302596] input: autopilot-finger as /devices/virtual/input/input40}}}
process-return-code (/usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene): {{{-15}}}
process-stderr (/usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene): {{{
Qt: Session management error: None of the authentication protocols specified are supported
Testability driver loaded. Wire protocol version is "1.4".
<Unknown File>: Invalid empty URL
Fail to connect with sync monitor: QDBusError("org.freedesktop.DBus.Error.ServiceUnknown", "The name com.canonical.SyncMonitor was not provided by any .service files")
}}}

test-log: {{{
10:52:26.443 DEBUG __init__:97 - Copying .Xauthority to /tmp/tmp1l39_rur
10:52:26.443 DEBUG __init__:124 - Patched home to fake home directory /tmp/tmp1l39_rur
10:52:26.446 DEBUG __init__:150 - Restarted evolution daemons
10:52:26.446 INFO logging:45 - TestDayView: launch_test_local. Arguments (). Keyword arguments: {}.
10:52:26.447 WARNING base:52 - This function is deprecated. Use get_toolkit_launcher_command() instead.
10:52:26.477 INFO _launcher:373 - Attempting to launch application '/usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene' with arguments '/home/nskaggs/projects/ubuntutouch/ubuntu-calendar-app/calendar.qml' as a normal process
10:52:26.481 INFO _launcher:431 - Launching process: ['/usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene', '-testability', '/home/nskaggs/projects/ubuntutouch/ubuntu-calendar-app/calendar.qml']
10:52:28.139 INFO _launcher:544 - waiting for process to exit.
10:52:28.139 INFO _launcher:567 - Killing process 27413
}}}

traceback-1: {{{
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/autopilot/utilities.py", line 348, in action_on_test_end
    obj.on_test_end(test_instance)
  File "/usr/lib/python3/dist-packages/autopilot/input/_X11.py", line 496, in on_test_end
    move_mouse_to_screen(0)
  File "/usr/lib/python3/dist-packages/autopilot/display/__init__.py", line 71, in move_mouse_to_screen
    Mouse.create().move(x, y, False)
  File "/usr/lib/python3/dist-packages/autopilot/input/__init__.py", line 298, in create
    return _pick_backend(backends, preferred_backend)
  File "/usr/lib/python3/dist-packages/autopilot/utilities.py", line 62, in _pick_backend
    "Unable to instantiate any backends\n%s" % '\n'.join(failure_reasons))
RuntimeError: Unable to instantiate any backends
X11: DisplayConnectionError(':0', b'No protocol specified\n')
}}}

Traceback (most recent call last):
  File "/home/nskaggs/projects/ubuntutouch/ubuntu-calendar-app/tests/autopilot/calendar_app/tests/test_dayview.py", line 38, in setUp
    super(TestDayView, self).setUp()
  File "/home/nskaggs/projects/ubuntutouch/ubuntu-calendar-app/tests/autopilot/calendar_app/tests/__init__.py", line 159, in setUp
    self.app = calendar_app.CalendarApp(self.launcher(), self.test_type)
  File "/usr/lib/python3/dist-packages/autopilot/logging.py", line 46, in inner
    return f(instance, *args, **kwargs)
  File "/home/nskaggs/projects/ubuntutouch/ubuntu-calendar-app/tests/autopilot/calendar_app/tests/__init__.py", line 70, in launch_test_local
    emulator_base=ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase)
  File "/usr/lib/python3/dist-packages/autopilot/testcase.py", line 281, in launch_test_application
    return launcher.launch(application, arguments, **launch_args)
  File "/usr/lib/python3/dist-packages/autopilot/application/_launcher.py", line 384, in launch
    pid=process.pid
  File "/usr/lib/python3/dist-packages/autopilot/introspection/_search.py", line 183, in get_proxy_object_for_existing_process
    emulator_base
  File "/usr/lib/python3/dist-packages/autopilot/introspection/_search.py", line 439, in _make_proxy_object
    return proxy_class(cls_state, path, backends.Backend(dbus_address))
  File "/usr/lib/python3/dist-packages/ubuntuuitoolkit/_custom_proxy_objects/_common.py", line 77, in __init__
    self.pointing_device = get_pointing_device()
  File "/usr/lib/python3/dist-packages/ubuntuuitoolkit/_custom_proxy_objects/_common.py", line 49, in get_pointing_device
    return input.Pointer(device=input_device_class.create())
  File "/usr/lib/python3/dist-packages/autopilot/input/__init__.py", line 298, in create
    return _pick_backend(backends, preferred_backend)
  File "/usr/lib/python3/dist-packages/autopilot/utilities.py", line 62, in _pick_backend
    "Unable to instantiate any backends\n%s" % '\n'.join(failure_reasons))
RuntimeError: Unable to instantiate any backends
X11: DisplayConnectionError(':0', b'No protocol specified\n')

Ran 1 test in 2.944s
FAILED (failures=1)

Related branches

Revision history for this message
Christopher Lee (veebers) wrote :

The culprit is this code (not taken verbatim):
from Xlib import display; display.Display()

I've since filed a bug against python3-xlib which can be found here:
 https://bugs.launchpad.net/ubuntu/+source/python-xlib/+bug/1432889

Once the issue is sovled we should see this error disappear

Revision history for this message
Cris Dywan (kalikiana) wrote :

I was hit by this and apparently to get the upgrade of python3-xlib which resolved the error for me.

Changed in autopilot:
status: New → Invalid
Revision history for this message
Leo Arias (elopio) wrote :

I think we need to bump the version of xlib in the control file.

Changed in autopilot:
status: Invalid → In Progress
assignee: nobody → Leo Arias (elopio)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:autopilot at revision 547, scheduled for release in autopilot, milestone 1.4

Changed in autopilot:
status: In Progress → Fix Committed
Changed in autopilot:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.