summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMisha Tyulenev <misha@mongodb.com>2016-02-09 14:39:31 -0500
committerMisha Tyulenev <misha@mongodb.com>2016-02-09 18:21:07 -0500
commitcbf7d52a1d5b25c2d8acaed39db19cda3df3b8a7 (patch)
tree73cf6ccc3afa4f710ac2092373ee15399c3dc8df
parent3e884ea31a0e52dc87c646a8f59d08c36c3b858a (diff)
downloadmongo-cbf7d52a1d5b25c2d8acaed39db19cda3df3b8a7.tar.gz
SERVER-22390 catch all errors in RangeDeleter::_waitForMajority
(cherry picked from commit 805b8c51a6103e0482df81b5ef9b3efd448b0806)
-rw-r--r--src/mongo/db/range_deleter.cpp23
1 files changed, 5 insertions, 18 deletions
diff --git a/src/mongo/db/range_deleter.cpp b/src/mongo/db/range_deleter.cpp
index 7bb98bbc01f..7a4aaf878be 100644
--- a/src/mongo/db/range_deleter.cpp
+++ b/src/mongo/db/range_deleter.cpp
@@ -264,29 +264,16 @@ bool _waitForMajority(OperationContext* txn, std::string* errMsg) {
repl::ReplicationCoordinator::StatusAndDuration replStatus =
repl::getGlobalReplicationCoordinator()->awaitReplicationOfLastOpForClient(txn,
writeConcern);
- Milliseconds elapsedTime = replStatus.duration;
- if (replStatus.status.code() == ErrorCodes::ExceededTimeLimit) {
- *errMsg = str::stream() << "rangeDeleter timed out after "
- << durationCount<Seconds>(elapsedTime)
- << " seconds while waiting"
- " for deletions to be replicated to majority nodes";
+ if (!replStatus.status.isOK()) {
+ *errMsg = str::stream() << "rangeDeleter failed while waiting for replication after "
+ << durationCount<Seconds>(replStatus.duration) << " seconds due to "
+ << replStatus.status.toString();
log() << *errMsg;
- } else if (replStatus.status.code() == ErrorCodes::NotMaster) {
- *errMsg = str::stream() << "rangeDeleter no longer PRIMARY after "
- << durationCount<Seconds>(elapsedTime)
- << " seconds while waiting"
- " for deletions to be replicated to majority nodes";
- } else {
- LOG(elapsedTime < Seconds(30) ? 1 : 0)
- << "rangeDeleter took " << durationCount<Seconds>(elapsedTime) << " seconds "
- << " waiting for deletes to be replicated to majority nodes";
-
- fassert(18512, replStatus.status);
}
return replStatus.status.isOK();
}
-}
+} // namespace
bool RangeDeleter::deleteNow(OperationContext* txn,
const RangeDeleterOptions& options,