Skip to content

Fix reverse scan for scene of multiple regions#438

Merged
iosmanthus merged 2 commits intotikv:masterfrom
pingyu:fix-reverse-scan
Nov 28, 2023
Merged

Fix reverse scan for scene of multiple regions#438
iosmanthus merged 2 commits intotikv:masterfrom
pingyu:fix-reverse-scan

Conversation

@pingyu
Copy link
Copy Markdown
Collaborator

@pingyu pingyu commented Nov 25, 2023

Close #436

Fix the issue by swap start_key & end_key before requesting regions from PD, and swap back before apply shards to request. As the start_key & end_key in reverse range request are in the meaning of [end_key, start_key).

The issue can be reproduced before the shardable_range was fixed. See 435cf0a:

MULTI_REGION=1 cargo test txn_scan_reverse --all --features "integration-tests" -- --nocapture
    Finished test [unoptimized + debuginfo] target(s) in 0.11s
     Running unittests src/lib.rs (target/debug/deps/tikv_client-ebeddab360b427a7)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 39 filtered out; finished in 0.00s

     Running tests/failpoint_tests.rs (target/debug/deps/failpoint_tests-f2d522e63dab2b69)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s

     Running tests/integration_tests.rs (target/debug/deps/integration_tests-aae509a3e2e0836d)

running 1 test
init finish with 290 regions
Error: MultipleKeyErrors([KeyError(KeyError { locked: None, retryable: "", abort: "Error(Txn(Error(InvalidReqRange { start: Some([0, 0, 0, 0, 0, 0, 0, 0, 251]), end: Some([192, 0, 0, 0, 0, 0, 0, 0, 252]), lower_bound: Some([191, 191, 253, 1, 0, 0, 0, 0, 251]), upper_bound: Some([193, 63, 252, 251, 0, 0, 0, 0, 251]) })))", conflict: None, already_exist: None, deadlock: None, commit_ts_expired: None, txn_not_found: None, commit_ts_too_large: None, assertion_failed: None })])
test txn_scan_reverse ... FAILED

failures:

failures:
    txn_scan_reverse

See also https://github.com/tikv/client-rust/actions/runs/6989951811/job/19018973704?pr=438.

Signed-off-by: Ping Yu <yuping@pingcap.com>
@pingyu
Copy link
Copy Markdown
Collaborator Author

pingyu commented Nov 25, 2023

CC @jmhrpr. Thank you for providing the clue! I will fix it this weekend.

Signed-off-by: Ping Yu <yuping@pingcap.com>
@pingyu pingyu changed the title [WIP] Fix reverse scan for scene of multiple regions Fix reverse scan for scene of multiple regions Nov 26, 2023
@pingyu pingyu requested a review from iosmanthus November 26, 2023 09:22
@iosmanthus iosmanthus merged commit bbaf317 into tikv:master Nov 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

InvalidReqRange with scan_reverse

2 participants