-
Type: Task
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Execution
I think the looping of taking and releasing locks is outdated now that MMAP is gone. The failpoint name suggests it is only used to hang an active getMore command. The failpoint and lock manipulation were added in SERVER-21997 because of a MMAP deadlock: MMAP is gone now. The looping today is occurring via this lambda passed into CurOpFailpointHelpers::waitWhileFailPointEnabled
My goal in filing this ticket is to get rid of the UninterruptibleLockGuard used here for a failpoint. UninterruptibleLockGuard should be used when there is no alternative: it's a hack that breaks rules and we'd like to remove it entirely. I didn't figure out why SERVER-27534 added the use to the failpoint case.
If the loop cannot be removed, I wonder if the UninterruptibleLockGuard use can be.
- duplicates
-
SERVER-69059 Create an InterruptibleLockGuard to place in ClientCursorPin to ensure read operations are interruptible
- Closed
- is depended on by
-
SERVER-68868 Remove all instances of UninterruptibleLockGuard
- Blocked
- is related to
-
SERVER-27534 All writing operations must fail if the term changes
- Closed
-
SERVER-21997 kill_cursors.js deadlocks
- Closed