summaryrefslogtreecommitdiff
path: root/src/mongo/executor/network_interface_asio_command.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/executor/network_interface_asio_command.cpp')
-rw-r--r--src/mongo/executor/network_interface_asio_command.cpp8
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();
}