Bugfix: Don't uninstall MariaDB on Galera 3 to 4 upgrade (Closes: #988089)
- Ensure 'apt dist-upgrade' from Galera 3 to 4 keeps MariaDB Server installed and upgraded. In the case of Buster to Bullseye it should uninstall MariaDB 10.3 and install MariaDB 10.5.
- Extend Salsa-CI to test this to ensure it will not regress in future.
Proof:
# Debian release: Buster
# Apt: all sources disabled
# Testing with manually downloaded http://ftp.debian.org/debian/dists/sid/main/binary-amd64/Packages.xz
# apt-get -o Debug::pkgProblemResolver=1 --with-source ./Packages dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Starting pkgProblemResolver with broken count: 10
Starting 2 pkgProblemResolver with broken count: 10
Investigating (0) mariadb-client-core-10.5:amd64 < none -> 1:10.5.9-1 @un uN Ib >
Broken mariadb-client-core-10.5:amd64 Conflicts on virtual-mysql-client-core:amd64 < none @un H >
Conflicts//Breaks against version 8.0.23-3+b1 for mysql-client-core-8.0 but that is not InstVer, ignoring
Considering mariadb-client-core-10.3:amd64 -3 as a solution to mariadb-client-core-10.5:amd64 0
Added mariadb-client-core-10.3:amd64 to the remove list
Broken mariadb-client-core-10.5:amd64 Breaks on mariadb-client-core-10.3:amd64 < 1:10.3.27-0+deb10u1 @ii mK Ib >
Considering mariadb-client-core-10.3:amd64 -3 as a solution to mariadb-client-core-10.5:amd64 0
Added mariadb-client-core-10.3:amd64 to the remove list
Fixing mariadb-client-core-10.5:amd64 via remove of mariadb-client-core-10.3:amd64
Fixing mariadb-client-core-10.5:amd64 via remove of mariadb-client-core-10.3:amd64
Investigating (0) mariadb-client-10.5:amd64 < none -> 1:10.5.9-1 @un uN Ib >
Broken mariadb-client-10.5:amd64 Conflicts on virtual-mysql-client:amd64 < none @un H >
Conflicts//Breaks against version 8.0.23-3+b1 for mysql-client-8.0 but that is not InstVer, ignoring
Considering mariadb-client-10.3:amd64 -2 as a solution to mariadb-client-10.5:amd64 0
Added mariadb-client-10.3:amd64 to the remove list
Broken mariadb-client-10.5:amd64 Breaks on mariadb-client-10.3:amd64 < 1:10.3.27-0+deb10u1 @ii mK Ib >
Considering mariadb-client-10.3:amd64 -2 as a solution to mariadb-client-10.5:amd64 0
Added mariadb-client-10.3:amd64 to the remove list
Fixing mariadb-client-10.5:amd64 via remove of mariadb-client-10.3:amd64
Fixing mariadb-client-10.5:amd64 via remove of mariadb-client-10.3:amd64
Investigating (0) galera-4:amd64 < none -> 26.4.7-3 @un uN Ib >
Broken galera-4:amd64 Conflicts on galera:amd64 < none @un H >
Considering galera-3:amd64 0 as a solution to galera-4:amd64 0
Holding Back galera-4:amd64 rather than change galera:amd64
Investigating (0) mariadb-server-10.5:amd64 < none -> 1:10.5.9-1 @un uN Ib >
Broken mariadb-server-10.5:amd64 Depends on galera-4:amd64 < none | 26.4.7-3 @un uH > (>= 26.4)
Considering galera-4:amd64 0 as a solution to mariadb-server-10.5:amd64 0
Holding Back mariadb-server-10.5:amd64 rather than change galera-4:amd64
Investigating (0) mariadb-server-core-10.5:amd64 < none -> 1:10.5.9-1 @un uN Ib >
Broken mariadb-server-core-10.5:amd64 Conflicts on virtual-mysql-server-core:amd64 < none @un H >
Conflicts//Breaks against version 8.0.23-3+b1 for mysql-server-core-8.0 but that is not InstVer, ignoring
Considering mariadb-server-core-10.3:amd64 -2 as a solution to mariadb-server-core-10.5:amd64 0
Added mariadb-server-core-10.3:amd64 to the remove list
Broken mariadb-server-core-10.5:amd64 Breaks on mariadb-server-10.3:amd64 < 1:10.3.27-0+deb10u1 @ii mK Ib >
Considering mariadb-server-10.3:amd64 -4 as a solution to mariadb-server-core-10.5:amd64 0
Added mariadb-server-10.3:amd64 to the remove list
Broken mariadb-server-core-10.5:amd64 Breaks on mariadb-server-core-10.3:amd64 < 1:10.3.27-0+deb10u1 @ii mK Ib >
Considering mariadb-server-core-10.3:amd64 -2 as a solution to mariadb-server-core-10.5:amd64 0
Added mariadb-server-core-10.3:amd64 to the remove list
Fixing mariadb-server-core-10.5:amd64 via remove of mariadb-server-core-10.3:amd64
Fixing mariadb-server-core-10.5:amd64 via remove of mariadb-server-10.3:amd64
Fixing mariadb-server-core-10.5:amd64 via remove of mariadb-server-core-10.3:amd64
Investigating (1) mariadb-server:amd64 < 1:10.3.27-0+deb10u1 -> 1:10.5.9-1 @ii umU Ib >
Broken mariadb-server:amd64 Depends on mariadb-server-10.5:amd64 < none | 1:10.5.9-1 @un uH > (>= 1:10.5.9-1)
Considering mariadb-server-10.5:amd64 0 as a solution to mariadb-server:amd64 0
Removing mariadb-server:amd64 rather than change mariadb-server-10.5:amd64
Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
galera-3 gcc-8-base libaio1 libapt-pkg5.0 libcgi-fast-perl libcgi-pm-perl libclone-perl libconfig-inifiles-perl libdbd-mysql-perl libdbi-perl
libencode-locale-perl libfcgi-bin libfcgi-perl libfcgi0ldbl libffi6 libgcc1 libgdbm-compat4 libgdbm6 libhogweed4 libhtml-parser-perl
libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl liblwp-mediatypes-perl libmariadb3 libncurses6
libnettle6 libperl5.28 libperl5.32 libpopt0 libreadline5 libreadline7 libsnappy1v5 libterm-readkey-perl libtimedate-perl liburi-perl libwrap0 lsof
mariadb-common mysql-common netbase perl perl-modules-5.28 perl-modules-5.32 psmisc rsync socat
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
mariadb-client-10.3 mariadb-client-core-10.3 mariadb-server mariadb-server-10.3 mariadb-server-core-10.3
The following NEW packages will be installed:
bsdextrautils libapt-pkg6.0 libbpf0 libbsd0 libclone-perl libfcgi-bin libfcgi0ldbl libmd0 libpcre2-8-0 libperl5.32 libreadline8 libxxhash0 logsave
perl-modules-5.32
The following packages will be upgraded:
apt base-files base-passwd bash bsdutils coreutils dash debconf debian-archive-keyring debianutils dpkg e2fsprogs fdisk findutils galera-3 gawk gpgv
grep gzip hostname init-system-helpers iproute2 iputils-ping libacl1 libaio1 libattr1 libaudit-common libaudit1 libblkid1 libbz2-1.0 libc-bin libc6
libcap-ng0 libcap2 libcap2-bin libcgi-fast-perl libcgi-pm-perl libcom-err2 libconfig-inifiles-perl libdb5.3 libdbd-mysql-perl libdbi-perl
libdebconfclient0 libelf1 libencode-locale-perl libext2fs2 libfcgi-perl libfdisk1 libgcrypt20 libgdbm-compat4 libgdbm6 libgmp10 libgnutls30
libgpg-error0 libgpm2 libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libidn2-0 libio-html-perl
liblwp-mediatypes-perl liblz4-1 liblzma5 libmariadb3 libmnl0 libmount1 libmpfr6 libncurses6 libncursesw6 libpam-modules libpam-modules-bin
libpam-runtime libpam0g libpcre3 libpopt0 libseccomp2 libselinux1 libsemanage-common libsemanage1 libsepol1 libsigsegv2 libsmartcols1 libsnappy1v5
libss2 libssh2-1 libssl1.1 libstdc++6 libsystemd0 libterm-readkey-perl libtimedate-perl libtinfo6 libudev1 libunistring2 liburi-perl libuuid1 libwrap0
libxtables12 libzstd1 login lsb-base lsof mariadb-common mawk mount mysql-common ncurses-base ncurses-bin netbase passwd perl perl-base psmisc
readline-common rsync socat sysvinit-utils tar tzdata util-linux zlib1g
122 upgraded, 14 newly installed, 5 to remove and 0 not upgraded.
Need to get 0 B/50.2 MB of archives.
After this operation, 98.6 MB disk space will be freed.
Do you want to continue? [Y/n] n
Abort.
# nano +211847 Packages
# diff -u Packages.orig Packages
--- Packages.orig 2021-05-13 14:35:57.417682274 -0700
+++ Packages 2021-05-13 15:03:18.594405045 -0700
@@ -211852,8 +211852,8 @@
Replaces: galera
Provides: galera, galera4, percona-xtradb-cluster-galera-26, wsrep
Depends: libc6 (>= 2.17), libgcc-s1 (>= 3.0), libssl1.1 (>= 1.1.0), libstdc++6 (>= 9)
-Conflicts: galera-3, garbd-2, garbd-3, garbd2, garbd3, percona-galera-3, percona-galera-4, percona-xtradb-cluster-galera, percona-xtradb-cluster-galera-2.x, percona-xtradb-cluster-galera-3.x, percona-xtradb-cluster-galera-4.x, percona-xtradb-cluster-garbd-2.x, percona-xtradb-cluster-garbd-3.x
-Breaks: galera
+Conflicts: galera, galera-3, garbd-2, garbd-3, garbd2, garbd3, percona-galera-3, percona-galera-4, percona-xtradb-cluster-galera, percona-xtradb-cluster-galera-2.x, percona-xtradb-cluster-galera-3.x, percona-xtradb-cluster-galera-4.x, percona-xtradb-cluster-garbd-2.x, percona-xtradb-cluster-garbd-3.x
+Breaks: galera, galera-3
Description: Replication framework for transactional applications
Homepage: https://www.galeracluster.com/
Description-md5: fe238c5e6ce783e128515e8bc966eacf
# apt-get -o Debug::pkgProblemResolver=1 --with-source ./Packages dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Starting pkgProblemResolver with broken count: 10
Starting 2 pkgProblemResolver with broken count: 10
Investigating (0) mariadb-client-core-10.5:amd64 < none -> 1:10.5.9-1 @un uN Ib >
Broken mariadb-client-core-10.5:amd64 Conflicts on virtual-mysql-client-core:amd64 < none @un H >
Conflicts//Breaks against version 8.0.23-3+b1 for mysql-client-core-8.0 but that is not InstVer, ignoring
Considering mariadb-client-core-10.3:amd64 -3 as a solution to mariadb-client-core-10.5:amd64 0
Added mariadb-client-core-10.3:amd64 to the remove list
Broken mariadb-client-core-10.5:amd64 Breaks on mariadb-client-core-10.3:amd64 < 1:10.3.27-0+deb10u1 @ii mK Ib >
Considering mariadb-client-core-10.3:amd64 -3 as a solution to mariadb-client-core-10.5:amd64 0
Added mariadb-client-core-10.3:amd64 to the remove list
Fixing mariadb-client-core-10.5:amd64 via remove of mariadb-client-core-10.3:amd64
Fixing mariadb-client-core-10.5:amd64 via remove of mariadb-client-core-10.3:amd64
Investigating (0) mariadb-client-10.5:amd64 < none -> 1:10.5.9-1 @un uN Ib >
Broken mariadb-client-10.5:amd64 Conflicts on virtual-mysql-client:amd64 < none @un H >
Conflicts//Breaks against version 8.0.23-3+b1 for mysql-client-8.0 but that is not InstVer, ignoring
Considering mariadb-client-10.3:amd64 -2 as a solution to mariadb-client-10.5:amd64 0
Added mariadb-client-10.3:amd64 to the remove list
Broken mariadb-client-10.5:amd64 Breaks on mariadb-client-10.3:amd64 < 1:10.3.27-0+deb10u1 @ii mK Ib >
Considering mariadb-client-10.3:amd64 -2 as a solution to mariadb-client-10.5:amd64 0
Added mariadb-client-10.3:amd64 to the remove list
Fixing mariadb-client-10.5:amd64 via remove of mariadb-client-10.3:amd64
Fixing mariadb-client-10.5:amd64 via remove of mariadb-client-10.3:amd64
Investigating (0) galera-4:amd64 < none -> 26.4.7-3 @un uN Ib >
Broken galera-4:amd64 Conflicts on galera:amd64 < none @un H >
Considering galera-3:amd64 -1 as a solution to galera-4:amd64 0
Added galera-3:amd64 to the remove list
Conflicts//Breaks against version 25.3.25-2 for galera-3 but that is not InstVer, ignoring
Broken galera-4:amd64 Conflicts on galera-3:amd64 < 25.3.25-2 -> 25.3.31-2+b1 @ii umU Ib >
Considering galera-3:amd64 -1 as a solution to galera-4:amd64 0
Added galera-3:amd64 to the remove list
Conflicts//Breaks against version 25.3.25-2 for galera-3 but that is not InstVer, ignoring
Broken galera-4:amd64 Breaks on galera:amd64 < none @un H >
Considering galera-3:amd64 -1 as a solution to galera-4:amd64 0
Added galera-3:amd64 to the remove list
Conflicts//Breaks against version 25.3.25-2 for galera-3 but that is not InstVer, ignoring
Broken galera-4:amd64 Breaks on galera-3:amd64 < 25.3.25-2 -> 25.3.31-2+b1 @ii umU Ib >
Considering galera-3:amd64 -1 as a solution to galera-4:amd64 0
Added galera-3:amd64 to the remove list
Conflicts//Breaks against version 25.3.25-2 for galera-3 but that is not InstVer, ignoring
Fixing galera-4:amd64 via remove of galera-3:amd64
Fixing galera-4:amd64 via remove of galera-3:amd64
Fixing galera-4:amd64 via remove of galera-3:amd64
Fixing galera-4:amd64 via remove of galera-3:amd64
Investigating (0) mariadb-server-10.5:amd64 < none -> 1:10.5.9-1 @un uN Ib >
Broken mariadb-server-10.5:amd64 Conflicts on virtual-mysql-server:amd64 < none @un H >
Conflicts//Breaks against version 8.0.23-3+b1 for mysql-server-8.0 but that is not InstVer, ignoring
Considering mariadb-server-10.3:amd64 -4 as a solution to mariadb-server-10.5:amd64 0
Added mariadb-server-10.3:amd64 to the remove list
Broken mariadb-server-10.5:amd64 Breaks on mariadb-server-10.3:amd64 < 1:10.3.27-0+deb10u1 @ii mK Ib >
Considering mariadb-server-10.3:amd64 -4 as a solution to mariadb-server-10.5:amd64 0
Added mariadb-server-10.3:amd64 to the remove list
Fixing mariadb-server-10.5:amd64 via remove of mariadb-server-10.3:amd64
Fixing mariadb-server-10.5:amd64 via remove of mariadb-server-10.3:amd64
Investigating (0) mariadb-server-core-10.5:amd64 < none -> 1:10.5.9-1 @un uN Ib >
Broken mariadb-server-core-10.5:amd64 Conflicts on virtual-mysql-server-core:amd64 < none @un H >
Conflicts//Breaks against version 8.0.23-3+b1 for mysql-server-core-8.0 but that is not InstVer, ignoring
Considering mariadb-server-core-10.3:amd64 -2 as a solution to mariadb-server-core-10.5:amd64 0
Added mariadb-server-core-10.3:amd64 to the remove list
Broken mariadb-server-core-10.5:amd64 Breaks on mariadb-server-core-10.3:amd64 < 1:10.3.27-0+deb10u1 @ii mK Ib >
Considering mariadb-server-core-10.3:amd64 -2 as a solution to mariadb-server-core-10.5:amd64 0
Added mariadb-server-core-10.3:amd64 to the remove list
Fixing mariadb-server-core-10.5:amd64 via remove of mariadb-server-core-10.3:amd64
Fixing mariadb-server-core-10.5:amd64 via remove of mariadb-server-core-10.3:amd64
Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
libapt-pkg5.0 libffi6 libhogweed4 libnettle6 libperl5.28 libreadline5 libreadline7 perl-modules-5.28
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
galera-3 mariadb-client-10.3 mariadb-client-core-10.3 mariadb-server-10.3 mariadb-server-core-10.3
The following NEW packages will be installed:
bsdextrautils galera-4 libapt-pkg6.0 libbpf0 libbsd0 libclone-perl libedit2 libfcgi-bin libfcgi0ldbl libmd0 libpcre2-8-0 libperl5.32 libprocps8
libreadline8 libxxhash0 logsave mariadb-client-10.5 mariadb-client-core-10.5 mariadb-server-10.5 mariadb-server-core-10.5 perl-modules-5.32 procps
The following packages will be upgraded:
apt base-files base-passwd bash bsdutils coreutils dash debconf debian-archive-keyring debianutils dpkg e2fsprogs fdisk findutils gawk gpgv grep gzip
hostname init-system-helpers iproute2 iputils-ping libacl1 libaio1 libattr1 libaudit-common libaudit1 libblkid1 libbz2-1.0 libc-bin libc6 libcap-ng0
libcap2 libcap2-bin libcgi-fast-perl libcgi-pm-perl libcom-err2 libconfig-inifiles-perl libdb5.3 libdbd-mysql-perl libdbi-perl libdebconfclient0
libelf1 libencode-locale-perl libext2fs2 libfcgi-perl libfdisk1 libgcrypt20 libgdbm-compat4 libgdbm6 libgmp10 libgnutls30 libgpg-error0 libgpm2
libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libidn2-0 libio-html-perl liblwp-mediatypes-perl
liblz4-1 liblzma5 libmariadb3 libmnl0 libmount1 libmpfr6 libncurses6 libncursesw6 libpam-modules libpam-modules-bin libpam-runtime libpam0g libpcre3
libpopt0 libseccomp2 libselinux1 libsemanage-common libsemanage1 libsepol1 libsigsegv2 libsmartcols1 libsnappy1v5 libss2 libssh2-1 libssl1.1 libstdc++6
libsystemd0 libterm-readkey-perl libtimedate-perl libtinfo6 libudev1 libunistring2 liburi-perl libuuid1 libwrap0 libxtables12 libzstd1 login lsb-base
lsof mariadb-common mariadb-server mawk mount mysql-common ncurses-base ncurses-bin netbase passwd perl perl-base psmisc readline-common rsync socat
sysvinit-utils tar tzdata util-linux zlib1g
122 upgraded, 22 newly installed, 5 to remove and 0 not upgraded.
Need to get 0 B/64.0 MB of archives.
After this operation, 47.2 MB of additional disk space will be used.