pt-duplicate-key-checker fails at line 891

Bug #1269877 reported by John Fowler on 2014-01-16
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona Toolkit
Undecided
Unassigned

Bug Description

When I run the utility pt-duplicate-key-checker and used the --databases option...
# pt-duplicate-key-checker --databases=mem
 I get the following error:
install_driver(mysql) failed: Attempt to reload DBD/mysql.pm aborted.
Compilation failed in require at (eval 7) line 3.

 at /usr/bin/pt-duplicate-key-checker line 891

I've tried using other options but they all result in the same error.

Our environment is as follows:
Red Hat Enterprise Linux Server release 6.3
MySQL 5.5.29-enterprise-commercial-advanced MySQL Enterprise Server - Advanced Edition (Commercial)
percona-toolkit-2.2.6-1.noarch.rpm
perl-DBD-MySQL-4.013-3.el6.x86_64.rpm

When I installed the toolkit there was a dependency requirement for perl and I then included the above rpm in the installation.

Please help.
Thanks!

tags: added: pt-duplicate-key-checker
Jericho Rivera (jericho-rivera) wrote :

John,
Can you provide us with the full command used.
Also if possible can you show us the full error log or a debug output using PTDEBUG=1?
Thanks

Hi,

Thanks for getting back to me. I have attached the debug information I received when executing the following command:
# PTDEBUG=1 pt-duplicate-key-checker --databases=mem

I am getting almost the same exact error when running several of the other utilities in the toolkit, specifically:
pt-find
pt-show-grants
pt-table-checksums
pt-variable-advisor

The research I performed led me to believe there may be an issue with perl. I'm fairly new to Linux and not sure how to verify what's needed. Our Linux admin mentioned that we might need to install the package compat-mysql51-5.1.54-1.el6.remi.x86_64.rpm but before we do that he wants confirmation from Percona that the toolkit utilities will work with both the enterprise version of MySQL (from Oracle) as well as the open source version (from Remi).

Thanks,
John

-----Original Message-----
From: <email address hidden> [mailto:<email address hidden>] On Behalf Of Jericho Rivera
Sent: Tuesday, January 21, 2014 8:50 AM
To: Fowler John
Subject: [Bug 1269877] Re: pt-duplicate-key-checker fails at line 891

John,
Can you provide us with the full command used.
Also if possible can you show us the full error log or a debug output using PTDEBUG=1?
Thanks

--
You received this bug notification because you are subscribed to the bug report.
https://bugs.launchpad.net/bugs/1269877

Title:
  pt-duplicate-key-checker fails at line 891

Status in Percona Toolkit:
  New

Bug description:
  When I run the utility pt-duplicate-key-checker and used the --databases option...
  # pt-duplicate-key-checker --databases=mem
   I get the following error:
  install_driver(mysql) failed: Attempt to reload DBD/mysql.pm aborted.
  Compilation failed in require at (eval 7) line 3.

   at /usr/bin/pt-duplicate-key-checker line 891

  I've tried using other options but they all result in the same error.

  Our environment is as follows:
  Red Hat Enterprise Linux Server release 6.3
  MySQL 5.5.29-enterprise-commercial-advanced MySQL Enterprise Server - Advanced Edition (Commercial)
  percona-toolkit-2.2.6-1.noarch.rpm
  perl-DBD-MySQL-4.013-3.el6.x86_64.rpm

  When I installed the toolkit there was a dependency requirement for
  perl and I then included the above rpm in the installation.

  Please help.
  Thanks!

To manage notifications about this bug go to:
https://bugs.launchpad.net/percona-toolkit/+bug/1269877/+subscriptions

Jericho Rivera (jericho-rivera) wrote :

So I tested this locally on a Centos VM and got this:

[root@vagrant-centos64 /]# pt-duplicate-key-checker --database=mysql
install_driver(mysql) failed: Attempt to reload DBD/mysql.pm aborted.
Compilation failed in require at (eval 20) line 3.

 at /usr/bin/pt-duplicate-key-checker line 891

The test environment:
MySQL-server-5.5.29-2.el6.x86_64
percona-toolkit-2.2.6-1

Installing MySQL Shared Compat somehow fixed it:
yum localinstall MySQL-shared-compat-5.5.29-2.el6.x86_64.rpm
...
Installed:
  MySQL-shared-compat.x86_64 0:5.5.29-2.el6

Complete!
[root@vagrant-centos64 /]# pt-duplicate-key-checker --database=mysql

# A software update is available:
# * The current version for MySQL Community Server (GPL) is 5.5.35.

# ########################################################################
# Summary of indexes
# ########################################################################

# Total Indexes 29

Ideally installation of these packages would have to be through "yum install packagename" so that all package depencies will be installed as well.

Are you installing these packages running "yum localinstall packagename.rpm" or "rpm -ivh packagename.rpm"?

Unfortunately, I have no way of testing this on Red Hat Enterprise Linux or MySQL Enterprise Server.

John Fowler (jfowler-n) wrote :

Hi Jericho,

Thank you for getting back to me. I think we'll probably need to install the package you identified in order to correct the problem we're encountering.

One more question: Does the Percona Toolkit work with community, Remi, and Enterprise editions of MySQL?

Thank you,
John

-----Original Message-----
From: <email address hidden> [mailto:<email address hidden>] On Behalf Of Jericho Rivera
Sent: Tuesday, January 21, 2014 10:33 PM
To: Fowler John
Subject: [Bug 1269877] Re: pt-duplicate-key-checker fails at line 891

So I tested this locally on a Centos VM and got this:

[root@vagrant-centos64 /]# pt-duplicate-key-checker --database=mysql
install_driver(mysql) failed: Attempt to reload DBD/mysql.pm aborted.
Compilation failed in require at (eval 20) line 3.

 at /usr/bin/pt-duplicate-key-checker line 891

The test environment:
MySQL-server-5.5.29-2.el6.x86_64
percona-toolkit-2.2.6-1

Installing MySQL Shared Compat somehow fixed it:
yum localinstall MySQL-shared-compat-5.5.29-2.el6.x86_64.rpm
...
Installed:
  MySQL-shared-compat.x86_64 0:5.5.29-2.el6

Complete!
[root@vagrant-centos64 /]# pt-duplicate-key-checker --database=mysql

# A software update is available:
# * The current version for MySQL Community Server (GPL) is 5.5.35.

# ########################################################################
# Summary of indexes
# ########################################################################

# Total Indexes 29

Ideally installation of these packages would have to be through "yum install packagename" so that all package depencies will be installed as well.

Are you installing these packages running "yum localinstall packagename.rpm" or "rpm -ivh packagename.rpm"?

Unfortunately, I have no way of testing this on Red Hat Enterprise Linux or MySQL Enterprise Server.

--
You received this bug notification because you are subscribed to the bug report.
https://bugs.launchpad.net/bugs/1269877

Title:
  pt-duplicate-key-checker fails at line 891

Status in Percona Toolkit:
  New

Bug description:
  When I run the utility pt-duplicate-key-checker and used the --databases option...
  # pt-duplicate-key-checker --databases=mem
   I get the following error:
  install_driver(mysql) failed: Attempt to reload DBD/mysql.pm aborted.
  Compilation failed in require at (eval 7) line 3.

   at /usr/bin/pt-duplicate-key-checker line 891

  I've tried using other options but they all result in the same error.

  Our environment is as follows:
  Red Hat Enterprise Linux Server release 6.3
  MySQL 5.5.29-enterprise-commercial-advanced MySQL Enterprise Server - Advanced Edition (Commercial)
  percona-toolkit-2.2.6-1.noarch.rpm
  perl-DBD-MySQL-4.013-3.el6.x86_64.rpm

  When I installed the toolkit there was a dependency requirement for
  perl and I then included the above rpm in the installation.

  Please help.
  Thanks!

To manage notifications about this bug go to:
https://bugs.launchpad.net/percona-toolkit/+bug/1269877/+subscriptions

Jericho Rivera (jericho-rivera) wrote :

Hi,

Percona Toolkit should work on any popular Linux distribution for versions of MySQL 5.0 and above (community, enterprise, remi), as long as the system requirements are met .

http://www.percona.com/doc/percona-toolkit/2.2/system_requirements.html

Keith Murphy (bmurphy) wrote :
Download full text (4.2 KiB)

The issue here doesn't have anything to perl-MySQL-DBD or perl in general.

I just experienced exactly the same issue on a RedHat 6.5 system. All perl modules of any note installed and I get the same error message about perl-MySQL-DBD.

[root@perr2dbph01 ~]# pt-deadlock-logger --host=localhost --socket=/var/lib/mysql/mysql.sock --user=root --password=mysql@dm1n --dest D=admin,t=deadlocks --daemonize --run-time 1h --interval 30s
install_driver(mysql) failed: Attempt to reload DBD/mysql.pm aborted.
Compilation failed in require at (eval 23) line 3.

 at /usr/bin/pt-deadlock-logger line 2399
[root@perr2dbph01 ~]#

root@perr2dbph01 ~]# rpm -qa | grep -i percon
percona-xtrabackup-2.1.9-744.rhel6.x86_64
percona-toolkit-2.2.9-1.noarch
percona-nagios-plugins-1.1.3-1.noarch
Percona-Server-shared-56-5.6.17-rel65.0.el6.x86_64
Percona-Server-server-56-5.6.17-rel65.0.el6.x86_64
percona-release-0.0-1.x86_64
Percona-Server-client-56-5.6.17-rel65.0.el6.x86_64
[root@perr2dbph01 ~]# rpm -qa | grep -i mysql
perl-DBD-MySQL-4.013-3.el6.x86_64
[root@perr2dbph01 ~]#

When I installed the mysql-libs package the following magic happens:
[root@perr2dbph01 ~]# yum install mysql-libs
Loaded plugins: product-id, security
Setting up Install Process
Package mysql-libs is obsoleted by MySQL-shared-compat, trying to install MySQL-shared-compat-5.5.28-1.el6.x86_64 instead
Resolving Dependencies
--> Running transaction check
---> Package MySQL-shared-compat.x86_64 0:5.5.28-1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=========================================================================================================================================
 Package Arch Version Repository Size
=========================================================================================================================================
Installing:
 MySQL-shared-compat x86_64 5.5.28-1.el6 RHEL-6-Repository-Prod 3.8 M

Transaction Summary
=========================================================================================================================================
Install 1 Package(s)

Total download size: 3.8 M
Installed size: 11 M
Is this ok [y/N]: y
Downloading Packages:
MySQL-shared-compat-5.5.28-1.el6.x86_64.rpm | 3.8 MB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
** Found 5 pre-existing rpmdb problem(s), 'yum check' output follows:
perl-DBD-MySQL-4.013-3.el6.x86_64 has missing requires of libmysqlclient.so.16()(64bit)
perl-DBD-MySQL-4.013-3.el6.x86_64 has missing requires of libmysqlclient.so.16(libmysqlclient_16)(64bit)
2:postfix-2.6.6-2.2.el6_1.x86_64 has missing requires of libmysqlclient.so.16()(64bit)
2:postfix-2.6.6-2.2.el6_1.x86_64 has missing requires of libmysqlclient.so.16(libmysqlclient_16)(64bit)
2:postfix-2.6.6-2.2.el6_1.x86_64 has missing requires of mysql-libs
  Installing : MyS...

Read more...

Jericho Rivera (jericho-rivera) wrote :

Hi,
Sorry for the very late response to this bug.

The problem is the absence of libmysqlclient.so.16 which is required by perl-DBD-MySQL which in turn is also required by some of the tools in the Percona Toolkit package.

Percona Toolkit requires the following perl modules
bash-4.1# repoquery --requires percona-toolkit
perl(DBD::mysql) >= 1.0
perl(DBI) >= 1.13
perl(Digest::MD5)
perl(IO::Socket::SSL)
perl(Time::HiRes)

While perl-DBD-MySQL requires libmysqlclient.so.16
bash-4.1# repoquery --requires perl-DBD-MySQL | grep libmysql
libmysqlclient.so.16()(64bit)
libmysqlclient.so.16(libmysqlclient_16)(64bit)

But Percona-Server-shared-56 (and -shared-55 afaik) provides libmysqlclient.so.18
bash-4.1# repoquery --provides Percona-Server-shared-56 | grep libmysql
libmysqlclient.so.18()(64bit)
libmysqlclient.so.18(libmysqlclient_18)(64bit)

So, installing Percona-Server-shared-51 will provide libmysqlclient.so.16 and thereby resolving the dependency problem.
bash-4.1# repoquery --provides Percona-Server-shared-51 | grep libmysql
libmysqlclient.so.16()(64bit)
libmysqlclient.so.16(libmysqlclient_16)(64bit)
libmysqlclient_r.so.16()(64bit)
libmysqlclient_r.so.16(libmysqlclient_16)(64bit)

As it also will be resolved if you install mysql-libs
bash-4.1# repoquery --provides mysql-libs | grep libmysql
libmysqlclient.so.16
libmysqlclient.so.16(libmysqlclient_16)
libmysqlclient_r.so.16
libmysqlclient_r.so.16(libmysqlclient_16)
libmysqlclient.so.16()(64bit)
libmysqlclient.so.16(libmysqlclient_16)(64bit)
libmysqlclient_r.so.16()(64bit)
libmysqlclient_r.so.16(libmysqlclient_16)(64bit)

PS 5.5 and PS 5.6 are using the same client libraries (libmysqlclient.so.18) if you want to use the old .so.16 libraries you'll need to install Percona-Server-shared-51 or mysql-libs. So until perl-DBD-MySQL changes its client library dependency to .so.18, Percona-Server-shared-51 or mysql-libs will have to be installed for some Percona Toolkit tools to work properly.

Changed in percona-toolkit:
status: New → Invalid
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments