PEAR is archived and read-only

This mirror preserves historical PEAR package releases and metadata so existing references remain available.

Home » Database » MDB2 » Bug #8752

MDB2 PHP4 contructor is causing eaccelerator crash

Details

Request #8752MDB2 PHP4 contructor is causing eaccelerator crash
Submitted2006-09-21 09:31 UTC
Fromradzaw at radzaw dot one dot pl
StatusBogus
PackageMDB2
PHP Version5.1.6
OSGentoo Linux
Roadmaps(Not assigned)

Comments

[2006-09-21 09:31 UTC] radzaw at radzaw dot one dot pl

Description:
------------
I've installed eaccelerator 0.9.5-rc1 to speed up my scripts. But every script which use MDB2 crashes.

Bug is (probably) in MDB2.php function MDB2_Driver_Common ("PHP 4 Constructor"), which calls __construct().

If i swaped code from __contruct to MDB2_Driver_Common function, and call this method in __construct, then everything is ok.

Test script:
---------------
require_once('MDB2.php');

$db = MDB2::Connect('pgsql://user:pass@localhost/dbname');

$query = "some sql query";
$res = $db->query($query);
if (PEAR::isError($res)) die($res->getMessage());

$db->disconnect();

Expected result:
----------------
results from sql query

Actual result:
--------------
httpd logs:
Sep 21 11:00:45 radzaw64 apache2[6306]: segfault at 00007fff0632af58 rip 00002ba1a7408a65 rsp 00007fff0632af60 error 6

xdebug output:

Fatal error: Maximum function nesting level of '100' reached, aborting! in /usr/share/php/MDB2/Driver/pgsql.php on line 1296
Call Stack
# Function Location
1 {main}() /var/www/localhost/htdocs/test/index.php:0
2 MDB2::connect() /var/www/localhost/htdocs/test/index.php:18
3 MDB2::factory() /usr/share/php/MDB2.php:433
4 MDB2_Driver_pgsql->__construct() /usr/share/php/MDB2.php:390
5 MDB2_Driver_Common->MDB2_Driver_Common() /usr/share/php/MDB2/Driver/pgsql.php:72
6 MDB2_Driver_pgsql->__construct() /usr/share/php/MDB2.php:1296
7 MDB2_Driver_Common->MDB2_Driver_Common() /usr/share/php/MDB2/Driver/pgsql.php:72
8 MDB2_Driver_pgsql->__construct() /usr/share/php/MDB2.php:1296
9 MDB2_Driver_Common->MDB2_Driver_Common() /usr/share/php/MDB2/Driver/pgsql.php:72
10 MDB2_Driver_pgsql->__construct() /usr/share/php/MDB2.php:1296
11 MDB2_Driver_Common->MDB2_Driver_Common() /usr/share/php/MDB2/Driver/pgsql.php:72
...