RHEL 7 libmysqlclient incompatibilities

Bug #1420691 reported by Ken Snider on 2015-02-11
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Percona Server moved to https://jira.percona.com/projects/PS
Fix Released
High
Tomislav Plavcic
5.6
Fix Released
High
Tomislav Plavcic

Bug Description

I'm reporting an issue with Percona use within Red Hat Enterprise Linux 7.

Specifically, while Percona-Server-shared-55 maintains symbol versioning support for libmysqlclient.so.18, Percona-Server-shared-56 does not, which breaks several upstream packages.

I’m fairly certain it’s just an oversight in how Percona 5.6’s libs are being compiled, and a situation unique to RHEL 7.

For reference, there was a discussion on the Percona Forums:

http://www.percona.com/forums/questions-discussions/mysql-and-percona-server/12935-symbol-versioning-in-rpm-packages

As well as in Red Hat’s bugzilla:

https://bugzilla.redhat.com/show_bug.cgi?id=1045013

Thanks so much. :)

tags: added: pkg
Ken Snider (ksnider-s) wrote :

Just to illustrate what I'm talking about:

Percona-Server-shared-55 = 5.5.41-rel37.0.el7
Percona-Server-shared-55(x86-64) = 5.5.41-rel37.0.el7
config(Percona-Server-shared-55) = 5.5.41-rel37.0.el7
libmysqlclient.so.18()(64bit)
libmysqlclient.so.18(libmysqlclient_16)(64bit)
libmysqlclient.so.18(libmysqlclient_18)(64bit)
mysql-libs
mysql-shared

---

Percona-Server-shared-56 = 5.6.22-rel72.0.el7
Percona-Server-shared-56(x86-64) = 5.6.22-rel72.0.el7
config(Percona-Server-shared-56) = 5.6.22-rel72.0.el7
libmysqlclient.so.18()(64bit)
libmysqlclient.so.18(libmysqlclient_18)(64bit)
mysql-libs
mysql-shared

Ken Snider (ksnider-s) wrote :

Also, in my comment I mentioned support for libmysqlclient_18, when I meant that 55 maintains support for '*libmysqlclient_16* symbols in the .18 lib. apologies for not being clear.

OS applications such as php-mysql, ruby, etc etc expect the .18 library to include libmysqlclient_16 symbols.

Confirmed.

[root@localhost ~]# rpm -qp Percona-Server-shared-55-5.5.41-rel37.0.el7.x86_64.rpm
Percona-Server-shared-55-5.5.41-rel37.0.el7.x86_64
[root@localhost ~]#
[root@localhost ~]# rpm -qp Percona-Server-shared-55-5.5.41-rel37.0.el7.x86_64.rpm --provides
Percona-Server-shared-55 = 5.5.41-rel37.0.el7
Percona-Server-shared-55(x86-64) = 5.5.41-rel37.0.el7
config(Percona-Server-shared-55) = 5.5.41-rel37.0.el7
libmysqlclient.so.18()(64bit)
libmysqlclient.so.18(libmysqlclient_16)(64bit)
libmysqlclient.so.18(libmysqlclient_18)(64bit)
mysql-libs
mysql-shared
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# rpm -qp Percona-Server-shared-56-5.6.22-rel72.0.el7.x86_64.rpm --provides
Percona-Server-shared-56 = 5.6.22-rel72.0.el7
Percona-Server-shared-56(x86-64) = 5.6.22-rel72.0.el7
config(Percona-Server-shared-56) = 5.6.22-rel72.0.el7
libmysqlclient.so.18()(64bit)
libmysqlclient.so.18(libmysqlclient_18)(64bit)
mysql-libs
mysql-shared
[root@localhost ~]#

Changed in percona-server:
status: New → Confirmed
tags: added: i54774
Tomislav Plavcic (tplavcic) wrote :

From what I see in centos7 mariadb and mysql provide those symbols and we also have that patch from Oracle in PS 5.5.
Looking at mariadb (from centos7 repo) and mysql-community:

[vagrant@t-centos7-64 oracle55]$ rpm -qp MySQL-shared-5.5.44-1.el7.x86_64.rpm --provides
MySQL-shared = 5.5.44-1.el7
MySQL-shared(x86-64) = 5.5.44-1.el7
libmysqlclient.so.18()(64bit)
libmysqlclient.so.18(libmysqlclient_16)(64bit)
libmysqlclient.so.18(libmysqlclient_18)(64bit)

[vagrant@t-centos7-64 ~]$ rpm -qp mysql-community-libs-5.6.25-2.el7.x86_64.rpm --provides
MySQL-shared(x86-64) = 5.6.25-2.el7
libmysqlclient.so.18()(64bit)
libmysqlclient.so.18(libmysqlclient_16)(64bit)
libmysqlclient.so.18(libmysqlclient_18)(64bit)
mysql-community-libs = 5.6.25-2.el7
mysql-community-libs(x86-64) = 5.6.25-2.el7
mysql-libs = 5.6.25-2.el7
mysql-libs(x86-64) = 5.6.25-2.el7

So I have pushed the packages in our testing repo and they can be tested from there or from this link:
http://jenkins.percona.com/job/percona-server-5.6-redhat-binary/155/label_exp=centos7-64/

The resulting output is:
[vagrant@t-centos7-64 new]$ rpm -qp Percona-Server-shared-56-5.6.25-rel73.1.el7.x86_64.rpm --provides
Percona-Server-shared-56 = 5.6.25-rel73.1.el7
Percona-Server-shared-56(x86-64) = 5.6.25-rel73.1.el7
config(Percona-Server-shared-56) = 5.6.25-rel73.1.el7
libmysqlclient.so.18()(64bit)
libmysqlclient.so.18(libmysqlclient_16)(64bit)
libmysqlclient.so.18(libmysqlclient_18)(64bit)
mysql-libs
mysql-shared

The only thing I wanted to do is get some sort of error with the old packages so I can compare but I couldn't - the installation works and I tried some simple php script but it works. So it would be good if we can get some testcase other then the "rpm --provides" output.

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PS-871

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers