Hi Graham, Thanks for the quick reply. I'm using embedded mode.
Timeout 300 KeepAlive On KeepAliveTimeout 5 The 401 is being generated by my Django app. On Saturday, February 22, 2014 7:09:38 PM UTC-8, Graham Dumpleton wrote: > > Are you using embedded mode or daemon mode of mod_wsgi? If you are not > sure, supply the mod_wsgi directives you are using to setup your > application. > > Also, what have you set the following directives to in Apache. > > Timeout > KeepAlive > KeepAliveTimeout > > Finally,who is generating the 401? Apache or your Django application. > > Graham > > On 23/02/2014, at 1:30 PM, [email protected] <javascript:> wrote: > > 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] <javascript:>. > To post to this group, send email to [email protected] <javascript:> > . > Visit this group at http://groups.google.com/group/modwsgi. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- 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.
