Tom Pesman <[email protected]> wrote: > Hello, > > I'm trying to fix a problem I'm experiencing with my Rails > application hosted at Heroku. I've one POST request which hangs and > with the help of a customized rack-timeout gem > (https://github.com/tompesman/rack-timeout) I managed to get a > stacktrace: https://gist.github.com/tompesman/7b13e02d349aacc720e0 > > How can I debug this further to get to the bottom of this and is > this a rack or a unicorn problem?
It's a client or proxy problem. The request was too large to be transferred within your configured timeout, or the client or proxy layer was too slow at transferring the POST to unicorn, or the host running unicorn was too overloaded/slow to buffer the request. Factors: 1) Disk/filesystem/memory speed on the (client|proxy) talking to unicorn 2) Disk/filesystem/memory speed on the host running unicorn. 3) The network link between the (client|proxy) <-> unicorn. I don't know about Heroku, but nginx will fully buffer the request body before sending to unicorn, so all 3 factors are within your control. Does Heroku limit (or allow limiting of) the size of request bodies? Maybe a bad client sent a gigantic request. nginx limits request bodies to 1M by default (client_max_body_size config directive). [1] unicorn buffers request bodies to TMPDIR via TeeInput _______________________________________________ Unicorn mailing list - [email protected] http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
