libmysqlclient_r.so.16 missing gzopen symbol for Percona-Server-shared-compat-55

Bug #1171755 reported by David Busby
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Percona Server moved to https://jira.percona.com/projects/PS
Invalid
Undecided
Unassigned
5.1
Invalid
Undecided
Unassigned
5.5
Triaged
Medium
Unassigned
5.6
Invalid
Undecided
Unassigned

Bug Description

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'

Tags: pkg rdba
Revision history for this message
Stewart Smith (stewart) wrote :

This seems like "not a bug" as gzopen is part of zlib and not mysql client.... what about the Oracle binaries?

Changed in percona-server:
status: New → Invalid
Changed in percona-server:
status: Invalid → Incomplete
tags: added: pkg rdba
Revision history for this message
David Busby (d-busby) wrote :

Compiled against Percona-51 then tested against MySQL-shared-compat-5.5.31-1 (same procedure as with Percona-Server-shared-compat).

completed without issue.

Changed in percona-server:
status: Incomplete → New
Revision history for this message
David Busby (d-busby) wrote :

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

Revision history for this message
David Busby (d-busby) wrote :
Revision history for this message
David Busby (d-busby) wrote :

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.

Revision history for this message
David Busby (d-busby) wrote :

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

Revision history for this message
Raghavendra D Prabhu (raghavendra-prabhu) wrote :

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?

Revision history for this message
Valerii Kravchuk (valerii-kravchuk) wrote :

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.

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

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.