diff options
author | Mathias Stearn <mathias@10gen.com> | 2017-07-24 15:59:24 -0400 |
---|---|---|
committer | Mathias Stearn <mathias@10gen.com> | 2017-08-17 22:13:09 -0400 |
commit | 583127818f1ead21b67a57eb117b9678232e5472 (patch) | |
tree | d64e7927045a9b33d4e248acb48433903e3bb340 /src/mongo/db/lasterror.cpp | |
parent | 112982eeaddf92cbc14be655061200e23069250a (diff) | |
download | mongo-583127818f1ead21b67a57eb117b9678232e5472.tar.gz |
SERVER-28510 Close incoming mongod connection on NotMaster error when handling fire-and-forget command
Diffstat (limited to 'src/mongo/db/lasterror.cpp')
-rw-r--r-- | src/mongo/db/lasterror.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/mongo/db/lasterror.cpp b/src/mongo/db/lasterror.cpp index 370c38f9f6f..2521fa99466 100644 --- a/src/mongo/db/lasterror.cpp +++ b/src/mongo/db/lasterror.cpp @@ -52,6 +52,9 @@ void LastError::setLastError(int code, std::string msg) { reset(true); _code = code; _msg = std::move(msg); + + if (ErrorCodes::isNotMasterError(ErrorCodes::fromInt(_code))) + _hadNotMasterError = true; } void LastError::recordUpdate(bool updateObjects, long long nObjects, BSONObj upsertedId) { @@ -107,7 +110,13 @@ void LastError::disable() { _nPrev--; // caller is a command that shouldn't count as an operation } -void LastError::startRequest() { +void LastError::startTopLevelRequest() { + _disabled = false; + ++_nPrev; + _hadNotMasterError = false; +} + +void LastError::startDirectClientRequest() { _disabled = false; ++_nPrev; } |