Comment 0 for bug 1831933

Revision history for this message
Dan Streetman (ddstreet) wrote :

[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.