Fix TestPartitionReader_WaitReadConsistency flakyness #7391
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
@dimitarvdimitrov reported me that
TestPartitionReader_WaitReadConsistency
is flaky. We've seen it failing in this CI run because of:The problem is that there's a race between the 2 async functions, where the function calling
consumer.waitRecords()
may end after the one callingreader.WaitReadConsistency(ctx)
even ifreader.WaitReadConsistency(ctx)
effectively waited for all records to be consumed.In this PR I'm reworking the test. Instead of using
runAsyncAndAssertCompletionOrder()
, I define a custom consume function which adds a delay on the 2nd (and last) record consumption and then increases a counter of processed records. Such counter is increased after the record has been processed by consumption (processing time is simulated with the artificial delay) but before the consume function returns. Then we can just assert that the expected number of records have been consumed oncereader.WaitReadConsistency(ctx)
returns.Which issue(s) this PR fixes or relates to
N/A
Checklist
CHANGELOG.md
updated - the order of entries should be[CHANGE]
,[FEATURE]
,[ENHANCEMENT]
,[BUGFIX]
.about-versioning.md
updated with experimental features.