Comment 106 for bug 1990450

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

I mistakenly released this for xenial without noticing there are DEP8 errors in that ubuntu release. For some reason, they were not added as a comment to this bug, I suppose it has something to do with xenial being very much out of standard support.

In any case, the errors are:
256s autopkgtest [13:46:29]: test nose-tests: [-----------------------
256s
256s ** (nosetests3:7312): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
256s /tmp/autopkgtest.cAx6Rc/build.PMT/src/UpdateManager/Dialogs.py:25: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
256s from gi.repository import Gtk
261s ................................................./tmp/autopkgtest.cAx6Rc/build.PMT/src/tests/../UpdateManager/Dialogs.py:195:1: E302 expected 2 blank lines, found 1
261s /tmp/autopkgtest.cAx6Rc/build.PMT/src/tests/../UpdateManager/UpdateManager.py:234:80: E501 line too long (99 > 79 characters)
269s F......E...E.............................
269s ======================================================================
269s ERROR: test_no_stop_no_updates (test_stop_update.TestStopUpdate)
269s ----------------------------------------------------------------------
269s Traceback (most recent call last):
269s File "/tmp/autopkgtest.cAx6Rc/build.PMT/src/tests/test_stop_update.py", line 34, in test_no_stop_no_updates
269s cancelled_update=False)
269s File "/tmp/autopkgtest.cAx6Rc/build.PMT/src/UpdateManager/UpdateManager.py", line 279, in _make_available_pane
269s return HWEUpgradeDialog(self)
269s NameError: name 'HWEUpgradeDialog' is not defined
269s
269s ======================================================================
269s ERROR: test_error_no_updates (test_update_error.TestUpdateManagerError)
269s ----------------------------------------------------------------------
269s Traceback (most recent call last):
269s File "/tmp/autopkgtest.cAx6Rc/build.PMT/src/tests/test_update_error.py", line 31, in test_error_no_updates
269s error_occurred=True)
269s File "/tmp/autopkgtest.cAx6Rc/build.PMT/src/UpdateManager/UpdateManager.py", line 279, in _make_available_pane
269s return HWEUpgradeDialog(self)
269s NameError: name 'HWEUpgradeDialog' is not defined
269s
269s ======================================================================
269s FAIL: test_pep8_clean (test_pep8.TestPep8Clean)
269s ----------------------------------------------------------------------
269s Traceback (most recent call last):
269s File "/tmp/autopkgtest.cAx6Rc/build.PMT/src/tests/test_pep8.py", line 33, in test_pep8_clean
269s self.assertEqual(0, ret_code)
269s AssertionError: 0 != 1
269s
269s ----------------------------------------------------------------------
269s Ran 90 tests in 12.808s

The pep8 one doesn't concern me, but the missing HWEUpgradeDialog does. This was introduced in 16.04.18, and indeed is not defined anywhere else in the code.

It was also not seen in the verification, meaning some specific event or situation needs to exist for that code path to be traversed.

To trigger that code, one has to:
a) apply all available updates
b) not be in a "needs reboot" state
c) configure update-manager to not tell you about a new LTS being available

Then we see the crash, and a bit earlier than in the test actually:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/UpdateManager/backend/InstallBackendAptdaemon.py", line 248, in _on_finished
    trans_failed=trans_failed)
  File "/usr/lib/python3/dist-packages/UpdateManager/backend/__init__.py", line 95, in _action_done
    self.window_main.start_available(is_cancelled_update)
  File "/usr/lib/python3/dist-packages/UpdateManager/UpdateManager.py", line 228, in start_available
    cancelled_update, error_occurred)
  File "/usr/lib/python3/dist-packages/UpdateManager/UpdateManager.py", line 278, in _make_available_pane
    elif self.hwe_replacement_packages:
AttributeError: 'UpdateManager' object has no attribute 'hwe_replacement_packages'