-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Cluster Scalability
-
Fully Compatible
-
ALL
-
v9.0
-
ClusterScalability 6Jul-20Jul
-
200
-
2
-
None
-
None
-
None
-
None
-
None
-
None
-
None
In a cluster with config shard, and with allFeatureFlagTests (I don't know which feature flag triggers it) setFCV can get indefinitely stuck waiting for resharding operations to abort. The following jstest reproduces the issue very reliably:
/**
* @tags: [
* requires_sharding,
* multiversion_incompatible,
* ]
*/
import {
uniformDistTransitions
} from "jstests/concurrency/fsm_workload_helpers/state_transition_utils.js";
export const $config = (function() {
let states = {
insert: function(db, collName, connCache) {
jsTestLog('Executing insert state');
const bulk = db.getSiblingDB("DB_" + Random.randInt(10))["coll_" + Random.randInt(10)]
.initializeUnorderedBulkOp();
for (let i = 0; i < 100; ++i) {
bulk.insert({x: i});
}
assert.commandWorked(bulk.execute());
jsTestLog('Finishing insert state');
},
setFCV: function(db, collName, connCache) {
const fcvValues = [lastLTSFCV, lastContinuousFCV, latestFCV];
const targetFCV = fcvValues[Random.randInt(3)];
jsTestLog('Executing setFCV state, setting to:' + targetFCV);
try {
assert.commandWorked(
db.adminCommand({setFeatureCompatibilityVersion: targetFCV, confirm: true}));
} catch (e) {
// Just ignore
jsTestLog(e);
}
jsTestLog('setFCV state finished');
},
};
return {
threadCount: 8,
iterations: 64,
startState: 'insert',
data: {},
states: states,
transitions: uniformDistTransitions(states),
setup: function(db, collName, connCache) {},
passConnectionCache: true
};
})();
Run in a suite with balancer, like this:
buildscripts/resmoke.py run --suites=concurrency_sharded_with_balancer_and_auto_bootstrap --runAllFeatureFlagTests jstests/concurrency/fsm_workloads/ddl/random_ddl/test.js
- depends on
-
SERVER-129216 Replace use of VersionContext::get in resharding code
-
- Closed
-
- is related to
-
SERVER-127952 ReshardingCoordinator may commit with a different authoritativeness level than when it started
-
- Closed
-
-
SERVER-128476 tassert 12776700 can be triggered during fcv upgrade
-
- Closed
-
-
SERVER-131380 Prevent resharding from starting during an FCV transition
-
- Closed
-
-
SERVER-92437 Problems with resharding operation that starts while the FCV is "8.0" or "7.3" and commits while the FCV is "Downgrading to 7.0"
-
- Needs Scheduling
-
-
SERVER-104171 Re-enable JavaScript tests which were left disabled due to SERVER-88539
-
- Backlog
-
-
SERVER-123568 Use VersionContext to pin resharding coordinator FCV across its lifetime
-
- Closed
-
-
SERVER-132143 Improve jstest coverage of resharding/setFCV mutual exclusion
-
- Needs Scheduling
-
- related to
-
SERVER-128025 setFCV should abort resharding coordinators before draining in config shard topology
-
- Closed
-
-
SERVER-103365 Introduce an FSM Test for database DDLs + setFCV + checkMetadataConsistency + CRUD with stronger assumptions
-
- Closed
-
-
SERVER-130566 Re-enable most of random_ddl_setFCV_operations_with_metadata_check.js
-
- Closed
-