RHEL 7 libmysqlclient incompatibilities

Bug #1420691 reported by Ken Snider
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: pkg i54774
tags: added: pkg
Revision history for this message
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

Revision history for this message
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.

Revision history for this message
Nilnandan Joshi (nilnandan-joshi) wrote :

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
Revision history for this message
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.

Revision history for this message
Tomislav Plavcic (tplavcic) wrote :
Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.