diff options
author | Misha Tyulenev <misha@mongodb.com> | 2016-02-09 14:39:31 -0500 |
---|---|---|
committer | Misha Tyulenev <misha@mongodb.com> | 2016-02-09 18:21:07 -0500 |
commit | cbf7d52a1d5b25c2d8acaed39db19cda3df3b8a7 (patch) | |
tree | 73cf6ccc3afa4f710ac2092373ee15399c3dc8df | |
parent | 3e884ea31a0e52dc87c646a8f59d08c36c3b858a (diff) | |
download | mongo-cbf7d52a1d5b25c2d8acaed39db19cda3df3b8a7.tar.gz |
SERVER-22390 catch all errors in RangeDeleter::_waitForMajority
(cherry picked from commit 805b8c51a6103e0482df81b5ef9b3efd448b0806)
-rw-r--r-- | src/mongo/db/range_deleter.cpp | 23 |
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, |