roachprod: fix leaky goroutine in SyncedCluster.Monitor
#106341
Merged
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.
The
Monitor
function would leak a goroutine per node waiting for context cancelation even after the monitor loop had already exited (for example, when aOneShot
monitor check was requested).This commit updates that function so that we use a cancelable context derived from the context passed as argument; when the monitor loop exits, we cancel that context, which causes the leaky goroutine to terminate appropriately.
This leaked goroutine shows up in the newly introduced roachtest
leaktest
, where there is one leaked goroutine per node in the cluster created by the test; the monitor is created during theassertNoDeadNode
post-test assertion.Epic: none
Release note: None