Closed sukki37 closed 1 year ago
I cannot reproduce this data race, which looks like it is caused by different transactions operating concurrently on the same transaction. It is very strange.
the root cause is : it can not guarantee that all the pipeline could be built ok at a same time.
the scan pipeline will read the txn.Write
when building, and delete pipeline will update txn.Write
when it received batch.
e.g:
if the pipelines are
scanA -> push to Delete
scanB -> push to Delete
Delete received the batch from scanB, and scanA is still building. And race occurred.
But this race will not affect the correctness of the pipeline because the delete operator will not modify the content required by pipeline build process.
A possible fix: make the writes field a []atomic.Pointer[[]Entry]
,then read with writes[i].Load()
and write with writes[i].CompareAndSwap(old, new)
may be fixed by #6931
Like 6875, it has been fixed.
Is there an existing issue for the same bug?
Environment
Actual Behavior
It's too log to paste full log here, you can download by https://github.com/sukki37/matrixone/suites/9443470503/artifacts/446692749
Expected Behavior
No response
Steps to Reproduce
No response
Additional information
No response