[SERVER-41361] Do not read at lastApplied while already holding the PBWM lock on secondaries Created: 29/May/19 Updated: 29/Oct/23 Resolved: 12/Jun/19 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 4.0.11, 4.2.0-rc2, 4.3.1 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Louis Williams | Assignee: | Louis Williams |
| 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 | ||||||||||||||||||||||||||||
| Backport Requested: |
v4.2, v4.0
|
||||||||||||||||||||||||||||
| Sprint: | Execution Team 2019-06-17 | ||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||
| Case: | (copied to CRM) | ||||||||||||||||||||||||||||
| Linked BF Score: | 47 | ||||||||||||||||||||||||||||
| Description |
|
When secondary reads must take the PBWM lock to read without a timestamp, all writes become visible. At this point, an operation holding the PBWM lock should not be allowed to start reading with a timestamp in a different snapshot, because writes and catalog operations may appear to vanish. |
| Comments |
| Comment by Kelsey Schubert [ 21/Jul/19 ] | |||
|
This issue can result in the following invariant:
| |||
| Comment by Githook User [ 14/Jun/19 ] | |||
|
Author: {'name': 'Louis Williams', 'email': 'louis.williams@mongodb.com', 'username': 'louiswilliams'}Message: (cherry picked from commit ce740566543792bfa4402d278a23e5cb4b1a80fe) | |||
| Comment by Githook User [ 14/Jun/19 ] | |||
|
Author: {'name': 'Louis Williams', 'email': 'louis.williams@mongodb.com', 'username': 'louiswilliams'}Message: (cherry picked from commit ce740566543792bfa4402d278a23e5cb4b1a80fe) | |||
| Comment by Githook User [ 12/Jun/19 ] | |||
|
Author: {'name': 'Louis Williams', 'email': 'louis.williams@mongodb.com', 'username': 'louiswilliams'}Message: | |||
| Comment by Louis Williams [ 11/Jun/19 ] | |||
|
I reverted this change because it did not work correctly with non-document-locking storage engines (i.e. MMAP and ephemeralForTest). | |||
| Comment by Githook User [ 11/Jun/19 ] | |||
|
Author: {'name': 'Louis Williams', 'email': 'louis.williams@mongodb.com', 'username': 'louiswilliams'}Message: Revert " This reverts commit 1f7ff3efd432541a1490b108ffb8461dcbbdfcd5. | |||
| Comment by Githook User [ 11/Jun/19 ] | |||
|
Author: {'name': 'Louis Williams', 'email': 'louis.williams@mongodb.com', 'username': 'louiswilliams'}Message: Revert " This reverts commit b6ad5c431b8a1272617a3eff58872808afa53e31. | |||
| Comment by Githook User [ 10/Jun/19 ] | |||
|
Author: {'name': 'Louis Williams', 'email': 'louis.williams@mongodb.com', 'username': 'louiswilliams'}Message: (cherry picked from commit b6ad5c431b8a1272617a3eff58872808afa53e31) | |||
| Comment by Githook User [ 10/Jun/19 ] | |||
|
Author: {'name': 'Louis Williams', 'email': 'louis.williams@mongodb.com', 'username': 'louiswilliams'}Message: |