It was discovered that an expired header could sit on top of the heap
a little longer than desireable. Remove expired headers (headers with
rdh_ttl set to 0) from the heap completely, so they don't block the next
TTL-based cleaning.
} else {
isc_heap_decreased(header->heap, header->heap_index);
}
+
+ if (newttl == 0) {
+ isc_heap_delete(header->heap, header->heap_index);
+ }
}
static bool
if (header->heap != NULL && header->heap_index != 0) {
isc_heap_delete(header->heap, header->heap_index);
}
- header->heap_index = 0;
if (IS_CACHE(rbtdb)) {
update_rrsetstats(rbtdb->rrsetstats, header->type,