# HG changeset patch # User Valentin Bartenev # Date 1440353012 -10800 # Node ID 06e850859a262ae55d68e6e4a1985fe64ad31f87 # Parent b48663791c17cdbf8343d6eba29b3b873b3913cc Limit recursive subrequests instead of simultaneous. diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c --- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c @@ -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 --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c --- a/src/http/ngx_http_request.c +++ b/src/http/ngx_http_request.c @@ -2338,7 +2338,6 @@ ngx_http_finalize_request(ngx_http_reque if (r == c->data) { r->main->count--; - r->main->subrequests++; if (!r->logged) {