Installing snapd can hide dpkg prompts and make it look like it's stuck

Bug #1715012 reported by Andreas Hasenack
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ubuntu-advantage-tools (Ubuntu)
Fix Released
Medium
Andreas Hasenack

Bug Description

[Why]

The new upstream version has two changes only (https://github.com/CanonicalLtd/ubuntu-advantage-script/releases/tag/v9)
- fix for this bug plus unit tests for it
- test suite refactoring

Were it not for the second change, I would not be asking for a Feature Freeze Exception (UPDATE: see comment #9). This second change split one big test python script into multiple modules, one per feature. That makes it easier to write new tests.

That test refactoring alone incurred in this small change to the main script, to ease its unit testing:
-SERIES=$(lsb_release -cs)
+SERIES=${SERIES:-$(lsb_release -cs)}

And:

+KERNEL_VERSION=${KERNEL_VERSION:-$(uname -r)}
(...)
-KERNEL_VERSION=$(uname -r)

These are the changes in the main script:
https://github.com/CanonicalLtd/ubuntu-advantage-script/compare/v8...v9#diff-3614ddfe4ef6c3b7b4df10ed10ec3095

And the full diff between the two releases:
https://github.com/CanonicalLtd/ubuntu-advantage-script/compare/v8...v9

[Travis CI]

Upstream has travis setup to test each landing branch:
https://travis-ci.org/CanonicalLtd/ubuntu-advantage-script/

Those tests are using python 3.5, while artful has python 3.6. I have attached a test log run on artful and python 3.6.

[PPA with daily builds]
We also have a PPA setup with daily builds from a github mirror using a launchpad recipe: https://code.launchpad.net/~ahasenack/+recipe/ubuntu-advantage-script-daily

Here is the v9 artful build:
https://code.launchpad.net/~ahasenack/+archive/ubuntu/ubuntu-advantage-tools-devel/+build/13335242

[Bugfix test]

This package is meant for LTS releases only, so it doesn't do much in artful other than to say it's not supported there. But since we will want to SRU it to the LTS releases, attached is a log of the trusty upgrade and livepatch enabling, which is what this bug is about.

==========================================================================

From the upstream report at https://github.com/CanonicalLtd/ubuntu-advantage-script/issues/54:

I tried to enable livepatch on a trusty machine, but it got stuck:

ubuntu@61-b1:~$ sudo ubuntu-advantage enable-livepatch <redacted>
Installing missing dependency snapd...

Behind the scenes, what happened is that dpkg issued a prompt:

2228 pts/0 S+ 0:00 | \_ sudo ubuntu-advantage enable-livepatch redacted
2229 pts/0 S+ 0:00 | \_ /bin/sh -e /usr/bin/ubuntu-advantage enable-livepatch redacted
2236 pts/0 S+ 0:01 | \_ apt-get install -y snapd
3269 pts/0 S+ 0:00 | \_ /usr/bin/dpkg --status-fd 43 --configure liblzo2-2:amd64 libsystemd-journal0:amd64 linux-image-4.4.0-92-generic:amd64 linux-image-extra-4.4.0-92-generic:amd64 linux-image-generic-lts-xenial:amd64 linux-headers-4.4.0-92:all linux-headers-4.4.0-92-generic:amd64 linux-headers-generic-lts-xenial:amd64 linux-generic-lts-xenial:amd64 cgroup-lite:all squashfs-tools:amd64 systemd:amd64 snapd:amd64 thermald:amd64
3278 pts/0 S+ 0:00 | \_ /usr/bin/perl /var/lib/dpkg/info/linux-image-4.4.0-92-generic.postinst configure
3304 pts/0 S+ 0:00 | \_ run-parts --verbose --exit-on-error --arg=4.4.0-92-generic --arg=/boot/vmlinuz-4.4.0-92-generic /etc/kernel/postinst.d
11905 pts/0 S+ 0:00 | \_ /usr/bin/perl -w /usr/share/debconf/frontend /usr/sbin/update-grub-legacy-ec2
11911 pts/0 S+ 0:00 | \_ /bin/bash /usr/sbin/update-grub-legacy-ec2
12312 pts/0 S+ 0:00 | | \_ /bin/bash /usr/bin/ucf --debconf-ok --debconf-template grub/update_grub_changeprompt_threeway --three-way /tmp/filez4NBAU /var/run/grub/menu.lst
12362 pts/0 S+ 0:00 | \_ whiptail --backtitle Package configuration --title --output-fd 11 --nocancel --default-item keep the local version currently installed --menu A new version of /boot/grub/menu.lst is available, but the version installed currently has been locally modified. What would you like to do about menu.lst? 17 118 7 -- install the package maintainer's version keep the local version currently installed show the differences between the versions show a side-by-side difference between the versions show a 3-way difference between available versions do a 3-way merge between available versions (experimental) start a new shell to examine the situation
Hitting ENTER at the stuck screen accepted whatever was the default choice and moved on.

Note that this can happen in any Ubuntu release, not just trusty.

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

The new upstream version has two changes:
- fix for this bug
- splitting of one big test file into multiple smaller test modules

summary: - Installing snapd can hide dpkg prompts and make it look like it's stuck
+ [FFe] Installing snapd can hide dpkg prompts and make it look like it's
+ stuck
Revision history for this message
Andreas Hasenack (ahasenack) wrote : Re: [FFe] Installing snapd can hide dpkg prompts and make it look like it's stuck

git log v8..v9

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

Tox test run on py36 in artful

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

Build log on artful.

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

upgrade from release 8, the previous one.

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

enabling livepatch on trusty. Without this fix, it would hang in the "Installing missing dependency snapd... " step.

description: updated
description: updated
Revision history for this message
Iain Lane (laney) wrote :

Sure. Go for it.

Changed in ubuntu-advantage-tools (Ubuntu):
status: In Progress → New
Revision history for this message
Robie Basak (racb) wrote :

Based on this quote:

That test refactoring alone incurred in this small change to the main script, to ease its unit testing:
-SERIES=$(lsb_release -cs)
+SERIES=${SERIES:-$(lsb_release -cs)}

And:

+KERNEL_VERSION=${KERNEL_VERSION:-$(uname -r)}
(...)
-KERNEL_VERSION=$(uname -r)

It looks like this change is only for test dependency injection rather than any intended user-visible functional change. Wearing my core dev sponsoring hat, I don't think this would be considered a feature change, nor do I think my opinion would be controversial to the release team. So I don't think an FFe would be required for this. I think you should feel free to proceed without one.

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

Thanks Robie :)

summary: - [FFe] Installing snapd can hide dpkg prompts and make it look like it's
- stuck
+ Installing snapd can hide dpkg prompts and make it look like it's stuck
Changed in ubuntu-advantage-tools (Ubuntu):
status: New → In Progress
Changed in ubuntu-advantage-tools (Ubuntu):
status: In Progress → New
description: updated
Revision history for this message
Nish Aravamudan (nacc) wrote :

Sponsored.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubuntu-advantage-tools - 9

---------------
ubuntu-advantage-tools (9) artful; urgency=medium

  * New upstream release:
    - call apt-get with the non-interactive frontend variable set, and tell
      dpkg to keep the old config file by default should there be any prompts
      about that. (LP: #1715012)
    - split the one big test file into multiple smaller files, for better
      maintainability.

 -- Andreas Hasenack <email address hidden> Mon, 04 Sep 2017 15:15:58 -0300

Changed in ubuntu-advantage-tools (Ubuntu):
status: New → 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.