Bug #63176 [Com]: Segmentation fault when instantiate 2 persistent PDO to the same db server

2013-06-17 Thread tj dot botha at plista dot com
Edit report at https://bugs.php.net/bug.php?id=63176edit=1

 ID: 63176
 Comment by: tj dot botha 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: Closed
 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:

Hey guys - thanks very much for fixing this! I pulled 
1143f58a7094ed9a4960bfb714fa2773dda7c704 this morning and confirm we're also no 
longer segfaulting.

:)


Previous Comments:

[2013-06-16 15:02:30] larue...@php.net

@wez what do you think? thanks


[2013-06-16 15:01:46] larue...@php.net

bug has been fixed, will behavior like 5.3

but it's a little weird that's two different drived class will share one same 
dbh, 
and the dbh hold only one drived  class instance.

see the test script I committed: https://github.com/php/php-
src/blob/6cd6349ff8842a9356723b7b192eb3c93fb64c7e/ext/pdo_mysql/tests/bug63176.php
t

note the result are all PDO2 

maybe we should also add the drived class name into the persistent id? 

thanks


[2013-06-16 14:57:04] larue...@php.net

Automatic comment on behalf of laruence
Revision: 
http://git.php.net/?p=php-src.git;a=commit;h=49e57a31659a82443b9413127f8d58a72f09ed5b
Log: Fixed bug #63176 (Segmentation fault when instantiate 2 persistent PDO to 
the same db server)


[2013-06-14 19:31:44] jrbasso at gmail dot com

@thz, the workaround I did was to create 2 DNS names for the same DB. So PHP 
will 
think they are 2 different servers and connect twice.


[2013-06-14 13:16:48] thz at plista dot com

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.




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

https://bugs.php.net/bug.php?id=63176


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=63176edit=1


Bug #63176 [Com]: Segmentation fault when instantiate 2 persistent PDO to the same db server

2013-06-14 Thread thz at plista dot com
Edit report at https://bugs.php.net/bug.php?id=63176edit=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=63176patch=bug63176.patchrevision=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=63176edit=1


Bug #63176 [Com]: Segmentation fault when instantiate 2 persistent PDO to the same db server

2012-09-28 Thread cjsaylor at gmail dot com
Edit report at https://bugs.php.net/bug.php?id=63176edit=1

 ID: 63176
 Comment by: cjsaylor at gmail 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:

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.


Previous Comments:

[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=63176patch=bug63176.patchrevision=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=63176edit=1


Bug #63176 [Com]: Segmentation fault when instantiate 2 persistent PDO to the same db server

2012-09-28 Thread jrbasso at gmail dot com
Edit report at https://bugs.php.net/bug.php?id=63176edit=1

 ID: 63176
 Comment by: jrbasso at gmail 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:

I tested in my PHP 5.3.15 and the issue doesn't happen. It just happen in PHP 
5.4.x.


Previous Comments:

[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=63176patch=bug63176.patchrevision=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=63176edit=1