From 035a491476cb980a56d1824ede091d60e0c0cbd4 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Fri, 18 Jun 2021 09:05:49 +0200 Subject: [PATCH] BUG/MINOR: resolvers: Use resolver's lock in resolv_srvrq_expire_task() The commit dcac41806 ("BUG/MEDIUM: resolvers: Add a task on servers to check SRV resolution status") introduced a type. In resolv_srvrq_expire_task() function, the resolver's lock must be used instead of the resolver itself. This patch must be backported with the patch above (at least as far as 2.2). (cherry picked from commit e886dd5c32aa1bc99acf48c5bb1826f80d96923d) Signed-off-by: Christopher Faulet (cherry picked from commit 152b50c38ab7ef1829d9a0115c393f518860314f) [cf: Changes applied in src/dns.c instead of src/resolvers.c] Signed-off-by: Christopher Faulet --- src/dns.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dns.c b/src/dns.c index 2394db5..d00288d 100644 --- a/src/dns.c +++ b/src/dns.c @@ -668,9 +668,9 @@ static struct task *dns_srvrq_expire_task(struct task *t, void *context, unsigne if (!tick_is_expired(t->expire, now_ms)) goto end; - HA_SPIN_LOCK(DNS_LOCK, &srv->srvrq->resolvers); + HA_SPIN_LOCK(DNS_LOCK, &srv->srvrq->resolvers->lock); dns_srvrq_cleanup_srv(srv); - HA_SPIN_UNLOCK(DNS_LOCK, &srv->srvrq->resolvers); + HA_SPIN_UNLOCK(DNS_LOCK, &srv->srvrq->resolvers->lock); end: return t; -- 1.7.10.4