[SERVER-68461] Persist the result of the doCompactOperation in the Pre-6.1-compatible compaction coordinator Created: 01/Aug/22  Updated: 29/Oct/23  Resolved: 22/Aug/22

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: 6.0.0
Fix Version/s: 6.0.2, 6.1.0-rc0

Type: Bug Priority: Major - P3
Reporter: Erwin Pe Assignee: Erwin Pe
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Related
is related to SERVER-67796 Persist the result of the doCompactOp... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Backport Requested:
v6.0
Sprint: Security 2022-08-22
Participants:

 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.

 


Generated at Thu Feb 08 06:10:52 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.