LP #1171755: libmysqlclient_r.so.16 missing gzopen symbol for Percona-Server-shared-compat-55

Description

**Reported in Launchpad by David Busby last update 14-05-2013 03:22:24

We note that when running mydumper compiled against Percona-Server-shared-51 with --compress option, with the library provided by Percona-Server-shared-compat the error 'symbol gzopen not defined in file libmysqlclient_r.so.16' occurs.

This is not the case then the library from Percona-Server-shared-51 is used.

1) Compiling against the .16 libraries provided by Percona-Server-shared-51 and running against them works without issue.
2) Compiling against the .18 libraries provided by Percona-Server-shared-compat-55 and running against them works without issue.
3) Compiling against the .16 libraries provided by Percona-Server-shared-51 and running against .16 libraries from Percona-Server-shared-compat-55 throws the error:
'symbol gzopen not defined in file libmysqlclient_r.so.16'

Environment

None

Smart Checklist

Activity

Show:

lpjirasync January 24, 2018 at 5:43 AM

**Comment from Launchpad by: Valerii Kravchuk on: 13-05-2013 18:00:14

I do not see shared-compat RPM for 5.6.10 at http://www.percona.com/downloads/Percona-Server-5.6/Percona-Server-5.6.10-alpha60.2/RPM/rhel6/x86_64/, so I assume 5.6.x is (not yet?) affected.

lpjirasync January 24, 2018 at 5:42 AM

**Comment from Launchpad by: Raghavendra D Prabhu on: 06-05-2013 10:53:22

So, it looks like the libmysqlclient is linked against zlib (than
using the bundled one) in 5.5.30.

libz.so.1 => /lib64/libz.so.1 (0x00007f6eaf918000)

For an older one,
nm -D libmysqlclient_r.so.16 | grep -i gzop
00000000000c70c0 T gzopen

ldd libmysqlclient_r.so.16
linux-vdso.so.1 => (0x00007fffc47ff000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb771232000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fb770ffb000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fb770de1000)
libm.so.6 => /lib64/libm.so.6 (0x00007fb770b5d000)
libc.so.6 => /lib64/libc.so.6 (0x00007fb7707ca000)
/lib64/ld-linux-x86-64.so.2 (0x00000037e3400000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007fb770567000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fb770363000)

(The above is for 5.5.27 and the gzopen used there is the zlib
present bundled in mysql sources).

So somewhere between those versions, the linking/building has
changed.

Now, since zlib provides those symbols, mydumper should ideally
link against zlib directly. But, what function exported by
libmysqlclient is called by --compress in mydumper - that should
have linked it.

@David,
As a workaround, can you try building mydumper against zlib – -lz?

lpjirasync January 24, 2018 at 5:42 AM

**Comment from Launchpad by: David Busby on: 06-05-2013 10:32:43

Per IRC Discussion for 5.5.30:


[root@localhost ~]# nm -D /usr/lib64/libmysqlclient_r.so.16 | grep -i gzop
nm -D /usr/lib64/libmysqlclient_r.so.16 | grep -i gzop
[root@localhost ~]# rpm -qa | grep Percona
rpm -qa | grep Percona
Percona-Server-shared-compat-5.5.30-rel30.2.508.rhel6.x86_64
[root@localhost ~]# ldd /usr/lib64/libmysqlclient_r.so.16
ldd /usr/lib64/libmysqlclient_r.so.16
linux-vdso.so.1 => (0x00007fff9b048000)
librt.so.1 => /lib64/librt.so.1 (0x00007f6eb0430000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6eb0210000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f6eaffd8000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f6eafdb8000)
libm.so.6 => /lib64/libm.so.6 (0x00007f6eafb30000)
libz.so.1 => /lib64/libz.so.1 (0x00007f6eaf918000)
libc.so.6 => /lib64/libc.so.6 (0x00007f6eaf580000)
/lib64/ld-linux-x86-64.so.2 (0x00007f6eb09b0000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007f6eaf318000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f6eaf110000)

lpjirasync January 24, 2018 at 5:42 AM

**Comment from Launchpad by: David Busby on: 06-05-2013 09:23:07

Please advise if any more information is required on this issue; at this time it is becoming an increasing issue with compilation of our internal binaries.

lpjirasync January 24, 2018 at 5:42 AM

**Comment from Launchpad by: David Busby on: 29-04-2013 09:08:30

Added a short 1:58 screen cast highlighting this issue.

Done

Details

Assignee

Reporter

Components

Priority

Smart Checklist

Created January 24, 2018 at 5:42 AM
Updated January 24, 2018 at 5:43 AM
Resolved January 24, 2018 at 5:42 AM