summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Pulo <kevin.pulo@mongodb.com>2019-09-26 18:06:42 +0000
committerevergreen <evergreen@mongodb.com>2019-09-26 18:06:42 +0000
commita2343b191e3a0edf93cc7e9f22b8434d1f2a7c0d (patch)
tree07e8d955c23a048ab377e0c42143f0583946f87d
parentc6cef9e05219b02e7db1696617b4a44f0c6bed67 (diff)
downloadmongo-a2343b191e3a0edf93cc7e9f22b8434d1f2a7c0d.tar.gz
SERVER-36315 Don't keep trying to unlock distlocks after CSRS stepdown
(cherry picked from commit 3197ace779d6e0f023bff9e39bd80e17e3c4790d)
-rw-r--r--src/mongo/s/catalog/replset_dist_lock_manager.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/mongo/s/catalog/replset_dist_lock_manager.cpp b/src/mongo/s/catalog/replset_dist_lock_manager.cpp
index 5e3e22fd51a..a28b5136e98 100644
--- a/src/mongo/s/catalog/replset_dist_lock_manager.cpp
+++ b/src/mongo/s/catalog/replset_dist_lock_manager.cpp
@@ -164,7 +164,10 @@ void ReplSetDistLockManager::doTask() {
if (!unlockStatus.isOK()) {
warning() << "Failed to unlock lock with " << LocksType::lockID() << ": "
<< toUnlock.first << nameMessage << causedBy(unlockStatus);
- queueUnlock(toUnlock.first, toUnlock.second);
+ // Queue another attempt, unless the problem was no longer being primary.
+ if (unlockStatus != ErrorCodes::NotMaster) {
+ queueUnlock(toUnlock.first, toUnlock.second);
+ }
} else {
LOG(0) << "distributed lock with " << LocksType::lockID() << ": "
<< toUnlock.first << nameMessage << " unlocked.";