Details
Description
The return value of the doCompactOperation is assigned to the member variable _response, which is in-memory state that is not persisted by the coordinator. Since this variable is being assigned in the penultimate kCompactStructuredEncryptionData phase of _runImpl, it is possible to lose this data if a stepdown occurs while in the middle of the final phase. And when the new primary resumes, it'll have an invalid _response value, which may cause an invariant failure.
NOTE: this ticket was created separately from SERVER-67796 to address the same issue in 6.0. Instead of a BACKPORT of SERVER-67796, a standalone ticket is needed since the fix to this issue in 6.1 is not compatible with 6.0, and an alternate fix is needed to resolve this invariant issue.
Attachments
Issue Links
- is related to
-
SERVER-67796 Persist the result of the doCompactOperation in the compaction coordinator
-
- Closed
-