-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Execution
-
Fully Compatible
-
QE 2025-06-23
-
None
-
3
-
TBD
-
None
-
None
-
None
-
None
-
None
-
None
If during releaseMemory we fail to write to disk, then the output of the future getMore operations can be unpredictable. To be safer, we should destroy the cursor.
Currently expected errors could be:
1. CursorInUse - cursor is already pinned by getMore, we could not corrupted it.
2. Interrupted - operation was interrupted by a user. There are many places outside the releaseMemory where this might be asserted and we cannot be sure the pinned cursor is in a safe state.
3. NoDiskUseAllowed - release memory was not allowed to write anything to disk, so it couldn't mess with the cursor
4. OutOfDiskSpace - This might happen at any moment during spilling (SERVER-104360) leaving the cursor in a corrupted state
- is blocked by
-
SERVER-101681 Relax locking in releaseMemory command
-
- Closed
-
- is related to
-
SERVER-104360 Fail writes to SpillTable if sufficient disk space is not available.
-
- Closed
-
- related to
-
SERVER-105787 Interrupting releaseMemory should not interrupt the cursors
-
- Closed
-