[SERVER-65144] commit and durability timestamps are not validated at transaction commit Created: 31/Mar/22  Updated: 29/Oct/23  Resolved: 06/Apr/22

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 6.0.0-rc0

Type: Bug Priority: Major - P3
Reporter: Keith Bostic (Inactive) Assignee: Jordi Olivares Provencio
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by WT-8990 Validate commit and durability timest... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Execution Team 2022-04-18
Participants:

 Description   

The WiredTiger code has not historically validated commit and durability timestamps at transaction commit if they were set before the transaction commit. That is, timestamps were validated when they were set, rather than always being checked at transaction commit. This could lead to the following sequence:

  1. a transaction setting the commit timestamp before the stable timestamp
  2. stable being moved past the commit timestamp
  3. the transaction committing

Which would result in a transaction committing before the stable timestamp.

This is fixed in WT-8990, but results in MDB patch build failures.

This is a data consistency problem and deserves a reasonably high priority.



 Comments   
Comment by Githook User [ 06/Apr/22 ]

Author:

{'name': 'Jordi Olivares Provencio', 'email': 'jordi.olivares-provencio@mongodb.com', 'username': 'jordiolivares'}

Message: SERVER-65144 Remove test as WiredTiger validates timestamps at commit
Branch: master
https://github.com/mongodb/mongo/commit/e0442ad227ab894b3c7f9cd418b7fe1e9651a058

Comment by Louis Williams [ 05/Apr/22 ]

Hey keith.bostic, we triage tickets every Tuesday so we’ll look at this today as a team. Thanks for letting us know the priority!

Comment by Daniel Gottlieb (Inactive) [ 05/Apr/22 ]

The only error I saw is a unittest that specifically sets up the scenario WT is protecting against. I would say it's fine to remove the test.

commit timestamp (10, 10) must be greater than the latest active read timestamp (20, 20)

Comment by Keith Bostic (Inactive) [ 05/Apr/22 ]

geert.bosch, louis.williams, could I check in with you on SERVER-65144?

I'm hoping this is a relatively simple test update and we could get this into 6.0 (of course, if that's not correct, just tell me to go away). – Thanks!

Comment by Keith Bostic (Inactive) [ 31/Mar/22 ]

The patch build is here: https://evergreen.mongodb.com/version/6245eac11e2d176c27ea3787?redirect_spruce_users=true

The errors I expect to see in these failures are that a transaction's commit or durable timestamps are before stable, or before a system read timestamp.

Generated at Thu Feb 08 06:01:58 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.