Skip to content

Bugfix: Don't uninstall MariaDB on Galera 3 to 4 upgrade (Closes: #988089)

Otto Kekäläinen requested to merge bugfix/988089-galera-3-to-4-update into master
  • 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.

Merge request reports

Loading