diff options
author | Dianna Hohensee <dianna.hohensee@10gen.com> | 2016-09-23 10:12:49 -0400 |
---|---|---|
committer | Dianna Hohensee <dianna.hohensee@10gen.com> | 2016-09-23 15:56:30 -0400 |
commit | aad3bcd6d14152459ff362f69b2e20ebbd68b053 (patch) | |
tree | d457af4150d9dfb1fbb16212b2ac046fd32337e7 | |
parent | 1955b0542e68b31b1e93f99980316817bd1e4416 (diff) | |
download | mongo-aad3bcd6d14152459ff362f69b2e20ebbd68b053.tar.gz |
SERVER-26280 change ErrorCode expectation in MigrationManager
-rw-r--r-- | src/mongo/s/balancer/migration_manager.cpp | 6 | ||||
-rw-r--r-- | src/mongo/s/catalog/replset_dist_lock_manager.cpp | 15 |
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) { |