From: SourceForge.net <no...@so...> - 2003-01-17 01:44:03
|
Bugs item #669493, was opened at 2003-01-16 17:29 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104866&aid=669493&group_id=4866 Category: WebKit Group: None Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) >Assigned to: Stuart Donaldson (stuartd) Summary: StreamOut Error when client cancels transfer of non-servlet Initial Comment: For an easy to prove case, put a large file in a context somewhere (say largefile.pdf). Hit the url that represents that file with a browser (http://localhost/WK/largefile.pdf) and cancel the download before it's complete. The console that spawned the AppServer will fill with hundreds and hundreds of lines like this: StreamOut Error: (10053, 'Software caused connection abort') I believe that it prints one line for each "chunk" of data that it would otherwise have sent downstream.For a large file, this ties up the thread (and eats a ton of RAM and CPU) untill it has made one error for each chunk. This has hung servers for me. The type of file is not relevant; I've done it with .html, graphics, movies, zip, etc. Any non-servlet file seems to be affected. One could argue that one shouldn't serve large files with WK, and that's a good point, but sometimes one might have to, and I'm really only using this large file as an example (I assume that it happens on small files, too... it's just harder to interrupt the download quickly enough). I tested this with 0.7 and with a (not so recent) cvs version, but I can't test it with cutting edge because SF isn't letting me update from cvs right now (durn SF to heck). I tested on Python 2.1 and 2.2 on windows 2000 and linux (debian woody). All exhibit the same behavior. If you need to know more about this bug, I'm on the list as ma...@da... Thanks! ---------------------------------------------------------------------- >Comment By: Stuart Donaldson (stuartd) Date: 2003-01-16 17:46 Message: Logged In: YES user_id=326269 This is very similar to the stream out closed error when flush() is called and you are in a server-push style servlet. A problem in that case was that servlets were not terminating when the flush() failed as a result of the client canceling the transfer, or going away. The servlet push would continue until it terminated for some other reason. I have this specific problem in my application. Look for a fix to come forward in the near future in CVS after the 0.8 release. If you can't wait for a for a fix, e-mail me, and I'll see if I can help you out. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104866&aid=669493&group_id=4866 |