libperconaserverclient incompatibility

Bug #1580764 reported by monty solomon
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona Server moved to https://jira.percona.com/projects/PS
New
Undecided
Unassigned

Bug Description

Packages built against libperconaserverclient in Percona 5.5 can't run when the Percona 5.6 libraries are installed.

Tags: pkg
Revision history for this message
monty solomon (monty+launchpad) wrote :

Install

Percona-Server-shared-55-5.5.39-rel36.0.el6.x86_64
Percona-Server-devel-55-5.5.39-rel36.0.el6.x86_64

build oursql using

python setup.py build

and then test it

# PYTHONPATH=$PWD/oursql-0.9.3.1/build/lib.linux-x86_64-2.6/ python -c 'import oursql; print oursql.__file__'
/mnt2/msolomon/oursql/oursql-0.9.3.1/build/lib.linux-x86_64-2.6/oursql.so

Replace Percona 5.5.39 with Percona 5.6.29 and test oursql

Installed:
  Percona-Server-devel-56.x86_64 0:5.6.29-rel76.2.el6
  Percona-Server-shared-56.x86_64 0:5.6.29-rel76.2.el6

Complete!
 QA [root@mamba oursql]# !PY
PYTHONPATH=$PWD/oursql-0.9.3.1/build/lib.linux-x86_64-2.6/ python -c 'import oursql; print oursql.__file__'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: /usr/lib64/libperconaserverclient.so.18: version `libperconaserverclient_16' not found (required by /mnt2/msolomon/oursql/oursql-0.9.3.1/build/lib.linux-x86_64-2.6/oursql.so)

# rpm -ql Percona-Server-shared-55.x86_64
/usr/lib64/libperconaserverclient.so
/usr/lib64/libperconaserverclient.so.18
/usr/lib64/libperconaserverclient.so.18.0.0
/usr/lib64/libperconaserverclient_r.so
/usr/lib64/libperconaserverclient_r.so.18
/usr/lib64/libperconaserverclient_r.so.18.0.0

# rpm -ql Percona-Server-shared-56.x86_64
/usr/lib64/libperconaserverclient.so.18
/usr/lib64/libperconaserverclient.so.18.1.0
/usr/lib64/libperconaserverclient_r.so.18
/usr/lib64/libperconaserverclient_r.so.18.1.0

Revision history for this message
monty solomon (monty+launchpad) wrote :

This problem does not exist when using the MySQL libraries.

Install

MySQL-devel-5.5.36-1.el6.x86_64
MySQL-shared-5.5.36-1.el6.x86_64

build and test oursql

PYTHONPATH=$PWD/oursql-0.9.3.1/build/lib.linux-x86_64-2.6/ python -c 'import oursql; print oursql.__file__'
/mnt2/msolomon/oursql/oursql-0.9.3.1/build/lib.linux-x86_64-2.6/oursql.so

Replace MySQL 5.5.36 with MySQL 5.6.29 and test oursql

MySQL-devel-5.6.29-1.el6.x86_64.rpm
MySQL-shared-5.6.29-1.el6.x86_64.rpm

test oursql

PYTHONPATH=$PWD/oursql-0.9.3.1/build/lib.linux-x86_64-2.6/ python -c 'import oursql; print oursql.__file__'
/mnt2/msolomon/oursql/oursql-0.9.3.1/build/lib.linux-x86_64-2.6/oursql.so

# rpm -ql MySQL-shared-5.5.36
/usr/lib64/libmysqlclient.so
/usr/lib64/libmysqlclient.so.18
/usr/lib64/libmysqlclient.so.18.0.0
/usr/lib64/libmysqlclient_r.so
/usr/lib64/libmysqlclient_r.so.18
/usr/lib64/libmysqlclient_r.so.18.0.0

# rpm -ql MySQL-shared-5.6.29
/usr/lib64/libmysqlclient.so
/usr/lib64/libmysqlclient.so.18
/usr/lib64/libmysqlclient.so.18.1.0
/usr/lib64/libmysqlclient_r.so
/usr/lib64/libmysqlclient_r.so.18
/usr/lib64/libmysqlclient_r.so.18.1.0
/usr/share/doc/MySQL-shared-5.6.29
/usr/share/doc/MySQL-shared-5.6.29/COPYING
/usr/share/doc/MySQL-shared-5.6.29/README

Revision history for this message
monty solomon (monty+launchpad) wrote :

Notice that even though the build was linked against libmysqlclient.so.18 it is failing to find version `libperconaserverclient_16'

Revision history for this message
monty solomon (monty+launchpad) wrote :

CentOS release 6.7 (Final)

tags: added: pkg
Revision history for this message
monty solomon (monty+launchpad) wrote :

The libraries distributed with Percona Server 5.6 are not compatible with the libraries in the MySQL 5.6 distribution.

Install the devel and shared packages from MySQL 5.6

# rpm -qa | grep ^MySQL | grep 5.6
MySQL-shared-5.6.29-1.el6.x86_64
MySQL-devel-5.6.29-1.el6.x86_64

Build oursql and then try to use it on a system with the Percona Server libraries

# yum install Percona-Server-server-56

Installed:
  Percona-Server-server-56.x86_64 0:5.6.29-rel76.2.el6

Dependency Installed:
  Percona-Server-client-56.x86_64 0:5.6.29-rel76.2.el6
  Percona-Server-shared-56.x86_64 0:5.6.29-rel76.2.el6

# PYTHONPATH=$PWD/oursql-0.9.3.1/build/lib.linux-x86_64-2.6/ python -c 'import oursql; print oursql.__file__'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: /usr/lib64/libmysqlclient.so.18: version `libmysqlclient_18' not found (required by /opt/mysql-backup/mnt2/msolomon/oursql/oursql-0.9.3.1/build/lib.linux-x86_64-2.6/oursql.so)

# ldd oursql-0.9.3.1/build/lib.linux-x86_64-2.6/oursql.so | grep sql
oursql-0.9.3.1/build/lib.linux-x86_64-2.6/oursql.so: /usr/lib64/libmysqlclient.so.18: version `libmysqlclient_18' not found (required by oursql-0.9.3.1/build/lib.linux-x86_64-2.6/oursql.so)
 libmysqlclient.so.18 => /usr/lib64/libmysqlclient.so.18 (0x00007ff0fd7fa000)

# rpm -qa | grep Percona
Percona-Server-client-56-5.6.29-rel76.2.el6.x86_64
Percona-Server-shared-56-5.6.29-rel76.2.el6.x86_64
Percona-Server-server-56-5.6.29-rel76.2.el6.x86_64

# ls -al /usr/lib64/libmysqlclient*
lrwxrwxrwx 1 root root 28 May 12 14:26 /usr/lib64/libmysqlclient_r.so -> libperconaserverclient.so.18
lrwxrwxrwx 1 root root 28 May 12 14:26 /usr/lib64/libmysqlclient_r.so.18 -> libperconaserverclient.so.18
lrwxrwxrwx 1 root root 28 May 12 14:26 /usr/lib64/libmysqlclient_r.so.18.0.0 -> libperconaserverclient.so.18
lrwxrwxrwx 1 root root 32 May 12 14:26 /usr/lib64/libmysqlclient_r.so.18.1.0 -> libperconaserverclient.so.18.1.0
lrwxrwxrwx 1 root root 28 May 12 14:26 /usr/lib64/libmysqlclient.so -> libperconaserverclient.so.18
lrwxrwxrwx 1 root root 28 May 12 14:26 /usr/lib64/libmysqlclient.so.18 -> libperconaserverclient.so.18
lrwxrwxrwx 1 root root 28 May 12 14:26 /usr/lib64/libmysqlclient.so.18.0.0 -> libperconaserverclient.so.18
lrwxrwxrwx 1 root root 32 May 12 14:26 /usr/lib64/libmysqlclient.so.18.1.0 -> libperconaserverclient.so.18.1.0

Revision history for this message
monty solomon (monty+launchpad) wrote :

Building using the Percona libraries and trying to run on a server running MySQL fails because it can't find libperconaserverclient.so.

Install Percona 5.6 devel and shared

# rpm -qa | grep Percona
Percona-Server-shared-56-5.6.29-rel76.2.el6.x86_64
Percona-Server-devel-56-5.6.29-rel76.2.el6.x86_64

build oursql

Try to run on server with MySQL 5.6

# PYTHONPATH=$PWD/oursql-0.9.3.1/build/lib.linux-x86_64-2.6/ python -c 'import oursql; print oursql.__file__'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: libperconaserverclient.so.18: cannot open shared object file: No such file or directory

# rpm -qa | grep mysql-community
mysql-community-server-5.6.30-2.el6.x86_64
mysql-community-common-5.6.30-2.el6.x86_64
mysql-community-client-5.6.30-2.el6.x86_64
mysql-community-libs-5.6.30-2.el6.x86_64

Revision history for this message
monty solomon (monty+launchpad) wrote :

The bug status is still Undecided. Has this bug been triaged?

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-3431

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.