summaryrefslogtreecommitdiff
path: root/src/mongo/db/commands/shutdown_d.cpp
diff options
context:
space:
mode:
authorSpencer T Brody <spencer@mongodb.com>2018-09-19 16:20:22 -0400
committerSpencer T Brody <spencer@mongodb.com>2018-09-24 16:30:00 -0400
commit0658c2badc16b8f372c7531a563ac7c6f4518a2e (patch)
tree9c81b1c26723c9197a2cc7cce91830b8ba2c5faf /src/mongo/db/commands/shutdown_d.cpp
parentea15baf6412300c94bbe0e96f2865e58b0c7e637 (diff)
downloadmongo-0658c2badc16b8f372c7531a563ac7c6f4518a2e.tar.gz
SERVER-35870 Make ReplicationCoordinator::stepDown report errors via exceptions
Diffstat (limited to 'src/mongo/db/commands/shutdown_d.cpp')
-rw-r--r--src/mongo/db/commands/shutdown_d.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/mongo/db/commands/shutdown_d.cpp b/src/mongo/db/commands/shutdown_d.cpp
index ee2de23a67e..3f43c7ea4a1 100644
--- a/src/mongo/db/commands/shutdown_d.cpp
+++ b/src/mongo/db/commands/shutdown_d.cpp
@@ -60,10 +60,13 @@ public:
timeoutSecs = cmdObj["timeoutSecs"].numberLong();
}
- Status status = repl::ReplicationCoordinator::get(opCtx)->stepDown(
- opCtx, force, Seconds(timeoutSecs), Seconds(120));
- if (!status.isOK() && status.code() != ErrorCodes::NotMaster) { // ignore not master
- uassertStatusOK(status);
+ try {
+ repl::ReplicationCoordinator::get(opCtx)->stepDown(
+ opCtx, force, Seconds(timeoutSecs), Seconds(120));
+ } catch (const DBException& e) {
+ if (e.code() != ErrorCodes::NotMaster) { // ignore not master
+ throw;
+ }
}
// Never returns