[Bug 1815494] Re: May remove autoremovable non-kernel packages matching pattern from APT::VersionedKernelPackages

Balint Reczey balint.reczey at canonical.com
Tue Mar 12 17:49:49 UTC 2019


Verified with unattended-upgrades/1.1ubuntu1.18.04.7~16.04.2 on Xenial:

https://objectstorage.prodstack4-5.canonical.com/v1/AUTH_77e2ada1e7a84929a74ba3b87153c0ac
/autopkgtest-xenial/xenial/amd64/u/unattended-
upgrades/20190228_150449_11313@/log.gz :

Running ./test_remove_unused.py with python3
Initial blacklisted packages: 
Initial whitelisted packages: 
Starting unattended upgrades script
Allowed origins are: o=Ubuntu,a=lucid-security
APT::VersionedKernelPackages is not set
Checking: test-package ([<Origin component:'main' archive:'lucid-security' origin:'Ubuntu' label:'Ubuntu' site:'archive.ubuntu.com' isTrusted:True>])
pkgs that look like they should be upgraded: test-package

Fetched 0 B in 0s (0 B/s)                                                       
fetch.run() result: 0
<apt_pkg.AcquireItem object:Status: 2 Complete: 1 Local: 1 IsTrusted: 1 FileSize: 624 DestFile:'/tmp/autopkgtest.nX7fyI/build.uPt/src/test/root.unused-deps/var/cache/apt/archives/test-package_2.0_all.deb' DescURI: 'http://archive.ubuntu.com/ubuntu/test-package_2.0_all.deb' ID:0 ErrorText: ''>
check_conffile_prompt(/tmp/autopkgtest.nX7fyI/build.uPt/src/test/root.unused-deps/var/cache/apt/archives/test-package_2.0_all.deb)
found pkg: test-package
blacklist: []
whitelist: []
Packages that will be upgraded: test-package
Writing dpkg log to ./root.unused-deps/var/log/unattended-upgrades/unattended-upgrades-dpkg.log
applying set ['test-package']
left to upgrade set()
All upgrades installed
marking linux-image-4.05.0-1021-kvm for removal
marking test-package-dependency for removal
marking old-unused-dependency for removal
marking any-old-unused-modules for removal
Packages that were successfully auto-removed: any-old-unused-modules linux-image-4.05.0-1021-kvm old-unused-dependency test-package-dependency
Packages that are kept back: 
InstCount=0 DelCount=0 BrokenCount=0
Extracting content from ./root.unused-deps/var/log/unattended-upgrades/unattended-upgrades-dpkg.log since 2019-02-28 14:26:03
/tmp/autopkgtest.nX7fyI/build.uPt/src/test/unattended_upgrade.py:1129: ResourceWarning: unclosed file <_io.TextIOWrapper name=13 mode='w' encoding='UTF-8'>
  options.verbose or options.debug)
/tmp/autopkgtest.nX7fyI/build.uPt/src/test/unattended_upgrade.py:1129: ResourceWarning: unclosed file <_io.TextIOWrapper name=12 mode='r' encoding='UTF-8'>
  options.verbose or options.debug)
/tmp/autopkgtest.nX7fyI/build.uPt/src/test/unattended_upgrade.py:1474: ResourceWarning: unclosed file <_io.TextIOWrapper name=13 mode='w' encoding='UTF-8'>
  res, error = cache_commit(cache, logfile_dpkg, verbose)
/tmp/autopkgtest.nX7fyI/build.uPt/src/test/unattended_upgrade.py:1474: ResourceWarning: unclosed file <_io.TextIOWrapper name=12 mode='r' encoding='UTF-8'>
  res, error = cache_commit(cache, logfile_dpkg, verbose)
.Initial blacklisted packages: 
Initial whitelisted packages: 
Starting unattended upgrades script
Allowed origins are: o=Ubuntu,a=lucid-security
Using (^linux-image-[0-9]+\.[0-9\.]+-.*|^.*-modules-[0-9]+\.[0-9\.]+-.*|^linux-headers-[0-9]+\.[0-9\.]+-.*) regexp to find kernel packages
Using (^linux-image-4\.4\.0\-142\-generic$|^.*-modules-4\.4\.0\-142\-generic$|^linux-headers-4\.4\.0\-142\-generic$) regexp to find running kernel packages
Checking: test-package ([<Origin component:'main' archive:'lucid-security' origin:'Ubuntu' label:'Ubuntu' site:'archive.ubuntu.com' isTrusted:True>])
pkgs that look like they should be upgraded: test-package

Fetched 0 B in 0s (0 B/s)                                                       
fetch.run() result: 0
<apt_pkg.AcquireItem object:Status: 2 Complete: 1 Local: 1 IsTrusted: 1 FileSize: 624 DestFile:'/tmp/autopkgtest.nX7fyI/build.uPt/src/test/root.unused-deps/var/cache/apt/archives/test-package_2.0_all.deb' DescURI: 'http://archive.ubuntu.com/ubuntu/test-package_2.0_all.deb' ID:0 ErrorText: ''>
check_conffile_prompt(/tmp/autopkgtest.nX7fyI/build.uPt/src/test/root.unused-deps/var/cache/apt/archives/test-package_2.0_all.deb)
found pkg: test-package
blacklist: []
whitelist: []
Removing unused kernel packages: linux-image-4.05.0-1021-kvm
marking linux-image-4.05.0-1021-kvm for removal
Keeping auto-removable linux-image-4.05.0-1021-kvm package(s) because it would also remove the following packages which should be kept in this step: test-package
Packages that were successfully auto-removed: 
Packages that are kept back: linux-image-4.05.0-1021-kvm
Packages that will be upgraded: test-package
Writing dpkg log to ./root.unused-deps/var/log/unattended-upgrades/unattended-upgrades-dpkg.log
applying set ['test-package']
left to upgrade set()
All upgrades installed
marking test-package-dependency for removal
Packages that were successfully auto-removed: test-package-dependency
Packages that are kept back: 
InstCount=0 DelCount=0 BrokenCount=0
Extracting content from ./root.unused-deps/var/log/unattended-upgrades/unattended-upgrades-dpkg.log since 2019-02-28 14:26:04
/tmp/autopkgtest.nX7fyI/build.uPt/src/test/unattended_upgrade.py:1129: ResourceWarning: unclosed file <_io.TextIOWrapper name=17 mode='w' encoding='UTF-8'>
  options.verbose or options.debug)
/tmp/autopkgtest.nX7fyI/build.uPt/src/test/unattended_upgrade.py:1129: ResourceWarning: unclosed file <_io.TextIOWrapper name=16 mode='r' encoding='UTF-8'>
  options.verbose or options.debug)
/tmp/autopkgtest.nX7fyI/build.uPt/src/test/unattended_upgrade.py:1474: ResourceWarning: unclosed file <_io.TextIOWrapper name=17 mode='w' encoding='UTF-8'>
  res, error = cache_commit(cache, logfile_dpkg, verbose)
/tmp/autopkgtest.nX7fyI/build.uPt/src/test/unattended_upgrade.py:1474: ResourceWarning: unclosed file <_io.TextIOWrapper name=16 mode='r' encoding='UTF-8'>
  res, error = cache_commit(cache, logfile_dpkg, verbose)
.
----------------------------------------------------------------------
Ran 2 tests in 1.185s

OK


** Tags removed: verification-needed verification-needed-xenial
** Tags added: verification-done verification-done-xenial

-- 
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/1815494

Title:
  May remove autoremovable non-kernel packages matching pattern from
  APT::VersionedKernelPackages

Status in unattended-upgrades package in Ubuntu:
  Fix Released
Status in update-manager package in Ubuntu:
  New
Status in unattended-upgrades source package in Xenial:
  Fix Committed
Status in unattended-upgrades source package in Bionic:
  Fix Released
Status in unattended-upgrades source package in Cosmic:
  Fix Released

Bug description:
  [Impact]

  * Non-kernel related autoremovable packages may be removed by unattended-upgrades due to their name matching generic patterns like '.*-modules' which should be applied to versioned kernel packages only.
  * The fix corrects the way those patterns are handled.

  [Test Case]

  * test/test_remove_unused.py checks for correct pattern usage now.

  [Regression Potential]

  * Unattended-upgrades may stop removing autoremovable kernels, but the
  tests also contain cases covering this and u-u's kernel autoremoval
  still works.

  [Original Bug Text]

  Unattended-upgrades and Update Manager use the patterns from the
  APT::VersionedKernelPackages list directly for finding kernel packages
  to remove while APT uses patterns by attaching version and flavor to
  them.

  As a result in APT's script ".*-modules" becomes
  "^.*-modules-4\.15\.0-45-generic$":

  ...
          for package in $(apt-config dump --no-empty --format '%v%n' 'APT::VersionedKernelPackages'); do
                  for kernel in $kernels; do
                          echo "   \"^${package}-${kernel}$\";"
    done
  ...

  In unattended-upgrades and update-manager ".*-modules" is used
  directly for matching and may false  identify autoremovable packages
  as kernel-related ones and remove them (of just offer the removal in
  case of update-manager):

  ...
  Removing unused kernel packages: extra-cmake-modules
  marking extra-cmake-modules for removal
  (Reading database ... 31149 files and directories currently installed.)
  Removing extra-cmake-modules (5.44.0-0ubuntu1) ...
  Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
  Packages that were successfully auto-removed: extra-cmake-modules
  ...

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/unattended-upgrades/+bug/1815494/+subscriptions



More information about the foundations-bugs mailing list