summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/test
diff options
context:
space:
mode:
authorLuke Chen <luke.chen@mongodb.com>2022-03-02 17:10:08 +1100
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-03-02 06:46:31 +0000
commit2d50afc549513ae4d1dbcb0009b23b7d06e520a5 (patch)
treed2681f889057e3c1d78de446dd81c12e03550452 /src/third_party/wiredtiger/test
parent176d9fe250351332f84959c8ff809d918ce24cdd (diff)
downloadmongo-2d50afc549513ae4d1dbcb0009b23b7d06e520a5.tar.gz
Import wiredtiger: bafff542e46c9102a553dba7dd8e550e2412490d from branch mongodb-master
ref: 9aefe65120..bafff542e4 for: 6.0.0 WT-8747 Reading between commit_timestamp and durable_timestamp can produce inconsistency
Diffstat (limited to 'src/third_party/wiredtiger/test')
-rw-r--r--src/third_party/wiredtiger/test/suite/test_durable_rollback_to_stable.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_durable_ts01.py2
-rwxr-xr-xsrc/third_party/wiredtiger/test/suite/test_durable_ts03.py9
-rw-r--r--src/third_party/wiredtiger/test/suite/test_flcs02.py38
-rw-r--r--src/third_party/wiredtiger/test/suite/test_hs06.py6
-rwxr-xr-xsrc/third_party/wiredtiger/test/suite/test_rollback_to_stable01.py4
-rwxr-xr-xsrc/third_party/wiredtiger/test/suite/test_rollback_to_stable02.py8
-rwxr-xr-xsrc/third_party/wiredtiger/test/suite/test_rollback_to_stable03.py6
-rwxr-xr-xsrc/third_party/wiredtiger/test/suite/test_rollback_to_stable04.py26
-rwxr-xr-xsrc/third_party/wiredtiger/test/suite/test_rollback_to_stable06.py8
-rwxr-xr-xsrc/third_party/wiredtiger/test/suite/test_rollback_to_stable07.py14
-rwxr-xr-xsrc/third_party/wiredtiger/test/suite/test_rollback_to_stable08.py8
-rwxr-xr-xsrc/third_party/wiredtiger/test/suite/test_rollback_to_stable10.py34
-rwxr-xr-xsrc/third_party/wiredtiger/test/suite/test_rollback_to_stable11.py4
-rwxr-xr-xsrc/third_party/wiredtiger/test/suite/test_rollback_to_stable12.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_rollback_to_stable13.py24
-rwxr-xr-xsrc/third_party/wiredtiger/test/suite/test_rollback_to_stable14.py22
-rw-r--r--src/third_party/wiredtiger/test/suite/test_rollback_to_stable18.py4
-rw-r--r--src/third_party/wiredtiger/test/suite/test_rollback_to_stable23.py10
19 files changed, 122 insertions, 109 deletions
diff --git a/src/third_party/wiredtiger/test/suite/test_durable_rollback_to_stable.py b/src/third_party/wiredtiger/test/suite/test_durable_rollback_to_stable.py
index c6002b97b91..a1695ced559 100644
--- a/src/third_party/wiredtiger/test/suite/test_durable_rollback_to_stable.py
+++ b/src/third_party/wiredtiger/test/suite/test_durable_rollback_to_stable.py
@@ -99,7 +99,7 @@ class test_durable_rollback_to_stable(wttest.WiredTigerTestCase, suite_subproces
# Read the first update value with timestamp.
self.assertEquals(cursor.reset(), 0)
- session.begin_transaction('read_timestamp=' + self.timestamp_str(200))
+ session.begin_transaction('read_timestamp=' + self.timestamp_str(220))
self.assertEquals(cursor.next(), 0)
for i in range(1, 50):
self.assertEquals(cursor.get_value(), ds.value(111))
diff --git a/src/third_party/wiredtiger/test/suite/test_durable_ts01.py b/src/third_party/wiredtiger/test/suite/test_durable_ts01.py
index 30832ee04b5..6d45643f54b 100644
--- a/src/third_party/wiredtiger/test/suite/test_durable_ts01.py
+++ b/src/third_party/wiredtiger/test/suite/test_durable_ts01.py
@@ -98,7 +98,7 @@ class test_durable_ts01(wttest.WiredTigerTestCase):
# Read the first update value with timestamp.
self.assertEquals(cursor.reset(), 0)
- session.begin_transaction('read_timestamp=' + self.timestamp_str(200))
+ session.begin_transaction('read_timestamp=' + self.timestamp_str(220))
self.assertEquals(cursor.next(), 0)
for i in range(1, 50):
self.assertEquals(cursor.get_value(), ds.value(111))
diff --git a/src/third_party/wiredtiger/test/suite/test_durable_ts03.py b/src/third_party/wiredtiger/test/suite/test_durable_ts03.py
index 44fb78f5fd9..f78f85a187e 100755
--- a/src/third_party/wiredtiger/test/suite/test_durable_ts03.py
+++ b/src/third_party/wiredtiger/test/suite/test_durable_ts03.py
@@ -96,11 +96,18 @@ class test_durable_ts03(wttest.WiredTigerTestCase):
self.assertEqual(value, valueA)
session.commit_transaction()
- # Read the updated data to confirm that it is visible.
+ # Check that the updated data can still be read even while it is not yet durable.
self.assertEquals(cursor.reset(), 0)
session.begin_transaction('read_timestamp=' + self.timestamp_str(210))
for key, value in cursor:
self.assertEqual(value, valueB)
+ session.rollback_transaction()
+
+ # Read the updated data to confirm that it is visible.
+ self.assertEquals(cursor.reset(), 0)
+ session.begin_transaction('read_timestamp=' + self.timestamp_str(220))
+ for key, value in cursor:
+ self.assertEqual(value, valueB)
session.commit_transaction()
self.session.checkpoint("use_timestamp=true")
diff --git a/src/third_party/wiredtiger/test/suite/test_flcs02.py b/src/third_party/wiredtiger/test/suite/test_flcs02.py
index 869ff2c8717..25022d12092 100644
--- a/src/third_party/wiredtiger/test/suite/test_flcs02.py
+++ b/src/third_party/wiredtiger/test/suite/test_flcs02.py
@@ -30,7 +30,7 @@ import wiredtiger, wttest
from wtdataset import SimpleDataSet
from wtscenario import make_scenarios
-# test_flcs01.py
+# test_flcs02.py
#
# Test various cases of deleting values and expecting them to read back as 0,
# in the presence of timestamps and history.
@@ -39,7 +39,7 @@ from wtscenario import make_scenarios
# evict it explicitly, to make sure that the first section of the test exercises
# in-memory update records. (Testing on an in-memory database does not have that
# effect.)
-class test_flcs01(wttest.WiredTigerTestCase):
+class test_flcs02(wttest.WiredTigerTestCase):
prepare_values = [
('no_prepare', dict(do_prepare=False)),
('prepare', dict(do_prepare=True))
@@ -134,21 +134,20 @@ class test_flcs01(wttest.WiredTigerTestCase):
cursor.reset()
self.session.rollback_transaction()
- self.session.begin_transaction('read_timestamp=' + self.timestamp_str(committs))
- v = cursor[k]
- self.assertEqual(v, 0)
- cursor.reset()
- self.check_next(cursor, k, 0)
- self.check_prev(cursor, k, 0)
- self.session.rollback_transaction()
+ def readat(readts):
+ self.session.begin_transaction('read_timestamp=' + self.timestamp_str(readts))
+ v = cursor[k]
+ self.assertEqual(v, 0)
+ cursor.reset()
+ self.check_next(cursor, k, 0)
+ self.check_prev(cursor, k, 0)
+ self.session.rollback_transaction()
- self.session.begin_transaction('read_timestamp=' + self.timestamp_str(committs + 5))
- v = cursor[k]
- self.assertEqual(v, 0)
- cursor.reset()
- self.check_next(cursor, k, 0)
- self.check_prev(cursor, k, 0)
- self.session.rollback_transaction()
+ if not self.do_prepare:
+ # Avoid reading between commit and durable.
+ readat(committs)
+ readat(committs+1)
+ readat(committs+5)
def test_flcs(self):
uri = "table:test_flcs02"
@@ -262,7 +261,8 @@ class test_flcs01(wttest.WiredTigerTestCase):
self.session.rollback_transaction()
# This should definitely have extended the table in the present.
- self.session.begin_transaction('read_timestamp=' + self.timestamp_str(50))
+ read_ts = 51 if self.do_prepare else 50
+ self.session.begin_transaction('read_timestamp=' + self.timestamp_str(read_ts))
v = cursor[appendkey2]
self.assertEqual(v, 0)
cursor.reset()
@@ -274,7 +274,7 @@ class test_flcs01(wttest.WiredTigerTestCase):
self.evict(uri, 1, 1)
# The committed zeros should still be there.
- self.session.begin_transaction('read_timestamp=' + self.timestamp_str(50))
+ self.session.begin_transaction('read_timestamp=' + self.timestamp_str(read_ts))
v = cursor[updatekey2]
self.assertEqual(v, 0)
cursor.reset()
@@ -282,7 +282,7 @@ class test_flcs01(wttest.WiredTigerTestCase):
self.check_prev(cursor, updatekey2, 0)
self.session.rollback_transaction()
- self.session.begin_transaction('read_timestamp=' + self.timestamp_str(50))
+ self.session.begin_transaction('read_timestamp=' + self.timestamp_str(read_ts))
v = cursor[appendkey2]
self.assertEqual(v, 0)
cursor.reset()
diff --git a/src/third_party/wiredtiger/test/suite/test_hs06.py b/src/third_party/wiredtiger/test/suite/test_hs06.py
index 42b502df4b2..38e7756c405 100644
--- a/src/third_party/wiredtiger/test/suite/test_hs06.py
+++ b/src/third_party/wiredtiger/test/suite/test_hs06.py
@@ -266,11 +266,17 @@ class test_hs06(wttest.WiredTigerTestCase):
prepare_session.commit_transaction(
'commit_timestamp=' + self.timestamp_str(5) + ',durable_timestamp=' + self.timestamp_str(6))
+ # Specifically check that we can read between commit and durable.
self.session.begin_transaction('read_timestamp=' + self.timestamp_str(5))
for i in range(1, 11):
self.assertEquals(value2, cursor[self.create_key(i)])
self.session.rollback_transaction()
+ self.session.begin_transaction('read_timestamp=' + self.timestamp_str(6))
+ for i in range(1, 11):
+ self.assertEquals(value2, cursor[self.create_key(i)])
+ self.session.rollback_transaction()
+
def test_hs_multiple_updates(self):
# Create a small table.
uri = "table:test_hs06"
diff --git a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable01.py b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable01.py
index f674d2f0da5..279090c699d 100755
--- a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable01.py
+++ b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable01.py
@@ -229,12 +229,12 @@ class test_rollback_to_stable01(test_rollback_to_stable_base):
self.large_updates(uri, valuea, ds, nrows, self.prepare, 10)
# Check that all updates are seen.
- self.check(valuea, uri, nrows, None, 10)
+ self.check(valuea, uri, nrows, None, 11 if self.prepare else 10)
# Remove all keys with newer timestamp.
self.large_removes(uri, ds, nrows, self.prepare, 20)
# Check that the no keys should be visible.
- self.check(valuea, uri, 0, nrows, 20)
+ self.check(valuea, uri, 0, nrows, 21 if self.prepare else 20)
# Pin stable to timestamp 20 if prepare otherwise 10.
if self.prepare:
diff --git a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable02.py b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable02.py
index 523a1beca5f..c3d4dc39d45 100755
--- a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable02.py
+++ b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable02.py
@@ -98,19 +98,19 @@ class test_rollback_to_stable02(test_rollback_to_stable_base):
self.large_updates(uri, valuea, ds, nrows, self.prepare, 10)
# Check that all updates are seen.
- self.check(valuea, uri, nrows, None, 10)
+ self.check(valuea, uri, nrows, None, 11 if self.prepare else 10)
self.large_updates(uri, valueb, ds, nrows, self.prepare, 20)
# Check that the new updates are only seen after the update timestamp.
- self.check(valueb, uri, nrows, None, 20)
+ self.check(valueb, uri, nrows, None, 21 if self.prepare else 20)
self.large_updates(uri, valuec, ds, nrows, self.prepare, 30)
# Check that the new updates are only seen after the update timestamp.
- self.check(valuec, uri, nrows, None, 30)
+ self.check(valuec, uri, nrows, None, 31 if self.prepare else 30)
self.large_updates(uri, valued, ds, nrows, self.prepare, 40)
# Check that the new updates are only seen after the update timestamp.
- self.check(valued, uri, nrows, None, 40)
+ self.check(valued, uri, nrows, None, 41 if self.prepare else 40)
# Pin stable to timestamp 30 if prepare otherwise 20.
if self.prepare:
diff --git a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable03.py b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable03.py
index 564983121a7..f0792af8b22 100755
--- a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable03.py
+++ b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable03.py
@@ -85,15 +85,15 @@ class test_rollback_to_stable01(test_rollback_to_stable_base):
self.large_updates(uri, valuea, ds, nrows, self.prepare, 10)
# Check that all updates are seen.
- self.check(valuea, uri, nrows, None, 10)
+ self.check(valuea, uri, nrows, None, 11 if self.prepare else 10)
self.large_updates(uri, valueb, ds, nrows, self.prepare, 20)
# Check that all updates are seen.
- self.check(valueb, uri, nrows, None, 20)
+ self.check(valueb, uri, nrows, None, 21 if self.prepare else 20)
self.large_updates(uri, valuec, ds, nrows, self.prepare, 30)
# Check that all updates are seen.
- self.check(valuec, uri, nrows, None, 30)
+ self.check(valuec, uri, nrows, None, 31 if self.prepare else 30)
# Pin stable to timestamp 30 if prepare otherwise 20.
if self.prepare:
diff --git a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable04.py b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable04.py
index 69e23f574e5..6bc9cda70a4 100755
--- a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable04.py
+++ b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable04.py
@@ -123,19 +123,19 @@ class test_rollback_to_stable04(test_rollback_to_stable_base):
self.large_modifies(uri, 'Z', ds, 7, 1, nrows, self.prepare, 140)
# Verify data is visible and correct.
- self.check(value_a, uri, nrows, None, 20)
- self.check(value_modQ, uri, nrows, None, 30)
- self.check(value_modR, uri, nrows, None, 40)
- self.check(value_modS, uri, nrows, None, 50)
- self.check(value_b, uri, nrows, None, 60)
- self.check(value_c, uri, nrows, None, 70)
- self.check(value_modT, uri, nrows, None, 80)
- self.check(value_d, uri, nrows, None, 90)
- self.check(value_modW, uri, nrows, None, 100)
- self.check(value_a, uri, nrows, None, 110)
- self.check(value_modX, uri, nrows, None, 120)
- self.check(value_modY, uri, nrows, None, 130)
- self.check(value_modZ, uri, nrows, None, 140)
+ self.check(value_a, uri, nrows, None, 21 if self.prepare else 20)
+ self.check(value_modQ, uri, nrows, None, 31 if self.prepare else 30)
+ self.check(value_modR, uri, nrows, None, 41 if self.prepare else 40)
+ self.check(value_modS, uri, nrows, None, 51 if self.prepare else 50)
+ self.check(value_b, uri, nrows, None, 61 if self.prepare else 60)
+ self.check(value_c, uri, nrows, None, 71 if self.prepare else 70)
+ self.check(value_modT, uri, nrows, None, 81 if self.prepare else 80)
+ self.check(value_d, uri, nrows, None, 91 if self.prepare else 90)
+ self.check(value_modW, uri, nrows, None, 101 if self.prepare else 100)
+ self.check(value_a, uri, nrows, None, 111 if self.prepare else 110)
+ self.check(value_modX, uri, nrows, None, 121 if self.prepare else 120)
+ self.check(value_modY, uri, nrows, None, 131 if self.prepare else 130)
+ self.check(value_modZ, uri, nrows, None, 141 if self.prepare else 140)
# Pin stable to timestamp 40 if prepare otherwise 30.
if self.prepare:
diff --git a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable06.py b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable06.py
index d2dd6d9f56f..676bf934b6e 100755
--- a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable06.py
+++ b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable06.py
@@ -92,10 +92,10 @@ class test_rollback_to_stable06(test_rollback_to_stable_base):
self.large_updates(uri, value_d, ds, nrows, self.prepare, 50)
# Verify data is visible and correct.
- self.check(value_a, uri, nrows, None, 20)
- self.check(value_b, uri, nrows, None, 30)
- self.check(value_c, uri, nrows, None, 40)
- self.check(value_d, uri, nrows, None, 50)
+ self.check(value_a, uri, nrows, None, 21 if self.prepare else 20)
+ self.check(value_b, uri, nrows, None, 31 if self.prepare else 30)
+ self.check(value_c, uri, nrows, None, 41 if self.prepare else 40)
+ self.check(value_d, uri, nrows, None, 51 if self.prepare else 50)
# Checkpoint to ensure the data is flushed, then rollback to the stable timestamp.
if not self.in_memory:
diff --git a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable07.py b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable07.py
index f9e045e0a81..f54f01b8858 100755
--- a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable07.py
+++ b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable07.py
@@ -86,10 +86,10 @@ class test_rollback_to_stable07(test_rollback_to_stable_base):
self.large_updates(uri, value_a, ds, nrows, self.prepare, 50)
# Verify data is visible and correct.
- self.check(value_d, uri, nrows, None, 20)
- self.check(value_c, uri, nrows, None, 30)
- self.check(value_b, uri, nrows, None, 40)
- self.check(value_a, uri, nrows, None, 50)
+ self.check(value_d, uri, nrows, None, 21 if self.prepare else 20)
+ self.check(value_c, uri, nrows, None, 31 if self.prepare else 30)
+ self.check(value_b, uri, nrows, None, 41 if self.prepare else 40)
+ self.check(value_a, uri, nrows, None, 51 if self.prepare else 50)
# Pin stable to timestamp 50 if prepare otherwise 40.
if self.prepare:
@@ -106,9 +106,9 @@ class test_rollback_to_stable07(test_rollback_to_stable_base):
self.session.checkpoint()
# Verify additional update data is visible and correct.
- self.check(value_b, uri, nrows, None, 60)
- self.check(value_c, uri, nrows, None, 70)
- self.check(value_d, uri, nrows, None, 80)
+ self.check(value_b, uri, nrows, None, 61 if self.prepare else 60)
+ self.check(value_c, uri, nrows, None, 71 if self.prepare else 70)
+ self.check(value_d, uri, nrows, None, 81 if self.prepare else 80)
# Simulate a server crash and restart.
simulate_crash_restart(self, ".", "RESTART")
diff --git a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable08.py b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable08.py
index 8f04a327aaa..736670e12cf 100755
--- a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable08.py
+++ b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable08.py
@@ -92,10 +92,10 @@ class test_rollback_to_stable08(test_rollback_to_stable_base):
self.large_updates(uri, value_d, ds, nrows, self.prepare, 50)
# Verify data is visible and correct.
- self.check(value_a, uri, nrows, None, 20)
- self.check(value_b, uri, nrows, None, 30)
- self.check(value_c, uri, nrows, None, 40)
- self.check(value_d, uri, nrows, None, 50)
+ self.check(value_a, uri, nrows, None, 21 if self.prepare else 20)
+ self.check(value_b, uri, nrows, None, 31 if self.prepare else 30)
+ self.check(value_c, uri, nrows, None, 41 if self.prepare else 40)
+ self.check(value_d, uri, nrows, None, 51 if self.prepare else 50)
# Pin stable to timestamp 60 if prepare otherwise 50.
if self.prepare:
diff --git a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable10.py b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable10.py
index 2571d694c6a..d3cfc11a9c0 100755
--- a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable10.py
+++ b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable10.py
@@ -104,15 +104,15 @@ class test_rollback_to_stable10(test_rollback_to_stable_base):
self.large_updates(uri_2, value_a, ds_2, nrows, self.prepare, 50)
# Verify data is visible and correct.
- self.check(value_d, uri_1, nrows, None, 20)
- self.check(value_c, uri_1, nrows, None, 30)
- self.check(value_b, uri_1, nrows, None, 40)
- self.check(value_a, uri_1, nrows, None, 50)
+ self.check(value_d, uri_1, nrows, None, 21 if self.prepare else 20)
+ self.check(value_c, uri_1, nrows, None, 31 if self.prepare else 30)
+ self.check(value_b, uri_1, nrows, None, 41 if self.prepare else 40)
+ self.check(value_a, uri_1, nrows, None, 51 if self.prepare else 50)
- self.check(value_d, uri_2, nrows, None, 20)
- self.check(value_c, uri_2, nrows, None, 30)
- self.check(value_b, uri_2, nrows, None, 40)
- self.check(value_a, uri_2, nrows, None, 50)
+ self.check(value_d, uri_2, nrows, None, 21 if self.prepare else 20)
+ self.check(value_c, uri_2, nrows, None, 31 if self.prepare else 30)
+ self.check(value_b, uri_2, nrows, None, 41 if self.prepare else 40)
+ self.check(value_a, uri_2, nrows, None, 51 if self.prepare else 50)
# Pin stable to timestamp 60 if prepare otherwise 50.
if self.prepare:
@@ -234,15 +234,15 @@ class test_rollback_to_stable10(test_rollback_to_stable_base):
self.large_updates(uri_2, value_a, ds_2, nrows, self.prepare, 50)
# Verify data is visible and correct.
- self.check(value_d, uri_1, nrows, None, 20)
- self.check(value_c, uri_1, nrows, None, 30)
- self.check(value_b, uri_1, nrows, None, 40)
- self.check(value_a, uri_1, nrows, None, 50)
-
- self.check(value_d, uri_2, nrows, None, 20)
- self.check(value_c, uri_2, nrows, None, 30)
- self.check(value_b, uri_2, nrows, None, 40)
- self.check(value_a, uri_2, nrows, None, 50)
+ self.check(value_d, uri_1, nrows, None, 21 if self.prepare else 20)
+ self.check(value_c, uri_1, nrows, None, 31 if self.prepare else 30)
+ self.check(value_b, uri_1, nrows, None, 41 if self.prepare else 40)
+ self.check(value_a, uri_1, nrows, None, 51 if self.prepare else 50)
+
+ self.check(value_d, uri_2, nrows, None, 21 if self.prepare else 20)
+ self.check(value_c, uri_2, nrows, None, 31 if self.prepare else 30)
+ self.check(value_b, uri_2, nrows, None, 41 if self.prepare else 40)
+ self.check(value_a, uri_2, nrows, None, 51 if self.prepare else 50)
# Pin stable to timestamp 60 if prepare otherwise 50.
if self.prepare:
diff --git a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable11.py b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable11.py
index 8362688c1bc..99b1e3a4d29 100755
--- a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable11.py
+++ b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable11.py
@@ -83,7 +83,7 @@ class test_rollback_to_stable11(test_rollback_to_stable_base):
self.large_updates(uri, value_b, ds, nrows, self.prepare, 20)
# Verify data is visible and correct.
- self.check(value_b, uri, nrows, None, 20)
+ self.check(value_b, uri, nrows, None, 21 if self.prepare else 20)
# Pin stable to timestamp 28 if prepare otherwise 20.
# large_updates() prepares at 1 before the timestamp passed (so 29)
@@ -109,7 +109,7 @@ class test_rollback_to_stable11(test_rollback_to_stable_base):
self.large_updates(uri, value_d, ds, nrows, self.prepare, 30)
# Verify data is visible and correct.
- self.check(value_d, uri, nrows, None, 30)
+ self.check(value_d, uri, nrows, None, 31 if self.prepare else 30)
# Checkpoint to ensure that all the updates are flushed to disk.
self.session.checkpoint()
diff --git a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable12.py b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable12.py
index 3eb56b574c6..31b27b9e22e 100755
--- a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable12.py
+++ b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable12.py
@@ -83,7 +83,7 @@ class test_rollback_to_stable12(test_rollback_to_stable_base):
self.large_updates(uri, value_a, ds, nrows, self.prepare, 20)
# Verify data is visible and correct.
- self.check(value_a, uri, nrows, None, 20)
+ self.check(value_a, uri, nrows, None, 21 if self.prepare else 20)
# Pin stable to timestamp 28 if prepare otherwise 20.
# We prepare at commit_ts - 1 (so 29) and this is required to be strictly
diff --git a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable13.py b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable13.py
index fc4b2a9bdff..d3f8396b860 100644
--- a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable13.py
+++ b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable13.py
@@ -84,9 +84,9 @@ class test_rollback_to_stable13(test_rollback_to_stable_base):
# Verify data is visible and correct.
# (In FLCS, the removed rows should read back as zero.)
- self.check(value_a, uri, nrows, None, 20)
- self.check(None, uri, 0, nrows, 30)
- self.check(value_b, uri, nrows, None, 60)
+ self.check(value_a, uri, nrows, None, 21 if self.prepare else 20)
+ self.check(None, uri, 0, nrows, 31 if self.prepare else 30)
+ self.check(value_b, uri, nrows, None, 61 if self.prepare else 60)
# Pin stable to timestamp 50 if prepare otherwise 40.
if self.prepare:
@@ -159,9 +159,9 @@ class test_rollback_to_stable13(test_rollback_to_stable_base):
# Verify data is visible and correct.
# (In FLCS, the removed rows should read back as zero.)
- self.check(value_a, uri, nrows, None, 20)
- self.check(None, uri, 0, nrows, 30)
- self.check(value_d, uri, nrows, None, 60)
+ self.check(value_a, uri, nrows, None, 21 if self.prepare else 20)
+ self.check(None, uri, 0, nrows, 31 if self.prepare else 30)
+ self.check(value_d, uri, nrows, None, 61 if self.prepare else 60)
# Pin stable to timestamp 50 if prepare otherwise 40.
if self.prepare:
@@ -235,9 +235,9 @@ class test_rollback_to_stable13(test_rollback_to_stable_base):
# Verify data is visible and correct.
# (In FLCS, the removed rows should read back as zero.)
- self.check(value_a, uri, nrows, None, 20)
- self.check(None, uri, 0, nrows, 40)
- self.check(value_c, uri, nrows, None, 60)
+ self.check(value_a, uri, nrows, None, 21 if self.prepare else 20)
+ self.check(None, uri, 0, nrows, 41 if self.prepare else 40)
+ self.check(value_c, uri, nrows, None, 61 if self.prepare else 60)
# Simulate a server crash and restart.
simulate_crash_restart(self, ".", "RESTART")
@@ -290,9 +290,9 @@ class test_rollback_to_stable13(test_rollback_to_stable_base):
# Verify data is visible and correct.
# (In FLCS, the removed rows should read back as zero.)
- self.check(value_a, uri, nrows, None, 20)
- self.check(None, uri, 0, nrows, 40)
- self.check(value_c, uri, nrows, None, 60)
+ self.check(value_a, uri, nrows, None, 21 if self.prepare else 20)
+ self.check(None, uri, 0, nrows, 41 if self.prepare else 40)
+ self.check(value_c, uri, nrows, None, 61 if self.prepare else 60)
self.conn.rollback_to_stable()
# Perform several updates and checkpoint.
diff --git a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable14.py b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable14.py
index f79554cf639..5c82099bd1e 100755
--- a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable14.py
+++ b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable14.py
@@ -96,11 +96,11 @@ class test_rollback_to_stable14(test_rollback_to_stable_base):
self.large_modifies(uri, 'T', ds, 3, 1, nrows, self.prepare, 60)
# Verify data is visible and correct.
- self.check(value_a, uri, nrows, None, 20)
- self.check(value_modQ, uri, nrows, None, 30)
- self.check(value_modR, uri, nrows, None, 40)
- self.check(value_modS, uri, nrows, None, 50)
- self.check(value_modT, uri, nrows, None, 60)
+ self.check(value_a, uri, nrows, None, 21 if self.prepare else 20)
+ self.check(value_modQ, uri, nrows, None, 31 if self.prepare else 30)
+ self.check(value_modR, uri, nrows, None, 41 if self.prepare else 40)
+ self.check(value_modS, uri, nrows, None, 51 if self.prepare else 50)
+ self.check(value_modT, uri, nrows, None, 61 if self.prepare else 60)
# Pin stable to timestamp 60 if prepare otherwise 50.
if self.prepare:
@@ -212,9 +212,9 @@ class test_rollback_to_stable14(test_rollback_to_stable_base):
self.large_modifies(uri, 'T', ds, 3, 1, nrows, self.prepare, 60)
# Verify data is visible and correct.
- self.check(value_a, uri, nrows, None, 20)
- self.check(value_modQ, uri, nrows, None, 30)
- self.check(value_modT, uri, nrows, None, 60)
+ self.check(value_a, uri, nrows, None, 21 if self.prepare else 20)
+ self.check(value_modQ, uri, nrows, None, 31 if self.prepare else 30)
+ self.check(value_modT, uri, nrows, None, 61 if self.prepare else 60)
self.conn.set_timestamp('stable_timestamp=' + self.timestamp_str(50))
@@ -320,9 +320,9 @@ class test_rollback_to_stable14(test_rollback_to_stable_base):
self.large_modifies(uri, 'T', ds, len(value_modS), 1, nrows, self.prepare, 60)
# Verify data is visible and correct.
- self.check(value_a, uri, nrows, None, 20)
- self.check(value_modQ, uri, nrows, None, 30)
- self.check(value_modT, uri, nrows, None, 60)
+ self.check(value_a, uri, nrows, None, 21 if self.prepare else 20)
+ self.check(value_modQ, uri, nrows, None, 31 if self.prepare else 30)
+ self.check(value_modT, uri, nrows, None, 61 if self.prepare else 60)
self.conn.set_timestamp('stable_timestamp=' + self.timestamp_str(50))
diff --git a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable18.py b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable18.py
index 5df4677aac7..8c53e989091 100644
--- a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable18.py
+++ b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable18.py
@@ -84,8 +84,8 @@ class test_rollback_to_stable18(test_rollback_to_stable_base):
self.large_removes(uri, ds, nrows, self.prepare, 30)
# Verify data is visible and correct.
- self.check(value_a, uri, nrows, None, 20)
- self.check(None, uri, 0, nrows, 30)
+ self.check(value_a, uri, nrows, None, 21 if self.prepare else 20)
+ self.check(None, uri, 0, nrows, 31 if self.prepare else 30)
# Configure debug behavior on a cursor to evict the page positioned on when the reset API is used.
evict_cursor = self.session.open_cursor(uri, None, "debug=(release_evict)")
diff --git a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable23.py b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable23.py
index d0d98d30a90..d787e2daeaf 100644
--- a/src/third_party/wiredtiger/test/suite/test_rollback_to_stable23.py
+++ b/src/third_party/wiredtiger/test/suite/test_rollback_to_stable23.py
@@ -96,11 +96,11 @@ class test_rollback_to_stable23(test_rollback_to_stable_base):
self.large_modifies(uri, 'T', ds, 3, 1, nrows, self.prepare, 60)
# Verify data is visible and correct.
- self.check(value_a, uri, nrows, None, 20)
- self.check(value_modQ, uri, nrows, None, 30)
- self.check(value_modR, uri, nrows, None, 40)
- self.check(value_modS, uri, nrows, None, 50)
- self.check(value_modT, uri, nrows, None, 60)
+ self.check(value_a, uri, nrows, None, 21 if self.prepare else 20)
+ self.check(value_modQ, uri, nrows, None, 31 if self.prepare else 30)
+ self.check(value_modR, uri, nrows, None, 41 if self.prepare else 40)
+ self.check(value_modS, uri, nrows, None, 51 if self.prepare else 50)
+ self.check(value_modT, uri, nrows, None, 61 if self.prepare else 60)
# Pin stable to timestamp 60 if prepare otherwise 50.
if self.prepare: