WritePrepared: Fix flaky test MaxCatchupWithNewSnapshot (#5850)
Summary: MaxCatchupWithNewSnapshot tests that the snapshot sequence number will be larger than the max sequence number when the snapshot was taken. However since the test does not have access to the max sequence number when the snapshot was taken, it uses max sequence number after that, which could have advanced the snapshot by then, thus making the test flaky. The fix is to compare with max sequence number before the snapshot was taken, which is a lower bound for the value when the snapshot was taken. Pull Request resolved: https://github.com/facebook/rocksdb/pull/5850 Test Plan: ~/gtest-parallel/gtest-parallel --repeat=12800 ./write_prepared_transaction_test --gtest_filter="*MaxCatchupWithNewSnapshot*" Differential Revision: D17608926 Pulled By: maysamyabandeh fbshipit-source-id: b122ae5a27f982b290bd60da852e28d3c5eb0136
This commit is contained in:
parent
0d91a981e9
commit
52733b4498
@ -1386,9 +1386,12 @@ TEST_P(WritePreparedTransactionTest, MaxCatchupWithNewSnapshot) {
|
||||
std::this_thread::yield();
|
||||
}
|
||||
for (int i = 0; i < 10; i++) {
|
||||
SequenceNumber max_lower_bound = wp_db->max_evicted_seq_;
|
||||
auto snap = db->GetSnapshot();
|
||||
if (snap->GetSequenceNumber() != 0) {
|
||||
ASSERT_LT(wp_db->max_evicted_seq_, snap->GetSequenceNumber());
|
||||
// Value of max_evicted_seq_ when snapshot was taken in unknown. We thus
|
||||
// compare with the lower bound instead as an approximation.
|
||||
ASSERT_LT(max_lower_bound, snap->GetSequenceNumber());
|
||||
} // seq 0 is ok to be less than max since nothing is visible to it
|
||||
db->ReleaseSnapshot(snap);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user