php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #47819 Getting pdo_mysql.so: undefined symbol: mysqlnd_debug_init at startup
Submitted: 2009-03-28 10:19 UTC Modified: 2010-12-20 12:40 UTC
From: shahar dot e at zend dot com Assigned: mysql (profile)
Status: Closed Package: MySQL related
PHP Version: 5.3.0RC1 OS: Linux i386
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: shahar dot e at zend dot com
New email:
PHP Version: OS:

 

 [2009-03-28 10:19 UTC] shahar dot e at zend dot com
Description:
------------
I'm putting this under PDO even though this is probably a mysqlnd/build issue.
 
I've compiled PHP5.3.0-RC1 with --enable-debug and --enable-pdo-mysql=mysqlnd,shared. When I try to load the PDO MySQL extension I get this:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/debug-non-zts-20090115/pdo_mysql.so' - /usr/local/lib/php/extensions/debug-non-zts-20090115/pdo_mysql.so: undefined symbol: mysqlnd_debug_init in Unknown on line 0

Some info:

PHP Version => 5.3.0RC1
System => Linux wintergreen 2.6.28-gentoo-r2 #1 PREEMPT Sun Mar 8 17:10:56 IST 2009 i686
Build Date => Mar 27 2009 14:37:12
Configure Command =>  './configure'  '--prefix=/usr/local' '--with-apxs2' '--enable-debug' '--with-openssl' '--with-pcre-regex' '--with-zlib' '--enable-bcmath=shared'
 '--with-bz2=shared' '--enable-calendar=shared' '--with-curl=shared' '--with-enchant=shared' '--enable-exif=shared' '--enable-ftp=shared' '--with-gd=shared' '--with-t
1lib' '--enable-gd-native-ttf' '--with-gettext=shared' '--enable-intl=shared' '--enable-mbstring=shared' '--with-mcrypt=shared' '--with-mysql=shared,mysqlnd' '--with-
mysql-sock=/var/run/mysqld/mysqld.sock' '--with-mysqli=shared,mysqlnd' '--enable-pcntl=shared' '--with-pdo-mysql=shared,mysqlnd' '--with-pdo-sqlite' '--with-readline'
 '--enable-soap=shared' '--enable-sockets=shared' '--enable-sqlite-utf8' '--with-tidy=shared' '--enable-zip=shared' '--with-pear'



Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2009-03-30 11:14 UTC] johannes@php.net
Are you loading the module into a PHP which has mysqlnd enabled? Usually mysqlnd is automatically activated once another extension using mysqlnd is being activated.

I tried the following which worked:

$ ./configure --disable-all --enable-pdo --with-pdo-mysql=shared,mysqlnd
$ make
$ sapi/cli/php -d extension_dir=modules/ -d extension=pdo_mysql.so -m

 [2009-03-30 11:59 UTC] shahar dot e at zend dot com
Yes, I'm building PHP from scratch with the above mentioned configure command.

I think that in order to reproduce this you need to add --enable-debug to your ./configure, as so (I just tried this):

$ ./configure --disable-all --enable-pdo --with-pdo-mysql=shared,mysqlnd --enable-debug
$ make
$ sapi/cli/php -d extension_dir=modules/ -d extension=pdo_mysql.so -m
PHP Warning:  PHP Startup: Unable to load dynamic library 'modules/pdo_mysql.so' - modules/pdo_mysql.so: undefined symbol: mysqlnd_debug_init in Unknown on line 0

I assume that ext/mysqlnd/mysqlnd_debug.c needs to be added as a build dependency of pdo_mysql if --enable-debug is set, but I am not experienced enough with autoconf et al to figure this out exactly. 

Thanks,
Shahar.
 [2009-03-30 13:15 UTC] johannes@php.net
Ah, the debug piece is important, investigating ...
 [2009-03-30 14:06 UTC] johannes@php.net
Please try using this CVS snapshot:

  http://snaps.php.net/php5.3-latest.tar.gz
 
For Windows:

  http://windows.php.net/snapshots/

I still didn't reproduce it but applied a patch with some guessing. Please try the snapshot and see whether it helps.
 [2009-03-30 14:48 UTC] shahar dot e at zend dot com
This still happens with the latest snapshot you linked to. 
Here are the relevant parts from sapi/cli/php -i:

PHP Version => 5.3.0RC2-dev
System => Linux wintergreen 2.6.28-gentoo-r2 #1 PREEMPT Sun Mar 8 17:10:56 IST 2009 i686
Build Date => Mar 30 2009 17:42:20
Configure Command =>  './configure'  '--disable-all' '--enable-pdo' '--with-pdo-mysql=shared,mysqlnd' '--enable-debug'
Server API => Command Line Interface
Debug Build => yes
Thread Safety => disabled

mysqlnd

mysqlnd => enabled
Version => mysqlnd 5.0.5-dev - 081106 - $Revision: 1.3.2.22 $
Command buffer size => 2048
Read buffer size => 32768
Collecting statistics => Yes
Collecting memory statistics => No

PDO

PDO support => enabled
 [2009-03-31 10:40 UTC] shahar dot e at zend dot com
I just tried again with today's snapshot (php5.3-200903310830) and looks like it is fixed. I no longer get the message, and pdo_mysql is indeed loaded. 

Thanks!
 [2009-03-31 12:20 UTC] johannes@php.net
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.

Ok, so you were too fast and the snapshot you tried yesterday didn't have the fix, yet. Closing the report.
 [2010-12-20 12:40 UTC] jani@php.net
-Package: Tidy +Package: MySQL related
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri May 17 00:01:34 2024 UTC