Edit report at https://bugs.php.net/bug.php?id=65453&edit=1
ID: 65453 Comment by: oli dot laurel at arcor dot de Reported by: oli dot laurel at arcor dot de Summary: Readfile() + mpg = http status 500, windows server 2008 r2 sp1, php 5.5.1 Status: Feedback Type: Bug Package: IIS related Operating System: Windows Server 2008 R2 SP1 PHP Version: 5.5.1 Block user comment: N Private report: N New Comment: you can reproduce webserver crash with multiple downloads by following steps: create file with following content: [c:\tmp\wget.cmd] "C:\Program Files (x86)\GnuWin32\bin\wget.exe" --limit-rate=20000 --server-response http://127.0.0.1/index.php open cmd and typ in cd c:\tmp for /L %i in (0,1,10) do start wget.cmd %i loop will start 10 cmd boxes and download the "movie.txt". wait 10-20 seconds and interrupt download by closing all cmd windows (Close all windows) wait 1-2 seconds and start again 10 multiple downloads open cmd typ in cd c:\tmp for /L %i in (0,1,10) do start wget.cmd %i now all request will be answered with Status 500 c:\tmp>"C:\Program Files (x86)\GnuWin32\bin\wget.exe" --limit-rate=20000 --serve r-response http://127.0.0.1/index.php SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc syswgetrc = C:\Program Files (x86)\GnuWin32/etc/wgetrc --2013-08-20 20:12:16-- http://127.0.0.1/index.php Verbindungsaufbau zu 127.0.0.1:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... HTTP/1.1 500 Internal Server Error Cache-Control: private Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/8.0 Date: Tue, 20 Aug 2013 18:12:16 GMT Connection: keep-alive Content-Length: 5666 2013-08-20 20:12:16 FEHLER 500: Internal Server Error. i will try it with apache & cli later because i'm not familiar with this "tools" regards oli Previous Comments: ------------------------------------------------------------------------ [2013-08-20 20:36:26] oli dot laurel at arcor dot de hi, sorry me too, overseen that you need --server-response option in wget. good to see, that you can reproduce the behavior. :) here is output of wget & description to reproduce the mutliple download crash: ---------- 8< -------------------------------------------------------------------------- C:\tmp>"C:\Program Files (x86)\GnuWin32\bin\wget.exe" --limit-rate=20000 --serve r-response http://127.0.0.1/index.php SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc syswgetrc = C:\Program Files (x86)\GnuWin32/etc/wgetrc --2013-08-20 19:51:18-- http://127.0.0.1/index.php Verbindungsaufbau zu 127.0.0.1:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... HTTP/1.1 200 OK Cache-Control: no-cache Content-Length: 5702400 Content-Type: text/plain Server: Microsoft-IIS/8.0 X-Powered-By: PHP/5.5.2 Content-Disposition: inline; filename="movie.txt" X-Pad: avoid browser bug Date: Tue, 20 Aug 2013 17:51:19 GMT Connection: keep-alive Länge: 5702400 (5,4M) [text/plain] In »index.php« speichern. 73% [===========================> ] 4.193.792 --.-K/s in 4m 14s 2013-08-20 19:55:34 (16,1 KB/s) - Lesefehler bei Byte 4193792/5702400 (Connectio n reset by peer). Erneuter Versuch. --2013-08-20 19:55:35-- (Versuch: 2) http://127.0.0.1/index.php Verbindungsaufbau zu 127.0.0.1:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... HTTP/1.1 200 OK Cache-Control: no-cache Content-Length: 5702400 Content-Type: text/plain Server: Microsoft-IIS/8.0 X-Powered-By: PHP/5.5.2 Content-Disposition: inline; filename="movie.txt" X-Pad: avoid browser bug Date: Tue, 20 Aug 2013 17:55:35 GMT Connection: keep-alive Länge: 5702400 (5,4M) [text/plain] In »index.php« speichern. 12% [====> ] 1.277.952 19,5K/s eta 7m 11s ---------- >8 -------------------------------------------------------------------------- ------------------------------------------------------------------------ [2013-08-20 20:35:31] oli dot laurel at arcor dot de test - please to not spam our bug system ------------------------------------------------------------------------ [2013-08-20 17:01:35] a...@php.net That's not exactly what i wanted to see because you haven't used the --server-response option with wget. But now I see what I've overseen, consider this line in your wget output: HTTP Anforderung gesendet, warte auf Antwort... 200 OK I suppose that was something like "HTTP/1.1 200 OK" in the headers. Also in your last post to see - that are not multiple downloads at the same, but restarts on connection reset. The status 500 in the logs indicates merely this, not the headers sent out. That's what i get with curl and bandwith of 20K, were probably the same with wget and this bandwidth $ curl -v --limit-rate 20k -o /dev/null http://127.0.0.1/65453/index.php * About to connect() to 127.0.0.1 port 80 (#0) * Trying 127.0.0.1... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0connected * Connected to 127.0.0.1 (127.0.0.1) port 80 (#0) > GET /65453/index.php HTTP/1.1 > User-Agent: curl/7.21.1 (i686-pc-mingw32) libcurl/7.21.1 OpenSSL/0.9.8r > zlib/1.2.3 > Host: 127.0.0.1 > Accept: */* > < HTTP/1.1 200 OK < Cache-Control: no-cache < Content-Length: 6291456 < Content-Type: text/plain < Server: Microsoft-IIS/8.0 < X-Powered-By: PHP/5.5.2-dev < Content-Disposition: inline; filename="movie.txt" < X-Pad: avoid browser bug < Date: Tue, 20 Aug 2013 16:16:05 GMT < { [data not shown] 66 6144k 66 4095k 0 0 13525 0 0:07:45 0:05:10 0:02:35 0* Recv failure: Connection was reset 66 6144k 66 4095k 0 0 13521 0 0:07:45 0:05:10 0:02:35 0* Closing connection #0 curl: (56) Recv failure: Connection was reset Just where curl exits, wget retries the download until it's worked, so infinite tries by default. Testing with a static file works. Anyway no crash yet, but now it's to figure out why the connectio nreset happens. It could help if you could test the same with apache or cli, too. ------------------------------------------------------------------------ [2013-08-20 15:31:24] oli dot laurel at arcor dot de hi, my other testsystem is windows 2012 with php 5.5.2 (x86). here is log and console output from today. same setup as above & same problem. when you cancle download of file by wget, did you get 200 or 500? C:\tmp>"C:\Program Files (x86)\GnuWin32\bin\wget.exe" --limit-rate=20000 http:// 127.0.0.1/index.php SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc syswgetrc = C:\Program Files (x86)\GnuWin32/etc/wgetrc --2013-08-20 15:21:09-- http://127.0.0.1/index.php Verbindungsaufbau zu 127.0.0.1:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK Länge: 5702400 (5,4M) [text/plain] In »index.php.1« speichern. 52% [===================> ] 3.014.656 19,5K/s in 2m 31s 2013-08-20 15:23:40 (19,5 KB/s) - Lesefehler bei Byte 3014656/5702400 (Connectio n reset by peer). Erneuter Versuch. --2013-08-20 15:23:41-- (Versuch: 2) http://127.0.0.1/index.php Verbindungsaufbau zu 127.0.0.1:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK Länge: 5702400 (5,4M) [text/plain] In »index.php.1« speichern. 48% [=================> ] 4.193.792 --.-K/s in 4m 14s 2013-08-20 15:27:56 (16,1 KB/s) - Lesefehler bei Byte 4193792/5702400 (Connectio n reset by peer). Erneuter Versuch. --2013-08-20 15:27:58-- (Versuch: 3) http://127.0.0.1/index.php Verbindungsaufbau zu 127.0.0.1:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK Länge: 5702400 (5,4M) [text/plain] In »index.php.1« speichern. 42% [===============> ] 4.193.792 --.-K/s in 4m 14s 2013-08-20 15:32:13 (16,1 KB/s) - Lesefehler bei Byte 4193792/5702400 (Connectio n reset by peer). Erneuter Versuch. --2013-08-20 15:32:16-- (Versuch: 4) http://127.0.0.1/index.php Verbindungsaufbau zu 127.0.0.1:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK Länge: 5702400 (5,4M) [text/plain] In »index.php.1« speichern. 1% [ ] 147.456 19,5K/s eta 8m 9s ------------------------------------------------------------------------ [2013-08-20 14:43:52] oli dot laurel at arcor dot de Please try it with --limit-rate=20000: "C:\Program Files\GnuWin32\bin\wget.exe" --limit-rate=20000 http://127.0.0.1 /index.php [Console Output] ---------------- C:\>"C:\Program Files\GnuWin32\bin\wget.exe" --limit-rate=20000 http://127.0.0.1 /index.php SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc syswgetrc = C:\Program Files\GnuWin32/etc/wgetrc --2013-08-16 09:35:00-- http://127.0.0.1/index.php Verbindungsaufbau zu 127.0.0.1:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK Länge: 6702080 (6,4M) [text/plain] In »index.php.7« speichern. 62% [=======================> ] 4.193.792 --.-K/s in 5m 33s 2013-08-16 09:40:35 (12,3 KB/s) - Lesefehler bei Byte 4193792/6702080 (Connectio n reset by peer). Erneuter Versuch. --2013-08-16 09:40:36-- (Versuch: 2) http://127.0.0.1/index.php Verbindungsaufbau zu 127.0.0.1:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK Länge: 6702080 (6,4M) [text/plain] In »index.php.7« speichern. 1% [ ] 131.072 19,5K/s eta 8m 59s ------------------------------------------------------------------------ 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 https://bugs.php.net/bug.php?id=65453 -- Edit this bug report at https://bugs.php.net/bug.php?id=65453&edit=1