ID: 26863 Comment by: chtmpl at sibmail dot com Reported By: jim at bluedojo dot com Status: No Feedback Bug Type: *Directory/Filesystem functions Operating System: * PHP Version: 4CVS, 5CVS (2004-01-10) Assigned To: wez New Comment:
Guys, looks like server just tries to keep connection alive. To avoid this put "Connection: close" onto your http header. Previous Comments: ------------------------------------------------------------------------ [2004-03-15 08:39:23] sni...@php.net No feedback was provided. The bug is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so and change the status of the bug back to "Open". Thank you. ------------------------------------------------------------------------ [2004-03-09 19:08:15] il...@php.net Please try using this CVS snapshot: http://snaps.php.net/php4-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-STABLE-latest.zip ------------------------------------------------------------------------ [2004-02-21 17:57:46] scottmacvicar at ntlworld dot com If you have a server which is under extreme load and is taking around 30 seconds to respond, results similar to a DoS attack. It appears that the stream doesn't have a timeout so it simply finishes when max_execution_time is reached. ------------------------------------------------------------------------ [2004-01-14 18:04:09] jim at bluedojo dot com I will try to answer the question the best I can. I have written a spider in php that can index millions of pages. Every once in a while it will encounter a page that will not load up (which I thought was due to fgets). When I type this url in the location bar of a browser, the page seems like it will load forever and nothing will show up. When I set stream_set_timeout($fd, 6) then once would expect that $fd will time out in 6 seconds and exit the loop. I believe that feof would detect that the stream would time out: if ($fd = @fopen($url,'rb')){ stream_set_timeout($fd, 6); $html = ''; while (!feof($fd)) { $html .= trim(fgets($fd)); } fclose($fd); } To answer wez's question, I had to find a url that didn't work (that took forever to load) in order to test that feof would exit due to the timing out of the stream ($fd). The url that I was using wasn't working for about one day. Then it started to load normally in a browser a day later so I couldn't use it anymore as a test case for this problem. Making the stream time out is important for my application because it needs to move on to the next url or else it will loop forever. Hope that helps. ------------------------------------------------------------------------ [2004-01-12 22:08:56] jim at bluedojo dot com I think removing feof() solved the problem. I don't get any infinite stalls anymore. Thanks. ------------------------------------------------------------------------ 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/26863 -- Edit this bug report at http://bugs.php.net/?id=26863&edit=1