From cbf7d52a1d5b25c2d8acaed39db19cda3df3b8a7 Mon Sep 17 00:00:00 2001 From: Misha Tyulenev Date: Tue, 9 Feb 2016 14:39:31 -0500 Subject: SERVER-22390 catch all errors in RangeDeleter::_waitForMajority (cherry picked from commit 805b8c51a6103e0482df81b5ef9b3efd448b0806) --- src/mongo/db/range_deleter.cpp | 23 +++++------------------ 1 file 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(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(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(elapsedTime) - << " seconds while waiting" - " for deletions to be replicated to majority nodes"; - } else { - LOG(elapsedTime < Seconds(30) ? 1 : 0) - << "rangeDeleter took " << durationCount(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, -- cgit v1.2.1