Hi, I'm using modwsgi version 3.4 with Apache and Django. I've observed that if the Django app responds to a POST request before the body of the request has been received, then if the client also stops sending the body as a result of this early reply, then the server will delay finishing the response for 10 seconds. This is reproducible with curl, which will stop sending the request body the moment an error response is received.
I'm not sure yet if this is a bug in modwsgi. It could be a bug in Apache or Django, too. I've already discussed the matter on the curl mailing list and have ruled out the bug being in curl. I'm hoping someone on this list can provide me with direction about where to go from here. The flow in detail: 1) Curl sends POST request to server, with small body (< 100 bytes). 2) Server responds with 401 Unauthorized, with response body "Unauthorized\n" and chunked encoding. 3) Curl stops sending the request body. For such a small body to begin with, I believe this means it has not sent any of the body at all. 4) Curl receives the response body. 5) 10 seconds later, Curl receives the final chunk. I've confirmed with tcpdump that the server is indeed withholding this packet until after the delay. My guess is that there's a timeout within the server stack waiting for the rest of the request body, even though the response has already been sent. This is not reproducible against Apache in file-serving mode, as it seems to always read the entire request body. Even if I POST a 10MB file to a non-existent file, Apache will read the whole thing before responding with 404. I think the bug is in modwsgi or Django, then, and so here I am. :) Maybe the 10 seconds is a hint about where the issue could be? Justin -- You received this message because you are subscribed to the Google Groups "modwsgi" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/modwsgi. For more options, visit https://groups.google.com/groups/opt_out.
