diff options
Diffstat (limited to 'src/mongo/executor/network_interface_asio_command.cpp')
-rw-r--r-- | src/mongo/executor/network_interface_asio_command.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mongo/executor/network_interface_asio_command.cpp b/src/mongo/executor/network_interface_asio_command.cpp index 889ba5c11d5..8d20c9ac62e 100644 --- a/src/mongo/executor/network_interface_asio_command.cpp +++ b/src/mongo/executor/network_interface_asio_command.cpp @@ -215,7 +215,7 @@ void NetworkInterfaceASIO::_beginCommunication(AsyncOp* op) { // codepath. if (op->_inSetup) { op->_inSetup = false; - op->finish(op->command()->response(rpc::Protocol::kOpQuery, now())); + op->finish(RemoteCommandResponse()); return; } @@ -274,7 +274,11 @@ void NetworkInterfaceASIO::_completeOperation(AsyncOp* op, const ResponseStatus& auto asioConn = static_cast<connection_pool_asio::ASIOConnection*>(conn.get()); asioConn->bindAsyncOp(std::move(ownedOp)); - asioConn->indicateUsed(); + if (!resp.isOK()) { + asioConn->indicateFailed(resp.getStatus()); + } else { + asioConn->indicateUsed(); + } signalWorkAvailable(); } |