OS binary. Using Ubuntu 12.10 with apache2 2.2.22-6ubuntu2.3 and 
libapache2-mod-wsgi 3.4-0ubuntu1.

On Saturday, February 22, 2014 7:45:28 PM UTC-8, Graham Dumpleton wrote:
>
> What version of Apache are you using?
>
> Is the mod_wsgi compiled from source code or an OS binary package?
>
> Graham
>
> On 23/02/2014, at 2:22 PM, [email protected] <javascript:> wrote:
>
> 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] 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].
>> 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.
>>
>>
>>
> -- 
> 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.

Reply via email to