Unattended-upgrades crashes in adjusting candidates in 1.2ubuntu1 version

Bug #1775307 reported by Balint Reczey on 2018-06-06
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
unattended-upgrades (Ubuntu)
Undecided
Unassigned
Xenial
Undecided
Unassigned
Bionic
Undecided
Unassigned

Bug Description

[Impact]

 * Unattended-upgrades fails to install updates when adjusting candidates is needed.

[Test Case]

Note that only 1.2ubuntu1 is affected. Earlier releases either did not crash or did not adjust candidates due to LP: #1775292. To reproduce the crash Cosmic's u-u 1.2ubuntu1 needs to be installed.

 * Run sudo apt update && sudo unattended-upgrade --dry-run --verbose --debug
 * Observe no line with "adjusting candidate version: " or a crash with buggy u-u versions
...
adjusting candidate version: zfs-initramfs=0.7.5-1ubuntu15
adjusting candidate version: zfs-test=0.7.5-1ubuntu15
adjusting candidate version: zfs-zed=0.7.5-1ubuntu15
adjusting candidate version: zfsutils-linux=0.7.5-1ubuntu15
Traceback (most recent call last):
  File "/usr/bin/unattended-upgrade", line 1928, in <module>
    sys.exit(main(options))
  File "/usr/bin/unattended-upgrade", line 1554, in main
    allowed_origins=allowed_origins)
  File "/usr/bin/unattended-upgrade", line 122, in __init__
    apt.Cache.__init__(self, rootdir=rootdir)
  File "/usr/lib/python3/dist-packages/apt/cache.py", line 130, in __init__
    self.open(progress)
  File "/usr/bin/unattended-upgrade", line 152, in open
    self.adjust_candidates()
  File "/usr/bin/unattended-upgrade", line 161, in adjust_candidates
    for pkgname, candidate in self._get_candidates_to_adjust():
ValueError: too many values to unpack (expected 2) * Install fixed u-u version

 * Run sudo unattended-upgrade --dry-run --verbose --debug
 * Observe lines "adjusting candidate version: " and no crash

[Regression Potential]

 * Unattended-upgrade may crash when adjusting candidates preventing upgrades to be installed

Balint Reczey (rbalint) on 2018-06-07
description: updated
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package unattended-upgrades - 1.3ubuntu3

---------------
unattended-upgrades (1.3ubuntu3) cosmic; urgency=medium

  * Stop rewriting test apt.conf in test_untrusted.py.
    This fixes overwriting Unattended-Upgrade::OnlyOnACPower "false" accidentally
    and breaking the build.

 -- Balint Reczey <email address hidden> Tue, 19 Jun 2018 21:24:40 +0200

Changed in unattended-upgrades (Ubuntu):
status: New → Fix Released

Hello Balint, or anyone else affected,

Accepted unattended-upgrades into bionic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/unattended-upgrades/1.1ubuntu1.18.04.1 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!

Changed in unattended-upgrades (Ubuntu Bionic):
status: New → Fix Committed
tags: added: verification-needed verification-needed-bionic
Balint Reczey (rbalint) wrote :
Download full text (5.7 KiB)

Verified with unattended-upgrades 1.1ubuntu1.18.04.1.

Log:

root@bb-uu-fixed:~# dpkg -l unattended-upgrades | cat
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-===================-==================-============-===========================================
ii unattended-upgrades 1.1ubuntu1.18.04.1 all automatic installation of security upgrades
root@bb-uu-fixed:~# apt update && unattended-upgrade --dry-run --verbose
Hit:1 http://archive.ubuntu.com/ubuntu bionic-proposed InRelease
Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease
Hit:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:4 http://security.ubuntu.com/ubuntu bionic-security InRelease
Hit:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
23 packages can be upgraded. Run 'apt list --upgradable' to see them.
Initial blacklisted packages:
Initial whitelisted packages:
Starting unattended upgrades script
Allowed origins are: o=Ubuntu,a=bionic, o=Ubuntu,a=bionic-security, o=UbuntuESM,a=bionic
Option --dry-run given, *not* performing real actions
Packages that will be upgraded: libgcrypt20 libssl1.0.0 libssl1.1 openssl
Writing dpkg log to /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
/usr/bin/dpkg --status-fd 9 --no-triggers --unpack --auto-deconfigure /var/cache/apt/archives/libgcrypt20_1.8.1-4ubuntu1.1_amd64.deb
/usr/bin/dpkg --status-fd 9 --no-triggers --configure libgcrypt20:amd64
/usr/bin/dpkg --status-fd 9 --configure --pending
Preconfiguring packages ...
/usr/bin/dpkg --status-fd 9 --no-triggers --unpack --auto-deconfigure /var/cache/apt/archives/libssl1.0.0_1.0.2n-1ubuntu5.1_amd64.deb
/usr/bin/dpkg --status-fd 9 --configure --pending
Preconfiguring packages ...
/usr/bin/dpkg --status-fd 9 --no-triggers --unpack --auto-deconfigure /var/cache/apt/archives/libssl1.1_1.1.0g-2ubuntu4.1_amd64.deb
/usr/bin/dpkg --status-fd 9 --configure --pending
/usr/bin/dpkg --status-fd 9 --no-triggers --unpack --auto-deconfigure /var/cache/apt/archives/openssl_1.1.0g-2ubuntu4.1_amd64.deb
/usr/bin/dpkg --status-fd 9 --configure --pending
All upgrades installed
root@bb-uu-fixed:~# apt update && unattended-upgrade --dry-run --verbose --debug
Hit:1 http://archive.ubuntu.com/ubuntu bionic-proposed InRelease
Hit:2 http://security.ubuntu.com/ubuntu bionic-security InRelease
Hit:3 http://archive.ubuntu.com/ubuntu bionic InRelease
Hit:4 http://archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
23 packages can be upgraded. Run 'apt list --upgradable' to see them.
Initial blacklisted packages:
Initial whitelisted packages:
Starting unattended upgrades script
Allowed origins are: o=Ubuntu,a=bionic, o=Ubuntu,a=bionic-security, o=UbuntuESM,a=bionic
adjusting candidate version: apache2=2.4.29-1ubuntu4.1
adjusting candidate version: apache2-bin=2.4.29-1ubunt...

Read more...

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

This bug was fixed in the package unattended-upgrades - 1.1ubuntu1.18.04.1

---------------
unattended-upgrades (1.1ubuntu1.18.04.1) bionic; urgency=medium

  [ Michael Vogt ]
  * unattended-upgrades: fix Unlocked context manager. (LP: #1602536)
    The Unlocked context manager did correctly unlock but did not
    reacquire the lock which means that in minimal-upgrade step
    mode it is possible to run apt code without a lock. If something
    else (like landscape, apt, synaptic, packagekit) locks the cache
    in the meantime this will work and u-u will get dpkg errors
    because dpkg will not be able to perform its operations. It is
    less of an issue in non-minimal mode, but even then the auto-remove
    step may fail in this way.

  [ Balint Reczey ]
  * Fix adjusting candidates (LP: #1775292)
  * Relock apt lock before reopening the cache (LP: #1602536)
  * Fix crashing while adjusting candidates and save candidates to adjust only
    in first sweep run, not emptying the set later
    (Closes: #901258) (LP: #1775307)

 -- Balint Reczey <email address hidden> Wed, 06 Jun 2018 16:30:55 -0700

Changed in unattended-upgrades (Ubuntu Bionic):
status: Fix Committed → Fix Released

The verification of the Stable Release Update for unattended-upgrades 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.

Hello Balint, or anyone else affected,

Accepted unattended-upgrades into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/unattended-upgrades/1.1ubuntu1.18.04.7~16.04.0 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-xenial to verification-done-xenial. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-xenial. 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 unattended-upgrades (Ubuntu Xenial):
status: New → Fix Committed
tags: added: verification-needed verification-needed-xenial
removed: verification-done
Łukasz Zemczak (sil2100) wrote :

Hello Balint, or anyone else affected,

Accepted unattended-upgrades into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/unattended-upgrades/1.1ubuntu1.18.04.7~16.04.1 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-xenial to verification-done-xenial. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-xenial. 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.

Balint Reczey (rbalint) wrote :
Download full text (4.0 KiB)

Tested 1.1ubuntu1.18.04.7~16.04.1. Candidates are adjusted and u-u does not crash:

root@x-uu-ref:~# dpkg -l unattended-upgrades | cat
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-===================-==========================-============-===========================================
ii unattended-upgrades 1.1ubuntu1.18.04.7~16.04.1 all automatic installation of security upgrades
root@x-uu-ref:~# grep invoke /var/lib/dpkg/info/unattended-upgrades.prerm
root@x-uu-ref:~# unattended-upgrade --dry-run --verbose --debug
Initial blacklisted packages:
Initial whitelisted packages:
Starting unattended upgrades script
Allowed origins are: o=Ubuntu,a=xenial, o=Ubuntu,a=xenial-security, o=UbuntuESM,a=xenial
Using (^linux-image|^linux-headers|^linux-image-extra|^linux-modules|^linux-modules-extra|^linux-signed-image|^kfreebsd-image|^kfreebsd-headers|^gnumach-image|^.*-modules|^.*-kernel|^linux-backports-modules-.*|^linux-modules-.*|^linux-tools|^linux-cloud-tools) regexp to find kernel packages
Using (^linux-image.*4.19.0-12-generic|^linux-headers.*4.19.0-12-generic|^linux-image-extra.*4.19.0-12-generic|^linux-modules.*4.19.0-12-generic|^linux-modules-extra.*4.19.0-12-generic|^linux-signed-image.*4.19.0-12-generic|^kfreebsd-image.*4.19.0-12-generic|^kfreebsd-headers.*4.19.0-12-generic|^gnumach-image.*4.19.0-12-generic|4.19.0-12-generic.*-modules|4.19.0-12-generic.*-kernel|^linux-backports-modules-.*.*4.19.0-12-generic|^linux-modules-.*.*4.19.0-12-generic|^linux-tools.*4.19.0-12-generic|^linux-cloud-tools.*4.19.0-12-generic) regexp to find running kernel packages
Checking: cloud-init ([<Origin component:'main' archive:'xenial-proposed' origin:'Ubuntu' label:'Ubuntu' site:'archive.ubuntu.com' isTrusted:True>])
adjusting candidate version: cloud-init=0.7.7~bzr1212-0ubuntu1
Checking: kmod ([<Origin component:'main' archive:'xenial-proposed' origin:'Ubuntu' label:'Ubuntu' site:'archive.ubuntu.com' isTrusted:True>])
adjusting candidate version: kmod=22-1ubuntu5
Checking: libc-bin ([<Origin component:'main' archive:'xenial-proposed' origin:'Ubuntu' label:'Ubuntu' site:'archive.ubuntu.com' isTrusted:True>])
adjusting candidate version: libc-bin=2.23-0ubuntu10
Checking: libc6 ([<Origin component:'main' archive:'xenial-proposed' origin:'Ubuntu' label:'Ubuntu' site:'archive.ubuntu.com' isTrusted:True>])
adjusting candidate version: libc6=2.23-0ubuntu10
Checking: libkmod2 ([<Origin component:'main' archive:'xenial-proposed' origin:'Ubuntu' label:'Ubuntu' site:'archive.ubuntu.com' isTrusted:True>])
adjusting candidate version: libkmod2=22-1ubuntu5
Checking: locales ([<Origin component:'main' archive:'xenial-proposed' origin:'Ubuntu' label:'Ubuntu' site:'archive.ubuntu.com' isTrusted:True>])
adjusting candidate version: locales=2.23-0ubuntu10
Checking: multiarch-support ([<Origin component:'main' archive:'xenial-proposed' origin:'Ubuntu' label:'Ubuntu' site:'archive.ubuntu.com' isTrusted:True>])
adjusting candidate version: multiarch-support=2.23...

Read more...

Balint Reczey (rbalint) on 2019-02-08
tags: added: verification-don verification-done-xenial
removed: verification-needed verification-needed-xenial
tags: added: verification-done
removed: verification-don
Łukasz Zemczak (sil2100) wrote :

Hello Balint, or anyone else affected,

Accepted unattended-upgrades into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/unattended-upgrades/1.1ubuntu1.18.04.7~16.04.2 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-xenial to verification-done-xenial. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-xenial. 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.

tags: added: verification-needed verification-needed-xenial
removed: verification-done verification-done-xenial
Balint Reczey (rbalint) wrote :

Tested 1.1ubuntu1.18.04.7~16.04.2 on Xenial.

root@x-uu-upgrade:~# unattended-upgrade --dry-run --verbose --debug
Initial blacklisted packages:
Initial whitelisted packages:
Starting unattended upgrades script
Allowed origins are: o=Ubuntu,a=xenial, o=Ubuntu,a=xenial-security, o=UbuntuESM,a=xenial
Using (^linux-image-[0-9]+\.[0-9\.]+-.*|^linux-headers-[0-9]+\.[0-9\.]+-.*|^linux-image-extra-[0-9]+\.[0-9\.]+-.*|^linux-modules-[0-9]+\.[0-9\.]+-.*|^linux-modules-extra-[0-9]+\.[0-9\.]+-.*|^linux-signed-image-[0-9]+\.[0-9\.]+-.*|^kfreebsd-image-[0-9]+\.[0-9\.]+-.*|^kfreebsd-headers-[0-9]+\.[0-9\.]+-.*|^gnumach-image-[0-9]+\.[0-9\.]+-.*|^.*-modules-[0-9]+\.[0-9\.]+-.*|^.*-kernel-[0-9]+\.[0-9\.]+-.*|^linux-backports-modules-.*-[0-9]+\.[0-9\.]+-.*|^linux-modules-.*-[0-9]+\.[0-9\.]+-.*|^linux-tools-[0-9]+\.[0-9\.]+-.*|^linux-cloud-tools-[0-9]+\.[0-9\.]+-.*) regexp to find kernel packages
Using (^linux-image-4\.18\.0\-16\-generic$|^linux-headers-4\.18\.0\-16\-generic$|^linux-image-extra-4\.18\.0\-16\-generic$|^linux-modules-4\.18\.0\-16\-generic$|^linux-modules-extra-4\.18\.0\-16\-generic$|^linux-signed-image-4\.18\.0\-16\-generic$|^kfreebsd-image-4\.18\.0\-16\-generic$|^kfreebsd-headers-4\.18\.0\-16\-generic$|^gnumach-image-4\.18\.0\-16\-generic$|^.*-modules-4\.18\.0\-16\-generic$|^.*-kernel-4\.18\.0\-16\-generic$|^linux-backports-modules-.*-4\.18\.0\-16\-generic$|^linux-modules-.*-4\.18\.0\-16\-generic$|^linux-tools-4\.18\.0\-16\-generic$|^linux-cloud-tools-4\.18\.0\-16\-generic$) regexp to find running kernel packages
Checking: locales ([<Origin component:'main' archive:'xenial-updates' origin:'Ubuntu' label:'Ubuntu' site:'archive.ubuntu.com' isTrusted:True>])
adjusting candidate version: locales=2.23-0ubuntu10
pkgs that look like they should be upgraded:
Fetched 0 B in 0s (0 B/s)
fetch.run() result: 0
blacklist: []
whitelist: []
No packages found that can be upgraded unattended and no pending auto-removals
root@x-uu-upgrade:~# dpkg -l unattended-upgrades | cat
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-===================-==========================-============-===========================================
ii unattended-upgrades 1.1ubuntu1.18.04.7~16.04.2 all automatic installation of security upgrades

tags: added: verification-done verification-done-xenial
removed: verification-needed verification-needed-xenial
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers