fix: data race / nil channel read in pattern aggregation push #15410
+10
−5
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.
What this PR does / why we need it:
This fixes a few different issues:
p.quit = nil
like that is actually a data race and the tests failed when executed with the-race
flag:nil
, that is even worse! Trying to read from anil
channel blocks forever, so therun()
method would have blocked oncase <-p.quit:
instead of finished gracefully 😬Push.run()
gracefully stopping, thePush.Stop()
method didn't actually wait for that to happen, which might be breaking the expectation of upstream users of that method. It's generally a good idea to expect that whatever you have called theStop()
method of something, that thing has actually stopped once the method returns. It's much easier to reason about its behavior that way.