mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 05:57:52 +00:00
When a forwarder fails and we're not in a forward-only mode we
go back to regular resolution. When this happens the fetch timer is already running, and we might end up in a situation where we we create a fetch for qname-minimized query and after that the timer is triggered and the query is retried (fctx_try) - which causes relaunching of qname-minimization fetch - and since we already have a qmin fetch for this fctx - assertion failure. This fix stops the timer when doing qname minimization - qmin fetch internal timer should take care of all the possible timeouts.
This commit is contained in:
parent
bbb0947ee1
commit
cfa2804e5a
4
CHANGES
4
CHANGES
@ -1,3 +1,7 @@
|
||||
5138. [bug] Under some circumstances named could hit an assertion
|
||||
failure when doing qname minimization when using
|
||||
forwarders. [GL #797]
|
||||
|
||||
5137. [func] named now logs messages whenever a mirror zone becomes
|
||||
usable or unusable for resolution purposes. [GL #818]
|
||||
|
||||
|
@ -4040,9 +4040,11 @@ fctx_try(fetchctx_t *fctx, bool retrying, bool badcache) {
|
||||
options &= ~DNS_FETCHOPT_QMINIMIZE;
|
||||
fctx_increference(fctx);
|
||||
task = res->buckets[bucketnum].task;
|
||||
fctx_stoptimer(fctx);
|
||||
result = dns_resolver_createfetch(fctx->res, &fctx->qminname,
|
||||
fctx->qmintype, &fctx->domain,
|
||||
&fctx->nameservers, NULL, NULL, 0,
|
||||
&fctx->nameservers,
|
||||
NULL, NULL, 0,
|
||||
options, 0, fctx->qc, task,
|
||||
resume_qmin, fctx,
|
||||
&fctx->qminrrset, NULL,
|
||||
@ -4371,13 +4373,12 @@ fctx_timeout(isc_task_t *task, isc_event_t *event) {
|
||||
* timer.
|
||||
*/
|
||||
result = fctx_starttimer(fctx);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
fctx_done(fctx, result, __LINE__);
|
||||
else
|
||||
/*
|
||||
* Keep trying.
|
||||
*/
|
||||
} else {
|
||||
/* Keep trying */
|
||||
fctx_try(fctx, true, false);
|
||||
}
|
||||
}
|
||||
|
||||
isc_event_free(&event);
|
||||
|
Loading…
x
Reference in New Issue
Block a user