[SERVER-33932] Confirm storage engine support for point-in-time reads in waitForReadConcern() Created: 16/Mar/18  Updated: 06/Dec/22  Resolved: 16/Mar/18

Status: Closed
Project: Core Server
Component/s: Storage
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: James Wahlin Assignee: Backlog - Storage Execution Team
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates SERVER-33933 Confirm storage engine support for po... Closed
Assigned Teams:
Storage Execution
Operating System: ALL
Participants:

 Description   

Both readConcern level majority and snapshot require a storage engine that supports snapshot isolation. It is possible to bypass this check when:

  1. Running a sharded cluster with standalone shards
  2. Executing a readConcern level majority read operation with afterClusterTime

In this case, we skip calling replCoord->waitUntilOpTimeForRead() here and won't then call ReplicationCoordinatorImpl::_validateReadConcern() which will perform validation.

A proposal to fix would be to add the "if majority then isReadCommittedSupportedByStorageEngine()" check to waitForReadConcern() as a more universal check. We could then change the ReplicationCoordinatorImpl::_validateReadConcern() validation to be an invariant.


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