#41280 [Fbk->Opn]: Local file reading distorts echo

From: Date: Fri, 04 May 2007 13:09:39 +0000
Subject: #41280 [Fbk->Opn]: Local file reading distorts echo
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-112241@lists.php.net to get a copy of this message
 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)

« previous php.bugs (#112241) next »