From: Dmitry Volyntsev Date: Fri, 16 Dec 2016 15:21:55 +0000 (+0300) Subject: Resolver: fixed a race between parallel name and addr resolves. X-Git-Tag: release-1.11.8~18 X-Git-Url: http://www.kaiwu.me/postgresql/commit/static/gitweb.js?a=commitdiff_plain;h=e114960e5353b6e2db82251872300955cfc0169b;p=nginx.git Resolver: fixed a race between parallel name and addr resolves. Previously, ngx_resolve_name() and ngx_resolve_addr() may have rescheduled the resend timer while it was already in progress. --- diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c index d5f06eb1d..54e037de0 100644 --- a/src/core/ngx_resolver.c +++ b/src/core/ngx_resolver.c @@ -875,7 +875,7 @@ ngx_resolve_name_locked(ngx_resolver_t *r, ngx_resolver_ctx_t *ctx, ngx_add_timer(ctx->event, ctx->timeout); } - if (ngx_queue_empty(resend_queue)) { + if (ngx_resolver_resend_empty(r)) { ngx_add_timer(r->event, (ngx_msec_t) (r->resend_timeout * 1000)); } @@ -1098,7 +1098,7 @@ ngx_resolve_addr(ngx_resolver_ctx_t *ctx) ngx_add_timer(ctx->event, ctx->timeout); } - if (ngx_queue_empty(resend_queue)) { + if (ngx_resolver_resend_empty(r)) { ngx_add_timer(r->event, (ngx_msec_t) (r->resend_timeout * 1000)); }