ID: 40544
User updated by: kees at tweakers dot net
Reported By: kees at tweakers dot net
-Status: Feedback
+Status: Open
Bug Type: PostgreSQL related
Operating System: Linux (Debian)
PHP Version: 5.2.1
New Comment:
tested with the snapshot:
[EMAIL PROTECTED]:/usr/src/php5.2-200702191330$ sapi/cli/php test.3.php
Starting
And now he hangs in a busy wait
[ctrl-c]
[EMAIL PROTECTED]:/usr/src/php5.2-200702191330$ sapi/cli/php -v
PHP 5.2.2-dev (cli) (built: Feb 19 2007 16:49:22)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
ldd sapi/cli/php
libpq.so.5 => /usr/lib/libpq.so.5 (0xa7f3c000)
Previous Comments:
------------------------------------------------------------------------
[2007-02-19 15:19:10] acm at tweakers dot net
Btw, when hanging gdb to the php-process and type 'bt' you get this:
#0 0xa7ba88c0 in free () from /lib/tls/libc.so.6
#1 0xa7ec8ea7 in PQclear () from /usr/lib/libpq.so.5
#2 0x08086fc8 in _close_pgsql_link (rsrc=0x81e43ec) at
/usr/src/php-4.4.2/ext/pgsql/pgsql.c:277
#3 0x08139fb2 in list_entry_destructor (ptr=0x81e43ec) at
/usr/src/php-4.4.2/Zend/zend_list.c:177
#4 0x08137977 in zend_hash_apply_deleter (ht=0x81a49e0, p=0x81e43b4)
at /usr/src/php-4.4.2/Zend/zend_hash.c:611
#5 0x08137b97 in zend_hash_graceful_reverse_destroy (ht=0x81a49e0)
at /usr/src/php-4.4.2/Zend/zend_hash.c:677
#6 0x0812b9ed in shutdown_executor () at
/usr/src/php-4.4.2/Zend/zend_execute_API.c:211
#7 0x08133801 in zend_deactivate () at
/usr/src/php-4.4.2/Zend/zend.c:689
#8 0x08107862 in php_request_shutdown (dummy=0x0) at
/usr/src/php-4.4.2/main/main.c:999
#9 0x0814ee56 in main (argc=2, argv=0xafb6d114) at
/usr/src/php-4.4.2/sapi/cli/php_cli.c:881
------------------------------------------------------------------------
[2007-02-19 15:10:06] [EMAIL PROTECTED]
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5.2-win32-latest.zip
------------------------------------------------------------------------
[2007-02-19 14:57:19] kees at tweakers dot net
Description:
------------
After opening a db connection to postgresql and executing a query, and
after that query a 'die()' php doesnt return to the CLI but hangs
Reproduce code:
---------------
<?
$conn = pg_connect('user=acm dbname=loganalysis');
echo "Starting\n";
$q = "
CREATE TEMPORARY TABLE test (test integer);
COPY test FROM STDIN WITH DELIMITER ',' CSV QUOTE '\"' ESCAPE '\"'";
pg_query($conn, $q);
die("And now he hangs in a busy wait\n");
?>
Expected result:
----------------
[EMAIL PROTECTED]:~$ php test.3.php
Starting
And now he hangs in a busy wait
[EMAIL PROTECTED]:~$
Actual result:
--------------
[EMAIL PROTECTED]:~$ php test.3.php
Starting
And now he hangs in a busy wait
[no prompt, you have to ctrl-c to exit]
Last part of strace:
recv(3, "C\0\0\0\21CREATE TABLE\0G\0\0\0\t\0\0\1\0\0", 16384, 0) = 28
write(1, "And now he hangs in a busy wait\n", 32And now he hangs in a
busy wait
) = 32
close(6) = 0
close(5) = 0
close(4) = 0
He probably wants to do a close(3) here as that is the postgresql
connection, but it never closes, and netstat will show an open
connection:
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node PID/Program
name Path
unix 3 [ ] STREAM CONNECTED 549701 -
/var/run/postgresql/.s.PGSQL.5432
unix 3 [ ] STREAM CONNECTED 549700 26884/php
Tested with PHP 5.2.0-8 (debian package) and PHP 4.4.2
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=40544&edit=1