[SERVER-52955] KeysCollectionClientDirect should check if majority read concern is supported by storage engine Created: 20/Nov/20 Updated: 29/Oct/23 Resolved: 23/Nov/20 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | 4.0.11 |
| Fix Version/s: | 4.0.22 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Alexander Taskov (Inactive) | Assignee: | Alexander Taskov (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||
| Operating System: | ALL | ||||||||||||||||
| Sprint: | Sharding 2020-11-30 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Description |
|
Issue Status as of Dec 16, 2020 ISSUE DESCRIPTION AND IMPACTWhen running the deprecated MMAPv1 storage engine in a replica set, attempts for mongod to refresh its set of signing keys from local storage silently fail. This prevents the mongod from signing new cluster times and validating the signatures of existing cluster times.
DIAGNOSIS AND AFFECTED VERSIONSThis affects versions of 4.0 starting from 4.0.11 through 4.0.21 inclusive, which are running with the deprecated MMAPv1 storage engine (using the --storageEngine mmapv1 startup option). Operations run on the cluster will fail with a "No Keys Found" errmsg. For example:
REMEDIATION AND WORKAROUNDSA fix is included in the 4.0.22 production release. Affected users unable to upgrade or switch to the WiredTiger storage engine can start mongod with --enableMajorityReadConcern=false as a workaround. This command line option normally has no effect for the MMAPv1 storage engine. But it does avoid the bug in affected versions, allowing mongod to successfully refresh its set of signing keys from local storage. Original DescriptionCurrently, this code checks if majority read concern is enabled by the server parameter. It should instead check that the storage engine supports it. In the current state, causal consistency will not work with the mmapv1 storage engine as the server will not return operationTime and $clusterTime. |
| Comments |
| Comment by Githook User [ 15/May/21 ] |
|
Author: {'name': 'Alex Taskov', 'email': 'alex.taskov@mongodb.com', 'username': 'alextaskov'}Message: (cherry picked from commit 554fab0be3f1699a68201e70eb9fd1a42d78ca1f) |
| Comment by Githook User [ 14/Dec/20 ] |
|
Author: {'name': 'Alex Taskov', 'email': 'alex.taskov@mongodb.com', 'username': 'alextaskov'}Message: |
| Comment by Githook User [ 26/Nov/20 ] |
|
Author: {'name': 'Alex Taskov', 'email': 'alex.taskov@mongodb.com', 'username': 'alextaskov'}Message: |
| Comment by Githook User [ 21/Nov/20 ] |
|
Author: {'name': 'Alex Taskov', 'email': 'alex.taskov@mongodb.com', 'username': 'alextaskov'}Message: |