Inconsistent Libraries since last Update: Perl Module incompatible with libperconaserverclient

I have enabled these repositories on Debian 11:

  • prel - release
  • ps-80 - release
  • telemetry - release
  • tools - release

I installed libdbd-mysql-perl, percona-server-common, percona-toolkit and libperconaserverclient21 packages, ALL from Percona.

I used pt-table-sync a few weeks again and it worked fine. Today I did an apt update + upgrade which installed new Percona versions: 8.0.44-35-1.bullseye.

This seems to break compatibility with libdbd-mysql-perl (1:5.013-1.bullseye), which makes pt-table-sync unusable:

install_driver(mysql) failed: Attempt to reload DBD/mysql.pm aborted.
Compilation failed in require at (eval 36) line 3.

 at /usr/bin/pt-table-sync line 2256.

I also tried this:

$ perl -MDBD::mysql -e 'print $INC{"DBD/mysql.pm"}."\n"'
Can't load '/usr/lib/x86_64-linux-gnu/perl5/5.32/auto/DBD/mysql/mysql.so' for module DBD::mysql: /usr/lib/x86_64-linux-gnu/perl5/5.32/auto/DBD/mysql/mysql.so: undefined symbol: mysql_sqlstate at /usr/lib/x86_64-linux-gnu/perl-base/DynaLoader.pm line 187.
 at -e line 0.
Compilation failed in require.
BEGIN failed--compilation aborted.

There are no other (Debian) mysql client libraries installed. The Perl module comes from the Percona repository as also does the libperconaserverclient21.

I think you are facing the same issue thats in this thread.

https://forums.percona.com/t/percona-toolkit-pt-show-grants-3-7-1-broken-on-debian-13/40009/9

The solution was to revert to version: libdbd-mysql-perl=4.053-1

1 Like

tools repo is in archive mode so we aren’t updating it. in order to install latest toolkit please use pt repo

1 Like

Thanks I realized after posting that there are more threads about the same issue.
But this is not really the solution, more a temporary fix…

OK this sounds more like the real solution to this problem!

It’s not easy not to lose track of the many possible repositories…

So “pt” will install the same tools? I hope that pt-table-sync will work the same way, i.e. take the same parameters as the version from the “tools” repository.

I have to test this.

Cheers
Till

Yes I can confirm this after doing some testing:

$ apt remove percona-toolkit
$ percona-release disable tools
$ percona-release enable pt
$ apt upgrade
$ apt install percona-toolkit

dpkg -s libdbd-mysql-perl shows that we have the version 1:5.011-1.bullseye from the pt repository.
And now, pt-table-sync works as expected again!