[BEAM-3228] Fix flaky KinesisMockReadTest #4686
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 actual cause of flaky test is related to
ShardReadersPoolTest
(not toKinesisMockReadTest
directly) which creates new instance ofShardReadersPool
in every test and then starts new thread pool and runs shard readers threads.Seems like when we run Kinesis tests in parallel through
maven-surefire-plugin
andKinesisMockReadTest
orKinesisMockWriteTest
(they also useShardReadersPoolTest
) runs afterShardReadersPoolTest
then we can have a deadlock. It's easy to reproduce running two tests in this order.To avoid it, we have to stop all running threads and release all resources by stopping shard reader pool after using.
After that, we don't need to set
forkCount=1
inmaven-surefire-plugin
anymore.Follow this checklist to help us incorporate your contribution quickly and easily:
[BEAM-XXX] Fixes bug in ApproximateQuantiles
, where you replaceBEAM-XXX
with the appropriate JIRA issue.mvn clean verify
to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.