This bug was fixed in the package unattended-upgrades - 2.3ubuntu0.1 --------------- unattended-upgrades (2.3ubuntu0.1) focal; urgency=medium
[ Balint Reczey ] * Fix checking if an upgrade/install marking succeeded. The false negative result caused unattended-upgrades trying to apply workarounds to upgrade/install the package using excessive amount of CPU time. (Closes: #958883) (LP: #1877769) * Fix indentation and type error (LP: #1883082) [ Jose Manuel Santamaria Lema ] * Fix crash occuring when strict whitelist is in use (LP: #1883082) -- Balint Reczey <rbal...@ubuntu.com> Tue, 21 Jul 2020 17:20:12 +0200 ** Changed in: unattended-upgrades (Ubuntu Focal) Status: Fix Committed => Fix Released -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to unattended-upgrades in Ubuntu. https://bugs.launchpad.net/bugs/1877769 Title: [SRU] Rewinding cache triggers obsolete adjustments consuming a lot of CPU Status in unattended-upgrades package in Ubuntu: Fix Released Status in unattended-upgrades source package in Focal: Fix Released Status in unattended-upgrades package in Debian: Fix Released Bug description: [Impact] * Unattended-upgrades consumes excessive amount of CPU when rewinding cache trying to mark packages to upgrade or install even when they are already marked to be upgraded or installed. This can be triggered by packages held back. [Test Case] * Run test_rewind.py: -Fixed output: $ python3 test_rewind.py INFO:root:Allowed origins are: o=Ubuntu,a=lucid-security INFO:root:Initial blacklist: ant-doc INFO:root:Initial whitelist (not strict): DEBUG:root:Marking not allowed <apt_pkg.PackageFile object: filename:'/home/rbalint/projects/deb/unattended-upgrades/test/root.rewind/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-amd64_Packages' a=lucid-updates,c=main,v=10.04,o=Ubuntu,l=Ubuntu arch='amd64' site='archive.ubuntu.com' IndexType='Debian Package Index' Size=894 ID:0> with -32768 pin DEBUG:root:Applying pinning: PkgFilePin(id=0, priority=-32768) DEBUG:root:Applying pin -32768 to package_file: <apt_pkg.PackageFile object: filename:'/home/rbalint/projects/deb/unattended-upgrades/test/root.rewind/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-amd64_Packages' a=lucid-updates,c=main,v=10.04,o=Ubuntu,l=Ubuntu arch='amd64' site='archive.ubuntu.com' IndexType='Debian Package Index' Size=894 ID:0> DEBUG:root:Applying pinning: PkgPin(pkg='/^ant-doc/', priority=-32768) DEBUG:root:APT::VersionedKernelPackages is not set DEBUG:root:adjusting candidate version: test-package=2.0 DEBUG:root:adjusting candidate version: test2-package=2.0 DEBUG:root:falling back to adjusting test2-package's dependencies DEBUG:root:falling back to adjusting z-package's dependencies DEBUG:root:sanity check failed for: set() : no package is selected to be upgraded or installed . ---------------------------------------------------------------------- Ran 1 test in 0.022s OK - Not fixed output: $ python3 test_rewind.py INFO:root:Allowed origins are: o=Ubuntu,a=lucid-security INFO:root:Initial blacklist: ant-doc INFO:root:Initial whitelist (not strict): DEBUG:root:Marking not allowed <apt_pkg.PackageFile object: filename:'/home/rbalint/projects/deb/unattended-upgrades/test/root.rewind/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-amd64_Packages' a=lucid-updates,c=main,v=10.04,o=Ubuntu,l=Ubuntu arch='amd64' site='archive.ubuntu.com' IndexType='Debian Package Index' Size=894 ID:0> with -32768 pin DEBUG:root:Applying pinning: PkgFilePin(id=0, priority=-32768) DEBUG:root:Applying pin -32768 to package_file: <apt_pkg.PackageFile object: filename:'/home/rbalint/projects/deb/unattended-upgrades/test/root.rewind/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-amd64_Packages' a=lucid-updates,c=main,v=10.04,o=Ubuntu,l=Ubuntu arch='amd64' site='archive.ubuntu.com' IndexType='Debian Package Index' Size=894 ID:0> DEBUG:root:Applying pinning: PkgPin(pkg='/^ant-doc/', priority=-32768) DEBUG:root:APT::VersionedKernelPackages is not set DEBUG:root:adjusting candidate version: test-package=2.0 DEBUG:root:adjusting candidate version: test2-package=2.0 DEBUG:root:falling back to adjusting test2-package's dependencies DEBUG:root:falling back to adjusting z-package's dependencies DEBUG:root:sanity check failed for: set() : no package is selected to be upgraded or installed DEBUG:root:falling back to adjusting test-package's dependencies DEBUG:root:falling back to adjusting test2-package's dependencies DEBUG:root:falling back to adjusting test3-package's dependencies DEBUG:root:falling back to adjusting test-package's dependencies DEBUG:root:falling back to adjusting test2-package's dependencies DEBUG:root:falling back to adjusting test3-package's dependencies . ---------------------------------------------------------------------- Ran 1 test in 0.024s (Note the extra "DEBUG:root:falling back to adjusting" ... lines) [Regression Potential] * Minimal. The very small change fixes how call_checked() verifies that the package to be upgrades/installed is indeed marked to either being installed or upgraded. In the worst case, if call_checked() erroneously returns success for a package as a result of a regression, unattended-upgrades does not fall back to adjusting packages to make marking successful. Later unattended-upgrades finds out that the package could not be marked and should be treated as kept back. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/unattended-upgrades/+bug/1877769/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp