BUG/MINOR: resolvers: Wait the resolution execution for a do_resolv action

The do_resolv action triggers a resolution and must wait for the
result. Concretely, if no cache entry is available, it creates a resolution
and wakes up the resolvers task. Then it yields. When the action is
recalled, if the resolution is still running, it yields again.

However, if the resolution is not running, it does not check it was
running. Thus, it is possible to ignore the resolution because the action
was recalled before the resolvers task had a chance to be executed. If there
is result, the action must yield.

This patch should fix the issue #1993. It must be backported as far as 2.0.

(cherry picked from commit 51dbb4cb798ca52167041790783030bcebda98b1)
Signed-off-by: Willy Tarreau <w@1wt.eu>
(cherry picked from commit 4283282a61370c3ae406aa7a9e300c0ed1116f4c)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit ba582b85a5be8aee463d022f8328b2a2bfe01dfc)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 55d79f3008b8f4507b1ee697e607b15edd173cf6)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
1 file changed