[SERVER-37711] Revert the `ReplicationStateTransitionLockGuard` functionality Created: 23/Oct/18 Updated: 29/Oct/23 Resolved: 25/Oct/18 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | 4.1.4 |
| Fix Version/s: | 4.1.5 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Kaloian Manassiev | Assignee: | Kaloian Manassiev |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||||||||||
| Sprint: | Sharding 2018-11-05 | ||||||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||||||
| Description |
|
The ReplicationStateTransitionLockGuard RAII class was introduced as a means for replication stepdown to be able to temporarily release the locks for prepared transactions so that the Global X lock can be acquired. However, closer inspection by tess.avitabile discovered race conditions, which are not trivial to fix without significant changes to the lock manager. Instead of continuing this tight integration with the lock manager, the replication team will investigate making replication state transitions not depend on the Global X lock. As a result of this, the ReplicationStateTransitionLockGuard and its usages will no longer be necessary, so they should be reverted. This includes the following commits:
|
| Comments |
| Comment by Githook User [ 25/Oct/18 ] |
|
Author: {'name': 'Kaloian Manassiev', 'email': 'kaloian.manassiev@mongodb.com', 'username': 'kaloianm'}Message: This change reverts the following commits:
|
| Comment by Kaloian Manassiev [ 24/Oct/18 ] |
|
OK done - I read through that refactor and it looks good to me, so I left it out of the list. |
| Comment by Tess Avitabile (Inactive) [ 23/Oct/18 ] |
|
Sure, that sounds good. |
| Comment by Judah Schvimer [ 23/Oct/18 ] |
|
I kind of like the refactor in https://github.com/mongodb/mongo/commit/cd533253819148e71a5e7c772ea484aafcbbf2e2. tess.avitabile, how do you feel about keeping that one? |
| Comment by Tess Avitabile (Inactive) [ 23/Oct/18 ] |
|
I think this also includes https://github.com/mongodb/mongo/commit/c6d90316d6b694e12426274c713a4a078e004fc5. |