diff options
author | Scott Hernandez <scotthernandez@gmail.com> | 2014-11-19 08:44:35 -0500 |
---|---|---|
committer | Scott Hernandez <scotthernandez@gmail.com> | 2014-11-19 10:45:07 -0500 |
commit | f4c67e1f3e5c0a63567539a5b97c32b22cb693f7 (patch) | |
tree | 3cf47fe17d4bed9bc3e40c6382b5b677a46616b8 /src | |
parent | c6653bd908a98c3b98ca14a6769cb52da1ff0d19 (diff) | |
download | mongo-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.cpp | 10 |
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()) { |