[oximeter] Don't stop refreshing producers forever if one attempt fails #7191
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.
#7126 introduced a
return;
insiderefresh_producer_list
to avoid clobbering our producer list on an error talking to Nexus, butrefresh_producer_list
had two loops: it was both "do one refresh" (from whichreturn
ing is correct) and also "periodically refresh" (from whichreturn
ing is incorrect: it causes us to never refresh again).This PR splits
refresh_producer_list
intorefresh_producer_list_{task,once}
; strongly recommend looking at the diff with whitespace ignored, as it's basically a no-op other than this split (which makes thereturn
correct, as it only terminates a single refresh and not all future ones).I also added some
InlineErrorChain
bits to try to get more info from logged errors.Fixes #7190.