Fix data race in matching test suite #5781
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.
What changed?
ensureAsyncReady in matching test suite was causing data races because it's running the given callback function in a separate goroutine that accesses shared variables.
This was consistently failing in one of the buildkite jobs I ran in a separate internal fork so addressing it by making following changes:
wait
doesn't return before the goroutine terminatesIt's not a simple solution but gets the job done. That whole suite could use some refactoring to separate out running Poll/Offer goroutines and the test validation.
Why?
Fix test data race.
How did you test it?
go test -timeout 120s -run ^TestMatcherSuite$ github.com/uber/cadence/service/matching -v -count=10 -race