** Description changed:

- TODO
+ [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.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1877769

Title:
  [SRU] Rewinding cache triggers obsolete adjustments consuming a lot of
  CPU

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

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to