From bcb55003c81e15cc4c2cb556ad5077b4316c6c40 Mon Sep 17 00:00:00 2001 From: Jordi Serra Torrens Date: Fri, 29 Dec 2023 12:20:33 +0000 Subject: [PATCH] Repro BF-31267 --- jstests/sharding/repro-bf-31267.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 jstests/sharding/repro-bf-31267.js diff --git a/jstests/sharding/repro-bf-31267.js b/jstests/sharding/repro-bf-31267.js new file mode 100644 index 00000000000..bb72d21d198 --- /dev/null +++ b/jstests/sharding/repro-bf-31267.js @@ -0,0 +1,29 @@ +/** + * Repro BF-31267 + */ + +// Cluster starts with FCV 7.3. +var st = new ShardingTest({shards: 1}); +let configSettingsColl = st.s.getDB('config')['settings']; + +// Assert that schema validation is enforced. +assert.commandFailed( + configSettingsColl.update({_id: 'balancer'}, {$set: {stopped: 'bad'}}, {upsert: true})); + +// Downgrade to FCV 7.0. +assert.commandWorked(st.s.adminCommand({setFeatureCompatibilityVersion: '7.0', confirm: true})); + +// Assert that schema validation is no longer enforced. +assert.commandWorked( + configSettingsColl.update({_id: 'balancer'}, {$set: {stopped: 'bad'}}, {upsert: true})); +assert.commandWorked(configSettingsColl.update({_id: 'balancer'}, {$unset: {stopped: 'bad'}})); + +// Upgrade back to FCV 7.3. +assert.commandWorked(st.s.adminCommand({setFeatureCompatibilityVersion: '7.3', confirm: true})); + +// Assert that schema validation is enforced again. Repro: The test will fail here -- validation not +// actually enforced. +assert.commandFailed( + configSettingsColl.update({_id: 'balancer'}, {$set: {stopped: 'bad'}}, {upsert: true})); + +st.stop(); -- 2.34.1