SetClusterParameterCoordinatorDocument crash on upgrade due to new non-optional field missing

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Major - P3
    • 8.3.0-rc0
    • Affects Version/s: 8.1.3, 8.3.0-rc0, 8.2.3
    • Component/s: None
    • None
    • Catalog and Routing
    • Fully Compatible
    • ALL
    • v8.2
    • Hide
      TEST_F(SetClusterParameterCoordinatorTest, TestOldDoc) {
          auto oldDoc = BSON(SetClusterParameterCoordinatorDocument::kPhaseFieldName
                             << "unset" << SetClusterParameterCoordinatorDocument::kParameterFieldName
                             << BSONObj{} << "_id" << BSON("coordinatorType" << "setClusterParameter"));
      
          SetClusterParameterCoordinator scp(oldDoc);
      }
      
      Show
      TEST_F(SetClusterParameterCoordinatorTest, TestOldDoc) { auto oldDoc = BSON(SetClusterParameterCoordinatorDocument::kPhaseFieldName << "unset" << SetClusterParameterCoordinatorDocument::kParameterFieldName << BSONObj{} << "_id" << BSON("coordinatorType" << "setClusterParameter")); SetClusterParameterCoordinator scp(oldDoc); }
    • CAR Team 2026-01-19
    • 200
    • 🟩 Routing and Topology
    • None
    • None
    • None
    • None
    • None
    • None

      In SERVER-101748, a new non-optional field was added to SetClusterParameterCoordinatorDocument. This change is not backward compatible because documents persisted by older binaries do not contain this field, so when a node is upgraded and attempts to read an existing coordinator document, deserialization fails and the node crashes because the required field is missing from the stored document.

            Assignee:
            Wolfee Farkas
            Reporter:
            Silvia Surroca
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: