Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-68461

Persist the result of the doCompactOperation in the Pre-6.1-compatible compaction coordinator

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 6.0.2, 6.1.0-rc0
    • Affects Version/s: 6.0.0
    • Component/s: None
    • Labels:
      None
    • Fully Compatible
    • ALL
    • v6.0
    • Security 2022-08-22

      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.

       

            Assignee:
            erwin.pe@mongodb.com Erwin Pe
            Reporter:
            erwin.pe@mongodb.com Erwin Pe
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: