summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorScott Hernandez <scotthernandez@gmail.com>2014-11-19 08:44:35 -0500
committerScott Hernandez <scotthernandez@gmail.com>2014-11-19 10:45:07 -0500
commitf4c67e1f3e5c0a63567539a5b97c32b22cb693f7 (patch)
tree3cf47fe17d4bed9bc3e40c6382b5b677a46616b8 /src
parentc6653bd908a98c3b98ca14a6769cb52da1ff0d19 (diff)
downloadmongo-f4c67e1f3e5c0a63567539a5b97c32b22cb693f7.tar.gz
SERVER-15995: just loop if removed, don't log
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/repl/rs_sync.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mongo/db/repl/rs_sync.cpp b/src/mongo/db/repl/rs_sync.cpp
index 1f4de265a9d..401cea472bb 100644
--- a/src/mongo/db/repl/rs_sync.cpp
+++ b/src/mongo/db/repl/rs_sync.cpp
@@ -99,10 +99,18 @@ namespace repl {
}
const MemberState memberState = replCoord->getCurrentMemberState();
- if (replCoord->getCurrentMemberState().arbiter()) {
+
+ // An arbiter can never transition to any other state, and doesn't replicate, ever
+ if (memberState.arbiter()) {
break;
}
+ // If we are removed then we don't belong to the set anymore
+ if (memberState.removed()) {
+ sleepsecs(5);
+ continue;
+ }
+
try {
if (memberState.primary() && !replCoord->isWaitingForApplierToDrain()) {