-
Notifications
You must be signed in to change notification settings - Fork 385
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MVCC repeatable read anomaly with REQ scan #11348
Comments
The test for Tarantool allows you to generate random interleaved (concurrent) transactions for the memtx and vinyl engines, and verify the consistency of their execution w.r.t. serializability. Bugs found by the test: - tarantool#6206 - tarantool#6325 - tarantool#6452 - tarantool#7073 - tarantool#7113 - tarantool#7214 - tarantool#7217 - tarantool#7234 - tarantool#7235 - tarantool#7238 - tarantool#7239 - tarantool#7240 - tarantool#7343 - tarantool#7375 - tarantool#7409 - tarantool#7432 - tarantool#7449 - tarantool#7477 - tarantool#7478 - tarantool#7490 - tarantool#7493 - tarantool#7670 - tarantool#7685 - tarantool#7712 - tarantool#7755 - tarantool#7756 - tarantool#7757 - tarantool#7761 - tarantool#7828 - tarantool#7837 - tarantool#8104 - tarantool#11294 - tarantool#11348 Closes tarantool#5999 NO_CHANGELOG=<fuzzing> NO_DOC=<fuzzing> NO_TEST=<fuzzing>
The test for Tarantool allows you to generate random interleaved (concurrent) transactions for the memtx and vinyl engines, and verify the consistency of their execution w.r.t. serializability. Bugs found by the test: - tarantool#6206 - tarantool#6325 - tarantool#6452 - tarantool#7073 - tarantool#7113 - tarantool#7214 - tarantool#7217 - tarantool#7234 - tarantool#7235 - tarantool#7238 - tarantool#7239 - tarantool#7240 - tarantool#7343 - tarantool#7375 - tarantool#7409 - tarantool#7432 - tarantool#7449 - tarantool#7477 - tarantool#7478 - tarantool#7490 - tarantool#7493 - tarantool#7670 - tarantool#7685 - tarantool#7712 - tarantool#7755 - tarantool#7756 - tarantool#7757 - tarantool#7761 - tarantool#7828 - tarantool#7837 - tarantool#8104 - tarantool#11294 - tarantool#11348 Closes tarantool#5999 NO_CHANGELOG=<fuzzing> NO_DOC=<fuzzing> NO_TEST=<fuzzing>
The test for Tarantool allows you to generate random interleaved (concurrent) transactions for the memtx and vinyl engines, and verify the consistency of their execution w.r.t. serializability. Bugs found by the test: - tarantool#6206 - tarantool#6325 - tarantool#6452 - tarantool#7073 - tarantool#7113 - tarantool#7214 - tarantool#7217 - tarantool#7234 - tarantool#7235 - tarantool#7238 - tarantool#7239 - tarantool#7240 - tarantool#7343 - tarantool#7375 - tarantool#7409 - tarantool#7432 - tarantool#7449 - tarantool#7477 - tarantool#7478 - tarantool#7490 - tarantool#7493 - tarantool#7670 - tarantool#7685 - tarantool#7712 - tarantool#7755 - tarantool#7756 - tarantool#7757 - tarantool#7761 - tarantool#7828 - tarantool#7837 - tarantool#8104 - tarantool#11294 - tarantool#11348 Closes tarantool#5999 NO_CHANGELOG=<fuzzing> NO_DOC=<fuzzing> NO_TEST=<fuzzing>
The test for Tarantool allows you to generate random interleaved (concurrent) transactions for the memtx and vinyl engines, and verify the consistency of their execution w.r.t. serializability. Bugs found by the test: - tarantool#6206 - tarantool#6325 - tarantool#6452 - tarantool#7073 - tarantool#7113 - tarantool#7214 - tarantool#7217 - tarantool#7234 - tarantool#7235 - tarantool#7238 - tarantool#7239 - tarantool#7240 - tarantool#7343 - tarantool#7375 - tarantool#7409 - tarantool#7432 - tarantool#7449 - tarantool#7477 - tarantool#7478 - tarantool#7490 - tarantool#7493 - tarantool#7670 - tarantool#7685 - tarantool#7712 - tarantool#7755 - tarantool#7756 - tarantool#7757 - tarantool#7761 - tarantool#7828 - tarantool#7837 - tarantool#8104 - tarantool#11294 - tarantool#11348 Closes tarantool#5999 NO_CHANGELOG=<fuzzing> NO_DOC=<fuzzing> NO_TEST=<fuzzing>
The test for Tarantool allows you to generate random interleaved (concurrent) transactions for the memtx and vinyl engines, and verify the consistency of their execution w.r.t. serializability. Bugs found by the test: - tarantool#6206 - tarantool#6325 - tarantool#6452 - tarantool#7073 - tarantool#7113 - tarantool#7214 - tarantool#7217 - tarantool#7234 - tarantool#7235 - tarantool#7238 - tarantool#7239 - tarantool#7240 - tarantool#7343 - tarantool#7375 - tarantool#7409 - tarantool#7432 - tarantool#7449 - tarantool#7477 - tarantool#7478 - tarantool#7490 - tarantool#7493 - tarantool#7670 - tarantool#7685 - tarantool#7712 - tarantool#7755 - tarantool#7756 - tarantool#7757 - tarantool#7761 - tarantool#7828 - tarantool#7837 - tarantool#8104 - tarantool#11294 - tarantool#11348 Closes tarantool#5999 NO_CHANGELOG=<fuzzing> NO_DOC=<fuzzing> NO_TEST=<fuzzing>
The test for Tarantool allows you to generate random interleaved (concurrent) transactions for the memtx and vinyl engines, and verify the consistency of their execution w.r.t. serializability. Bugs found by the test: - tarantool#6206 - tarantool#6325 - tarantool#6452 - tarantool#7073 - tarantool#7113 - tarantool#7214 - tarantool#7217 - tarantool#7234 - tarantool#7235 - tarantool#7238 - tarantool#7239 - tarantool#7240 - tarantool#7343 - tarantool#7375 - tarantool#7409 - tarantool#7432 - tarantool#7449 - tarantool#7477 - tarantool#7478 - tarantool#7490 - tarantool#7493 - tarantool#7670 - tarantool#7685 - tarantool#7712 - tarantool#7755 - tarantool#7756 - tarantool#7757 - tarantool#7761 - tarantool#7828 - tarantool#7837 - tarantool#8104 - tarantool#11294 - tarantool#11348 Closes tarantool#5999 NO_CHANGELOG=<fuzzing> NO_DOC=<fuzzing> NO_TEST=<fuzzing>
The test for Tarantool allows you to generate random interleaved (concurrent) transactions for the memtx and vinyl engines, and verify the consistency of their execution w.r.t. serializability. Bugs found by the test: - tarantool#6206 - tarantool#6325 - tarantool#6452 - tarantool#7073 - tarantool#7113 - tarantool#7214 - tarantool#7217 - tarantool#7234 - tarantool#7235 - tarantool#7238 - tarantool#7239 - tarantool#7240 - tarantool#7343 - tarantool#7375 - tarantool#7409 - tarantool#7432 - tarantool#7449 - tarantool#7477 - tarantool#7478 - tarantool#7490 - tarantool#7493 - tarantool#7670 - tarantool#7685 - tarantool#7712 - tarantool#7755 - tarantool#7756 - tarantool#7757 - tarantool#7761 - tarantool#7828 - tarantool#7837 - tarantool#8104 - tarantool#11294 - tarantool#11348 Closes tarantool#5999 NO_CHANGELOG=<fuzzing> NO_DOC=<fuzzing> NO_TEST=<fuzzing>
The test for Tarantool allows you to generate random interleaved (concurrent) transactions for the memtx and vinyl engines, and verify the consistency of their execution w.r.t. serializability. Bugs found by the test: - tarantool#6206 - tarantool#6325 - tarantool#6452 - tarantool#7073 - tarantool#7113 - tarantool#7214 - tarantool#7217 - tarantool#7234 - tarantool#7235 - tarantool#7238 - tarantool#7239 - tarantool#7240 - tarantool#7343 - tarantool#7375 - tarantool#7409 - tarantool#7432 - tarantool#7449 - tarantool#7477 - tarantool#7478 - tarantool#7490 - tarantool#7493 - tarantool#7670 - tarantool#7685 - tarantool#7712 - tarantool#7755 - tarantool#7756 - tarantool#7757 - tarantool#7761 - tarantool#7828 - tarantool#7837 - tarantool#8104 - tarantool#11294 - tarantool#11348 Closes tarantool#5999 NO_CHANGELOG=<fuzzing> NO_DOC=<fuzzing> NO_TEST=<fuzzing>
The test for Tarantool allows you to generate random interleaved (concurrent) transactions for the memtx and vinyl engines, and verify the consistency of their execution w.r.t. serializability. Bugs found by the test: - tarantool#6206 - tarantool#6325 - tarantool#6452 - tarantool#7073 - tarantool#7113 - tarantool#7214 - tarantool#7217 - tarantool#7234 - tarantool#7235 - tarantool#7238 - tarantool#7239 - tarantool#7240 - tarantool#7343 - tarantool#7375 - tarantool#7409 - tarantool#7432 - tarantool#7449 - tarantool#7477 - tarantool#7478 - tarantool#7490 - tarantool#7493 - tarantool#7670 - tarantool#7685 - tarantool#7712 - tarantool#7755 - tarantool#7756 - tarantool#7757 - tarantool#7761 - tarantool#7828 - tarantool#7837 - tarantool#8104 - tarantool#11294 - tarantool#11348 Closes tarantool#5999 NO_CHANGELOG=<fuzzing> NO_DOC=<fuzzing> NO_TEST=<fuzzing>
This doesn't violate transaction serializability: if tx1 was committed before tx2 started, we'd get the same result. tx1('box.begin()')
tx1('box.space.v:insert{0}')
tx1('box.commit()')
tx2('box.begin()')
log.info("%s", json.encode(tx2('box.space.v:select({1}, {iterator = "REQ", fullscan = true})')))
log.info("%s", json.encode(tx2('box.space.v:get{0}'))) BTW memtx behavior is exactly the same so this isn't a vinyl issue. |
Note, replacing the |
I apologize, I originally confused |
Discovered with MVCC fuzzing (#5999).
Steps to reproduce
Actual behavior
Expected behavior
The text was updated successfully, but these errors were encountered: