Ensure 'phase' field must be present on shards in setFCV command except in dryRun mode

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: 8.3.0-rc0
    • Component/s: None
    • None
    • Catalog and Routing
    • ALL
    • 1
    • 🟩 Routing and Topology
    • None
    • None
    • None
    • None
    • None
    • None

      During a setFCV command, the 'phase' field is required to be specified on shards, as specified in these assertions . The exception to this is when running a dryRun mode (either explicit or automatic), in which case the 'phase' field is not necessary.
      The assertions mentioned above should be failing in dryRun mode the way it is handled now, but they aren't. We should make sure this is handled correctly and fail when the 'phase' field is not present on a shard (except in dryRun mode).

       

      The reason the assertion if not triggered when it should is because one of the conditions is role->hasExclusively(ClusterRole::ShardServer).

      This is always false because shards always have the RouterServer role in addition to the ShardServer role.

      Rather it appears that this check should be role->hasShardOnly() for the assertion to trigger as expected.

            Assignee:
            Unassigned
            Reporter:
            Virginia Chacón Pérez (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: