SERVER-118488 Re-enable FeatureFlagReshardingCloneNoRefresh (#50899)

GitOrigin-RevId: 8571e2e9450dcc7dbfbc928e64522003c0674f3d
This commit is contained in:
Kruti Shah 2026-04-02 12:23:16 -04:00 committed by MongoDB Bot
parent 659cc2da66
commit 68f0158741
8 changed files with 24 additions and 31 deletions

View File

@ -1,13 +1,6 @@
/**
* Tests that _flushReshardingStateChange command retries sharding metadata refresh on transient
* errors until there is a failover.
* @tags: [
* # The future-git-tag variant runs dist-test/bin/mongod with a fictional FCV=100.0,
* # causing the FCV-gated featureFlagReshardingCloneNoRefresh to appear disabled
* # even when set via setParameter.
* # TODO (SERVER-118488): Remove once the feature flag has an explicit version.
* future_git_tag_incompatible,
* ]
*/
import {configureFailPoint} from "jstests/libs/fail_point_util.js";
import {FeatureFlagUtil} from "jstests/libs/feature_flag_util.js";
@ -150,6 +143,12 @@ function testRetryOnTransientError(st, {enableCloneNoRefresh}) {
fp0.off();
fp1.off();
try {
testColl.drop();
} catch (e) {
/* best-effort cleanup */
}
}
function testStopRetryingOnFailover(st, {enableCloneNoRefresh}) {
@ -214,6 +213,12 @@ function testStopRetryingOnFailover(st, {enableCloneNoRefresh}) {
fp0.off();
fp1.off();
try {
testColl.drop();
} catch (e) {
/* best-effort cleanup */
}
}
function runTests({enableCloneNoRefresh}) {

View File

@ -3,7 +3,7 @@
* not get blocked as long as the coordinator is not engaging the critical section.
*
* @tags: [
* requires_fcv_83,
* requires_fcv_90,
* featureFlagReshardingSkipCloningAndApplyingIfApplicable,
* ]
*/
@ -47,9 +47,7 @@ const failpoints = [
"pauseBeforeTellDonorToRefresh",
"pauseAfterInsertCoordinatorDoc",
"pauseBeforeCTHolderInitialization",
// TODO (SERVER-104494, SERVER-104258): Test this failpoint when enabling
// featureFlagReshardingCloneNoRefresh.
// "reshardingPauseBeforeTellingRecipientsToClone",
"reshardingPauseBeforeTellingRecipientsToClone",
];
const waitForFailPointTimeout = kDefaultWaitForFailPointTimeout * (isSlowBuild(configPrimary) + 1);

View File

@ -3,7 +3,7 @@
* not get blocked as long as the coordinator is not engaging the critical section.
*
* @tags: [
* requires_fcv_83,
* requires_fcv_90,
* featureFlagReshardingSkipCloningAndApplyingIfApplicable,
* ]
*/
@ -49,9 +49,7 @@ const failpoints = [
"pauseBeforeTellDonorToRefresh",
"pauseAfterInsertCoordinatorDoc",
"pauseBeforeCTHolderInitialization",
// TODO (SERVER-104494, SERVER-104258): Test this failpoint when enabling
// featureFlagReshardingCloneNoRefresh.
// "reshardingPauseBeforeTellingRecipientsToClone",
"reshardingPauseBeforeTellingRecipientsToClone",
];
const waitForFailPointTimeout = kDefaultWaitForFailPointTimeout * (isSlowBuild(configPrimary) + 1);

View File

@ -3,7 +3,7 @@
* not get blocked as long as the coordinator is not engaging the critical section.
*
* @tags: [
* requires_fcv_83,
* requires_fcv_90,
* featureFlagReshardingSkipCloningAndApplyingIfApplicable,
* ]
*/
@ -47,9 +47,7 @@ const failpoints = [
"pauseBeforeTellDonorToRefresh",
"pauseAfterInsertCoordinatorDoc",
"pauseBeforeCTHolderInitialization",
// TODO (SERVER-104494, SERVER-104258): Test this failpoint when enabling
// featureFlagReshardingCloneNoRefresh.
// "reshardingPauseBeforeTellingRecipientsToClone",
"reshardingPauseBeforeTellingRecipientsToClone",
];
const waitForFailPointTimeout = kDefaultWaitForFailPointTimeout * (isSlowBuild(configPrimary) + 1);

View File

@ -1983,13 +1983,11 @@ TEST_F(ReshardingCoordinatorServiceTest, CoordinatorHonorsCriticalSectionTimeout
ErrorCodes::ReshardingCriticalSectionTimeout);
}
TEST_F(ReshardingCoordinatorServiceTest, FeatureFlagReshardingCloneNoRefreshSendsCloneCmd) {
TEST_F(ReshardingCoordinatorServiceTest, ReshardingSendsCloneCmdNotRefresh) {
const std::vector<CoordinatorStateEnum> states = {
CoordinatorStateEnum::kPreparingToDonate,
};
RAIIServerParameterControllerForTest noRefreshFeatureFlagController(
"featureFlagReshardingCloneNoRefresh", true);
auto pauseBeforeTellingRecipientsToClone =
globalFailPointRegistry().find("reshardingPauseBeforeTellingRecipientsToClone");
auto timesEnteredFailPoint =

View File

@ -1215,9 +1215,6 @@ TEST_F(ReshardingDonorRecipientCommonInternalsTest, ClearReshardingFilteringMeta
}
TEST_F(ReshardingDonorRecipientCommonTest, ProcessRecipientFieldsForCloningNoRefresh) {
RAIIServerParameterControllerForTest noRefreshFeatureFlagController(
"featureFlagReshardingCloneNoRefresh", true);
testProcessRecipientFields(kThisShard.getShardId() /* shardThatChunkExistsOn*/,
kThisShard.getShardId() /* primaryShard */,
boost::none /* performVerification */,
@ -1226,9 +1223,6 @@ TEST_F(ReshardingDonorRecipientCommonTest, ProcessRecipientFieldsForCloningNoRef
}
TEST_F(ReshardingDonorRecipientCommonTest, ProcessDonorFieldsRefreshCreatesEvenWithInitNoRefresh) {
RAIIServerParameterControllerForTest initNoRefreshController(
"featureFlagReshardingInitNoRefresh", true);
testProcessDonorFields(kThisShard.getShardId() /* shardThatChunkExistsOn*/,
kOtherShard.getShardId() /* primaryShard */,
boost::none /* performVerification */,

View File

@ -1449,8 +1449,9 @@ protected:
void setupFeatureFlags(const TestOptions& testOptions) {
_cloneNoRefreshController.reset();
if (testOptions.driveCloneNoRefresh) {
_cloneNoRefreshController.emplace("featureFlagReshardingCloneNoRefresh", true);
if (!testOptions.driveCloneNoRefresh) {
_cloneNoRefreshController.emplace("featureFlagReshardingCloneNoRefresh",
/* enabled */ false);
}
}

View File

@ -128,7 +128,8 @@ feature_flags:
mod_visibility: public
description: "Feature flag to enable not using shard version refresh for resharding's clone phase."
cpp_varname: gFeatureFlagReshardingCloneNoRefresh
default: false
default: true
version: 9.0
fcv_gated: true
check_against_fcv: legacy_fcv_snapshot_only
featureFlagReshardingInitNoRefresh: