[nginx] Limit recursive subrequests instead of simultaneous.

Valentin Bartenev vbart at nginx.com
Sun Aug 23 18:24:04 UTC 2015


details:   http://hg.nginx.org/nginx/rev/06e850859a26
branches:  
changeset: 6237:06e850859a26
user:      Valentin Bartenev <vbart at nginx.com>
date:      Sun Aug 23 21:03:32 2015 +0300
description:
Limit recursive subrequests instead of simultaneous.

diffstat:

 src/http/ngx_http_core_module.c |  6 ++----
 src/http/ngx_http_request.c     |  1 -
 2 files changed, 2 insertions(+), 5 deletions(-)

diffs (36 lines):

diff -r b48663791c17 -r 06e850859a26 src/http/ngx_http_core_module.c
--- a/src/http/ngx_http_core_module.c	Sun Aug 23 21:03:29 2015 +0300
+++ b/src/http/ngx_http_core_module.c	Sun Aug 23 21:03:32 2015 +0300
@@ -2427,12 +2427,9 @@ ngx_http_subrequest(ngx_http_request_t *
     ngx_http_core_srv_conf_t      *cscf;
     ngx_http_postponed_request_t  *pr, *p;
 
-    r->main->subrequests--;
-
-    if (r->main->subrequests == 0) {
+    if (r->subrequests == 0) {
         ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
                       "subrequests cycle while processing \"%V\"", uri);
-        r->main->subrequests = 1;
         return NGX_ERROR;
     }
 
@@ -2537,6 +2534,7 @@ ngx_http_subrequest(ngx_http_request_t *
     sr->main_filter_need_in_memory = r->main_filter_need_in_memory;
 
     sr->uri_changes = NGX_HTTP_MAX_URI_CHANGES + 1;
+    sr->subrequests = r->subrequests - 1;
 
     tp = ngx_timeofday();
     sr->start_sec = tp->sec;
diff -r b48663791c17 -r 06e850859a26 src/http/ngx_http_request.c
--- a/src/http/ngx_http_request.c	Sun Aug 23 21:03:29 2015 +0300
+++ b/src/http/ngx_http_request.c	Sun Aug 23 21:03:32 2015 +0300
@@ -2338,7 +2338,6 @@ ngx_http_finalize_request(ngx_http_reque
         if (r == c->data) {
 
             r->main->count--;
-            r->main->subrequests++;
 
             if (!r->logged) {
 



More information about the nginx-devel mailing list