|
Ran
|
Jobs
1
|
Files
479
|
Run time
2min
|
Badge
README BADGES
|
push
github
vinyl: don't create cache chain over unconfirmed deferred DELETE While scanning a non-unique secondary index of a vinyl space, we skip a tuple if there's no match for it in the primary index because it means that the tuple was overwritten by a newer statement but the secondary index DELETE was deferred until compaction. We still create a cache chain link in this case so that we skip the overwritten tuple when we scan the secondary index next time. We do it even if the overwriting statement is unconfirmed (not yet written to WAL), which is actually incorrect. The problem is that if the overwriting statement is rolled back on a WAL write error, the chain created in the secondary index cache won't be broken because nothing was actually written to the secondary index (DELETE was deferred) therefore there's nothing to roll back therefore there's nothing to invalidate the cache by. As a result, the tuple that the user attempted to delete but failed due to a WAL error will become inaccessible via the secondary index because of the stale cache chain. Fix this issue by disabling creation of a cache chain link in case the read iterator skipped an unconfirmed deferred DELETE statement. Closes #11140 NO_DOC=bug fix (cherry picked from commit 74f45f41c)
63448 of 114806 branches covered (55.27%)
8 of 8 new or added lines in 1 file covered. (100.0%)
28 existing lines in 14 files now uncovered.94404 of 109724 relevant lines covered (86.04%)
1888360.88 hits per line
| Lines | Coverage | ∆ | File |
|---|---|---|---|
| 1 |
89.49 |
-0.1% | src/box/memtx_engine.cc |
| 1 |
92.14 |
0.0% | src/box/vinyl.c |
| 1 |
94.25 |
-0.15% | src/box/vy_read_iterator.c |
| 1 |
86.52 |
0.2% | src/box/vy_run.c |
| 1 |
87.5 |
-1.79% | src/box/xlog.h |
| 1 |
93.33 |
-0.11% | src/lib/core/fiber.c |
| 1 |
95.24 |
-1.59% | src/lib/small/include/small/quota.h |
| 2 |
87.17 |
-0.04% | src/box/box.cc |
| 2 |
96.31 |
-0.39% | src/box/relay.cc |
| 2 |
82.82 |
-0.2% | src/box/xlog.c |
| 3 |
93.62 |
1.06% | src/box/vy_range.c |
| 4 |
90.01 |
-0.31% | src/box/applier.cc |
| 4 |
91.85 |
-0.67% | src/box/txn_limbo.c |
| 4 |
93.31 |
-1.27% | src/lib/swim/swim_io.c |
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 13416885935.1 | 479 |
86.04 |
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|