[Bug 1795696] Re: /usr/bin/unattended-upgrade:UnboundLocalError:/usr/bin/unattended-upgrade at 1991:main:do_auto_remove
Balint Reczey
balint.reczey at canonical.com
Tue Mar 26 17:57:48 UTC 2019
Verified with 1.1ubuntu1.18.04.10 on Bionic:
...
root at bb-uu-lp-1795696-verify:~# eatmydata apt install linux-image-unsigned-4.18.0-13-generic linux-image-unsigned-4.18.0-14-generic linux-image-unsigned-4.18.0-15-generic
...
root at bb-uu-lp-1795696-verify:~# apt-mark auto linux-image-unsigned-4.18.0-13-generic linux-image-unsigned-4.18.0-14-generic linux-image-unsigned-4.18.0-15-generic
linux-image-unsigned-4.18.0-13-generic set to automatically installed.
linux-image-unsigned-4.18.0-14-generic set to automatically installed.
linux-image-unsigned-4.18.0-15-generic set to automatically installed.
root at bb-uu-lp-1795696-verify:~# /etc/kernel/postinst.d/apt-auto-removal
root at bb-uu-lp-1795696-verify:~# apt autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
grub-common grub-gfxpayload-lists grub-pc grub-pc-bin grub2-common libfreetype6 linux-image-unsigned-4.18.0-13-generic linux-image-unsigned-4.18.0-14-generic
linux-image-unsigned-4.18.0-15-generic linux-modules-4.18.0-13-generic linux-modules-4.18.0-14-generic linux-modules-4.18.0-15-generic os-prober
0 upgraded, 0 newly installed, 13 to remove and 7 not upgraded.
After this operation, 239 MB disk space will be freed.
Do you want to continue? [Y/n] n
Abort.
root at bb-uu-lp-1795696-verify:~# vi /etc/apt/apt.conf.d/50unattended-upgrades
root at bb-uu-lp-1795696-verify:~# grep Minimal /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::MinimalSteps "false";
root at bb-uu-lp-1795696-verify:~# unattended-upgrade --dry-run --verbose
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
Removing unused kernel packages: linux-modules-4.18.0-13-generic linux-modules-4.18.0-15-generic linux-modules-4.18.0-14-generic
Keeping 3 auto-removable package(s) because it would also remove the following packages which should be kept in this step: libntfs-3g88 linux-image-unsigned-4.18.0-13-generic linux-image-unsigned-4.18.0-14-generic linux-image-unsigned-4.18.0-15-generic ntfs-3g snapd
Traceback (most recent call last):
File "/usr/bin/unattended-upgrade", line 1998, in <module>
sys.exit(main(options))
File "/usr/bin/unattended-upgrade", line 1798, in main
options.verbose or options.debug, options.dry_run)
File "/usr/bin/unattended-upgrade", line 1495, in do_auto_remove
if res:
UnboundLocalError: local variable 'res' referenced before assignment
oot at bb-uu-lp-1795696-verify:~# echo "deb http://archive.ubuntu.com/ubuntu/ bionic-proposed restricted main multiverse universe" > /etc/apt/sources.list.d/proposed.list
root at bb-uu-lp-1795696-verify:~# apt update -qq
33 packages can be upgraded. Run 'apt list --upgradable' to see them.
root at bb-uu-lp-1795696-verify:~# apt install unattended-upgrades
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
grub-common grub-gfxpayload-lists grub-pc grub-pc-bin grub2-common libfreetype6 linux-image-unsigned-4.18.0-13-generic linux-image-unsigned-4.18.0-14-generic
linux-image-unsigned-4.18.0-15-generic linux-modules-4.18.0-13-generic linux-modules-4.18.0-14-generic linux-modules-4.18.0-15-generic os-prober
Use 'apt autoremove' to remove them.
Suggested packages:
bsd-mailx default-mta | mail-transport-agent needrestart
The following packages will be upgraded:
unattended-upgrades
1 upgraded, 0 newly installed, 0 to remove and 32 not upgraded.
Need to get 40.4 kB of archives.
After this operation, 4096 B of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic-proposed/main amd64 unattended-upgrades all 1.1ubuntu1.18.04.10 [40.4 kB]
Fetched 40.4 kB in 0s (204 kB/s)
N: Ignoring file 'proposed' in directory '/etc/apt/sources.list.d/' as it has no filename extension
Preconfiguring packages ...
(Reading database ... 32894 files and directories currently installed.)
Preparing to unpack .../unattended-upgrades_1.1ubuntu1.18.04.10_all.deb ...
Unpacking unattended-upgrades (1.1ubuntu1.18.04.10) over (1.1ubuntu1.18.04.9) ...
Processing triggers for ureadahead (0.100.0-20) ...
Processing triggers for systemd (237-3ubuntu10.15) ...
Setting up unattended-upgrades (1.1ubuntu1.18.04.10) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
N: Ignoring file 'proposed' in directory '/etc/apt/sources.list.d/' as it has no filename extension
root at bb-uu-lp-1795696-verify:~# unattended-upgrade --dry-run --verbose
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
Removing unused kernel packages: linux-modules-4.18.0-13-generic linux-modules-4.18.0-15-generic linux-modules-4.18.0-14-generic
Keeping 3 auto-removable package(s) because it would also remove the following packages which should be kept in this step: libntfs-3g88 linux-image-unsigned-4.18.0-13-generic linux-image-unsigned-4.18.0-14-generic linux-image-unsigned-4.18.0-15-generic ntfs-3g snapd
Packages that were successfully auto-removed:
Packages that are kept back:
Option --dry-run given, *not* performing real actions
Packages that will be upgraded: libntfs-3g88 ntfs-3g snapd
Writing dpkg log to /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
All upgrades installed
root at bb-uu-lp-1795696-verify:~# unattended-upgrade --verbose
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
Removing unused kernel packages: linux-modules-4.18.0-15-generic linux-modules-4.18.0-14-generic linux-modules-4.18.0-13-generic
Keeping 3 auto-removable package(s) because it would also remove the following packages which should be kept in this step: libntfs-3g88 linux-image-unsigned-4.18.0-13-generic linux-image-unsigned-4.18.0-14-generic linux-image-unsigned-4.18.0-15-generic ntfs-3g snapd
Packages that were successfully auto-removed:
Packages that are kept back:
Packages that will be upgraded: libntfs-3g88 ntfs-3g snapd
Writing dpkg log to /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
All upgrades installed
root at bb-uu-lp-1795696-verify:~#
The unsigned kernels are kept back due to LP: #1821640 .
** Tags removed: verification-needed verification-needed-bionic
** Tags added: verification-done verification-done-bionic
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to unattended-upgrades in Ubuntu.
https://bugs.launchpad.net/bugs/1795696
Title:
/usr/bin/unattended-upgrade:UnboundLocalError:/usr/bin/unattended-
upgrade at 1991:main:do_auto_remove
Status in unattended-upgrades package in Ubuntu:
Fix Released
Status in unattended-upgrades source package in Xenial:
New
Status in unattended-upgrades source package in Bionic:
Fix Committed
Status in unattended-upgrades source package in Cosmic:
Fix Released
Bug description:
[Impact]
* Unattended-upgrades crashes while auto-removing kernel packages.
[Test Case]
1. Install kernel packages to be automatically removed:
# eatmydata apt install linux-image-4.18.0-13-generic linux-image-4.18.0-14-generic linux-image-4.18.0-15-generic
# apt-mark auto linux-image-4.18.0-13-generic linux-image-4.18.0-14-generic linux-image-4.18.0-15-generic
# /etc/kernel/postinst.d/apt-auto-removal
2. Set up u-u to perform action in non-minimal steps:
# grep Minimal /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::MinimalSteps "false";
3. Run u-u in dry-run mode.
Observe it failing with not fixed versions:
# unattended-upgrade --dry-run
Traceback (most recent call last):
File "/usr/bin/unattended-upgrade", line 1998, in <module>
sys.exit(main(options))
File "/usr/bin/unattended-upgrade", line 1798, in main
options.verbose or options.debug, options.dry_run)
File "/usr/bin/unattended-upgrade", line 1495, in do_auto_remove
if res:
UnboundLocalError: local variable 'res' referenced before assignment
Observe the fixed version running properly:
# ./unattended-upgrade --dry-run
#
[Regression Potential]
* The fix is very small and isolated, but a programming error could
cause the misreporting of the success of auto-removals. Considering
the size and simplicity of the change, regressions here seem unlikely.
[Original Bug Text]
The Ubuntu Error Tracker has been receiving reports about a problem regarding unattended-upgrades. This problem was most recently seen with package version 1.1ubuntu1.18.04.5, the problem page at https://errors.ubuntu.com/problem/651a7b7a070dd794d8cf2f5ea8e974614fdedb8e contains more details, including versions of packages affected, stacktrace or traceback, and individual crash reports.
If you do not have access to the Ubuntu Error Tracker and are a software developer, you can request it at http://forms.canonical.com/reports/.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/unattended-upgrades/+bug/1795696/+subscriptions
More information about the foundations-bugs
mailing list