[PATCH] ngx_gzip might hang the request for slow downstreams

Yichun Zhang (agentzh) agentzh at gmail.com
Sun Oct 27 22:03:03 UTC 2013


Hello!

On Sun, Oct 27, 2013 at 4:14 AM, Maxim Dounin wrote:
>>          ctx->nomem = 0;
>> +
>> +        if (in == NULL) {
>> +            return rc;
>> +        }
>>      }
>>
>>      for ( ;; ) {
>
> If there are pending data in ctx->in, they won't be handled.
>

Thank you for the catch! Updated my patch accordingly:

--- nginx-1.4.3/src/http/modules/ngx_http_gzip_filter_module.c
2013-10-08 05:07:14.000000000 -0700
+++ nginx-1.4.3-patched/src/http/modules/ngx_http_gzip_filter_module.c
2013-10-27 14:53:49.723406912 -0700
@@ -370,7 +370,7 @@ ngx_http_gzip_body_filter(ngx_http_reque
         }
     }

-    if (ctx->nomem) {
+    if (ctx->nomem || in == NULL) {

         /* flush busy buffers */
-------------- next part --------------
A non-text attachment was scrubbed...
Name: nginx-1.4.3-gzip_flush_bug.patch
Type: text/x-patch
Size: 385 bytes
Desc: not available
URL: <http://mailman.nginx.org/pipermail/nginx-devel/attachments/20131027/d1eb5bda/attachment.bin>


More information about the nginx-devel mailing list