summaryrefslogtreecommitdiff
path: root/src/mongo/idl
diff options
context:
space:
mode:
authorJiawei Yang <jiawei.yang@mongodb.com>2023-04-17 21:46:21 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-04-25 04:55:00 +0000
commitc35bad3b048e8d885bf0b7517aacd2349ea81d14 (patch)
tree936b34ac089f00a94f407bfab0fe3d64ecc2deb9 /src/mongo/idl
parent70d26d65a1e55e4da104f4f150bdc8b6d2ae5b65 (diff)
downloadmongo-c35bad3b048e8d885bf0b7517aacd2349ea81d14.tar.gz
SERVER-70127 change system operations to be killable by default
Diffstat (limited to 'src/mongo/idl')
-rw-r--r--src/mongo/idl/cluster_server_parameter_refresher.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/mongo/idl/cluster_server_parameter_refresher.cpp b/src/mongo/idl/cluster_server_parameter_refresher.cpp
index e711ef20c1c..d19cf7248fb 100644
--- a/src/mongo/idl/cluster_server_parameter_refresher.cpp
+++ b/src/mongo/idl/cluster_server_parameter_refresher.cpp
@@ -64,6 +64,11 @@ getFCVAndClusterParametersFromConfigServer() {
// Use an alternative client region, because we call refreshParameters both from the internal
// refresher process and from getClusterParameter.
auto altClient = getGlobalServiceContext()->makeClient("clusterParameterRefreshTransaction");
+ // TODO(SERVER-74660): Please revisit if this thread could be made killable.
+ {
+ stdx::lock_guard<Client> lk(*altClient.get());
+ altClient.get()->setSystemOperationUnkillableByStepdown(lk);
+ }
AlternativeClientRegion clientRegion(altClient);
auto opCtx = cc().makeOperationContext();
auto as = AuthorizationSession::get(cc());
@@ -300,7 +305,9 @@ void ClusterServerParameterRefresher::start(ServiceContext* serviceCtx, Operatio
PeriodicRunner::PeriodicJob job(
"ClusterServerParameterRefresher",
[serviceCtx](Client* client) { getClusterServerParameterRefresher(serviceCtx)->run(); },
- loadInterval());
+ loadInterval(),
+ // TODO(SERVER-74659): Please revisit if this periodic job could be made killable.
+ false /*isKillableByStepdown*/);
refresher->_job = std::make_unique<PeriodicJobAnchor>(periodicRunner->makeJob(std::move(job)));