diff options
author | Jonathan Ma <jonathan.ma@mongodb.com> | 2019-01-23 09:50:36 -0500 |
---|---|---|
committer | Jonathan Ma <jonathan.ma@mongodb.com> | 2019-01-24 13:49:22 -0500 |
commit | aec398437d55ae1d88efd2439118dc8b978154e2 (patch) | |
tree | 48dcf8dc6a0d5a12fc656c95730c59d32da54d88 /src/mongo/db/service_context.cpp | |
parent | a8b513ff6e2e3db87179fcb2f99499f19d47e8dc (diff) | |
download | mongo-aec398437d55ae1d88efd2439118dc8b978154e2.tar.gz |
SERVER-36663 Prevent killOperation from running without lock
Diffstat (limited to 'src/mongo/db/service_context.cpp')
-rw-r--r-- | src/mongo/db/service_context.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/mongo/db/service_context.cpp b/src/mongo/db/service_context.cpp index 47415f498d7..8ffa987a49d 100644 --- a/src/mongo/db/service_context.cpp +++ b/src/mongo/db/service_context.cpp @@ -287,7 +287,7 @@ void ServiceContext::setKillAllOperations() { stdx::lock_guard<Client> lk(*client); auto opCtxToKill = client->getOperationContext(); if (opCtxToKill) { - killOperation(opCtxToKill, ErrorCodes::InterruptedAtShutdown); + killOperation(lk, opCtxToKill, ErrorCodes::InterruptedAtShutdown); } } @@ -301,7 +301,7 @@ void ServiceContext::setKillAllOperations() { } } -void ServiceContext::killOperation(OperationContext* opCtx, ErrorCodes::Error killCode) { +void ServiceContext::killOperation(WithLock, OperationContext* opCtx, ErrorCodes::Error killCode) { opCtx->markKilled(killCode); for (const auto listener : _killOpListeners) { |