config.shards can be outdated if auto bootstrap is not complete before replSetReconfig

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Major - P3
    • 8.0.0-rc0, 7.3.0-rc3
    • Affects Version/s: 7.3.0-rc0, 7.2.0-rc3
    • Component/s: None
    • Fully Compatible
    • ALL
    • v7.3
    • Cluster Scalability 2024-1-22, Cluster Scalability 2024-2-5, Cluster Scalability 2024-2-19
    • 156
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      This bug surfaced from the fix made in SERVER-82363 due to changes from SERVER-21185.

      As part of auto-bootstrap procedure, a shard entry is added in config.shards inside _transitionToConfigShard via scheduleTransitionToConfigShard. The _isReady promise of ShardingReady is fulfilled once the config entry is committed. In the case of calling it when stepping up a primary mongod as part of _shardingOnTransitionToPrimaryHook, a concurrent replSetReconfig command can cause ShardRegistry::scheduleReplicaSetUpdateOnConfigServerIfNeeded silently fail to update without retrying later due to no shard entry present yet. The previous function is called via ReplicationCoordinatorImpl post updating its replica set config document from _finishReplSetReconfig.

            Assignee:
            Wenqin Ye
            Reporter:
            Abdul Qadeer
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: