Package: apt
X-Debbugs-Cc: [email protected], [email protected]
Version: 3.1.12
Severity: normal
Hi,
This is a follow-up / underlying issue for Bug#1121151 against
mariadb-server ("Salsa CI 'default-mysql-server and Bookworm upgrade'
job fails due to provider plugin ABI mismatch").
While debugging that CI failure, we found that apt's resolver behaviour
changed between 3.1.8 and 3.1.10/3.1.12 in a way that leaves already
installed Recommends at old versions in a real upgrade path, which then
breaks MariaDB.
Scenario:
- Base system: Debian 12 (bookworm)
- First install:
apt-get update
apt-get install -y default-mysql-server
I think this installs mariadb-server 1:10.11.14-0+deb12u2 and the
Recommends mariadb-plugin-provider-* (bzip2, lz4, lzma, lzo, snappy)
- Then I enable sid and a local repo with MariaDB 11.8.3 and upgrade
apt:
echo 'deb http://deb.debian.org/debian sid main' >
/etc/apt/sources.list
apt-get update
apt-get install -y apt # on the current system this installs
apt 3.1.12
- Finally I try to upgrade MariaDB:
apt-get install -y default-mysql-server
Previously, when running the same steps with apt 3.1.8, this last
command upgraded both mariadb-server and all mariadb-plugin-provider-*
Recommends to 11.8.3 from the local repo and MariaDB started fine.
Now, with apt 3.1.12, the same command upgrades mariadb-server to 11.8.3
but leaves all mariadb-plugin-provider-* at the old 10.11.14 versions
from bookworm. The system ends up with:
- server: 11.8.3
- providers: 10.11.14
and MariaDB fails to start with DAEMON plugin API errors, for instance:
ERROR: mariadbd: Can't open shared library 'provider_bzip2.so'
(errno: 8, API version for DAEMON plugin provider_bzip2 not supported
by this version of the server)
This regression is visible in CI:
- Old passing job (before apt change): upgrades providers too:
https://salsa.debian.org/mariadb-team/mariadb-server/-/jobs/8421127
- New failing job with apt 3.1.12: only the server is upgraded:
https://salsa.debian.org/mariadb-team/mariadb-server/-/jobs/8590614
Summary of regression:
Previously (3.1.8), "apt-get install default-mysql-server" would also
upgrade the already-installed mariadb-plugin-provider-* Recommends when
newer versions were available, so server and plugins stayed in sync.
Now (3.1.10-3.1.12), the solver considers those Recommends already
satisfied and leaves them at the old version, which in this real upgrade
path produces a broken MariaDB installation.
This seems related to enabling the new solver3 by default in 3.1.10 and
its handling of already satisfied Recommends, but the practical issue is
that a stable apt update changed resolver behaviour and broke a real
bookworm -> sid upgrade scenario that used to work.
Thanks,
Aquila Macedo