[SERVER-45184] "reopened transaction" invariant in TLA+ trace logging with inMemory storage engine Created: 16/Dec/19 Updated: 29/Oct/23 Resolved: 17/Dec/19 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | None |
| Fix Version/s: | 4.3.3 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | A. Jesse Jiryu Davis | Assignee: | A. Jesse Jiryu Davis |
| 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: | Repl 2019-12-30 | ||||
| Participants: | |||||
| Linked BF Score: | 48 | ||||
| Description |
|
mongod crashes if TLA+ trace logging is enabled with the inMemory storage engine:
|
| Comments |
| Comment by Githook User [ 29/Jan/20 ] |
|
Author: {'username': 'ajdavis', 'name': 'A. Jesse Jiryu Davis', 'email': 'jesse@mongodb.com'}Message: This is a combination of 6 commits. Revert " This reverts commit 88aaa47b815507e3ddd9a3a79f00d0eaca3ae071. Revert " This reverts commit e57438bd024d04f82dcbcbe68fe223b3f3aec838. Revert " This reverts commit f515d2ad5494e64c3be80189e7ea6bceaf267421. Revert " This reverts commit 744200de5f5667334457ee35abfa3747e2e26d55. Revert " This reverts commit eda99cf7ca668908e5eb0498845b0270265c44e7. Revert " This reverts commit a60ce00707f0ffdb5d2ec5c3a72993cc2b2d2978. delete mode 100644 jstests/replsets/tla_plus_trace_checking.js |
| Comment by Githook User [ 17/Dec/19 ] |
|
Author: {'name': 'A. Jesse Jiryu Davis', 'email': 'jesse@mongodb.com', 'username': 'ajdavis'}Message: |
| Comment by A. Jesse Jiryu Davis [ 16/Dec/19 ] |
|
We log TLA+ state information, including the contents of the oplog, whenever the commit point advances. This normally happens in the journal listener thread, outside any write unit of work. But if writeConcernMajorityJournalDefault is false, as with the inMemory storage engine, then ReplicationCoordinatorImpl::_setMyLastAppliedOpTimeAndWallTime directly advances the commit point while in a WUOW with state "kCommitting". mongod can't read the contents of the oplog in a committing WUOW, so it dies of an invariant. Let's tag the TLA+ trace logging test appropriately to required persistent WiredTiger with journaling. |