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

Split may return an error when it is actually committed

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 6.3.0-rc0
    • Affects Version/s: 6.1.0-rc4, 6.2.0-rc4
    • Component/s: None
    • Sharding EMEA
    • Fully Compatible
    • ALL
    • v6.2
    • Sharding EMEA 2022-12-26
    • 147

      A split might return an error if the command _configsvrCommitChunkSplit fails waiting for majority when the split was already committed.

      Here is an example of when this can happen:

      1) A split is requested to mongos and it's resending it to the shard chunk owner.
      2) The shard issues a _configsvrCommitChunkSplit to the config server.
      3) The config server steps down when the commit was already committed but was still waiting for majority write.
      4) The shard receives an InterruptedDueToReplStateChange error from the CS and checks if the split was actually committed after refreshing its cache.
      5) Since the refresh may be done against a config server node that still doesn't have the latest chunk version, so the shard still believes that the split was not done and retries the command _configsvrCommitChunkSplit.
      6) The new config server primary node fails here on this query because the split was actually done.

            Assignee:
            silvia.surroca@mongodb.com Silvia Surroca
            Reporter:
            silvia.surroca@mongodb.com Silvia Surroca
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: