#41280 [Fbk->Opn]: Local file reading distorts echo
ID: 41280
User updated by: wimroffel at planet dot nl
Reported By: wimroffel at planet dot nl
-Status: Feedback
+Status: Open
Bug Type: Filesystem function related
Operating System: Windows XP
PHP Version: 5.2.2
New Comment:
I am not familiar with those debugging procedures. I tried, but I see
no result.
I installed MSVC6 (still had it lying somewhere from MSDN). I
downloaded the debug-pack and unpacked it. I copied the files (they are
all .pdb files) to both the php and php/extensions directory.
And then it stopped for me. I am unaware when PHP crashes and I never
see a cancel button that I could press.
What I did find find in other experiments was that even when all output
is echoed at once the data is sometimes read incorrectly. It looks like
there is some memory leak.
I tested it on two XP computers with very different setups and
hardware.
Previous Comments:
------------------------------------------------------------------------
[2007-05-04 10:31:44] tony2001@php.net
Thank you for this bug report. To properly diagnose the problem, we
need a backtrace to see what is happening behind the scenes. To
find out how to generate a backtrace, please read
http://bugs.php.net/bugs-generating-backtrace.php
for *NIX and
http://bugs.php.net/bugs-generating-backtrace-win32.php
for Win32
Once you have generated a backtrace, please submit it to this bug
report and change the status back to "Open". Thank you for helping
us make PHP better.
------------------------------------------------------------------------
[2007-05-04 10:23:21] wimroffel at planet dot nl
Description:
------------
While reading a local file Windows (both XP and ME) many empty reads
are generated (reading from internet works much better). So you need a
"while !feof" loop and cannot trust on a test on the size of $data.
The killer in the attached code is the "echo $data". The problem does
not happen if you collect the whole file in a variable and echo it at
once. So it seems some problem with echo - probably with the data
produced by an empty read.
Sometimes the crash happens after only a few freads. Other times it can
take a few dozen.
The echo problem happens only under Windows XP and not under Windows
ME. I am using Apache 2.2.
Reproduce code:
---------------
/* myfile.txt is a large (about 100k) local file */
$fpi = fopen("myfile.txt", "rb");
while(!feof($fpi)) /* block read the rest */
{ $data = fread($fpi,4096);
echo $data;
}
fclose($fpi);
Expected result:
----------------
a reproduction of the file on screen.
Actual result:
--------------
The screen flickers a few times while a partial result is produced.
Then you get a "Cannot find server" message.
Some times the first display goes right, but the problem happens after
a refresh.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=41280&edit=1
Thread (7 messages)