#32979 [NoF->Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2006-01-17 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
-Status:   No Feedback
+Status:   Open
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

Doesn't work with the php5.1-200601172130.tar.gz snapshot nor with
5.1.2.


Previous Comments:


[2005-11-14 01:00:03] php-bugs at lists dot php dot net

No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".



[2005-11-07 00:08:49] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip





[2005-07-28 01:50:49] lew at mailduct dot com

wez -- the problems reported here are all due to a previously fixed bug
which has crept back into PHP.  It has to do with how the PHP library
treats EOF under FreeBSD vs Linux.

You worked on this problem previously...  please take a look at the
currently active Bug #32858 reported by me, as well as your prior fix
in Bug #25649.

Thanks
Lew Payne



[2005-05-30 22:11:28] mjpph at stardust dot fi

I haven't had problems with different kernels. Only the combination of
x86_64, stream_socket_client() or stream_socket_server(),
stream_select() and PHP OpenSSL-support seem to reproduce this every
time.



[2005-05-30 21:57:34] fox dot 69 at gmx dot net

i experience a similar problem since the latest standard kernel update
with yum (host.domain.com point to the main server IP) :

http://host.domain.com";;
$fp = fopen ($url,"r");
$buffer=fread($fp,8192);
fclose($fp);
echo $buffer;
?>

booted with kernel-2.6.11-1.14_FC3 package: OK
booted with kernel-2.6.11-1.27_FC3 package: NOT OK (timeout)

NOTE: but only if "host.domain.com" point to the executing host itself
- same with "localhost" - for all others it seem to be fine



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
http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-30 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Open
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

I haven't had problems with different kernels. Only the combination of
x86_64, stream_socket_client() or stream_socket_server(),
stream_select() and PHP OpenSSL-support seem to reproduce this every
time.


Previous Comments:


[2005-05-30 21:57:34] fox dot 69 at gmx dot net

i experience a similar problem since the latest standard kernel update
with yum (host.domain.com point to the main server IP) :

http://host.domain.com";;
$fp = fopen ($url,"r");
$buffer=fread($fp,8192);
fclose($fp);
echo $buffer;
?>

booted with kernel-2.6.11-1.14_FC3 package: OK
booted with kernel-2.6.11-1.27_FC3 package: NOT OK (timeout)

NOTE: but only if "host.domain.com" point to the executing host itself
- same with "localhost" - for all others it seem to be fine

--------

[2005-05-30 16:58:42] mjpph at stardust dot fi

Also trying to compile valgrind on x86_64 results in:
checking for a supported CPU... no (x86_64)
configure: error: Unsupported host architecture. Sorry

--------

[2005-05-30 16:56:03] mjpph at stardust dot fi

I could, but I get this:
valgrind: Can only handle 32-bit executables

On a 32bit executable and with openssl stream_select() worked ok. On a
64bit PHP executable it doesn't.



[2005-05-30 16:33:24] [EMAIL PROTECTED]

Can you now check it with valgrind, please?


------------

[2005-05-30 15:53:58] mjpph at stardust dot fi

Ok the latest snapshot compiled cleanly on x86_64. The stream_select()
bug is still present in the latest snapshot.



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
http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-30 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Open
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

Also trying to compile valgrind on x86_64 results in:
checking for a supported CPU... no (x86_64)
configure: error: Unsupported host architecture. Sorry


Previous Comments:


[2005-05-30 16:56:03] mjpph at stardust dot fi

I could, but I get this:
valgrind: Can only handle 32-bit executables

On a 32bit executable and with openssl stream_select() worked ok. On a
64bit PHP executable it doesn't.



[2005-05-30 16:33:24] [EMAIL PROTECTED]

Can you now check it with valgrind, please?




[2005-05-30 15:53:58] mjpph at stardust dot fi

Ok the latest snapshot compiled cleanly on x86_64. The stream_select()
bug is still present in the latest snapshot.



[2005-05-30 15:37:52] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip

(the compile error should be fixed, plus it should be more 64bit
friendly :)




[2005-05-28 11:56:37] mjpph at stardust dot fi

Looks like this might also be a x86_64 problem. As I compiled the same
exact version on i386 FC3 and got it working even with openssl compiled
in.



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
http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Fbk->Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-30 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
-Status:   Feedback
+Status:   Open
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

I could, but I get this:
valgrind: Can only handle 32-bit executables

On a 32bit executable and with openssl stream_select() worked ok. On a
64bit PHP executable it doesn't.


Previous Comments:


[2005-05-30 16:33:24] [EMAIL PROTECTED]

Can you now check it with valgrind, please?




[2005-05-30 15:53:58] mjpph at stardust dot fi

Ok the latest snapshot compiled cleanly on x86_64. The stream_select()
bug is still present in the latest snapshot.



[2005-05-30 15:37:52] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip

(the compile error should be fixed, plus it should be more 64bit
friendly :)




[2005-05-28 11:56:37] mjpph at stardust dot fi

Looks like this might also be a x86_64 problem. As I compiled the same
exact version on i386 FC3 and got it working even with openssl compiled
in.



[2005-05-28 11:37:29] mjpph at stardust dot fi

A problem. I'm running x86_64 FC3 and PHP and valgrind seems to be able
to do 32bit executables only.



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
http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Fbk->Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-30 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
-Status:   Feedback
+Status:   Open
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

Ok the latest snapshot compiled cleanly on x86_64. The stream_select()
bug is still present in the latest snapshot.


Previous Comments:


[2005-05-30 15:37:52] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip

(the compile error should be fixed, plus it should be more 64bit
friendly :)




[2005-05-28 11:56:37] mjpph at stardust dot fi

Looks like this might also be a x86_64 problem. As I compiled the same
exact version on i386 FC3 and got it working even with openssl compiled
in.



[2005-05-28 11:37:29] mjpph at stardust dot fi

A problem. I'm running x86_64 FC3 and PHP and valgrind seems to be able
to do 32bit executables only.



[2005-05-28 11:06:46] mjpph at stardust dot fi

I guess you need valgrind --tool=callgrind. Also on another matter, I'm
unable to compile the newest CVS on FC3. I get this error even without
any configure options : libtool: link: `ext/libxml/libxml.lo' is not a
valid libtool object.



[2005-05-28 11:03:00] mjpph at stardust dot fi

Sure thing, just tell me what to do. I've never even heard of valgrind
before, but it seems FC3 comes with one.



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
http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-28 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Open
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

Looks like this might also be a x86_64 problem. As I compiled the same
exact version on i386 FC3 and got it working even with openssl compiled
in.


Previous Comments:


[2005-05-28 11:37:29] mjpph at stardust dot fi

A problem. I'm running x86_64 FC3 and PHP and valgrind seems to be able
to do 32bit executables only.



[2005-05-28 11:06:46] mjpph at stardust dot fi

I guess you need valgrind --tool=callgrind. Also on another matter, I'm
unable to compile the newest CVS on FC3. I get this error even without
any configure options : libtool: link: `ext/libxml/libxml.lo' is not a
valid libtool object.



[2005-05-28 11:03:00] mjpph at stardust dot fi

Sure thing, just tell me what to do. I've never even heard of valgrind
before, but it seems FC3 comes with one.



[2005-05-28 04:39:07] [EMAIL PROTECTED]

That's the missing piece of the puzzle.
openssl replaces the default tcp transport, but passes through to the
default when you don't request ssl.
So, the behaviour should be identical.

Can you run the openssl enabled version under valgrind for me, to see
if something is misbehaving?
It'll give me a headstart when I sit down to solve the problem in the
morning.

Thanks.

--------

[2005-05-27 22:05:33] mjpph at stardust dot fi

It's too bad that the openssl screws up the stream_select or
stream_socket_client in some weird way as I intended to use
stream_socket_enable_crypto() with the stream_socket_client() and it's
dependant of openssl.



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
http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-28 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Open
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

A problem. I'm running x86_64 FC3 and PHP and valgrind seems to be able
to do 32bit executables only.


Previous Comments:


[2005-05-28 11:06:46] mjpph at stardust dot fi

I guess you need valgrind --tool=callgrind. Also on another matter, I'm
unable to compile the newest CVS on FC3. I get this error even without
any configure options : libtool: link: `ext/libxml/libxml.lo' is not a
valid libtool object.



[2005-05-28 11:03:00] mjpph at stardust dot fi

Sure thing, just tell me what to do. I've never even heard of valgrind
before, but it seems FC3 comes with one.



[2005-05-28 04:39:07] [EMAIL PROTECTED]

That's the missing piece of the puzzle.
openssl replaces the default tcp transport, but passes through to the
default when you don't request ssl.
So, the behaviour should be identical.

Can you run the openssl enabled version under valgrind for me, to see
if something is misbehaving?
It'll give me a headstart when I sit down to solve the problem in the
morning.

Thanks.

--------

[2005-05-27 22:05:33] mjpph at stardust dot fi

It's too bad that the openssl screws up the stream_select or
stream_socket_client in some weird way as I intended to use
stream_socket_enable_crypto() with the stream_socket_client() and it's
dependant of openssl.

------------

[2005-05-27 21:52:35] mjpph at stardust dot fi

The strangest thing.. I had time to do some test compiles with the
200505260030 snapshot and I got some working. I took my usual
parameters off from configure one by one, after I removed
--with-openssl the script started suddenly working. Then I did test
compile with ./configure --with-openssl and without any parameters. The
one --with-openssl failed the script and the one without it worked just
fine. It seems that the openssl support does some havoc which causes
the failures. I did proper make clean / make distclean between the
compiles and doublechecked the results. Linux is a Fedora Core 3,
standard install with development support enabled.

The test script is as follows, the host machine has sendmail running as
a test service.



Strace from the working PHP (without any configure parameters):

read(3, "http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-28 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Open
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

I guess you need valgrind --tool=callgrind. Also on another matter, I'm
unable to compile the newest CVS on FC3. I get this error even without
any configure options : libtool: link: `ext/libxml/libxml.lo' is not a
valid libtool object.


Previous Comments:


[2005-05-28 11:03:00] mjpph at stardust dot fi

Sure thing, just tell me what to do. I've never even heard of valgrind
before, but it seems FC3 comes with one.



[2005-05-28 04:39:07] [EMAIL PROTECTED]

That's the missing piece of the puzzle.
openssl replaces the default tcp transport, but passes through to the
default when you don't request ssl.
So, the behaviour should be identical.

Can you run the openssl enabled version under valgrind for me, to see
if something is misbehaving?
It'll give me a headstart when I sit down to solve the problem in the
morning.

Thanks.

----

[2005-05-27 22:05:33] mjpph at stardust dot fi

It's too bad that the openssl screws up the stream_select or
stream_socket_client in some weird way as I intended to use
stream_socket_enable_crypto() with the stream_socket_client() and it's
dependant of openssl.

--------

[2005-05-27 21:52:35] mjpph at stardust dot fi

The strangest thing.. I had time to do some test compiles with the
200505260030 snapshot and I got some working. I took my usual
parameters off from configure one by one, after I removed
--with-openssl the script started suddenly working. Then I did test
compile with ./configure --with-openssl and without any parameters. The
one --with-openssl failed the script and the one without it worked just
fine. It seems that the openssl support does some havoc which causes
the failures. I did proper make clean / make distclean between the
compiles and doublechecked the results. Linux is a Fedora Core 3,
standard install with development support enabled.

The test script is as follows, the host machine has sendmail running as
a test service.



Strace from the working PHP (without any configure parameters):

read(3, "http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Fbk->Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-28 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
-Status:   Feedback
+Status:   Open
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

Sure thing, just tell me what to do. I've never even heard of valgrind
before, but it seems FC3 comes with one.


Previous Comments:


[2005-05-28 04:39:07] [EMAIL PROTECTED]

That's the missing piece of the puzzle.
openssl replaces the default tcp transport, but passes through to the
default when you don't request ssl.
So, the behaviour should be identical.

Can you run the openssl enabled version under valgrind for me, to see
if something is misbehaving?
It'll give me a headstart when I sit down to solve the problem in the
morning.

Thanks.



[2005-05-27 22:05:33] mjpph at stardust dot fi

It's too bad that the openssl screws up the stream_select or
stream_socket_client in some weird way as I intended to use
stream_socket_enable_crypto() with the stream_socket_client() and it's
dependant of openssl.

----

[2005-05-27 21:52:35] mjpph at stardust dot fi

The strangest thing.. I had time to do some test compiles with the
200505260030 snapshot and I got some working. I took my usual
parameters off from configure one by one, after I removed
--with-openssl the script started suddenly working. Then I did test
compile with ./configure --with-openssl and without any parameters. The
one --with-openssl failed the script and the one without it worked just
fine. It seems that the openssl support does some havoc which causes
the failures. I did proper make clean / make distclean between the
compiles and doublechecked the results. Linux is a Fedora Core 3,
standard install with development support enabled.

The test script is as follows, the host machine has sendmail running as
a test service.



Strace from the working PHP (without any configure parameters):

read(3, "http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-27 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Open
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

It's too bad that the openssl screws up the stream_select or
stream_socket_client in some weird way as I intended to use
stream_socket_enable_crypto() with the stream_socket_client() and it's
dependant of openssl.


Previous Comments:


[2005-05-27 21:52:35] mjpph at stardust dot fi

The strangest thing.. I had time to do some test compiles with the
200505260030 snapshot and I got some working. I took my usual
parameters off from configure one by one, after I removed
--with-openssl the script started suddenly working. Then I did test
compile with ./configure --with-openssl and without any parameters. The
one --with-openssl failed the script and the one without it worked just
fine. It seems that the openssl support does some havoc which causes
the failures. I did proper make clean / make distclean between the
compiles and doublechecked the results. Linux is a Fedora Core 3,
standard install with development support enabled.

The test script is as follows, the host machine has sendmail running as
a test service.



Strace from the working PHP (without any configure parameters):

read(3, "http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Fbk->Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-27 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
-Status:   Feedback
+Status:   Open
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

The strangest thing.. I had time to do some test compiles with the
200505260030 snapshot and I got some working. I took my usual
parameters off from configure one by one, after I removed
--with-openssl the script started suddenly working. Then I did test
compile with ./configure --with-openssl and without any parameters. The
one --with-openssl failed the script and the one without it worked just
fine. It seems that the openssl support does some havoc which causes
the failures. I did proper make clean / make distclean between the
compiles and doublechecked the results. Linux is a Fedora Core 3,
standard install with development support enabled.

The test script is as follows, the host machine has sendmail running as
a test service.



Strace from the working PHP (without any configure parameters):

read(3, "http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Asn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-27 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Assigned
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

Also, I run constantly a lot more complex PHP-scripts on both FC2 and
FC3 servers, on different kernels and by using normal socket and stream
functions. They all function perfectly well. All this seems to point to
the new stream_socket functions as stream_select works with all the
other streams except the ones opened with stream_socket functions.


Previous Comments:


[2005-05-27 14:10:52] mjpph at stardust dot fi

Only change has been the service port and sometimes the IP if the
actual server doesn't host it's own SMTP. I've tested the SMTP
availability with telnet and by using fgets instead of stream_select.
So yes, the test code fails on FC3 and works on FC2 when the actual
ip:port is changed to point to an available SMTP service.



[2005-05-27 14:06:00] [EMAIL PROTECTED]

Have you pasted the script that you're actually running with those
straces?
Are you really using the one from your initial post?




[2005-05-27 09:59:17] mjpph at stardust dot fi

Also, all the kernels I've used are different versions of FC3 stock
kernels without modifications. As FC3 is quite popular Linux I'd assume
that many people will have problems with the new functions when they
adopt them. Of course it can be a kernel problem, but it can also be a
PHP problem which only exhibits on FC3 or with certain kernel settings,
but that's more your field to conclude than mine :)

--------

[2005-05-26 19:18:35] mjpph at stardust dot fi

Yes it works with FC2 but not with FC3, but I have tested it with
several kernels the only thing that matches is Fedora Core version.
Also socket_select and stream_select works perfectly well with other
streams/sockets, only exceptions are streams returned by
stream_socket_client() or stream_socket_server().



[2005-05-26 18:54:13] [EMAIL PROTECTED]

So, PHP works fine on FC2, and the same version of PHP doesn't work on
FC3?
Sounds like you have a problem with your kernel; if so, this isn't a
php bug.



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
http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Asn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-27 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Assigned
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

Only change has been the service port and sometimes the IP if the
actual server doesn't host it's own SMTP. I've tested the SMTP
availability with telnet and by using fgets instead of stream_select.
So yes, the test code fails on FC3 and works on FC2 when the actual
ip:port is changed to point to an available SMTP service.


Previous Comments:


[2005-05-27 14:06:00] [EMAIL PROTECTED]

Have you pasted the script that you're actually running with those
straces?
Are you really using the one from your initial post?




[2005-05-27 09:59:17] mjpph at stardust dot fi

Also, all the kernels I've used are different versions of FC3 stock
kernels without modifications. As FC3 is quite popular Linux I'd assume
that many people will have problems with the new functions when they
adopt them. Of course it can be a kernel problem, but it can also be a
PHP problem which only exhibits on FC3 or with certain kernel settings,
but that's more your field to conclude than mine :)

--------

[2005-05-26 19:18:35] mjpph at stardust dot fi

Yes it works with FC2 but not with FC3, but I have tested it with
several kernels the only thing that matches is Fedora Core version.
Also socket_select and stream_select works perfectly well with other
streams/sockets, only exceptions are streams returned by
stream_socket_client() or stream_socket_server().



[2005-05-26 18:54:13] [EMAIL PROTECTED]

So, PHP works fine on FC2, and the same version of PHP doesn't work on
FC3?
Sounds like you have a problem with your kernel; if so, this isn't a
php bug.

------------

[2005-05-26 17:50:51] mjpph at stardust dot fi

Another update. I modified the test script to connect to HTTP which
doesn't output anything directly but instead waits for request from the
client. In this case the select timeouts on FC3 like it should, but
obviously doesn't return anything either as the connection doesn't
output anything. When the HTTP closes the connection the stream_select
starts behaving like with the SMTP example, looping as fast as it can.
If I change the port to SMTP with instant output, it loops the
stream_select() like a madman without the requested 5 second delay.

The working (FC2) script:
select(4, [3], [], [], {0, 5000})   = 0 (Timeout)
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 4000})
select(4, [3], NULL, NULL, {60, 0}) = 1 (in [3], left {60, 0})

First it selects and timeouts when waiting for data, then it returns 1
for changed streams and the stream resource (3) as the changed stream.
So this works as expected.

Here, the non-working FC3 version:
select(4, [3], [], [], {5, 5000})   = 1 (in [3], left {4, 998000})
select(4, [3], [], [], {5, 5000})   = 1 (in [3], left {5, 5000})
select(4, [3], [], [], {5, 5000})   = 1 (in [3], left {5, 5000})

It returns the same as the FC2 (except the one with the nulls) so this
should indicate AND return PHP's stream_select() with the value of 1,
but by checking the PHP's stream_select() return value it's always 0.
It's like the system level select() works ok but the PHP function fails
to return it's results correctly? Also something that bothers with me
this conclusion is that there's not a single timeout in the FC3 case
which could indicate some other problem as well, maybe the connection
isn't established correctly?



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
http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Asn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-27 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Assigned
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

Also, all the kernels I've used are different versions of FC3 stock
kernels without modifications. As FC3 is quite popular Linux I'd assume
that many people will have problems with the new functions when they
adopt them. Of course it can be a kernel problem, but it can also be a
PHP problem which only exhibits on FC3 or with certain kernel settings,
but that's more your field to conclude than mine :)


Previous Comments:


[2005-05-26 19:18:35] mjpph at stardust dot fi

Yes it works with FC2 but not with FC3, but I have tested it with
several kernels the only thing that matches is Fedora Core version.
Also socket_select and stream_select works perfectly well with other
streams/sockets, only exceptions are streams returned by
stream_socket_client() or stream_socket_server().



[2005-05-26 18:54:13] [EMAIL PROTECTED]

So, PHP works fine on FC2, and the same version of PHP doesn't work on
FC3?
Sounds like you have a problem with your kernel; if so, this isn't a
php bug.

----

[2005-05-26 17:50:51] mjpph at stardust dot fi

Another update. I modified the test script to connect to HTTP which
doesn't output anything directly but instead waits for request from the
client. In this case the select timeouts on FC3 like it should, but
obviously doesn't return anything either as the connection doesn't
output anything. When the HTTP closes the connection the stream_select
starts behaving like with the SMTP example, looping as fast as it can.
If I change the port to SMTP with instant output, it loops the
stream_select() like a madman without the requested 5 second delay.

The working (FC2) script:
select(4, [3], [], [], {0, 5000})   = 0 (Timeout)
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 4000})
select(4, [3], NULL, NULL, {60, 0}) = 1 (in [3], left {60, 0})

First it selects and timeouts when waiting for data, then it returns 1
for changed streams and the stream resource (3) as the changed stream.
So this works as expected.

Here, the non-working FC3 version:
select(4, [3], [], [], {5, 5000})   = 1 (in [3], left {4, 998000})
select(4, [3], [], [], {5, 5000})   = 1 (in [3], left {5, 5000})
select(4, [3], [], [], {5, 5000})   = 1 (in [3], left {5, 5000})

It returns the same as the FC2 (except the one with the nulls) so this
should indicate AND return PHP's stream_select() with the value of 1,
but by checking the PHP's stream_select() return value it's always 0.
It's like the system level select() works ok but the PHP function fails
to return it's results correctly? Also something that bothers with me
this conclusion is that there's not a single timeout in the FC3 case
which could indicate some other problem as well, maybe the connection
isn't established correctly?

----------------

[2005-05-26 17:38:20] mjpph at stardust dot fi

I also noticed something funny now. If I use 5 second delay on the
stream_select and watch strace directly it doesn't wait at all, it just
loops stream_select() as fast as it can. Also there's no timeout on the
FC3 straces, but there is one timeout before the successful select on
FC2 strace. One can conclude that the SMTP server responds with 5ms+
delay causing stream_select to timeout once before it gets input. It's
like the FC3 script returns from the stream_select() for some reason
with instant timeout and not actually doing the actual select at all.

----------------

[2005-05-26 17:30:16] mjpph at stardust dot fi

Also PHP 5.1.0-dev (cli) (built: May 21 2005 21:29:39)
works fine under FC2. It seems this is PHP<>FC3 issue.

Here's strace from the working (FC2) script:
connect(3, {sa_family=AF_INET, sin_port=htons(25),
sin_addr=inet_addr("")}, 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, [17179869184], [4]) = 0
fcntl(3, F_SETFL, O_RDWR)   = 0
select(4, [3], [], [], {0, 5000})   = 0 (Timeout)
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 4000})

Here's strace from the non-working version (FC3)

connect(3, {sa_family=AF_INET, sin_port=htons(25),
sin_addr=inet_addr("")}, 16) = -1 EINPROGRESS (Operation
poll([{fd=3, events=POLLIN|POLLOUT|POLLERR|POLLHUP, revents=POLLOUT}],
1, 6) =

#32979 [Fbk->Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-26 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
-Status:   Feedback
+Status:   Open
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

Yes it works with FC2 but not with FC3, but I have tested it with
several kernels the only thing that matches is Fedora Core version.
Also socket_select and stream_select works perfectly well with other
streams/sockets, only exceptions are streams returned by
stream_socket_client() or stream_socket_server().


Previous Comments:


[2005-05-26 18:54:13] [EMAIL PROTECTED]

So, PHP works fine on FC2, and the same version of PHP doesn't work on
FC3?
Sounds like you have a problem with your kernel; if so, this isn't a
php bug.



[2005-05-26 17:50:51] mjpph at stardust dot fi

Another update. I modified the test script to connect to HTTP which
doesn't output anything directly but instead waits for request from the
client. In this case the select timeouts on FC3 like it should, but
obviously doesn't return anything either as the connection doesn't
output anything. When the HTTP closes the connection the stream_select
starts behaving like with the SMTP example, looping as fast as it can.
If I change the port to SMTP with instant output, it loops the
stream_select() like a madman without the requested 5 second delay.

The working (FC2) script:
select(4, [3], [], [], {0, 5000})   = 0 (Timeout)
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 4000})
select(4, [3], NULL, NULL, {60, 0}) = 1 (in [3], left {60, 0})

First it selects and timeouts when waiting for data, then it returns 1
for changed streams and the stream resource (3) as the changed stream.
So this works as expected.

Here, the non-working FC3 version:
select(4, [3], [], [], {5, 5000})   = 1 (in [3], left {4, 998000})
select(4, [3], [], [], {5, 5000})   = 1 (in [3], left {5, 5000})
select(4, [3], [], [], {5, 5000})   = 1 (in [3], left {5, 5000})

It returns the same as the FC2 (except the one with the nulls) so this
should indicate AND return PHP's stream_select() with the value of 1,
but by checking the PHP's stream_select() return value it's always 0.
It's like the system level select() works ok but the PHP function fails
to return it's results correctly? Also something that bothers with me
this conclusion is that there's not a single timeout in the FC3 case
which could indicate some other problem as well, maybe the connection
isn't established correctly?

------------

[2005-05-26 17:38:20] mjpph at stardust dot fi

I also noticed something funny now. If I use 5 second delay on the
stream_select and watch strace directly it doesn't wait at all, it just
loops stream_select() as fast as it can. Also there's no timeout on the
FC3 straces, but there is one timeout before the successful select on
FC2 strace. One can conclude that the SMTP server responds with 5ms+
delay causing stream_select to timeout once before it gets input. It's
like the FC3 script returns from the stream_select() for some reason
with instant timeout and not actually doing the actual select at all.

----------------

[2005-05-26 17:30:16] mjpph at stardust dot fi

Also PHP 5.1.0-dev (cli) (built: May 21 2005 21:29:39)
works fine under FC2. It seems this is PHP<>FC3 issue.

Here's strace from the working (FC2) script:
connect(3, {sa_family=AF_INET, sin_port=htons(25),
sin_addr=inet_addr("")}, 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, [17179869184], [4]) = 0
fcntl(3, F_SETFL, O_RDWR)   = 0
select(4, [3], [], [], {0, 5000})   = 0 (Timeout)
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 4000})

Here's strace from the non-working version (FC3)

connect(3, {sa_family=AF_INET, sin_port=htons(25),
sin_addr=inet_addr("")}, 16) = -1 EINPROGRESS (Operation
poll([{fd=3, events=POLLIN|POLLOUT|POLLERR|POLLHUP, revents=POLLOUT}],
1, 6) = 1
getsockopt(3, SOL_SOCKET, SO_ERROR, "\0\0\0\0", [12884901892]) = 0
fcntl(3, F_SETFL, O_RDWR)   = 0
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 0})
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 5000})
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 5000})
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 5000})

.. to the infinity.



[2005-05-26 16:56:43] 

#32979 [Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-26 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Open
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

I also noticed something funny now. If I use 5 second delay on the
stream_select and watch strace directly it doesn't wait at all, it just
loops stream_select() as fast as it can. Also there's no timeout on the
FC3 straces, but there is one timeout before the successful select on
FC2 strace. One can conclude that the SMTP server responds with 5ms+
delay causing stream_select to timeout once before it gets input. It's
like the FC3 script returns from the stream_select() for some reason
with instant timeout and not actually doing the actual select at all.


Previous Comments:


[2005-05-26 17:30:16] mjpph at stardust dot fi

Also PHP 5.1.0-dev (cli) (built: May 21 2005 21:29:39)
works fine under FC2. It seems this is PHP<>FC3 issue.

Here's strace from the working (FC2) script:
connect(3, {sa_family=AF_INET, sin_port=htons(25),
sin_addr=inet_addr("")}, 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, [17179869184], [4]) = 0
fcntl(3, F_SETFL, O_RDWR)   = 0
select(4, [3], [], [], {0, 5000})   = 0 (Timeout)
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 4000})

Here's strace from the non-working version (FC3)

connect(3, {sa_family=AF_INET, sin_port=htons(25),
sin_addr=inet_addr("")}, 16) = -1 EINPROGRESS (Operation
poll([{fd=3, events=POLLIN|POLLOUT|POLLERR|POLLHUP, revents=POLLOUT}],
1, 6) = 1
getsockopt(3, SOL_SOCKET, SO_ERROR, "\0\0\0\0", [12884901892]) = 0
fcntl(3, F_SETFL, O_RDWR)   = 0
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 0})
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 5000})
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 5000})
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 5000})

.. to the infinity.

----------------

[2005-05-26 16:56:43] mjpph at stardust dot fi

The latter has actual ip which I intended to not show, but anyway I had
to use actual IP on the other test machine as it doesn't run it's own
SMTP. Using the actual ip instead of the 127.0.0.1 didn't have any
impact on the non-working machines though.

------------

[2005-05-26 16:54:38] mjpph at stardust dot fi

New info, I was able to get the reproduce code to actually work as it's
intended on a Fedora Core 2 machine with PHP 5.0.0RC3 (cgi) (built: Jun
10 2004 16:56:32). Here's strace of it:

read(3, "http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-26 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Open
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

Also PHP 5.1.0-dev (cli) (built: May 21 2005 21:29:39)
works fine under FC2. It seems this is PHP<>FC3 issue.

Here's strace from the working (FC2) script:
connect(3, {sa_family=AF_INET, sin_port=htons(25),
sin_addr=inet_addr("")}, 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, [17179869184], [4]) = 0
fcntl(3, F_SETFL, O_RDWR)   = 0
select(4, [3], [], [], {0, 5000})   = 0 (Timeout)
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 4000})

Here's strace from the non-working version (FC3)

connect(3, {sa_family=AF_INET, sin_port=htons(25),
sin_addr=inet_addr("")}, 16) = -1 EINPROGRESS (Operation
poll([{fd=3, events=POLLIN|POLLOUT|POLLERR|POLLHUP, revents=POLLOUT}],
1, 6) = 1
getsockopt(3, SOL_SOCKET, SO_ERROR, "\0\0\0\0", [12884901892]) = 0
fcntl(3, F_SETFL, O_RDWR)   = 0
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 0})
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 5000})
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 5000})
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 5000})

.. to the infinity.


Previous Comments:
------------

[2005-05-26 16:56:43] mjpph at stardust dot fi

The latter has actual ip which I intended to not show, but anyway I had
to use actual IP on the other test machine as it doesn't run it's own
SMTP. Using the actual ip instead of the 127.0.0.1 didn't have any
impact on the non-working machines though.

----------------

[2005-05-26 16:54:38] mjpph at stardust dot fi

New info, I was able to get the reproduce code to actually work as it's
intended on a Fedora Core 2 machine with PHP 5.0.0RC3 (cgi) (built: Jun
10 2004 16:56:32). Here's strace of it:

read(3, "http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-26 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Open
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

Another update. I modified the test script to connect to HTTP which
doesn't output anything directly but instead waits for request from the
client. In this case the select timeouts on FC3 like it should, but
obviously doesn't return anything either as the connection doesn't
output anything. When the HTTP closes the connection the stream_select
starts behaving like with the SMTP example, looping as fast as it can.
If I change the port to SMTP with instant output, it loops the
stream_select() like a madman without the requested 5 second delay.

The working (FC2) script:
select(4, [3], [], [], {0, 5000})   = 0 (Timeout)
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 4000})
select(4, [3], NULL, NULL, {60, 0}) = 1 (in [3], left {60, 0})

First it selects and timeouts when waiting for data, then it returns 1
for changed streams and the stream resource (3) as the changed stream.
So this works as expected.

Here, the non-working FC3 version:
select(4, [3], [], [], {5, 5000})   = 1 (in [3], left {4, 998000})
select(4, [3], [], [], {5, 5000})   = 1 (in [3], left {5, 5000})
select(4, [3], [], [], {5, 5000})   = 1 (in [3], left {5, 5000})

It returns the same as the FC2 (except the one with the nulls) so this
should indicate AND return PHP's stream_select() with the value of 1,
but by checking the PHP's stream_select() return value it's always 0.
It's like the system level select() works ok but the PHP function fails
to return it's results correctly? Also something that bothers with me
this conclusion is that there's not a single timeout in the FC3 case
which could indicate some other problem as well, maybe the connection
isn't established correctly?


Previous Comments:
----------------

[2005-05-26 17:38:20] mjpph at stardust dot fi

I also noticed something funny now. If I use 5 second delay on the
stream_select and watch strace directly it doesn't wait at all, it just
loops stream_select() as fast as it can. Also there's no timeout on the
FC3 straces, but there is one timeout before the successful select on
FC2 strace. One can conclude that the SMTP server responds with 5ms+
delay causing stream_select to timeout once before it gets input. It's
like the FC3 script returns from the stream_select() for some reason
with instant timeout and not actually doing the actual select at all.

----------------

[2005-05-26 17:30:16] mjpph at stardust dot fi

Also PHP 5.1.0-dev (cli) (built: May 21 2005 21:29:39)
works fine under FC2. It seems this is PHP<>FC3 issue.

Here's strace from the working (FC2) script:
connect(3, {sa_family=AF_INET, sin_port=htons(25),
sin_addr=inet_addr("")}, 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, [17179869184], [4]) = 0
fcntl(3, F_SETFL, O_RDWR)   = 0
select(4, [3], [], [], {0, 5000})   = 0 (Timeout)
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 4000})

Here's strace from the non-working version (FC3)

connect(3, {sa_family=AF_INET, sin_port=htons(25),
sin_addr=inet_addr("")}, 16) = -1 EINPROGRESS (Operation
poll([{fd=3, events=POLLIN|POLLOUT|POLLERR|POLLHUP, revents=POLLOUT}],
1, 6) = 1
getsockopt(3, SOL_SOCKET, SO_ERROR, "\0\0\0\0", [12884901892]) = 0
fcntl(3, F_SETFL, O_RDWR)   = 0
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 0})
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 5000})
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 5000})
select(4, [3], [], [], {0, 5000})   = 1 (in [3], left {0, 5000})

.. to the infinity.

------------

[2005-05-26 16:56:43] mjpph at stardust dot fi

The latter has actual ip which I intended to not show, but anyway I had
to use actual IP on the other test machine as it doesn't run it's own
SMTP. Using the actual ip instead of the 127.0.0.1 didn't have any
impact on the non-working machines though.



[2005-05-26 16:54:38] mjpph at stardust dot fi

New info, I was able to get the reproduce code to actually work as it's
intended on a Fedora Core 2 machine with PHP 5.0.0RC3 (cgi) (built: Jun
10 2004 16:56:32). Here's strace of it:

read(3, "http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-26 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Open
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

The latter has actual ip which I intended to not show, but anyway I had
to use actual IP on the other test machine as it doesn't run it's own
SMTP. Using the actual ip instead of the 127.0.0.1 didn't have any
impact on the non-working machines though.


Previous Comments:


[2005-05-26 16:54:38] mjpph at stardust dot fi

New info, I was able to get the reproduce code to actually work as it's
intended on a Fedora Core 2 machine with PHP 5.0.0RC3 (cgi) (built: Jun
10 2004 16:56:32). Here's strace of it:

read(3, "http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-26 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Open
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

New info, I was able to get the reproduce code to actually work as it's
intended on a Fedora Core 2 machine with PHP 5.0.0RC3 (cgi) (built: Jun
10 2004 16:56:32). Here's strace of it:

read(3, "http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Fbk->Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-26 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
-Status:   Feedback
+Status:   Open
 Bug Type: Network related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 Assigned To:  wez
 New Comment:

I used the reproduce code to connect to my own SMTP server, which by
using standard socket functions, telnet or any other method instantly
outputs the welcome message when I connect. Just add IP+Port to some
SMTP server and it'll work for the test.

Here's the strace:
read(3, "http://bugs.php.net/32979

-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32838 [Fbk->Opn]: child processes opened with proc_open freeze the script

2005-05-11 Thread mjpph at stardust dot fi
 ID:   32838
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
-Status:   Feedback
+Status:   Open
 Bug Type: Program Execution
 Operating System: Linux
 PHP Version:  5.0.4
 New Comment:

It seems the snapshot sniper posted has solved the bug. I usually was
able to freeze atleast one script in say 48 hours with almost 100%
propability. Usually more than one script. This time around, with the
sniper's snapshot, the scripts have been running for over 120 hours
without a single failure.

I think it's safe to say this bug has been solved. Thanks a lot, I
wrestled with this bug for a long time.


Previous Comments:


[2005-05-11 10:02:21] [EMAIL PROTECTED]

Are you still able to reproduce it?



[2005-05-08 16:34:06] mjpph at stardust dot fi

It looks like the newest snapshot has fixed the issue. I've been now
running the scripts for 55 hours without one single failure. Before
this atleast one, most likely half of the scripts would have freezed
already. I'll send some more feedback after few more days of testing.



[2005-05-06 09:07:54] mjpph at stardust dot fi

Ok I'll try that snapshot. One thing I notice too, all version seem to
have PTY support of the proc_open disabled. It can be easily seen by
checking ext/standard/proc_open.c which has two pty-related defines
which start by "0 &&". I changed these and got fully working proc_open
PTY support on my system. This didn't have any effect on the freezing
problem though. Maybe the PTY support is still buggy or someone has
tested something and forgot to enable it? Just as a sidenote.



[2005-05-06 03:21:59] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip



------------

[2005-05-05 15:16:41] mjpph at stardust dot fi

More info. I have a identical script running on a machine with PHP
5.0.0RC3, it has no problems mentioned here. All scripts run perfectly
well. When I run the identical script on 5.0.4 it freezes after some
time of runtime almost without exceptions. Both are CLI versions
compiled from the source. The hltv-runner started to freeze after I
upgraded PHP from 5.0.0RC3 to 5.0.4, it never did before the upgrade.



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
http://bugs.php.net/32838

-- 
Edit this bug report at http://bugs.php.net/?id=32838&edit=1


#32979 [Fbk->Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-09 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
-Status:   Feedback
+Status:   Open
 Bug Type: CGI related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 New Comment:

No I used http only as an examply not thinking that it doesn't actually
output anything straight away.

I used the example code on several services that output information
straight from connect without needing any input from the client. For
example port 25 welcome message and several others. Telnet straight
away you get a welcome. Use only fgets, you get a welcome. Use the
example code, you get nothing. Didn't try anything which actually
closes the connection after the output, as this isn't the case with my
own implementation either and shouldn't be a requirement anyway.

The case is always the same, fgets would get input straight away but
stream_select stays dead no matter how many times it loops and waits.
Setting the stream to blocking or non-blocking mode has no effect on
stream_select's behaviour on this case. The data in the buffer just
stays there and stream_select is completely ignorant about it. So, the
read wouldn't block (as I know there is data pending), but even despite
that stream_select returns 0 changed streams always. So it thinks that
read would block, in reality, it doesn't.

Partly unrelated: I have this code in a script which also selects
stdin. The stdin select works as expected, the stream_socket selecting
select doesn't. I had a perfectly working implementation with
socket-based functions which stalled at the selects right after I
changed to stream_socket-based functions.


Previous Comments:


[2005-05-09 01:26:32] [EMAIL PROTECTED]

Is the server end of the socket talking http?
If not, does it send data to the client immediately upon client
connection (without expecting data from the client first)?
If not, stream_select() is working precisely as it should.

Also note that stream_select() tells you only if a read or write would
not block, not whether there actually is data pending.

--------

[2005-05-08 23:06:40] mjpph at stardust dot fi

The issue is the same when using stream_socket_server.
stream_socket_accept works as expected, but if you select the socket it
always returns 0, even if there is a pending connection which would be
returned with stream_socket_accept.

--------

[2005-05-08 22:50:58] mjpph at stardust dot fi

Correction to the previous comment. The fread has to be done before
every stream_select to obtain any other value from stream_select other
than 0. stream_get_meta_data also reports pending data as 0 before the
fread and non-zero value right after the 1 byte fread.

--------

[2005-05-08 22:46:55] mjpph at stardust dot fi

Also, adding "fread($c,1);" after stream_socket_client and before the
while loop enables correct functionality of the stream_select function
from that pont on.

----------------

[2005-05-08 22:18:29] mjpph at stardust dot fi

Description:

Using stream_socket_client or stream_socket_server to open a connection
fails to report correct values with stream_select. Using fread to get
one byte before stream_select suddenly makes stream_select work as
expected.
Without it stream_select returns 0 changed streams even though there is
data waiting. Service used as an endpoint is persistent and doesn't
close the connection after it's output. PHP is CLI-version.

Reproduce code:
---
$c = stream_socket_client("tcp://127.0.0.1:80");
while (1)
{
  $streams = array($c);
  if (stream_select($streams, $write=NULL, $except=NULL, 0, 5000)) {
print "Data received\n";
  }
}

// IP:Port can be anything which outputs something after connection.

Expected result:

Text "Data received" after connection and output from the service. The
service can be anything which just outputs something right after
connect.

Actual result:
--
Nothing. stream_select returns 0 even though there is data waiting.





-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-08 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Open
 Bug Type: CGI related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 New Comment:

The issue is the same when using stream_socket_server.
stream_socket_accept works as expected, but if you select the socket it
always returns 0, even if there is a pending connection which would be
returned with stream_socket_accept.


Previous Comments:


[2005-05-08 22:50:58] mjpph at stardust dot fi

Correction to the previous comment. The fread has to be done before
every stream_select to obtain any other value from stream_select other
than 0. stream_get_meta_data also reports pending data as 0 before the
fread and non-zero value right after the 1 byte fread.



[2005-05-08 22:46:55] mjpph at stardust dot fi

Also, adding "fread($c,1);" after stream_socket_client and before the
while loop enables correct functionality of the stream_select function
from that pont on.



[2005-05-08 22:18:29] mjpph at stardust dot fi

Description:

Using stream_socket_client or stream_socket_server to open a connection
fails to report correct values with stream_select. Using fread to get
one byte before stream_select suddenly makes stream_select work as
expected.
Without it stream_select returns 0 changed streams even though there is
data waiting. Service used as an endpoint is persistent and doesn't
close the connection after it's output. PHP is CLI-version.

Reproduce code:
---
$c = stream_socket_client("tcp://127.0.0.1:80");
while (1)
{
  $streams = array($c);
  if (stream_select($streams, $write=NULL, $except=NULL, 0, 5000)) {
print "Data received\n";
  }
}

// IP:Port can be anything which outputs something after connection.

Expected result:

Text "Data received" after connection and output from the service. The
service can be anything which just outputs something right after
connect.

Actual result:
--
Nothing. stream_select returns 0 even though there is data waiting.





-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-08 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Open
 Bug Type: CGI related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 New Comment:

Correction to the previous comment. The fread has to be done before
every stream_select to obtain any other value from stream_select other
than 0. stream_get_meta_data also reports pending data as 0 before the
fread and non-zero value right after the 1 byte fread.


Previous Comments:


[2005-05-08 22:46:55] mjpph at stardust dot fi

Also, adding "fread($c,1);" after stream_socket_client and before the
while loop enables correct functionality of the stream_select function
from that pont on.



[2005-05-08 22:18:29] mjpph at stardust dot fi

Description:

Using stream_socket_client or stream_socket_server to open a connection
fails to report correct values with stream_select. Using fread to get
one byte before stream_select suddenly makes stream_select work as
expected.
Without it stream_select returns 0 changed streams even though there is
data waiting. Service used as an endpoint is persistent and doesn't
close the connection after it's output. PHP is CLI-version.

Reproduce code:
---
$c = stream_socket_client("tcp://127.0.0.1:80");
while (1)
{
  $streams = array($c);
  if (stream_select($streams, $write=NULL, $except=NULL, 0, 5000)) {
print "Data received\n";
  }
}

// IP:Port can be anything which outputs something after connection.

Expected result:

Text "Data received" after connection and output from the service. The
service can be anything which just outputs something right after
connect.

Actual result:
--
Nothing. stream_select returns 0 even though there is data waiting.





-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [Opn]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-08 Thread mjpph at stardust dot fi
 ID:   32979
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Open
 Bug Type: CGI related
 Operating System: Linux (Fedora Core 3)
 PHP Version:  5CVS-2005-05-08 (dev)
 New Comment:

Also, adding "fread($c,1);" after stream_socket_client and before the
while loop enables correct functionality of the stream_select function
from that pont on.


Previous Comments:


[2005-05-08 22:18:29] mjpph at stardust dot fi

Description:

Using stream_socket_client or stream_socket_server to open a connection
fails to report correct values with stream_select. Using fread to get
one byte before stream_select suddenly makes stream_select work as
expected.
Without it stream_select returns 0 changed streams even though there is
data waiting. Service used as an endpoint is persistent and doesn't
close the connection after it's output. PHP is CLI-version.

Reproduce code:
---
$c = stream_socket_client("tcp://127.0.0.1:80");
while (1)
{
  $streams = array($c);
  if (stream_select($streams, $write=NULL, $except=NULL, 0, 5000)) {
print "Data received\n";
  }
}

// IP:Port can be anything which outputs something after connection.

Expected result:

Text "Data received" after connection and output from the service. The
service can be anything which just outputs something right after
connect.

Actual result:
--
Nothing. stream_select returns 0 even though there is data waiting.





-- 
Edit this bug report at http://bugs.php.net/?id=32979&edit=1


#32979 [NEW]: socket stream opened with stream_socket_client doesnt work with stream_select

2005-05-08 Thread mjpph at stardust dot fi
From: mjpph at stardust dot fi
Operating system: Linux (Fedora Core 3)
PHP version:  5CVS-2005-05-08 (dev)
PHP Bug Type: CGI related
Bug description:  socket stream opened with stream_socket_client doesnt work 
with stream_select

Description:

Using stream_socket_client or stream_socket_server to open a connection
fails to report correct values with stream_select. Using fread to get one
byte before stream_select suddenly makes stream_select work as expected.
Without it stream_select returns 0 changed streams even though there is
data waiting. Service used as an endpoint is persistent and doesn't close
the connection after it's output. PHP is CLI-version.

Reproduce code:
---
$c = stream_socket_client("tcp://127.0.0.1:80");
while (1)
{
  $streams = array($c);
  if (stream_select($streams, $write=NULL, $except=NULL, 0, 5000)) {
print "Data received\n";
  }
}

// IP:Port can be anything which outputs something after connection.

Expected result:

Text "Data received" after connection and output from the service. The
service can be anything which just outputs something right after connect.

Actual result:
--
Nothing. stream_select returns 0 even though there is data waiting.

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


#32838 [Opn]: child processes opened with proc_open freeze the script

2005-05-08 Thread mjpph at stardust dot fi
 ID:   32838
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Open
 Bug Type: Program Execution
 Operating System: Linux
 PHP Version:  5.0.4
 New Comment:

It looks like the newest snapshot has fixed the issue. I've been now
running the scripts for 55 hours without one single failure. Before
this atleast one, most likely half of the scripts would have freezed
already. I'll send some more feedback after few more days of testing.


Previous Comments:


[2005-05-06 09:07:54] mjpph at stardust dot fi

Ok I'll try that snapshot. One thing I notice too, all version seem to
have PTY support of the proc_open disabled. It can be easily seen by
checking ext/standard/proc_open.c which has two pty-related defines
which start by "0 &&". I changed these and got fully working proc_open
PTY support on my system. This didn't have any effect on the freezing
problem though. Maybe the PTY support is still buggy or someone has
tested something and forgot to enable it? Just as a sidenote.



[2005-05-06 03:21:59] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip



--------

[2005-05-05 15:16:41] mjpph at stardust dot fi

More info. I have a identical script running on a machine with PHP
5.0.0RC3, it has no problems mentioned here. All scripts run perfectly
well. When I run the identical script on 5.0.4 it freezes after some
time of runtime almost without exceptions. Both are CLI versions
compiled from the source. The hltv-runner started to freeze after I
upgraded PHP from 5.0.0RC3 to 5.0.4, it never did before the upgrade.

--------

[2005-05-02 18:10:33] mjpph at stardust dot fi

I'm using PHP's CLI version. Also I noticed that when I upgraded an
earlier 5.x PHP to 5.0.4 it started to freeze one process runner which
has always worked perfectly. The script was unchanged.

Test code can be anything that just simply opens a child process which
has atleast relatively high output and keeps listening to it for a long
time (several hours, days). I'll add two simple test scripts asap.



[2005-04-28 00:10:25] [EMAIL PROTECTED]

Also specify which SAPI you are using: eg: Apache, CLI, CGI.
Note that launching a CGI child process from either Apache or an
existing CGI process is going to bite you unless you clean up the
environmental variables you pass on to the child process.



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
http://bugs.php.net/32838

-- 
Edit this bug report at http://bugs.php.net/?id=32838&edit=1


#32838 [Fbk->Opn]: child processes opened with proc_open freeze the script

2005-05-06 Thread mjpph at stardust dot fi
 ID:   32838
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
-Status:   Feedback
+Status:   Open
 Bug Type: Program Execution
 Operating System: Linux
 PHP Version:  5.0.4
 New Comment:

Ok I'll try that snapshot. One thing I notice too, all version seem to
have PTY support of the proc_open disabled. It can be easily seen by
checking ext/standard/proc_open.c which has two pty-related defines
which start by "0 &&". I changed these and got fully working proc_open
PTY support on my system. This didn't have any effect on the freezing
problem though. Maybe the PTY support is still buggy or someone has
tested something and forgot to enable it? Just as a sidenote.


Previous Comments:


[2005-05-06 03:21:59] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip





[2005-05-05 15:16:41] mjpph at stardust dot fi

More info. I have a identical script running on a machine with PHP
5.0.0RC3, it has no problems mentioned here. All scripts run perfectly
well. When I run the identical script on 5.0.4 it freezes after some
time of runtime almost without exceptions. Both are CLI versions
compiled from the source. The hltv-runner started to freeze after I
upgraded PHP from 5.0.0RC3 to 5.0.4, it never did before the upgrade.



[2005-05-02 18:10:33] mjpph at stardust dot fi

I'm using PHP's CLI version. Also I noticed that when I upgraded an
earlier 5.x PHP to 5.0.4 it started to freeze one process runner which
has always worked perfectly. The script was unchanged.

Test code can be anything that just simply opens a child process which
has atleast relatively high output and keeps listening to it for a long
time (several hours, days). I'll add two simple test scripts asap.



[2005-04-28 00:10:25] [EMAIL PROTECTED]

Also specify which SAPI you are using: eg: Apache, CLI, CGI.
Note that launching a CGI child process from either Apache or an
existing CGI process is going to bite you unless you clean up the
environmental variables you pass on to the child process.



[2005-04-27 12:42:22] [EMAIL PROTECTED]

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with ,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc.

If possible, make the script source available online and provide
an URL to it here. Try to avoid embedding huge scripts into the report.





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
http://bugs.php.net/32838

-- 
Edit this bug report at http://bugs.php.net/?id=32838&edit=1


#32838 [Opn]: child processes opened with proc_open freeze the script

2005-05-05 Thread mjpph at stardust dot fi
 ID:   32838
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Open
 Bug Type: Program Execution
 Operating System: Linux
 PHP Version:  5.0.4
 New Comment:

More info. I have a identical script running on a machine with PHP
5.0.0RC3, it has no problems mentioned here. All scripts run perfectly
well. When I run the identical script on 5.0.4 it freezes after some
time of runtime almost without exceptions. Both are CLI versions
compiled from the source. The hltv-runner started to freeze after I
upgraded PHP from 5.0.0RC3 to 5.0.4, it never did before the upgrade.


Previous Comments:


[2005-05-02 18:10:33] mjpph at stardust dot fi

I'm using PHP's CLI version. Also I noticed that when I upgraded an
earlier 5.x PHP to 5.0.4 it started to freeze one process runner which
has always worked perfectly. The script was unchanged.

Test code can be anything that just simply opens a child process which
has atleast relatively high output and keeps listening to it for a long
time (several hours, days). I'll add two simple test scripts asap.



[2005-04-28 00:10:25] [EMAIL PROTECTED]

Also specify which SAPI you are using: eg: Apache, CLI, CGI.
Note that launching a CGI child process from either Apache or an
existing CGI process is going to bite you unless you clean up the
environmental variables you pass on to the child process.



[2005-04-27 12:42:22] [EMAIL PROTECTED]

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with ,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc.

If possible, make the script source available online and provide
an URL to it here. Try to avoid embedding huge scripts into the report.





[2005-04-26 15:21:02] mjpph at stardust dot fi

It also seems that by using only on fgets() per select to get the child
process's output seems to make the script a lot more stable than for
example getting the whole buffer with stream_get_contents or by loopin
fgets/stream_get_line. This was also the case with the earlier script
though it didn't make the script still completely stable.

----

[2005-04-26 14:31:21] mjpph at stardust dot fi

Description:

I've created three scripts during some time, which of the latest is
under PHP 5.0.4. It opens hlds or srcds process as a child process
using proc_open. Every pipe is made non-blocking also there are no
infinite loops except the one that selects the child process's stdout
pipe.

The script reads and runs succesfully for some time, then it suddenly
freezes. All buffering is turned off that can be turned off, I also
added some DEBUG printouts in the code and it even once freezed in the
middle of a single print. The same thing happens with pty and pipe
support. Everything has been checked out dozens of times. Both the
child process's stdout and stderr pipes are selected and read
constantly.

If the child process is terminated from a shell with a kill command the
php script suddenly exits without any error or warning message even
though it should keep looping the child process, which it normally does
if it doesn't freeze.

This behaviour is only happening with hlds and srcds child processes.
I've run thousands of execution times of hltv's witht the same script
and it has never freezed. Srcds and hlds processes output a lot more
data though.

The child process actually continues to run without any problems even
if the proc_open is done without pipes and the script has frozen.
Obviously the php script as a control script becomes completely useless
after this.






-- 
Edit this bug report at http://bugs.php.net/?id=32838&edit=1


#32838 [Fbk->Opn]: child processes opened with proc_open freeze the script

2005-05-02 Thread mjpph at stardust dot fi
 ID:   32838
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
-Status:   Feedback
+Status:   Open
 Bug Type: Program Execution
 Operating System: Linux
 PHP Version:  5.0.4
 New Comment:

I'm using PHP's CLI version. Also I noticed that when I upgraded an
earlier 5.x PHP to 5.0.4 it started to freeze one process runner which
has always worked perfectly. The script was unchanged.

Test code can be anything that just simply opens a child process which
has atleast relatively high output and keeps listening to it for a long
time (several hours, days). I'll add two simple test scripts asap.


Previous Comments:


[2005-04-28 00:10:25] [EMAIL PROTECTED]

Also specify which SAPI you are using: eg: Apache, CLI, CGI.
Note that launching a CGI child process from either Apache or an
existing CGI process is going to bite you unless you clean up the
environmental variables you pass on to the child process.



[2005-04-27 12:42:22] [EMAIL PROTECTED]

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with ,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc.

If possible, make the script source available online and provide
an URL to it here. Try to avoid embedding huge scripts into the report.





[2005-04-26 15:21:02] mjpph at stardust dot fi

It also seems that by using only on fgets() per select to get the child
process's output seems to make the script a lot more stable than for
example getting the whole buffer with stream_get_contents or by loopin
fgets/stream_get_line. This was also the case with the earlier script
though it didn't make the script still completely stable.

----

[2005-04-26 14:31:21] mjpph at stardust dot fi

Description:

I've created three scripts during some time, which of the latest is
under PHP 5.0.4. It opens hlds or srcds process as a child process
using proc_open. Every pipe is made non-blocking also there are no
infinite loops except the one that selects the child process's stdout
pipe.

The script reads and runs succesfully for some time, then it suddenly
freezes. All buffering is turned off that can be turned off, I also
added some DEBUG printouts in the code and it even once freezed in the
middle of a single print. The same thing happens with pty and pipe
support. Everything has been checked out dozens of times. Both the
child process's stdout and stderr pipes are selected and read
constantly.

If the child process is terminated from a shell with a kill command the
php script suddenly exits without any error or warning message even
though it should keep looping the child process, which it normally does
if it doesn't freeze.

This behaviour is only happening with hlds and srcds child processes.
I've run thousands of execution times of hltv's witht the same script
and it has never freezed. Srcds and hlds processes output a lot more
data though.

The child process actually continues to run without any problems even
if the proc_open is done without pipes and the script has frozen.
Obviously the php script as a control script becomes completely useless
after this.






-- 
Edit this bug report at http://bugs.php.net/?id=32838&edit=1


#32838 [Opn]: child processes opened with proc_open freeze the script

2005-04-26 Thread mjpph at stardust dot fi
 ID:   32838
 User updated by:  mjpph at stardust dot fi
 Reported By:  mjpph at stardust dot fi
 Status:   Open
 Bug Type: Program Execution
 Operating System: Linux
 PHP Version:  5.0.4
 New Comment:

It also seems that by using only on fgets() per select to get the child
process's output seems to make the script a lot more stable than for
example getting the whole buffer with stream_get_contents or by loopin
fgets/stream_get_line. This was also the case with the earlier script
though it didn't make the script still completely stable.


Previous Comments:


[2005-04-26 14:31:21] mjpph at stardust dot fi

Description:

I've created three scripts during some time, which of the latest is
under PHP 5.0.4. It opens hlds or srcds process as a child process
using proc_open. Every pipe is made non-blocking also there are no
infinite loops except the one that selects the child process's stdout
pipe.

The script reads and runs succesfully for some time, then it suddenly
freezes. All buffering is turned off that can be turned off, I also
added some DEBUG printouts in the code and it even once freezed in the
middle of a single print. The same thing happens with pty and pipe
support. Everything has been checked out dozens of times. Both the
child process's stdout and stderr pipes are selected and read
constantly.

If the child process is terminated from a shell with a kill command the
php script suddenly exits without any error or warning message even
though it should keep looping the child process, which it normally does
if it doesn't freeze.

This behaviour is only happening with hlds and srcds child processes.
I've run thousands of execution times of hltv's witht the same script
and it has never freezed. Srcds and hlds processes output a lot more
data though.

The child process actually continues to run without any problems even
if the proc_open is done without pipes and the script has frozen.
Obviously the php script as a control script becomes completely useless
after this.






-- 
Edit this bug report at http://bugs.php.net/?id=32838&edit=1


#32838 [NEW]: child processes opened with proc_open freeze the script

2005-04-26 Thread mjpph at stardust dot fi
From: mjpph at stardust dot fi
Operating system: Linux
PHP version:  5.0.4
PHP Bug Type: Program Execution
Bug description:  child processes opened with proc_open freeze the script

Description:

I've created three scripts during some time, which of the latest is under
PHP 5.0.4. It opens hlds or srcds process as a child process using
proc_open. Every pipe is made non-blocking also there are no infinite
loops except the one that selects the child process's stdout pipe.

The script reads and runs succesfully for some time, then it suddenly
freezes. All buffering is turned off that can be turned off, I also added
some DEBUG printouts in the code and it even once freezed in the middle of
a single print. The same thing happens with pty and pipe support.
Everything has been checked out dozens of times. Both the child process's
stdout and stderr pipes are selected and read constantly.

If the child process is terminated from a shell with a kill command the
php script suddenly exits without any error or warning message even though
it should keep looping the child process, which it normally does if it
doesn't freeze.

This behaviour is only happening with hlds and srcds child processes. I've
run thousands of execution times of hltv's witht the same script and it has
never freezed. Srcds and hlds processes output a lot more data though.

The child process actually continues to run without any problems even if
the proc_open is done without pipes and the script has frozen. Obviously
the php script as a control script becomes completely useless after this.


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