Yeah, I understand how the merge process works. Thanks! I just wanted to make sure I wasn't missing any important details specific to this case in case 10.2 and 10.3 were intentionally left out of "Fix Versions". It sounds like 10.2 and 10.3 were left out because of the the switch to Connector/C in 10.2 and above.
From my understanding though, libmysqlclient.so was not entirely replaced with C/C in 10.2. You can see that some of the child tasks of MDEV-9055 are still open. I think it is true that client tools like "mysql" and "mysqldump" use C/C now, but it looks like libmysqlclient.so is still built with 10.2 and many tools not built by us (such as perl's DBD::MySQL) still link to that. For example, it looks like libmysqlclient.so is included in 10.2's MariaDB-compat package on RHEL 7:
[ec2-user@ip-172-30-0-58 ~]$ rpm -q --provides MariaDB-compat
|
MariaDB-compat = 10.2.14-1.el7.centos
|
MariaDB-compat(x86-64) = 10.2.14-1.el7.centos
|
MariaDB-shared = 10.1.30-1.el7.centos
|
MariaDB-shared(x86-64) = 10.1.30-1.el7.centos
|
MySQL-shared
|
config(MariaDB-shared) = 10.1.30-1.el7.centos
|
config(mariadb-libs) = 1:10.1.30-1.el7.centos
|
config(mysql-libs) = 1:10.1.30-1.el7.centos
|
libmysqlclient.so.15()(64bit)
|
libmysqlclient.so.15(libmysqlclient_15)(64bit)
|
libmysqlclient.so.16()(64bit)
|
libmysqlclient.so.16(libmysqlclient_16)(64bit)
|
libmysqlclient.so.18()(64bit)
|
libmysqlclient.so.18()(64bit)
|
libmysqlclient.so.18(libmariadbclient_18)(64bit)
|
libmysqlclient.so.18(libmariadbclient_18)(64bit)
|
libmysqlclient.so.18(libmysqlclient_16)(64bit)
|
libmysqlclient.so.18(libmysqlclient_16)(64bit)
|
libmysqlclient.so.18(libmysqlclient_18)(64bit)
|
libmysqlclient.so.18(libmysqlclient_18)(64bit)
|
libmysqlclient_r.so.15()(64bit)
|
libmysqlclient_r.so.15(libmysqlclient_15)(64bit)
|
libmysqlclient_r.so.16()(64bit)
|
libmysqlclient_r.so.16(libmysqlclient_16)(64bit)
|
mariadb-libs = 1:10.1.30-1.el7.centos
|
mariadb-libs(x86-64) = 1:10.1.30-1.el7.centos
|
mysql-libs = 1:10.1.30-1.el7.centos
|
mysql-libs(x86-64) = 1:10.1.30-1.el7.centos
|
mysql-shared
|
This is still the old libmysqlclient.so, not Connector/C, right? It looks like the perl DBD::MySQL package on RHEL 7 still depends on this libmysqlclient.so, rather than the libmariadb.so from MariaDB-shared:
[ec2-user@ip-172-30-0-58 ~]$ rpm -q --requires perl-DBD-MySQL
|
libc.so.6()(64bit)
|
libc.so.6(GLIBC_2.2.5)(64bit)
|
libc.so.6(GLIBC_2.3)(64bit)
|
libc.so.6(GLIBC_2.3.4)(64bit)
|
libc.so.6(GLIBC_2.4)(64bit)
|
libcrypto.so.10()(64bit)
|
libdl.so.2()(64bit)
|
libm.so.6()(64bit)
|
libmysqlclient.so.18()(64bit)
|
libmysqlclient.so.18(libmysqlclient_18)(64bit)
|
libpthread.so.0()(64bit)
|
libpthread.so.0(GLIBC_2.2.5)(64bit)
|
libssl.so.10()(64bit)
|
libz.so.1()(64bit)
|
perl >= 0:5.005
|
perl(:MODULE_COMPAT_5.16.3)
|
perl(Carp)
|
perl(DBD::mysql)
|
perl(DBI)
|
perl(DBI::Const::GetInfoType)
|
perl(DynaLoader)
|
perl(strict)
|
perl(vars)
|
rpmlib(CompressedFileNames) <= 3.0.4-1
|
rpmlib(FileDigests) <= 4.6.0-1
|
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
|
rtld(GNU_HASH)
|
rpmlib(PayloadIsXz) <= 5.2-1
|
It does look like sql-common/client.c from 10.2 has the problematic change:
https://github.com/MariaDB/server/blob/9b1824dcd2564c803e58d02ac63b49ec68bd60d2/sql-common/client.c#L2524
If I understood the circumstances correctly, then it seems like this fix for libmysqlclient.so is not completely irrelevant for 10.2 and 10.3. I'll go ahead and assume that the fix for this issue and MDEV-16396 will be in 10.2.16 and 10.3.8, but please let me know if I misunderstood anything.
wlad, could you please take a look?
I'm not exactly sure if it's supposed to work or not, but it does indeed work with MySQL 5.6+ (and with libmysqlclient18:amd64 5.5.49-0+deb8u1 provided by Debian), but does not work with vanilla MySQL 5.5 and with MariaDB.