Another regression introduced with the commit
3023e9819 ("BUG/MINOR:
resolvers: Restore round-robin selection on records in DNS answers"). Stream
requesters are unlinked from any theards. So we must not try to queue the
resolver's task here because it is not allowed to do so from another thread
than the task thread. Instead, we can simply wake the resolver's task up. It
is only performed when the last stream requester is unlink from the
resolution.
This patch should fix the issue #3119. It must be backported with the commit
above.
else {
if (!tick_isset(res->last_resolution))
res->last_resolution = now_ms;
- resolv_update_resolvers_timeout(res->resolvers);
+ task_wakeup(res->resolvers->t, TASK_WOKEN_OTHER);
}
return;
}