[PATCH] upstream process header data

Maxim Dounin mdounin at mdounin.ru
Thu Feb 9 11:12:36 UTC 2012


On Thu, Feb 09, 2012 at 05:43:19PM +0800, 李飞勃 wrote:

> hello,
>     I encountered a problem when I write a upstream module to process
> data from my upstream server.
>     I set the header recv buffer to a small size that can not hold the
> whole response header. While in my process_header handler of my
> module, it will wait for the whole response header to process header,
> then return NGX_AGAIN and leave data in u->buffer not processed(in
> this case, u->buffer->pos < u->buffer->last). Then u->buffer->pos will
> never equal to u->buffer->end, and nginx will nerver log "upstream
> send too big header". This will cause nginx to call recv again with
> zero buffer size.
>     I think this may be a problem, and I made a patch for that.

Looks like valid problem and correct patch for me.  In vanilla 
nginx this currently affects at least memcached module.  If 
memcached_buffer set to low value, it causes

[error] ... upstream prematurely closed connection while reading 
response header from upstream ...

to be logged instead of correct

[error] ... upstream sent too big header while reading response 
header from upstream ...

Could you please provide English transcription of your name you 
would like to see in CHANGES?  Is "Li Feibo" looks ok?

Maxim Dounin

More information about the nginx-devel mailing list