Hi Chris,

Thanks for the reply. I've only just got around to testing 5.2.10 final on my dev server.

Andy,

It sounds like an infinite loop.  If the problem persists, log a bug
at http://bugs.php.net/

I've noticed someone else has logged a bug and identified that it's a conflict with the cURL wrappers. http://bugs.php.net/bug.php?id=48637. This actually makes sense judging by the contents of the test script.

Check that it occurs with the final 5.2.10 release.  Identify the
failing script (I presume it is ext/standard/tests/file/bug27508.phpt.

Yes, it is this particular test script, and it does still occur with the final 5.2.10 release.

If not, look for the next file in that directory).  Some other useful
info would be a system call trace (truss or strace) on the running
process.

Unfortunately it hangs the system to the point I cannot run a truss or strace - literally everything stops until the "make test" command is CTRL+C'd.

Try building PHP with --enable-debug and run the PHP CLI (in
php-5.2.10/sapi/cli/php) in a debugger.  Issue a break and see where
the program stops.


I've run the PHP CLI and there is definitely an infinite loop because it outputs the following lines repeatedly:

------------------------------
Warning: fread(): supplied argument is not a valid stream resource in /var/softw
are/php-5.2.10/ext/standard/tests/file/bug27508.phpt on line 18
PHP Warning: feof(): supplied argument is not a valid stream resource in /var/s
oftware/php-5.2.10/ext/standard/tests/file/bug27508.phpt on line 33

Warning: feof(): supplied argument is not a valid stream resource in /var/softwa
re/php-5.2.10/ext/standard/tests/file/bug27508.phpt on line 33
PHP Warning: feof(): supplied argument is not a valid stream resource in /var/s
oftware/php-5.2.10/ext/standard/tests/file/bug27508.phpt on line 33

Warning: feof(): supplied argument is not a valid stream resource in /var/softwa
re/php-5.2.10/ext/standard/tests/file/bug27508.phpt on line 33
PHP Warning: fread(): supplied argument is not a valid stream resource in /var/
software/php-5.2.10/ext/standard/tests/file/bug27508.phpt on line 18
------------------------------

Judging by the first few paragraphs of output, the test is not checking that the file calls succeed:

------------------------------
PHP Warning: fopen(): URL using bad/illegal format or missing URL in /var/softw
are/php-5.2.10/ext/standard/tests/file/bug27508.phpt on line 11

Warning: fopen(): URL using bad/illegal format or missing URL in /var/software/p
hp-5.2.10/ext/standard/tests/file/bug27508.phpt on line 11
PHP Warning: fopen(/tmp/footZaOtC): failed to open stream: operation failed in
/var/software/php-5.2.10/ext/standard/tests/file/bug27508.phpt on line 11

Warning: fopen(/tmp/footZaOtC): failed to open stream: operation failed in /var/
software/php-5.2.10/ext/standard/tests/file/bug27508.phpt on line 11
PHP Warning: fwrite(): supplied argument is not a valid stream resource in /var
/software/php-5.2.10/ext/standard/tests/file/bug27508.phpt on line 23

Warning: fwrite(): supplied argument is not a valid stream resource in /var/soft
ware/php-5.2.10/ext/standard/tests/file/bug27508.phpt on line 23
PHP Warning: fwrite(): supplied argument is not a valid stream resource in /var
/software/php-5.2.10/ext/standard/tests/file/bug27508.phpt on line 23

Warning: fwrite(): supplied argument is not a valid stream resource in /var/soft
ware/php-5.2.10/ext/standard/tests/file/bug27508.phpt on line 23
PHP Warning: fwrite(): supplied argument is not a valid stream resource in /var
/software/php-5.2.10/ext/standard/tests/file/bug27508.phpt on line 23

Warning: fwrite(): supplied argument is not a valid stream resource in /var/soft
ware/php-5.2.10/ext/standard/tests/file/bug27508.phpt on line 23
PHP Warning: feof(): supplied argument is not a valid stream resource in /var/s
oftware/php-5.2.10/ext/standard/tests/file/bug27508.phpt on line 33
------------------------------

There's a while loop in the test, and I'm guessing that because the feof() call isn't succeeding, it's not checking for this and the loop carries on.

------------------------------
while ($fp && !feof($fp)) {
   echo fgets($fp);
}
------------------------------

I've got rid of the infinite loop on my system by changing the "return true;" on line 13 to "return is_resource($this->fp);" This fails the test on my system because of the cURL clash, and this may not be the best solution.

Regards,
Andy

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to