Do not delete nodes from non-existent zone's NSEC3 hash trees #466
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes a bug where the reload process crashes because a node in a zone's NSEC3 hash tree is tried to be deleted, but the tree is not or no longer there. I.e. zone->hashtree == NULL.
I still don not know what the root cause of the zone->hashtree being NULL is, but the consequence of the crash is quite severe. Not only will the zone in question not be updated, but since the xfr that caused it is not marked faulty, the reload will just happen again and again with all the outstanding xfrs, causing the crash to just happen over and over again, and none of the other outstanding xfrs being applied (stalling those zones).
We may consider conveying the xfr number being processed by the
reload
process to theold-main
process, so that theold-main
can mark it as faulty if a crash happens during processing of that xfr, so that the other xfrs can still be processed (and will not be blocked). @wcawijngaards @mozzieongit WDYT?