Why does my Group Replication plugin fail in MySQL 5.7.24?

Posted on

Question :

I’ve been using the group_replication plugin with MySQL without issues before 5.7.24. With this version, the server starts up without the plugin because of failure.
I confirmed it manually (see steps below) and it’s definitely the new version it doesn’t work with. I’d consider inspecting the file myself, but a binary doesn’t offer much hacking opportunity.

Background on the plugin source: Since it doesn’t come included with mysql-server but is well documented, I have obtained it from the Community Edition.

OS: Ubuntu 16.04.3 LTS (Xenial Xerus)

Steps to reproduce:

  1. Have /usr/lib/mysql/plugin/group_replication.so
  2. Verify version is 5.7.23

    $ mysql --version
    mysql  Ver 14.14 Distrib 5.7.23, for Linux (x86_64) using  EditLine wrapper
  3. Install plugin successfully in 5.7.23

    mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';
    Query OK, 0 rows affected (1 min 1.16 sec)
  4. Upgrade to 5.7.24 (uninstall everything to do with 5.7.23 do make sure it gets loaded):

    dpkg -l | grep mysql
    apt-get remove libmysqlclient20:amd64 mysql-client-core-5.7 mysql-common mysql-server
    apt-get install mysql-server
    $ mysql --version
    mysql  Ver 14.14 Distrib 5.7.24, for Linux (x86_64) using  EditLine wrapper
  5. Witness plugin failing to load in 5.7.24:

    mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';
    ERROR 1126 (HY000): Can't open shared library '/usr/lib/mysql/plugin/group_replication.so' (errno: 2 /usr/lib/mysql/plugin/group_replication.so: undefined symbol: _Z25group_replication_cleanupv)

Any idea what I can do to fix it, so I can bring replication back up?

Answer :

As a workaround, I’ve managed to get the plugin to load by re-obtaining it from the newest MySQL Community Edition. This is likely to break again at some point.

I’m marking this as closed because the reason was incompatibility with the specific version, and there’s nothing to be done apart from hope it gets included in the default MySQL edition. Hopefully this is useful for other people.

Leave a Reply

Your email address will not be published. Required fields are marked *