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

Reply via email to