Ran
|
Files
479
|
Run time
29s
|
Badge
Embed ▾
README BADGES
|
push
github
test: fix flaky gh-5998-one-tx-for-ddl.test.lua The test expects that any DDL operation aborts **all** concurrent transactions, but since commit f5f061d051dc ("vinyl: do not abort unrelated transactions on DDL") this isn't exactly true: transactions that haven't read/written anything aren't aborted. In the test we expect a transaction that haven't done anything to be aborted by DDL and it **is** aborted most of them time but for a different reason: it reads data that are later modified for `box.schema.user.create()` reads `box.space._user:max()` to generate an id for the new user first. Since it reads before writing anything, it has the "read-confirmed" isolation level hence it's aborted by the transaction creating another user because the latter updates `box.space._user:max()`. However, sometimes both users are created and the test fails. This happens if the first transaction manages to commit before the second one reads the `_user` system space. To fix the test and make the transaction creating the second user fail due to DDL, let's add a read of the `_user` system space before putting it to sleep. Actually, this even makes the test closer to the "original test from #5998". Closes #10444 NO_DOC=test fix NO_CHANGELOG=test fix (cherry picked from commit 62c051e22)
62936 of 114211 branches covered (55.11%)
93828 of 109264 relevant lines covered (85.87%)
2591172.87 hits per line
Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
---|