summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDianna Hohensee <dianna.hohensee@10gen.com>2016-09-23 10:12:49 -0400
committerDianna Hohensee <dianna.hohensee@10gen.com>2016-09-23 15:56:30 -0400
commitaad3bcd6d14152459ff362f69b2e20ebbd68b053 (patch)
treed457af4150d9dfb1fbb16212b2ac046fd32337e7
parent1955b0542e68b31b1e93f99980316817bd1e4416 (diff)
downloadmongo-aad3bcd6d14152459ff362f69b2e20ebbd68b053.tar.gz
SERVER-26280 change ErrorCode expectation in MigrationManager
-rw-r--r--src/mongo/s/balancer/migration_manager.cpp6
-rw-r--r--src/mongo/s/catalog/replset_dist_lock_manager.cpp15
2 files changed, 13 insertions, 8 deletions
diff --git a/src/mongo/s/balancer/migration_manager.cpp b/src/mongo/s/balancer/migration_manager.cpp
index ea4403e98bf..0a11210234e 100644
--- a/src/mongo/s/balancer/migration_manager.cpp
+++ b/src/mongo/s/balancer/migration_manager.cpp
@@ -353,9 +353,9 @@ void MigrationManager::startRecoveryAndAcquireDistLocks(OperationContext* txn) {
->getDistLockManager()
->tryLockWithLocalWriteConcern(txn, migrateInfo.ns, whyMessage, _lockSessionID);
if (!statusWithDistLockHandle.isOK() &&
- statusWithDistLockHandle.getStatus() != ErrorCodes::LockStateChangeFailed) {
- // LockStateChangeFailed is alright because that should mean a 3.2 shard has it for
- // the active migration.
+ statusWithDistLockHandle.getStatus() != ErrorCodes::LockBusy) {
+ // LockBusy is alright because that should mean a 3.2 shard has it for the active
+ // migration.
warning() << "Failed to acquire distributed lock for collection '"
<< redact(migrateInfo.ns)
<< "' during balancer recovery of an active migration. Abandoning"
diff --git a/src/mongo/s/catalog/replset_dist_lock_manager.cpp b/src/mongo/s/catalog/replset_dist_lock_manager.cpp
index a9337e7b2e6..dc960037a16 100644
--- a/src/mongo/s/catalog/replset_dist_lock_manager.cpp
+++ b/src/mongo/s/catalog/replset_dist_lock_manager.cpp
@@ -442,15 +442,20 @@ StatusWith<DistLockHandle> ReplSetDistLockManager::tryLockWithLocalWriteConcern(
Date_t::now(),
whyMessage.toString(),
DistLockCatalog::kLocalWriteConcern);
+
+ if (lockStatus.isOK()) {
+ log() << "distributed lock '" << name << "' acquired for '" << whyMessage.toString()
+ << "', ts : " << lockSessionID;
+ return lockSessionID;
+ }
+
+ LOG(1) << "distributed lock '" << name << "' was not acquired.";
+
if (lockStatus == ErrorCodes::LockStateChangeFailed) {
return {ErrorCodes::LockBusy, str::stream() << "Unable to acquire " << name};
- } else if (!lockStatus.isOK()) {
- return lockStatus.getStatus();
}
- log() << "distributed lock '" << name << "' acquired for '" << whyMessage.toString()
- << "', ts : " << lockSessionID;
- return lockSessionID;
+ return lockStatus.getStatus();
}
void ReplSetDistLockManager::unlock(OperationContext* txn, const DistLockHandle& lockSessionID) {