Description
Both readConcern level majority and snapshot require a storage engine that supports snapshot isolation. It is possible to bypass this check when:
- Running a sharded cluster with standalone shards
- 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.
Attachments
Issue Links
- is duplicated by
-
SERVER-33932 Confirm storage engine support for point-in-time reads in waitForReadConcern()
-
- Closed
-