We use Perl to query a Percona Server database via DBD::mysql.
This stopped working yesterday after normal apt upgrade and broke our production system.
It shows the package libdbd-mysql-perl 1:5.013-1.noble from Percona Repo is broken on Ubuntu 24.04 (noble). The module fails to load due to a missing symbol. The package from Ubuntu repo works as workaround.
I replaced http by htttp in the output to prevent the forum`s comment function from converting URLs into links. In my initial post I was not allowed to post more then two links.
Hi, just a small remark after all. I am aware that the repository is outdated and no longer maintained. Given that, I am a bit surprised to see breaking changes in a non maintained repo. I will not use the repo any longer. Thanks again for the clarification.
Glad switching to pdps-8.0 fixed it. As @Vadim_Yalovets mentioned, the tools repository is deprecated. Migrating to product-specific repos like pdps-8.0 is the recommended path forward.
For context, here’s the root cause. The tools repo libdbd-mysql-perl 1:5.013-1.noble ships a mysql.so that isn’t linked against libmysqlclient at all. As the library is never loaded, every mysql_* symbol is missing at runtime:
# Tools repo (broken, no libmysqlclient linkage)
$ nm -D mysql.so | grep sqlstate
U mysql_sqlstate
# Ubuntu (working, properly linked)
$ nm -D mysql.so | grep sqlstate
U mysql_sqlstate@libmysqlclient_21.0
The tools repo package uses epoch 1:, so apt upgrade silently replaces the working distro version with the broken one. The same issue affects Debian. See #40009 for details.
Recommended fix: migrate to the product-specific repository as Vadim described. The pdps-8.0 repo ships a properly built package.
As a last resort, you can pin the distro version temporarily. This is not recommended long term since the tools repo will not receive further updates:
apt-get install --allow-downgrades libdbd-mysql-perl=4.052-1ubuntu3
apt-mark hold libdbd-mysql-perl