From:             chris at deviantart dot com
Operating system: Linux 2.6.5
PHP version:      4.3.6
PHP Bug Type:     Sockets related
Bug description:  pfsockopen hangs for 30 seconds if connection is established

Description:
------------
If a connection has already been established, pfsockopen will hang for 30
seconds before returning the correct persistent socket. strace reports the
following:

...
connect(3, {sa_family=AF_INET, sin_port=htons(11211),
sin_addr=inet_addr("10.0.0.16")}, 16) = -1 EINPROGRESS (Operation now in
progress)
select(4, [3], [3], [3], {60, 0})       = 1 (out [3], left {60, 0})
getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
fcntl64(3, F_SETFL, O_RDWR)             = 0
select(4, [3], NULL, NULL, {60, 0}
*hang*

The following patch seems to fix it:

http://cvs.php.net/diff.php/php-src/main/network.c?sa=1&r1=1.83.2.21&r2=1.83.2.20&ty=u

Maybe this needs backporting?

http://cvs.php.net/cvs.php/php-src/main/streams/streams.c?sa=1#rev1.49


Reproduce code:
---------------
<?
$fp = pfsockopen("rembrandt", 11211);
$fp = pfsockopen("rembrandt", 11211);
?>



-- 
Edit bug report at http://bugs.php.net/?id=28055&edit=1
-- 
Try a CVS snapshot (php4):  http://bugs.php.net/fix.php?id=28055&r=trysnapshot4
Try a CVS snapshot (php5):  http://bugs.php.net/fix.php?id=28055&r=trysnapshot5
Fixed in CVS:               http://bugs.php.net/fix.php?id=28055&r=fixedcvs
Fixed in release:           http://bugs.php.net/fix.php?id=28055&r=alreadyfixed
Need backtrace:             http://bugs.php.net/fix.php?id=28055&r=needtrace
Need Reproduce Script:      http://bugs.php.net/fix.php?id=28055&r=needscript
Try newer version:          http://bugs.php.net/fix.php?id=28055&r=oldversion
Not developer issue:        http://bugs.php.net/fix.php?id=28055&r=support
Expected behavior:          http://bugs.php.net/fix.php?id=28055&r=notwrong
Not enough info:            http://bugs.php.net/fix.php?id=28055&r=notenoughinfo
Submitted twice:            http://bugs.php.net/fix.php?id=28055&r=submittedtwice
register_globals:           http://bugs.php.net/fix.php?id=28055&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=28055&r=php3
Daylight Savings:           http://bugs.php.net/fix.php?id=28055&r=dst
IIS Stability:              http://bugs.php.net/fix.php?id=28055&r=isapi
Install GNU Sed:            http://bugs.php.net/fix.php?id=28055&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=28055&r=float

Reply via email to