ID: 25616 Updated by: [EMAIL PROTECTED] Reported By: robert at interjinn dot com -Status: Open +Status: Bogus Bug Type: Filesystem function related Operating System: Linux version 2.4.19-16mdk PHP Version: 4.3.3 New Comment:
Please do not submit the same bug more than once. An existing bug report already describes this very problem. Even if you feel that your issue is somewhat different, the resolution is likely to be the same. Because of this, we hope you add your comments to the existing bug instead. Thank you for your interest in PHP. dupe of bug #25575 Previous Comments: ------------------------------------------------------------------------ [2003-09-21 10:22:03] robert at interjinn dot com I just ran it with the -n flag and no change. Still exits seemingly randomly :( ------------------------------------------------------------------------ [2003-09-21 02:44:21] [EMAIL PROTECTED] Works fine for me..I let your script run for few minutes and it works just as expected. Try running it without any php.ini loaded, like this: # php -n test.php (-n will make PHP not load any php.ini) ------------------------------------------------------------------------ [2003-09-21 01:08:41] robert at interjinn dot com I have downloaded and compiled the PHP package located at http://snaps.php.net/php4-STABLE-latest.tar.gz When I ran the script I got the same result as before. It still exits successfully when it should be in an infinite loop. ------------------------------------------------------------------------ [2003-09-20 17:46:37] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php4-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-STABLE-latest.zip ------------------------------------------------------------------------ [2003-09-20 17:23:27] robert at interjinn dot com Description: ------------ When I use stream_set_blocking() to make the standard input file handle non-blocking the script exits seemingly random. For example the $count output can have a last printed value anywhere from 200 to 3000. Reproduce code: --------------- <? if( ($stdin = fopen( 'php://stdin', 'r' )) === false ) { echo 'Failed to open STDIN'."\n"; exit(); } stream_set_blocking( $stdin, false ); $count = 0; while( 1 ) { echo 'Count: '.($count++)."\n"; if( ($char = fread( $stdin, 1 )) != '' ) { echo 'Char: '.$char."\n"; } else { echo 'Fooo!'."\n"; } } Expected result: ---------------- Script should run forever since it is in a while( 1 ) loop. This was done on purpose for testing purposes. At each pass of the loop it should print the current $count index, then if data exist in $stdin then it should print the character, otherwise print Fooo! to the screen. Actual result: -------------- Script does not run forever. Script exits and the last count printed can be anywhere from 200 to 3000 -- it seems kind of random. I ran the script through gdb and gdb indicates that the program (PHP) exits properly. Thus there is no backtrace to provide. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=25616&edit=1