backfill: fix possible race in tests #106224
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.
This commit addresses a race when
Push
ing intoexecinfra.RowReceiver
which can happen in tests. In particular, whenPushesProgressEveryChunk
testing knob is set, there is a concurrency between the main waiter goroutine and worker goroutine, so we now add a mutex around thatPush
. In theory,RowReceiver.Push
claims to be thread-safe, so it shouldn't be necessary, but two implementations (DistSQLReceiver
andcopyingRowReceiver
) are actually not thread-safe, and fixing that is left as a TODO.Fixes: #106161.
Release note: None