Edit report at http://bugs.php.net/bug.php?id=51091&edit=1

 ID:               51091
 Updated by:       dmi...@php.net
 Reported by:      achristianson at yakabod dot com
 Summary:          Persistent PDO Connections Crash
-Status:           Assigned
+Status:           Feedback
 Type:             Bug
 Package:          Reproducible crash
 Operating System: CentOS 5.4
 PHP Version:      5.3.1
 Assigned To:      dmitry

 New Comment:

I'm not able to reproduce it. May be it's already fixed. Could you
verify?


Previous Comments:
------------------------------------------------------------------------
[2010-02-19 16:47:46] johan...@php.net

-Status: Open
+Status: Assigned
-Assigned To: 
+Assigned To: dmitry

Dmitry, can you take a look? - Thanks.

------------------------------------------------------------------------
[2010-02-19 16:09:24] achristianson at yakabod dot com

I gave it a try with



zend.enable_gc = Off



The segmentation fault no longer occurs

------------------------------------------------------------------------
[2010-02-19 15:34:36] ras...@php.net

Looks like a gc issue.  Confirm by setting:



zend.enable_gc = Off



in your php.ini

------------------------------------------------------------------------
[2010-02-19 15:29:20] achristianson at yakabod dot com

Description:
------------
* create persistent connection to database; store it to a variable

* create an additional persistent connection to database: store it in 

the same variable

* allocate a bunch of memory

* PHP segfaults

Reproduce code:
---------------
<?php

$db = connect();

$db = connect();



for($i = 0; $i < 10000; $i++)

{

  $exampleArray[] = new ExampleObject();

}



class ExampleObject { }



function connect()

{

  return new PDO( 'mysql:host=<db host>;dbname=<db name>', '<db user>',
'<db password>',

      array( PDO::ATTR_PERSISTENT => true ));

}

Expected result:
----------------
no segmentation fault

Actual result:
--------------
[New Thread 0xb7f396c0 (LWP 3416)]



Program received signal SIGSEGV, Segmentation fault.

0x0853a746 in zobj_mark_grey (obj=0xb7b8e07c, pz=0xbfd1f0c8) at 

/root/php-5.3.1/Zend/zend_gc.c:383

383                             p = Z_OBJPROP_P(pz)->pListHead;

(gdb) bt

#0  0x0853a746 in zobj_mark_grey (obj=0xb7b8e07c, pz=0xbfd1f0c8) at 

/root/php-5.3.1/Zend/zend_gc.c:383

#1  0x0853a81e in gc_mark_roots () at /root/php-

5.3.1/Zend/zend_gc.c:410

#2  0x0853af64 in gc_collect_cycles () at /root/php-

5.3.1/Zend/zend_gc.c:628

#3  0x0853a1a9 in gc_zobj_possible_root (zv=0xa06bac8) at /root/php-

5.3.1/Zend/zend_gc.c:221

#4  0x08539f78 in gc_zval_possible_root (zv=0xa06bac8) at /root/php-

5.3.1/Zend/zend_gc.c:143

#5  0x08508570 in _zval_ptr_dtor (zval_ptr=0xbfd1f1ec, 

__zend_filename=0x88fb070 "/root/php-5.3.1/Zend/zend_vm_execute.h", 

__zend_lineno=28199) at /root/php-5.3.1/Zend/zend_gc.h:183

#6  0x085d7d24 in ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_HANDLER 

(execute_data=0x9cccd20) at /root/php-

5.3.1/Zend/zend_vm_execute.h:28199

#7  0x08543e68 in execute (op_array=0x9d12f70) at /root/php-

5.3.1/Zend/zend_vm_execute.h:104

#8  0x08518b68 in zend_execute_scripts (type=8, retval=0x0, 

file_count=3) at /root/php-5.3.1/Zend/zend.c:1194

#9  0x084aecdb in php_execute_script (primary_file=0xbfd216a4) at 

/root/php-5.3.1/main/main.c:2225

#10 0x085e4fa0 in main (argc=2, argv=0xbfd21804) at /root/php-

5.3.1/sapi/cli/php_cli.c:1190


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=51091&edit=1

Reply via email to