Edit report at http://bugs.php.net/bug.php?id=51248&edit=1
ID: 51248
Comment by: php at group dot apple dot com
Reported by: mbeccati@php.net
Summary: Segmentation fault in mysql_fetch_array
Status: Assigned
Type: Bug
Package: MySQL related
Operating System: FreeBSD 6.2
PHP Version: 5.3.2
Assigned To: mysql
Block user comment: N
New Comment:
This reproduces on Mac OS X, and appears to be a stack overflow issue. I
enabled
stack overflow protection by adding "-g -fstack-protector-all" to the
CFLAGS passed
to configure. (The problem does not reproduce when configured with
--enable-debug
or -O0 instead of -Os.) In running this through gdb, the following line
in changes
execute_data and may be the start of the corruption:
zend_vm_execute.h:301 EX_T(opline->result.u.var).var.ptr_ptr =
&EX_T(opline->result.u.var).var.ptr;
With the following sample script, the third pass through
zend_do_fcall_common_helper_SPEC() demonstrates the crash:
<?php
$db_host = 'localhost';
$db_user = 'mysql_dba';
$db_password = 'admin';
$db_port = '3306';
$db_conn = mysql_connect($db_host.':'.$db_port, $db_user,
$db_password);
$db_result = mysql_query('select version() as version;', $db_conn);
$row = mysql_fetch_array($db_result, MYSQL_ASSOC); // this does NOT
work
// $row = mysql_fetch_assoc($db_result); // this works
printf("mysql version: %s\n", $row['version']);
mysql_free_result($db_result);
mysql_close($db_conn);
?>
Previous Comments:
------------------------------------------------------------------------
[2010-08-26 13:27:05] uw@php.net
Please try to provide a short test script, like its good style with
every other bug report.
------------------------------------------------------------------------
[2010-08-25 10:32:16] pajoye@php.net
Latest drupal (6+) versions work with 5.3 smoothly.
------------------------------------------------------------------------
[2010-08-25 10:22:29] mbeccati@php.net
@Chris: I understand that Drupal and PHP 5.3 might not live happily
together, but I'd expect errors, not segmentation faults.
@Andrey: Is there anything I can do to help understanding what happens
on when using libmysql?
------------------------------------------------------------------------
[2010-08-24 20:14:29] chris at chrischarlton dot us
Drupal 6.14 was the first 6.x to start supporting PHP 5.3, but mileage
will vary.
It is highly recommended to run Drupal on a PHP 5.2.x server. Of course
Drupal will
natively support PHP 5.3, there are just a few kinks being worked out.
------------------------------------------------------------------------
[2010-04-09 09:27:41] mbeccati@php.net
I've been able to test the drush script with a newly compiled 5.3.2 w/
mysqlnd and it appears that the segmentation fault is gone. Is there any
way I can trace what happens with libmysql?
i.e.
libmysql:
$ /usr/local/bin/php ~/bin/drush/drush.php dis twitter
The following projects will be disabled: twitter
Do you really want to continue? (y/n): y
Segmentation fault: 11 (core dumped)
mysqlnd:
$ /array1/compile/php-5.3.2-apache/sapi/cli/php -d
mysqlnd.debug="t:o,/tmp/mysqlnd.trace" ~/bin/drush/drush.php dis
twitter
The following projects will be disabled: twitter
Do you really want to continue? (y/n): y
twitter was disabled successfully.
[ok]
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/bug.php?id=51248
--
Edit this bug report at http://bugs.php.net/bug.php?id=51248&edit=1