Output body buffer chain "flattening" doesn't work unless proxy buffering is off
Maxim Dounin
mdounin at mdounin.ru
Mon Jun 7 00:57:04 MSD 2010
Hello!
On Fri, Jun 04, 2010 at 11:56:25PM +0200, Srebrenko Šehić wrote:
> While working on an output body filter, I've noticed that if I flatten
> (join all buffers from a chain into 1 buffer), response processing
> hangs when nginx decides to start buffering the response from the
> upstream server. This usually happens (in my case) when the upstream
> response size is >64k.
You don't marked buffers as send, and proxy has no more free
buffers to use (proxy_buffers defaults to 8 x 8k == 64k on
amd64; looks like you didn't tested your code on 32-bit
platforms... :)).
> If I set "proxy_buffering" to "off" in my
> config, everything works just fine.
This is actually strange. With proxy_buffering off; it should
stop doing anything usefull as soon as proxy_buffer_size will be
exceeded. Well, it will call output filter again and again, with
the same buffer chain, but it doesn't seem to match words "works
just fine".
[...]
Maxim Dounin
More information about the nginx-devel
mailing list