Edit report at https://bugs.php.net/bug.php?id=63176&edit=1
ID: 63176 Comment by: thz at plista dot com Reported by: jrbasso at gmail dot com Summary: Segmentation fault when instantiate 2 persistent PDO to the same db server Status: Assigned Type: Bug Package: PDO related Operating System: Ubunt 12.04.1 PHP Version: 5.4.7 Assigned To: wez Block user comment: N Private report: N New Comment: Hi, we are experiencing the same error and it's preventing us from moving to PHP 5.4. Are there any plans to fix this or are we going to have to live with not being able to derive from PDO? We have done extensive debugging and may be able to provide some information as to why this happens, but due to a lack of internal knowledge of how the Zend engine works, we haven't been able to come up with a fix. Previous Comments: ------------------------------------------------------------------------ [2012-09-28 13:37:49] jrbasso at gmail dot com I tested in my PHP 5.3.15 and the issue doesn't happen. It just happen in PHP 5.4.x. ------------------------------------------------------------------------ [2012-09-28 13:22:34] cjsaylor at gmail dot com After looking at the patch, is denying persistent connections from derived PDO classes the actual proposed solution? Not being able to extend \PDO with persistent connections would be a problem in many frameworks/appliances. ------------------------------------------------------------------------ [2012-09-28 02:55:06] larue...@php.net @wez, could you please look at this? the attached patch indicated where the problem came from. :) thanks ------------------------------------------------------------------------ [2012-09-28 02:47:52] larue...@php.net The following patch has been added/updated: Patch Name: bug63176.patch Revision: 1348800472 URL: https://bugs.php.net/patch-display.php?bug=63176&patch=bug63176.patch&revision=1348800472 ------------------------------------------------------------------------ [2012-09-28 02:10:28] jrbasso at gmail dot com Description: ------------ Download the PHP version 5.4.7, compiled with ./configure --enable-debug --with- pdo-mysql --enable-pcntl Run the test script and it gives a segmentation fault when the script finish. If I remove the attribute from PDO2 it works fine. If the persistent option is disabled it works fine too. gdb backtrace available on https://gist.github.com/3bda9d5253e7a86168e0 Test script: --------------- <?php class PDO2 extends PDO { protected $transLevel; } class ModelA { public function __construct() { $this->db = new PDO2('mysql:host=localhost', 'root', 'root', array(PDO::ATTR_PERSISTENT => true)); $this->db->query('SELECT 1')->fetchAll(); } } $a = new ModelA(); $b = new ModelA(); Expected result: ---------------- No segmentation fault Actual result: -------------- Segmentation fault (core dumped) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=63176&edit=1