[narwhal] fix unlocking resources in header_waiter when error #5954
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 PR is fixing an undesired behaviour in
header_waiter
. When a request fails (ex fetch batches or fetch parents) we simplywarn
but we do not clear the internal maps. So any next attempt to fetch those will simply get ignored. We saw a few cases in restartability where this behaviour ended up in loss of liveness.Now, this component is not only having this issue and there are several things that should be fixed (ex the way we perform the clean ups, no retries which again can lead to loss of liveness). I am not performing any further refactoring as I know that @aschran is working to remove completely, but I prefer to have something now so could fix at least a known problem.