[Bug 1826870] Re: cache.commit() doesn't release the archives lock
Julian Andres Klode
julian.klode at canonical.com
Thu May 9 14:48:03 UTC 2019
I installed the upgrades, and ran the script in the bug description and
see if it got fixed.
xenial python3-apt (1.1.0~beta1ubuntu0.16.04.4) verified - note that the one in -updates is fine too, it only broke for the previous upload in proposed.
bionic python3-apt (1.6.4) verified
cosmic python3-apt (1.7.1) verified
Full testing script for inside a lxd container:
while ! grep cloud-init /etc/apt/sources.list; do
sleep 1
done
while ! ping -c1 google.com; do
sleep 1
done
echo "deb http://archive.ubuntu.com/ubuntu $(lsb_release -cs)-proposed main" >> /etc/apt/sources.list
apt update
python3 - << EOF
#!/usr/bin/env python
import apt
import subprocess
cache = apt.Cache()
pkg = cache["hello"]
pkg.mark_install()
cache.commit()
subprocess.check_call(["apt", "remove", "--yes", "hello"])
EOF
apt install python3-apt
python3 - << EOF
#!/usr/bin/env python
import apt
import subprocess
cache = apt.Cache()
pkg = cache["hello"]
pkg.mark_install()
cache.commit()
subprocess.check_call(["apt", "remove", "--yes", "hello"])
EOF
Run like this:
( i=cosmic; lxc launch -e ubuntu:$i test-$i && lxc exec test-$i -- bash
-x - < ~/a.sh ; lxc stop test-$i )
** Tags removed: verification-needed verification-needed-bionic verification-needed-cosmic verification-needed-xenial
** Tags added: verification-done verification-done-bionic verification-done-cosmic verification-done-xenial
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to python-apt in Ubuntu.
https://bugs.launchpad.net/bugs/1826870
Title:
cache.commit() doesn't release the archives lock
Status in python-apt package in Ubuntu:
Fix Released
Status in python-apt source package in Xenial:
Fix Committed
Status in python-apt source package in Bionic:
Fix Committed
Status in python-apt source package in Cosmic:
Fix Committed
Status in python-apt package in Debian:
Fix Released
Bug description:
[Impact]
cache.commit() does not release all the locks it acquires as part of committing. This is a regression of locking fixes in bug 1795407.
[Test case]
This script should work:
#!/usr/bin/env python
import apt
import subprocess
cache = apt.Cache()
pkg = cache["hello"]
pkg.mark_install()
cache.commit()
subprocess.check_call(["apt", "remove", "--yes", "hello"])
[Regression potential]
Other new locking bugs could pop up
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python-apt/+bug/1826870/+subscriptions
More information about the foundations-bugs
mailing list