[MDEV-30571] MariaDB-client does not pull MariaDB-compat anymore, conflicts with RHEL packages Created: 2023-02-05  Updated: 2023-02-12  Resolved: 2023-02-12

Status: Closed
Project: MariaDB Server
Component/s: Packaging, Platform RedHat
Affects Version/s: N/A
Fix Version/s: 11.0.1

Type: Bug Priority: Critical
Reporter: Elena Stepanova Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Problem/Incident
is caused by MDEV-30203 Move mysql symlinks to different package Closed

 Description   

In previous versions, installation of MariaDB-client RPM (e.g. on RHEL 7) would pull MariaDB-compat as a dependency:

$ sudo yum install MariaDB-client
Resolving Dependencies
--> Running transaction check
---> Package MariaDB-client.x86_64 0:10.10.2-1.el7.centos will be installed
--> Processing Dependency: MariaDB-common for package: MariaDB-client-10.10.2-1.el7.centos.x86_64
--> Running transaction check
---> Package MariaDB-common.x86_64 0:10.10.2-1.el7.centos will be installed
--> Processing Dependency: MariaDB-compat for package: MariaDB-common-10.10.2-1.el7.centos.x86_64
--> Running transaction check
---> Package MariaDB-compat.x86_64 0:10.10.2-1.el7.centos will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
===============================================================================================================================================================================================
 Package                                         Arch                                    Version                                                Repository                                Size
===============================================================================================================================================================================================
Installing:
 MariaDB-client                                  x86_64                                  10.10.2-1.el7.centos                                   mariadb                                   16 M
Installing for dependencies:
 MariaDB-common                                  x86_64                                  10.10.2-1.el7.centos                                   mariadb                                   81 k
 MariaDB-compat                                  x86_64                                  10.10.2-1.el7.centos                                   mariadb                                  2.2 M
 
Transaction Summary

But not anymore:

$ sudo yum install MariaDB-client
Resolving Dependencies
--> Running transaction check
---> Package MariaDB-client.x86_64 0:11.0.1-1.el7_9 will be installed
--> Processing Dependency: MariaDB-client-compat for package: MariaDB-client-11.0.1-1.el7_9.x86_64
--> Running transaction check
---> Package MariaDB-client-compat.noarch 0:11.0.1-1.el7_9 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
===============================================================================================================================================================================================
 Package                                              Arch                                  Version                                       Repository                                      Size
===============================================================================================================================================================================================
Installing:
 MariaDB-client                                       x86_64                                11.0.1-1.el7_9                                test-mariadb-es                                 17 M
Installing for dependencies:
 MariaDB-client-compat                                noarch                                11.0.1-1.el7_9                                test-mariadb-es                                7.3 k
 
Transaction Summary

Because of this, if RHEL's mariadb-libs is pre-installed, which is often the case, installation fails:

Transaction check error:
  file /etc/my.cnf.d from install of MariaDB-client-11.0.1-1.el7_9.x86_64 conflicts with file from package mariadb-libs-1:5.5.68-1.el7.x86_64



 Comments   
Comment by Daniel Black [ 2023-02-09 ]

bb-11.0-danielblack-preview-MDEV-30203-pkgtest 1615bf32bcdf3fe787891c456efdbcd7b8bc1e32

[root@localhost ~]# yum update
Loaded plugins: product-id, search-disabled-repos, subscription-manager
MariaDB-bb-11.0-danielblack-preview-MDEV-30203-pkgtest                                                                                                                              | 2.9 kB  00:00:00     
rhel-7-server-rpms                                                                                                                                                                  | 3.5 kB  00:00:00     
(1/4): rhel-7-server-rpms/7Server/x86_64/group                                                                                                                                      | 631 kB  00:00:00     
(2/4): rhel-7-server-rpms/7Server/x86_64/updateinfo                                                                                                                                 | 4.2 MB  00:00:01     
(3/4): MariaDB-bb-11.0-danielblack-preview-MDEV-30203-pkgtest/primary_db                                                                                                            |  28 kB  00:00:01     
(4/4): rhel-7-server-rpms/7Server/x86_64/primary_db                                                                                                                                 |  92 MB  00:00:15     
Resolving Dependencies
--> Running transaction check
---> Package MariaDB-compat.x86_64 0:11.0.0-1.el7_9 will be obsoleting
--> Processing Dependency: MariaDB-common for package: MariaDB-compat-11.0.0-1.el7_9.x86_64
---> Package mariadb-libs.x86_64 1:5.5.68-1.el7 will be obsoleted
--> Running transaction check
---> Package MariaDB-common.x86_64 0:11.0.0-1.el7_9 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
===========================================================================================================================================================================================================
 Package                                  Arch                             Version                                  Repository                                                                        Size
===========================================================================================================================================================================================================
Installing:
 MariaDB-compat                           x86_64                           11.0.0-1.el7_9                           MariaDB-bb-11.0-danielblack-preview-MDEV-30203-pkgtest                           2.2 M
     replacing  mariadb-libs.x86_64 1:5.5.68-1.el7
Installing for dependencies:
 MariaDB-common                           x86_64                           11.0.0-1.el7_9                           MariaDB-bb-11.0-danielblack-preview-MDEV-30203-pkgtest                            81 k
 
Transaction Summary
===========================================================================================================================================================================================================
Install  1 Package (+1 Dependent package)
 
Total download size: 2.2 M
Is this ok [y/d/N]: y
Downloading packages:
(1/2): MariaDB-common-11.0.0-1.el7_9.x86_64.rpm                                                                                                                                     |  81 kB  00:00:04     
(2/2): MariaDB-compat-11.0.0-1.el7_9.x86_64.rpm                                                                                                                                     | 2.2 MB  00:00:17     
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                      132 kB/s | 2.2 MB  00:00:17     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : MariaDB-common-11.0.0-1.el7_9.x86_64                                                                                                                                                    1/3 
  Installing : MariaDB-compat-11.0.0-1.el7_9.x86_64                                                                                                                                                    2/3 
  Erasing    : 1:mariadb-libs-5.5.68-1.el7.x86_64                                                                                                                                                      3/3 
  Verifying  : MariaDB-compat-11.0.0-1.el7_9.x86_64                                                                                                                                                    1/3 
  Verifying  : MariaDB-common-11.0.0-1.el7_9.x86_64                                                                                                                                                    2/3 
  Verifying  : 1:mariadb-libs-5.5.68-1.el7.x86_64                                                                                                                                                      3/3 
 
Installed:
  MariaDB-compat.x86_64 0:11.0.0-1.el7_9                                                                                                                                                                   
 
Dependency Installed:
  MariaDB-common.x86_64 0:11.0.0-1.el7_9                                                                                                                                                                   
 
Replaced:
  mariadb-libs.x86_64 1:5.5.68-1.el7                                                                                                                                                                       
 
Complete!

Comment by Daniel Black [ 2023-02-09 ]

Pushed to bb-11.0-all-builders

Comment by Elena Stepanova [ 2023-02-09 ]

It isn't fixed. What the above comment demonstrates is irrelevant, the initial report wasn't about yum update.

The previous MariaDB-client (continuing with 10.9 which was the initial example) depends on MariaDB-common, which depends on MariaDB-compat. So, installation of MariaDB-client pulls both MariaDB-common and MariaDB-compat, and the latter replaces mariadb-libs.

$ rpm -qlp MariaDB-client-10.9.5-1.el7.centos.x86_64.rpm --requires | grep common
MariaDB-common
$ rpm -qlp MariaDB-common-10.9.5-1.el7.centos.x86_64.rpm --requires | grep compat
MariaDB-compat

$ rpm -qa | grep -i maria
mariadb-libs-5.5.68-1.el7.x86_64
 
$ sudo yum install MariaDB-client
mariadb-main                                                                                                                                                            | 3.4 kB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package MariaDB-client.x86_64 0:10.9.5-1.el7.centos will be installed
--> Processing Dependency: MariaDB-common for package: MariaDB-client-10.9.5-1.el7.centos.x86_64
--> Running transaction check
---> Package MariaDB-common.x86_64 0:10.9.5-1.el7.centos will be installed
--> Processing Dependency: MariaDB-compat for package: MariaDB-common-10.9.5-1.el7.centos.x86_64
--> Running transaction check
---> Package MariaDB-compat.x86_64 0:10.9.5-1.el7.centos will be obsoleting
---> Package mariadb-libs.x86_64 1:5.5.68-1.el7 will be obsoleted
--> Finished Dependency Resolution
 
Dependencies Resolved
 
===============================================================================================================================================================================================
 Package                                        Arch                                   Version                                              Repository                                    Size
===============================================================================================================================================================================================
Installing:
 MariaDB-client                                 x86_64                                 10.9.5-1.el7.centos                                  mariadb-main                                  15 M
 MariaDB-compat                                 x86_64                                 10.9.5-1.el7.centos                                  mariadb-main                                 2.2 M
     replacing  mariadb-libs.x86_64 1:5.5.68-1.el7
Installing for dependencies:
 MariaDB-common                                 x86_64                                 10.9.5-1.el7.centos                                  mariadb-main                                  82 k
 
Transaction Summary
===============================================================================================================================================================================================
Install  2 Packages (+1 Dependent package)

It does not happen with the feature packages.

ceb75e9b

$ rpm -qlp MariaDB-client-11.0.0-1.el7.centos.x86_64.rpm --requires | grep common
$ rpm -qlp MariaDB-client-compat-11.0.0-1.el7.centos.noarch.rpm --requires | grep common
$ 

$ rpm -qa | grep -i maria
mariadb-libs-5.5.68-1.el7.x86_64
$ sudo yum install MariaDB-client
Resolving Dependencies
--> Running transaction check
---> Package MariaDB-client.x86_64 0:11.0.0-1.el7_9 will be installed
--> Processing Dependency: MariaDB-client-compat for package: MariaDB-client-11.0.0-1.el7_9.x86_64
--> Running transaction check
---> Package MariaDB-client-compat.noarch 0:11.0.0-1.el7_9 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
===============================================================================================================================================================================================
 Package                                              Arch                                  Version                                       Repository                                      Size
===============================================================================================================================================================================================
Installing:
 MariaDB-client                                       x86_64                                11.0.0-1.el7_9                                test-mariadb-es                                 17 M
Installing for dependencies:
 MariaDB-client-compat                                noarch                                11.0.0-1.el7_9                                test-mariadb-es                                7.2 k
 
Transaction Summary
===============================================================================================================================================================================================
Install  1 Package (+1 Dependent package)

This is the essence of the report.

For the conflict shown in the original description, apparently it depends on the environment in which the packages were built. MariaDB-client contains etc/my.cnf/mysql-clients.cnf which mariadb-libs also owns. When MariaDB-client built by buildbot is installed alongside with mariadb-libs, they manage to share the ownership of this folder/file. Packages used for the bug report were built on a different machine, and with them shared custody is not possible, maybe because of the different permissions on my.cnf.d. It's hard to say which release packages may be similarly affected, if any. In any case, it's an effect, not the cause.

Comment by Daniel Black [ 2023-02-10 ]

3294ef9186b (and parent commit d385856d108 from Sergei's review)

bb foundation, bb corp 3294ef9186b

# cat /etc/yum.repos.d/MariaDB2.repo
[MariaDB-bb-11.0-danielblack-preview-MDEV-30203-pkgtest]
name=MariaDB bb-11.0-danielblack-preview-MDEV-30203-pkgtestrepo (build 32350)
baseurl=https://ci.mariadb.org/32436/amd64-rhel-7-rpm-autobake/rpms
gpgcheck=0
enabled=1

[root@localhost ~]# rpm -qlp MariaDB-client-11.0.0-1.el7_9.x86_64.rpm.1  --requires | grep com
MariaDB-common
MariaDB-client-compat

[root@localhost ~]# rpm -qlp MariaDB-common-11.0.0-1.el7_9.x86_64.rpm.1  --requires | grep com
MariaDB-compat
libcom_err.so.2()(64bit)

# yum install MariaDB-client
Loaded plugins: product-id, search-disabled-repos, subscription-manager
MariaDB-bb-11.0-danielblack-preview-MDEV-30203-pkgtest                                                   | 2.9 kB  00:00:00     
MariaDB-bb-11.0-danielblack-preview-MDEV-30203-pkgtest/primary_db                                        |  28 kB  00:00:02     
Resolving Dependencies
--> Running transaction check
---> Package MariaDB-client.x86_64 0:11.0.0-1.el7_9 will be installed
--> Processing Dependency: MariaDB-common for package: MariaDB-client-11.0.0-1.el7_9.x86_64
--> Processing Dependency: MariaDB-client-compat for package: MariaDB-client-11.0.0-1.el7_9.x86_64
--> Running transaction check
---> Package MariaDB-client-compat.noarch 0:11.0.0-1.el7_9 will be installed
---> Package MariaDB-common.x86_64 0:11.0.0-1.el7_9 will be installed
--> Processing Dependency: MariaDB-compat for package: MariaDB-common-11.0.0-1.el7_9.x86_64
--> Running transaction check
---> Package MariaDB-compat.x86_64 0:11.0.0-1.el7_9 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
================================================================================================================================
 Package                    Arch        Version               Repository                                                   Size
================================================================================================================================
Installing:
 MariaDB-client             x86_64      11.0.0-1.el7_9        MariaDB-bb-11.0-danielblack-preview-MDEV-30203-pkgtest       17 M
Installing for dependencies:
 MariaDB-client-compat      noarch      11.0.0-1.el7_9        MariaDB-bb-11.0-danielblack-preview-MDEV-30203-pkgtest      7.2 k
 MariaDB-common             x86_64      11.0.0-1.el7_9        MariaDB-bb-11.0-danielblack-preview-MDEV-30203-pkgtest       81 k
 MariaDB-compat             x86_64      11.0.0-1.el7_9        MariaDB-bb-11.0-danielblack-preview-MDEV-30203-pkgtest      2.2 M
 
Transaction Summary
================================================================================================================================
Install  1 Package (+3 Dependent packages)
 
Total download size: 19 M
Installed size: 108 M
Is this ok [y/d/N]: y
Downloading packages:
(1/4): MariaDB-client-compat-11.0.0-1.el7_9.noarch.rpm                                                   | 7.2 kB  00:00:01     
(2/4): MariaDB-common-11.0.0-1.el7_9.x86_64.rpm                                                          |  81 kB  00:00:03     
(3/4): MariaDB-compat-11.0.0-1.el7_9.x86_64.rpm                                                          | 2.2 MB  00:00:52     
(4/4): MariaDB-client-11.0.0-1.el7_9.x86_64.rpm                                                          |  17 MB  00:01:57     
--------------------------------------------------------------------------------------------------------------------------------
Total                                                                                           164 kB/s |  19 MB  00:01:57     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : MariaDB-common-11.0.0-1.el7_9.x86_64                                                                         1/4 
  Installing : MariaDB-compat-11.0.0-1.el7_9.x86_64                                                                         2/4 
  Installing : MariaDB-client-compat-11.0.0-1.el7_9.noarch                                                                  3/4 
  Installing : MariaDB-client-11.0.0-1.el7_9.x86_64                                                                         4/4 
  Verifying  : MariaDB-client-11.0.0-1.el7_9.x86_64                                                                         1/4 
  Verifying  : MariaDB-client-compat-11.0.0-1.el7_9.noarch                                                                  2/4 
  Verifying  : MariaDB-compat-11.0.0-1.el7_9.x86_64                                                                         3/4 
  Verifying  : MariaDB-common-11.0.0-1.el7_9.x86_64                                                                         4/4 
 
Installed:
  MariaDB-client.x86_64 0:11.0.0-1.el7_9                                                                                        
 
Dependency Installed:
  MariaDB-client-compat.noarch 0:11.0.0-1.el7_9  MariaDB-common.x86_64 0:11.0.0-1.el7_9  MariaDB-compat.x86_64 0:11.0.0-1.el7_9 
 
Complete!

Generated at Thu Feb 08 10:17:15 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.