On 26 September 2002, I said:
> does anyone care about HTTP upload with Quixote? We have found it to be
> unreliable with large uploads over slow links; at first we thought it
> was due to buggy browsers, but then I sat down and implemented an
> upload.cgi script that doesn't use the upload support in Python's cgi.py
> at all (except for some MIME header-parsing code). Turns out that it
> works perfectly well -- in other words, I suspect that HTTP upload to
> Quixote is flaky because Quixote ultimately relies on cgi.py.
I spoke too soon. It looks like the cause of our upload problems
ultimately was really mod_scgi, not cgi.py! The problem was that
mod_scgi wasn't resetting Apache's timeout while reading the request, so
if a request took more than 5 minutes to read -- remember, big file over
slow link -- Apache timed out and cut the connection, even though the
client was still happily feeding data to it, and mod_scgi was still happily
reading that data and passing it to the SCGI application. Neil just
checked in a change to mod_scgi.c that seems to have done the trick.
That said, I still think the new quixote.upload module and
HTTPUploadRequest class are worthwhile additions to Quixote; they're
much simpler and a tad more efficient than the old way.
Greg
--
Greg Ward - software developer gward@mems-exchange.org
MEMS Exchange http://www.mems-exchange.org