#19886 [Opn->Fbk]: readfile, fread, fpassthru won't work with large files!!!

From: Date: Sun, 13 Oct 2002 22:21:54 +0000
Subject: #19886 [Opn->Fbk]: readfile, fread, fpassthru won't work with large files!!!
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-22318@lists.php.net to get a copy of this message
 ID:               19886
 Updated by:       sniper@php.net
 Reported By:      spic@php.net
-Status:           Open
+Status:           Feedback
 Bug Type:         Performance problem
 Operating System: Windows, any Version
 PHP Version:      4CVS-2002-10-13
 New Comment:

Did this work in any previous versions of PHP?
Is it stricly win32 thing? Does this workin in e.g. Linux?



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

[2002-10-13 10:40:41] nicos@php.net

May be its because that the stream hasn't enough time to get its new
position. I didn't read streams.c/h well enough too.

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

[2002-10-13 10:30:31] spic@php.net

In addition

[frame1.php]
<?
// Adding sleep(5) will solve the problem the first time a
// >100k File is called. The next output of a >100k File
// will crash again...
sleep(5); 
header("Content-type: application/pdf\n");
readfile("some_100k_large.pdf");
?>

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

[2002-10-13 10:22:32] nicos@php.net

That last comment should let us open it back.

Removing the "big-files-passthrough" let the scripts run properly.

@Wez: can you check it? may be its because of the position of the
stream at the end of the execution of the first checksize?

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

[2002-10-13 10:19:11] spic@php.net

The following snippets illustrate the environment


[frameset.php]
->frame1.php
->frame2.php
->frame3.php


[frame1.php]
<?
header("Content-type: application/pdf\n");
readfile("some_100k_large.pdf");
?>

[frame2.php]
<?
echo "Something";
?>

[frame3.php]
<?
echo "else";
?>

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

[2002-10-13 10:16:01] spic@php.net

@wez: These scripts don't use sessions. They run of a CD in a
single-user-environment.

@nicos: Calling the "passthrough"-script directly works without errors.
But calling it in an frameset (together with two other scripts) crashes
when outputting a file > 100k,

The php_stream_read() returns the correct filesize.
The fact, that the parrallel execution of three scripts of one handles
a big file may be the source of the problem.

There are no write-accesses. Only Read-Accesses to small config-files.

Removing the "big-files-passthrough" let the scripts run properly.

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

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/19886

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



Thread (21 messages)

« previous php.bugs (#22318) next »