From e114960e5353b6e2db82251872300955cfc0169b Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Fri, 16 Dec 2016 18:21:55 +0300 Subject: 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. --- src/core/ngx_resolver.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') 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)); } -- cgit