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

'setIndexCommitQuorum' command has no effect while the index build is waiting for the commit quorum to be satisfied

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: 5.0.0, 4.4.6
    • Fix Version/s: 4.4.7, 5.0.0-rc0, 5.1.0-rc0
    • Component/s: None
    • Labels:
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Backport Requested:
      v5.0, v4.4
    • Sprint:
      Execution Team 2021-05-31

      Description

      There was an issue that came from the field, where the rolling index build procedure was incomplete. This led to one of the secondaries having the index finished, but none of the other nodes had this index.

      Eventually, the same index build was started on the primary. But because the commit quorum default is votingMembers, which is all data-bearing replica set members, the index build was not able to satisfy the commit quorum. This is because the secondary that already had the index built, treated the startIndexBuild oplog entry as a noop.

      In an attempt to get out of this situation, the setIndexCommitQuorum command was used to make the commit quorum satisfactory again. However, it turns out when the index build is already waiting for votes from the other nodes, it doesn't see the change by the setIndexCommitQuorum command. This would also be problematic for normal index build operations that use this command and is not limited to this specific issue.

        Attachments

          Activity

            People

            Assignee:
            gregory.wlodarek Gregory Wlodarek
            Reporter:
            gregory.wlodarek Gregory Wlodarek
            Participants:
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: