Losing POST data on vanilla Ubuntu/nginx/mongrel install

Dave Cheney dave at cheney.net
Sun Apr 5 09:55:45 MSD 2009


Hi Aaron,

lsof the nginx worker, it could be that the post data is never  
received because nginx is still waiting for the client to transmit it.  
hup'ing the worker, closes any outstanding connections and you get a  
bit of data through before things logjam.

ngrep the input, see if your ajax worker is sending a Content-Length  
header on the POST (nginx cannot currently handle chunked style posts)

Cheers

Dave

On 05/04/2009, at 8:55 AM, Aaron Starr wrote:

> Maxim Dounin,
>
> Thanks for your response!
>
> I have several G on the logs volume, so for that reason it's probably
> not a disk space issue.
>
> Also, though, the log file thing seems to have been a red herring. I
> just went and tried the POST, again, having made no changes at all
> since last time, and it's not working, again. And the log files are
> small.
>
> So, it seems that nginx randomly starts stripping POST data when
> proxying to mongrel. I can't be the first person who's seen something
> like this! I really don't think I've done anything unusual.
>
> Can anyone think of a reason why POST data might be stripped when  
> proxying?
>
> Thanks for any ideas!
>
> Aaron
>
>
>
> On Sat, Apr 4, 2009 at 7:38 AM, Maxim Dounin <mdounin at mdounin.ru>  
> wrote:
>> Hello!
>>
>> On Sat, Apr 04, 2009 at 12:49:13AM -0700, Aaron Starr wrote:
>>
>>> Update on the missing POST data when proxying to mongrel:
>>>
>>> This seems crazy, but it seems to me that the problem is related to
>>> having very large, un-rotated nginx log files. I noticed that the
>>> files were getting too large, and removed them (and got logrotate  
>>> set
>>> up), and now I get my POST data, again.
>>>
>>> If anyone could confirm or deny this apparently nonsensical
>>> explanation, that would be appreciated.
>>
>> Probably you have no space left for files in client_body_temp_path
>> - and as soon as you removed large old logs there are space and
>> everything is working again.
>>
>> Guess you have nothing in error_log due to the very same reason -
>> no space left on device.
>>
>> Maxim Dounin
>>
>>>
>>> Aaron
>>>
>>>
>>> On Fri, Apr 3, 2009 at 2:22 PM, Aaron Starr  
>>> <astarr at wiredquote.com> wrote:
>>>> Hi, all. Sorry in advance for what is hopefully a simple question.
>>>>
>>>> I'm using nginx as a reverse-proxy for a few mongrel instances.  
>>>> Using
>>>> AJAX (XMLHttpRequest), I POST a small bit of JSON to the server.  
>>>> The
>>>> request is properly proxied to mongrel, but with the POST data
>>>> missing!
>>>>
>>>> [..]
>>>
>>
>>
>






More information about the nginx mailing list