Postpone filter: don't skip subrequests


#1

HG changeset patch

User Maxim D. removed_email_address@domain.invalid

Date 1221784313 -14400

Node ID 2a993b1413bab4435a9dfe88bd0889d74b90c3da

Parent 824321c85af87f85f9a3e56b0dd69d0a84c8d54f

Postpone filter: don’t skip subrequests.

When multiple subrequests are used without intermediate chains from main
request, postpone filter may skip some of the subrequests. Remove
in-loop
microoptimization in ngx_http_postpone_filter_output_postpone() to
handle
such situation properly.

Looks like it’s impossible to trigger the problem with official nginx
modules.

diff --git a/src/http/ngx_http_postpone_filter_module.c
b/src/http/ngx_http_postpone_filter_module.c
— a/src/http/ngx_http_postpone_filter_module.c
+++ b/src/http/ngx_http_postpone_filter_module.c
@@ -190,13 +190,6 @@ ngx_http_postpone_filter_output_postpone
if (rc == NGX_AGAIN || rc == NGX_ERROR) {
return rc;
}

  •        r->postponed = r->postponed->next;
    
  •        pr = r->postponed;
    
  •    }
    
  •    if (pr == NULL) {
    
  •        break;
       }
    
       out = pr->out;