[Bug 1848829] Re: distribution upgrade failed due pip install of distro-info

Brian Murray 1848829 at bugs.launchpad.net
Tue Nov 17 22:34:54 UTC 2020


** Description changed:

+ [Impact]
+ Users with a python pip installation of distro-info are not able to upgrade from Ubuntu 18.04 LTS to Ubuntu 20.04 LTS because the pip version of distro-info does not contain information which the Ubuntu version of the package does. More generally, locally installed python packages can interfere with the release upgrade process due to how the process is started.
+ 
+ [Test Case]
+ The pip version of distro-info which is available Ubuntu 20.04 LTS does not have this problem or is not installable as the distro-info package is a greater version, so this isn't testable there however a regression test should be fine.
+ 
+ 1) on an Ubuntu 18.04 LTS system install pip
+ 2) pip install distro-info
+ 3) Run do-release-upgrade
+ 4) Observe a crash with a Traceback re distro-info and get_all
+ 
+ With the versin of the release-upgrader from -proposed you will not
+ experience such a crash.
+ 
+ [Regression Potential]
+ The change is to start python3 with "-s" which will not add the user side directorty to sys.path. This is a safe change but we should still ensure that upgrades succesfully complete to the next release of Ubuntu. Which should also check and ensure that all packages and snaps are updated.
+ 
+ 
+ Original Description
+ --------------------
  sudo update-manager -d
- [sudo] password for frazier: 
- 
- (update-manager:30033): Gtk-WARNING **: 20:09:59.851: Theme parsing
- error: gtk.css:7:26: The style property GtkRange:slider-width is
- deprecated and shouldn't be used anymore. It will be removed in a future
- version
- 
- (update-manager:30033): Gtk-WARNING **: 20:09:59.851: Theme parsing
- error: gtk.css:8:26: The style property GtkRange:stepper-size is
- deprecated and shouldn't be used anymore. It will be removed in a future
- version
- 
- (update-manager:30033): Gtk-WARNING **: 20:09:59.851: Theme parsing error: gtk.css:45:6: Expected a valid selector
- Checking for a new Ubuntu release
- /usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeFetcher.py:23: 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.
-   from gi.repository import Gtk, Gdk
- 
- (do-release-upgrade:2867): Gtk-WARNING **: 20:10:25.756: Theme parsing
- error: gtk.css:7:26: The style property GtkRange:slider-width is
- deprecated and shouldn't be used anymore. It will be removed in a future
- version
- 
- (do-release-upgrade:2867): Gtk-WARNING **: 20:10:25.756: Theme parsing
- error: gtk.css:8:26: The style property GtkRange:stepper-size is
- deprecated and shouldn't be used anymore. It will be removed in a future
- version
- 
- (do-release-upgrade:2867): Gtk-WARNING **: 20:10:25.756: Theme parsing error: gtk.css:45:6: Expected a valid selector
- /usr/lib/python3/dist-packages/DistUpgrade/ReleaseNotesViewerWebkit.py:33: PyGIWarning: WebKit2 was imported without specifying a version first. Use gi.require_version('WebKit2', '4.0') before import to ensure that the right version gets loaded.
-   from gi.repository import WebKit2 as WebKit
- 
- (WebKitWebProcess:2883): Gtk-WARNING **: 20:10:25.886: Theme parsing error: gtk.css:45:6: Expected a valid selector
- authenticate 'eoan.tar.gz' against 'eoan.tar.gz.gpg' 
- extracting 'eoan.tar.gz'
- 
- (eoan:2867): Gtk-WARNING **: 20:10:31.210: Theme parsing error:
- gtk.css:7:26: The style property GtkRange:slider-width is deprecated and
- shouldn't be used anymore. It will be removed in a future version
- 
- (eoan:2867): Gtk-WARNING **: 20:10:31.210: Theme parsing error:
- gtk.css:8:26: The style property GtkRange:stepper-size is deprecated and
- shouldn't be used anymore. It will be removed in a future version
+ [sudo] password for frazier:
  
  (eoan:2867): Gtk-WARNING **: 20:10:31.210: Theme parsing error: gtk.css:45:6: Expected a valid selector
  Traceback (most recent call last):
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 802, in _prepare_snap_replacement_data
-     di.version('%s' % self.controller.fromDist).split()[0]
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 802, in _prepare_snap_replacement_data
+     di.version('%s' % self.controller.fromDist).split()[0]
  AttributeError: 'UbuntuDistroInfo' object has no attribute 'version'
  
  During handling of the above exception, another exception occurred:
  
  Traceback (most recent call last):
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/eoan", line 8, in <module>
-     sys.exit(main())
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeMain.py", line 238, in main
-     if app.run():
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeController.py", line 2084, in run
-     return self.fullUpgrade()
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeController.py", line 1921, in fullUpgrade
-     if not self.doPostInitialUpdate():
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeController.py", line 927, in doPostInitialUpdate
-     self.quirks.run("PostInitialUpdate")
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 97, in run
-     func()
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 129, in eoanPostInitialUpdate
-     self._calculateSnapSizeRequirements()
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 459, in _calculateSnapSizeRequirements
-     self._prepare_snap_replacement_data()
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 808, in _prepare_snap_replacement_data
-     (r.version for r in di.get_all("object")
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/eoan", line 8, in <module>
+     sys.exit(main())
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeMain.py", line 238, in main
+     if app.run():
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeController.py", line 2084, in run
+     return self.fullUpgrade()
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeController.py", line 1921, in fullUpgrade
+     if not self.doPostInitialUpdate():
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeController.py", line 927, in doPostInitialUpdate
+     self.quirks.run("PostInitialUpdate")
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 97, in run
+     func()
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 129, in eoanPostInitialUpdate
+     self._calculateSnapSizeRequirements()
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 459, in _calculateSnapSizeRequirements
+     self._prepare_snap_replacement_data()
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 808, in _prepare_snap_replacement_data
+     (r.version for r in di.get_all("object")
  AttributeError: 'UbuntuDistroInfo' object has no attribute 'get_all'
  Error in sys.excepthook:
  Traceback (most recent call last):
-   File "/usr/lib/python3/dist-packages/problem_report.py", line 477, in add_to_existing
-     self.write(f)
-   File "/usr/lib/python3/dist-packages/problem_report.py", line 430, in write
-     block = f.read(1048576)
-   File "/usr/lib/python3.7/codecs.py", line 322, in decode
-     (result, consumed) = self._buffer_decode(data, self.errors, final)
+   File "/usr/lib/python3/dist-packages/problem_report.py", line 477, in add_to_existing
+     self.write(f)
+   File "/usr/lib/python3/dist-packages/problem_report.py", line 430, in write
+     block = f.read(1048576)
+   File "/usr/lib/python3.7/codecs.py", line 322, in decode
+     (result, consumed) = self._buffer_decode(data, self.errors, final)
  UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
  
  Original exception was:
  Traceback (most recent call last):
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 802, in _prepare_snap_replacement_data
-     di.version('%s' % self.controller.fromDist).split()[0]
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 802, in _prepare_snap_replacement_data
+     di.version('%s' % self.controller.fromDist).split()[0]
  AttributeError: 'UbuntuDistroInfo' object has no attribute 'version'
  
  During handling of the above exception, another exception occurred:
  
  Traceback (most recent call last):
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/eoan", line 8, in <module>
-     sys.exit(main())
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeMain.py", line 238, in main
-     if app.run():
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeController.py", line 2084, in run
-     return self.fullUpgrade()
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeController.py", line 1921, in fullUpgrade
-     if not self.doPostInitialUpdate():
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeController.py", line 927, in doPostInitialUpdate
-     self.quirks.run("PostInitialUpdate")
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 97, in run
-     func()
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 129, in eoanPostInitialUpdate
-     self._calculateSnapSizeRequirements()
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 459, in _calculateSnapSizeRequirements
-     self._prepare_snap_replacement_data()
-   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 808, in _prepare_snap_replacement_data
-     (r.version for r in di.get_all("object")
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/eoan", line 8, in <module>
+     sys.exit(main())
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeMain.py", line 238, in main
+     if app.run():
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeController.py", line 2084, in run
+     return self.fullUpgrade()
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeController.py", line 1921, in fullUpgrade
+     if not self.doPostInitialUpdate():
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeController.py", line 927, in doPostInitialUpdate
+     self.quirks.run("PostInitialUpdate")
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 97, in run
+     func()
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 129, in eoanPostInitialUpdate
+     self._calculateSnapSizeRequirements()
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 459, in _calculateSnapSizeRequirements
+     self._prepare_snap_replacement_data()
+   File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 808, in _prepare_snap_replacement_data
+     (r.version for r in di.get_all("object")
  AttributeError: 'UbuntuDistroInfo' object has no attribute 'get_all'
  
- ProblemType: Bug
- DistroRelease: Ubuntu 19.04
+ ProblemType: BugDistroRelease: Ubuntu 19.04
  Package: ubuntu-release-upgrader-core 1:19.04.16.7
  ProcVersionSignature: Ubuntu 5.0.0-32.34-generic 5.0.21
  Uname: Linux 5.0.0-32-generic x86_64
  ApportVersion: 2.20.10-0ubuntu27.1
  Architecture: amd64
  CrashDB: ubuntu
  CurrentDesktop: Unity:Unity7:ubuntu
  Date: Fri Oct 18 20:06:04 2019
  InstallationDate: Installed on 2018-05-07 (529 days ago)
  InstallationMedia: Ubuntu 18.04 LTS "Bionic Beaver" - Release amd64 (20180426)
- PackageArchitecture: all
- SourcePackage: ubuntu-release-upgrader
+ PackageArchitecture: allSourcePackage: ubuntu-release-upgrader
  Symptom: ubuntu-release-upgrader
  UpgradeStatus: Upgraded to disco on 2019-10-19 (0 days ago)
  VarLogDistupgradeAptlog:
-  Log time: 2019-10-18 20:02:43.946172
-  Log time: 2019-10-18 20:02:52.524168
+  Log time: 2019-10-18 20:02:43.946172
+  Log time: 2019-10-18 20:02:52.524168
  VarLogDistupgradeTermlog:

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to ubuntu-release-upgrader in
Ubuntu.
https://bugs.launchpad.net/bugs/1848829

Title:
  distribution upgrade failed due pip install of distro-info

Status in ubuntu-release-upgrader package in Ubuntu:
  Fix Released
Status in ubuntu-release-upgrader source package in Focal:
  In Progress
Status in ubuntu-release-upgrader source package in Groovy:
  In Progress
Status in ubuntu-release-upgrader source package in Hirsute:
  Fix Released

Bug description:
  [Impact]
  Users with a python pip installation of distro-info are not able to upgrade from Ubuntu 18.04 LTS to Ubuntu 20.04 LTS because the pip version of distro-info does not contain information which the Ubuntu version of the package does. More generally, locally installed python packages can interfere with the release upgrade process due to how the process is started.

  [Test Case]
  The pip version of distro-info which is available Ubuntu 20.04 LTS does not have this problem or is not installable as the distro-info package is a greater version, so this isn't testable there however a regression test should be fine.

  1) on an Ubuntu 18.04 LTS system install pip
  2) pip install distro-info
  3) Run do-release-upgrade
  4) Observe a crash with a Traceback re distro-info and get_all

  With the versin of the release-upgrader from -proposed you will not
  experience such a crash.

  [Regression Potential]
  The change is to start python3 with "-s" which will not add the user side directorty to sys.path. This is a safe change but we should still ensure that upgrades succesfully complete to the next release of Ubuntu. Which should also check and ensure that all packages and snaps are updated.

  
  Original Description
  --------------------
  sudo update-manager -d
  [sudo] password for frazier:

  (eoan:2867): Gtk-WARNING **: 20:10:31.210: Theme parsing error: gtk.css:45:6: Expected a valid selector
  Traceback (most recent call last):
    File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 802, in _prepare_snap_replacement_data
      di.version('%s' % self.controller.fromDist).split()[0]
  AttributeError: 'UbuntuDistroInfo' object has no attribute 'version'

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/tmp/ubuntu-release-upgrader-aue69nj7/eoan", line 8, in <module>
      sys.exit(main())
    File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeMain.py", line 238, in main
      if app.run():
    File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeController.py", line 2084, in run
      return self.fullUpgrade()
    File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeController.py", line 1921, in fullUpgrade
      if not self.doPostInitialUpdate():
    File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeController.py", line 927, in doPostInitialUpdate
      self.quirks.run("PostInitialUpdate")
    File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 97, in run
      func()
    File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 129, in eoanPostInitialUpdate
      self._calculateSnapSizeRequirements()
    File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 459, in _calculateSnapSizeRequirements
      self._prepare_snap_replacement_data()
    File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 808, in _prepare_snap_replacement_data
      (r.version for r in di.get_all("object")
  AttributeError: 'UbuntuDistroInfo' object has no attribute 'get_all'
  Error in sys.excepthook:
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/problem_report.py", line 477, in add_to_existing
      self.write(f)
    File "/usr/lib/python3/dist-packages/problem_report.py", line 430, in write
      block = f.read(1048576)
    File "/usr/lib/python3.7/codecs.py", line 322, in decode
      (result, consumed) = self._buffer_decode(data, self.errors, final)
  UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte

  Original exception was:
  Traceback (most recent call last):
    File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 802, in _prepare_snap_replacement_data
      di.version('%s' % self.controller.fromDist).split()[0]
  AttributeError: 'UbuntuDistroInfo' object has no attribute 'version'

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/tmp/ubuntu-release-upgrader-aue69nj7/eoan", line 8, in <module>
      sys.exit(main())
    File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeMain.py", line 238, in main
      if app.run():
    File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeController.py", line 2084, in run
      return self.fullUpgrade()
    File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeController.py", line 1921, in fullUpgrade
      if not self.doPostInitialUpdate():
    File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeController.py", line 927, in doPostInitialUpdate
      self.quirks.run("PostInitialUpdate")
    File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 97, in run
      func()
    File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 129, in eoanPostInitialUpdate
      self._calculateSnapSizeRequirements()
    File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 459, in _calculateSnapSizeRequirements
      self._prepare_snap_replacement_data()
    File "/tmp/ubuntu-release-upgrader-aue69nj7/DistUpgrade/DistUpgradeQuirks.py", line 808, in _prepare_snap_replacement_data
      (r.version for r in di.get_all("object")
  AttributeError: 'UbuntuDistroInfo' object has no attribute 'get_all'

  ProblemType: BugDistroRelease: Ubuntu 19.04
  Package: ubuntu-release-upgrader-core 1:19.04.16.7
  ProcVersionSignature: Ubuntu 5.0.0-32.34-generic 5.0.21
  Uname: Linux 5.0.0-32-generic x86_64
  ApportVersion: 2.20.10-0ubuntu27.1
  Architecture: amd64
  CrashDB: ubuntu
  CurrentDesktop: Unity:Unity7:ubuntu
  Date: Fri Oct 18 20:06:04 2019
  InstallationDate: Installed on 2018-05-07 (529 days ago)
  InstallationMedia: Ubuntu 18.04 LTS "Bionic Beaver" - Release amd64 (20180426)
  PackageArchitecture: allSourcePackage: ubuntu-release-upgrader
  Symptom: ubuntu-release-upgrader
  UpgradeStatus: Upgraded to disco on 2019-10-19 (0 days ago)
  VarLogDistupgradeAptlog:
   Log time: 2019-10-18 20:02:43.946172
   Log time: 2019-10-18 20:02:52.524168
  VarLogDistupgradeTermlog:

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/1848829/+subscriptions



More information about the foundations-bugs mailing list