do-release-upgrade tries to install snaps even if it knows it can't reach the snapstore

Bug #1831933 reported by Dan Streetman on 2019-06-06
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
ubuntu-release-upgrader (Ubuntu)
Status tracked in Eoan
Bionic
Medium
Dan Streetman
Cosmic
Medium
Dan Streetman
Disco
Medium
Dan Streetman
Eoan
Medium
Brian Murray

Bug Description

[impact]

do-release-upgrade has a quirk that, if ubuntu-desktop and snapd are installed, tries to replace installed debs with snaps. To do this, it first, early in the upgrade process, checks the connectivity to the snap store. If that fails, it notifies the user and asks if upgrade should be aborted. If the user says no (or if the user is upgrading in non-interactive mode) then upgrade continues. At the end, the upgrade tries to replace some installed debs with snaps, even if it already knows that it can't connect to the snap store, from the earlier connectivity check.

This results in a minor annoyance, of extra time trying to install snaps when there is no possibility of it working, as well as 'error' messages printed:

Installing snap gnome-3-26-1604
error: cannot install "gnome-3-26-1604": Post
https://api.snapcraft.io/v2/snaps/refresh: dial tcp 91.189.92.38:443:
connect: connection refused

Installing snap gtk-common-themes
error: cannot install "gtk-common-themes": Post
https://api.snapcraft.io/v2/snaps/refresh: dial tcp 91.189.92.38:443:
connect: connection refused

Installing snap gnome-calculator
error: cannot install "gnome-calculator": Post
https://api.snapcraft.io/v2/snaps/refresh: dial tcp 91.189.92.19:443:
connect: connection refused

Installing snap gnome-characters
error: cannot install "gnome-characters": Post
https://api.snapcraft.io/v2/snaps/refresh: dial tcp 91.189.92.38:443:
connect: connection refused

Installing snap gnome-logs
error: cannot install "gnome-logs": Post
https://api.snapcraft.io/v2/snaps/refresh: dial tcp 91.189.92.19:443:
connect: connection refused

Installing snap gnome-system-monitor
error: cannot install "gnome-system-monitor": Post
https://api.snapcraft.io/v2/snaps/refresh: dial tcp 91.189.92.38:443:
connect: connection refused

[test case]

install a xenial system in a VM and block (only) access to the snap store, e.g:

$ virsh nwfilter-dumpxml block-snapstore
<filter name='block-snapstore' chain='root'>
  <uuid>36dbe3e7-4085-4da8-bc9b-f56f2029431a</uuid>
  <rule action='reject' direction='inout' priority='0'>
    <ip dstipaddr='91.189.92.19'/>
  </rule>
  <rule action='reject' direction='inout' priority='0'>
    <ip dstipaddr='91.189.92.38'/>
  </rule>
  <rule action='reject' direction='inout' priority='0'>
    <ip dstipaddr='91.189.92.41'/>
  </rule>
  <rule action='reject' direction='inout' priority='0'>
    <ip dstipaddr='91.189.92.20'/>
  </rule>
  <rule action='reject' direction='inout' priority='0'>
    <ip srcipaddr='91.189.92.19'/>
  </rule>
  <rule action='reject' direction='inout' priority='0'>
    <ip srcipaddr='91.189.92.38'/>
  </rule>
  <rule action='reject' direction='inout' priority='0'>
    <ip srcipaddr='91.189.92.41'/>
  </rule>
  <rule action='reject' direction='inout' priority='0'>
    <ip srcipaddr='91.189.92.20'/>
  </rule>
</filter>

and add this inside a VM's <interface> xml:
      <filterref filter='block-snapstore'/>

Then in the VM, make sure to install both ubuntu-desktop and snapd, and then run do-release-upgrade. During the upgrade it should prompt due to the failed connectivity to the snapstore; tell it to continue the upgrade. At the end, the above 'error' messages should print out, when the snaps are attempted to be installed.

[regression potential]

any regression would likely involve incorrectly not installing snaps.

[other info]

note that u-r-u usually contains extra changes not listed in the changelog, as before uploading the 'pre-build.sh' script should be run, which makes various changes and runs tests on the package. Specifically for these uploads, these files are changed in the upload but not mentioned in the changelog are:

data/mirrors.cfg
DistUpgrade/apt_btrfs_snapshot.py
DistUpgrade/DistUpgradeVersion.py
tests/data-sources-list-test/sources.list

all these changes are expected from the current operation of the pre-build.sh script and existing policy is the changes do not need to be mentioned in the changelog, per bdmurray from irc:
https://irclogs.ubuntu.com/2019/06/19/%23ubuntu-release.txt

[17:06] <ddstreet> bdmurray for lp #1831933 would you prefer if i attach debdiffs (or open MPs) or just upload to the sru queues myself?
[17:06] <ubot5> Launchpad bug 1831933 in ubuntu-release-upgrader (Ubuntu Disco) "do-release-upgrade tries to install snaps even if it knows it can't reach the snapstore" [Undecided,New] https://launchpad.net/bugs/1831933
[17:15] <bdmurray> ddstreet: uploading to the queues themselves is fine with me but you'll also want to run pre-build.sh so mirrors.cfg, DistUpgradeVersion.py, and the demotions files get updated. Its not necessary to document those changes in the changelog though.
[17:18] <ddstreet> ack, thanks will do

Related branches

Dan Streetman (ddstreet) wrote :
tags: added: sts
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in ubuntu-release-upgrader (Ubuntu):
status: New → Confirmed
tags: added: patch
Changed in ubuntu-release-upgrader (Ubuntu):
assignee: nobody → Brian Murray (brian-murray)
importance: Undecided → Medium
status: Confirmed → In Progress
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubuntu-release-upgrader - 1:19.10.7

---------------
ubuntu-release-upgrader (1:19.10.7) eoan; urgency=medium

  [ Dan Streetman ]
  * DistUpgrade/DistUpgradeQuirks.py: only try to install snaps if snapstore
    is reachable. (LP: #1831933)

 -- Brian Murray <email address hidden> Mon, 17 Jun 2019 09:49:36 -0700

Changed in ubuntu-release-upgrader (Ubuntu):
status: In Progress → Fix Released
Dan Streetman (ddstreet) on 2019-06-19
Changed in ubuntu-release-upgrader (Ubuntu Disco):
assignee: nobody → Dan Streetman (ddstreet)
Changed in ubuntu-release-upgrader (Ubuntu Cosmic):
assignee: nobody → Dan Streetman (ddstreet)
Changed in ubuntu-release-upgrader (Ubuntu Bionic):
assignee: nobody → Dan Streetman (ddstreet)
Changed in ubuntu-release-upgrader (Ubuntu Disco):
importance: Undecided → Medium
Changed in ubuntu-release-upgrader (Ubuntu Cosmic):
importance: Undecided → Medium
Changed in ubuntu-release-upgrader (Ubuntu Bionic):
importance: Undecided → Medium
Changed in ubuntu-release-upgrader (Ubuntu Disco):
status: New → In Progress
Changed in ubuntu-release-upgrader (Ubuntu Cosmic):
status: New → In Progress
Changed in ubuntu-release-upgrader (Ubuntu Bionic):
status: New → In Progress

Hello Dan, or anyone else affected,

Accepted ubuntu-release-upgrader into disco-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/ubuntu-release-upgrader/1:19.04.16.6 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-disco to verification-done-disco. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-disco. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in ubuntu-release-upgrader (Ubuntu Disco):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-disco
Łukasz Zemczak (sil2100) wrote :

Hello Dan, or anyone else affected,

Accepted ubuntu-release-upgrader into cosmic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/ubuntu-release-upgrader/1:18.10.11.9 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-cosmic to verification-done-cosmic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-cosmic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in ubuntu-release-upgrader (Ubuntu Cosmic):
status: In Progress → Fix Committed
tags: added: verification-needed-cosmic

An upload of ubuntu-release-upgrader to bionic-proposed has been rejected from the upload queue for the following reason: "Unrelated changes in upload, not mentioned in the upload. Even though they do not seem like they should have impact, please re-upload making sure no unnecessary local changes are included.".

Dan Streetman (ddstreet) on 2019-06-24
description: updated

Hello Dan, or anyone else affected,

Accepted ubuntu-release-upgrader into bionic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/ubuntu-release-upgrader/1:18.04.34 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-bionic to verification-done-bionic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-bionic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in ubuntu-release-upgrader (Ubuntu Bionic):
status: In Progress → Fix Committed
tags: added: verification-needed-bionic
Dan Streetman (ddstreet) wrote :

xenial->bionic upgrade using 'do-release-upgrade' without params (and snapstore ip addrs blocked) did prompt that the snapstore wasn't available, and then after upgrade tried to install snaps:
Checking for installed snaps
No snaps are installed yet. Try 'snap install hello-world'.

Installing snap gnome-3-26-1604
error: unable to contact snap store
...

the same upgrade using 'do-release-upgrade -p' also prompted that the snapstore wasn't available, but after upgrade did not try to install any snaps.

tags: added: verification-done-bionic
removed: verification-needed-bionic
Dan Streetman (ddstreet) wrote :

note that during bionic->cosmic upgrade test, I noted that the lxd package upgrade fails quite loudly without snapstore access; and it claims lxd will be unusable after the upgrade. Since that is a separate issue from this bug, I opened bug 1834501 to track that, and I'll continue to verify the fix for this after removing the lxd package from the testbed.

Dan Streetman (ddstreet) wrote :

bionic->cosmic testing, after doing:

$ sudo apt purge lxd lxd-client

testing using 'do-release-upgrade' prompts that the snapstore isn't reachable, and then after upgrade still tries to install snaps.

testing using 'do-release-upgrade -p' prompts that snapstore isn't reachable, and then does not try to install snaps after upgrade.

tags: added: verification-done-cosmic
removed: verification-needed-cosmic
Dan Streetman (ddstreet) wrote :

cosmic->disco testing, same as last comment (with no lxd installed), has the same result; do-release-upgrade tries to install snaps after upgrade, while do-release-upgrade -p does not.

tags: added: verification-done verification-done-disco
removed: verification-needed verification-needed-disco
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubuntu-release-upgrader - 1:19.04.16.6

---------------
ubuntu-release-upgrader (1:19.04.16.6) disco; urgency=medium

  * DistUpgrade/DistUpgradeQuirks.py: only try to install snaps if snapstore
    is reachable. (LP: #1831933)

 -- Dan Streetman <email address hidden> Wed, 19 Jun 2019 12:49:56 -0400

Changed in ubuntu-release-upgrader (Ubuntu Disco):
status: Fix Committed → Fix Released

The verification of the Stable Release Update for ubuntu-release-upgrader has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubuntu-release-upgrader - 1:18.10.11.9

---------------
ubuntu-release-upgrader (1:18.10.11.9) cosmic; urgency=medium

  * DistUpgrade/DistUpgradeQuirks.py: only try to install snaps if snapstore
    is reachable. (LP: #1831933)

 -- Dan Streetman <email address hidden> Wed, 19 Jun 2019 12:49:56 -0400

Changed in ubuntu-release-upgrader (Ubuntu Cosmic):
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubuntu-release-upgrader - 1:18.04.34

---------------
ubuntu-release-upgrader (1:18.04.34) bionic; urgency=medium

  * DistUpgrade/DistUpgradeQuirks.py: only try to install snaps if snapstore
    is reachable. (LP: #1831933)

 -- Dan Streetman <email address hidden> Wed, 19 Jun 2019 12:49:56 -0400

Changed in ubuntu-release-upgrader (Ubuntu Bionic):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers