PHP 4.0 Bug #9746 Updated: pg_close (or autoclose) closes wrong connections
| From: | romolo@php.net | Date: | Sat, 24 Mar 2001 18:46:09 +0000 |
| Subject: | PHP 4.0 Bug #9746 Updated: pg_close (or autoclose) closes wrong connections | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-49892@lists.php.net to get a copy of this message | ||
ID: 9746
Updated by: romolo
Reported By: rich@horde.org
Status: Open
Bug Type: PostgreSQL related
Assigned To:
Comments:
Try current CVS release, at lest in my case the bug seem to be solved.
The problem appeared to be in the close function as it was closing first the specified connection
and than the default one (that in the case of same connection ID are exactly the same) so that the
2nd unwilled close was really closing the connection and not just removing a ref to it.
Previous Comments:
---------------------------------------------------------------------------
[2001-03-14 16:38:02] sniper@php.net
Try latest CVS snapshot from http://snaps.php.net/
as this should be fixed.
--Jani
---------------------------------------------------------------------------
[2001-03-14 15:37:28] rich@horde.org
I tried with php4-200103141145; still as described above.
---------------------------------------------------------------------------
[2001-03-14 16:21:41] rich@horde.org
I recall this coming up before, but I can't find it in the list of open or closed postgres
bugs.
It appears as though PHP is using the arguments to pg_connect to uniquely identify connections. For
example:
$dba = pg_connect("user=foo pass=bar dbname=baz");
$dbb = pg_connect("user=foo pass=bar dbname=baz");
pg_close($dba);
# $dbb is closed now too
Were one to use $dbb at this point, one would see
PHP Warning: 1 is not a valid PostgreSQL link resource in [file] at [line].
But,
$dba = pg_connect("user=foo pass=bar dbname=baz");
$dbb = pg_connect("pass=bar user=foo dbname=baz");
pg_close($dba);
# $dbb is still open
and
$dba = pg_connect("user=foo pass=bar dbname=baz");
$dbb = pg_connect("user=foo pass=bar dbname=baz ");
pg_close($dba);
# $dbb is still open
The bug doesn't require that the handle be closed explicitly; I discovered it here where one of
our programmers was having connections close when one fell out of scope.
I tried moving back to PHP 4.0.2 but the bug's there too (so it doesn't look to be a
regression problem); on the other hand, a DEC Alpha running Digital Unix 4.0e and PHP 4.0.2 does
*not* exhibit this behaviour.
If you're unable to duplicate it, please get in touch with me, and I'll see if I can make
arrangements for a testing environment. I'll poke through the code myself for something
obvious, but I'm unfamiliar with PHP internals in the first place (up to now, at least).
---------------------------------------------------------------------------
ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at http://bugs.php.net/?id=9746&edit=2