summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/session_catalog_migration_destination.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/s/session_catalog_migration_destination.cpp')
-rw-r--r--src/mongo/db/s/session_catalog_migration_destination.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mongo/db/s/session_catalog_migration_destination.cpp b/src/mongo/db/s/session_catalog_migration_destination.cpp
index 5ea8c1f5413..ae9eec23cc2 100644
--- a/src/mongo/db/s/session_catalog_migration_destination.cpp
+++ b/src/mongo/db/s/session_catalog_migration_destination.cpp
@@ -287,6 +287,7 @@ void SessionCatalogMigrationDestination::_retrieveSessionStateFromSource(Service
auto uniqueCtx = CancelableOperationContext(
cc().makeOperationContext(), _cancellationToken, executor);
auto opCtx = uniqueCtx.get();
+ opCtx->setAlwaysInterruptAtStepDownOrUp_UNSAFE();
nextBatch = getNextSessionOplogBatch(opCtx, _fromShard, _migrationSessionId);
oplogArray = BSONArray{nextBatch[kOplogField].Obj()};
@@ -367,6 +368,7 @@ void SessionCatalogMigrationDestination::_retrieveSessionStateFromSource(Service
auto executor = Grid::get(service)->getExecutorPool()->getFixedExecutor();
auto uniqueOpCtx =
CancelableOperationContext(cc().makeOperationContext(), _cancellationToken, executor);
+ uniqueOpCtx->setAlwaysInterruptAtStepDownOrUp_UNSAFE();
uassertStatusOK(
waitForWriteConcern(uniqueOpCtx.get(), lastResult.oplogTime, kMajorityWC, &unusedWCResult));
@@ -436,6 +438,8 @@ SessionCatalogMigrationDestination::_processSessionOplog(const BSONObj& oplogBSO
auto uniqueOpCtx =
CancelableOperationContext(cc().makeOperationContext(), cancellationToken, executor);
auto opCtx = uniqueOpCtx.get();
+ opCtx->setAlwaysInterruptAtStepDownOrUp_UNSAFE();
+
{
auto lk = stdx::lock_guard(*opCtx->getClient());
opCtx->setLogicalSessionId(result.sessionId);