Gzip Gunzip: always flush busy bufs when the incoming chain is NULL.

Maxim Dounin mdounin at mdounin.ru
Tue Nov 4 00:54:25 UTC 2014


On Mon, Nov 03, 2014 at 02:35:33PM -0800, Yichun Zhang (agentzh) wrote:

> Hello!
> On Mon, Nov 3, 2014 at 2:03 PM, Maxim Dounin wrote:
> >
> > The change is 1.7.7 is intentional, please see
> > http://hg.nginx.org/nginx/rev/973fded4f461.
> >
> Yes, I was aware of this commit. This commit introduces real issues on
> my side because even if the gzip filter does not have busy bufs, the
> downstream write filter can have busy bufs. And it's wrong to avoid
> flushing downstream busy bufs just when ngx_gzip itself does not have
> busy bufs.

The commit log in question explains the reason for the change.  
Work on the gzip stalls problem as fixed by 973fded4f461 clearly 
showed that just passing NULL chains is wrong unless last buffer 
was already sent or there are busy buffers.  And after the 
c52a761a2029 change there were at least two reports about "output 
chain is empty" alerts.

If you see an issue, you may want to share the issue details,
to find out how to fix it properly.

Maxim Dounin

More information about the nginx-devel mailing list