[debian-mysql] ABI break between 5.5 and 5.6?

Morgan Tocker morgan.tocker at oracle.com
Tue Sep 9 16:32:23 UTC 2014


Hi Robie,

> Please could you take a look at
> http://upstream-tracker.org/compat_reports/mysql/5.5.38_to_5.6.10/abi_compat_report.html
> ?
> 
> This suggests two bugs in libmysqlclient.so.18 as built from 5.6.
> 
> 1) Symbols my_connect and net_real_write have disappeared, defined in
> mysql_com.h.

These two symbols were internal, and should not have been used by any applications.

> 2) Enum MYSQL_ENABLE_CLEARTEXT_PLUGIN has changed (from 24 to 36),
> defined in mysql.h, and there is a new definition for 24
> (MYSQL_OPT_BIND) instead.

OPT_ENABLE_CLEARTEXT_PLUGIN was initially added to MySQL 5.6, and later back ported to 5.5.

This feature provides PAM authentication:
http://dev.mysql.com/doc/refman/5.5/en/pam-authentication-plugin.html

> Of the two, the second seems more severe to me. Anybody using a binary
> built with this definition from 5.5 may see a behaviour change with a
> drop-in replacement library from 5.6, since they share the same soname
> but will use the old enum value.
> 
> OTOH, changing the enum back may regress any binary built against
> earlier 5.6 versions.
> 
> I don't have the full story here, since I don't know how these enums are
> used. Please could you advise? Does this need a soname bump now, in the
> middle of the 5.6 series (not good, I know)?
> 
> Are these valid bugs?

Yes - they are both valid in the sense that we unintentionally broke ABI compatibility without bumping the version.  I am truly sorry for this - we have been transitioning ABI responsibility to our newly established repo team, and I am hoping that with dedicated resources problems such as this one will not occur in the future.

The followup question of course is if the breakage has a direct effect on Debian applications.  We may actually be lucky in this instance, and the incompatibility is limited in scope.  If there are issues, what we may be able to do is effectively reserve libmysqlclient.so.19 for Debian to reconcile the problem.  This is something to discuss.

Norvald is the person on our side who is in a better position to provide more detail on this.  I did manage to get a hold of him earlier, but he is at a conference this week and replies will be slightly delayed.

Again - I’m truly sorry.  Thank you for including me in the loop.

- Morgan


More information about the pkg-mysql-maint mailing list