diff options
-rw-r--r-- | src/mongo/executor/network_interface_asio.cpp | 3 | ||||
-rw-r--r-- | src/mongo/executor/network_interface_asio.h | 2 | ||||
-rw-r--r-- | src/mongo/executor/network_interface_asio_operation.cpp | 24 |
3 files changed, 22 insertions, 7 deletions
diff --git a/src/mongo/executor/network_interface_asio.cpp b/src/mongo/executor/network_interface_asio.cpp index 7da182d2073..b1ac4514e52 100644 --- a/src/mongo/executor/network_interface_asio.cpp +++ b/src/mongo/executor/network_interface_asio.cpp @@ -104,9 +104,8 @@ std::string NetworkInterfaceASIO::_getDiagnosticString_inlock(AsyncOp* currentOp output << "\t Operations _inProgress: " << _inProgress.size() << "\n"; if (_inProgress.size() > 0) { - // Set up labels, first is placeholder for asterisk std::vector<TableRow> rows; - rows.push_back({"", "ID", "STATES", "START_TIME", "REQUEST"}); + rows.push_back(AsyncOp::kFieldLabels); // Push AsyncOps for (auto&& kv : _inProgress) { diff --git a/src/mongo/executor/network_interface_asio.h b/src/mongo/executor/network_interface_asio.h index b4d1d05021d..5e7f653d8fd 100644 --- a/src/mongo/executor/network_interface_asio.h +++ b/src/mongo/executor/network_interface_asio.h @@ -351,6 +351,8 @@ private: // Type to represent the internal id of this request. using AsyncOpId = uint64_t; + static const TableRow kFieldLabels; + // Return string representation of a given state. std::string _stateToString(State state) const; diff --git a/src/mongo/executor/network_interface_asio_operation.cpp b/src/mongo/executor/network_interface_asio_operation.cpp index 963d80dbbdd..7c0e66c6eda 100644 --- a/src/mongo/executor/network_interface_asio_operation.cpp +++ b/src/mongo/executor/network_interface_asio_operation.cpp @@ -100,6 +100,9 @@ StatusWith<Message> messageFromRequest(const RemoteCommandRequest& request, } // namespace +const NetworkInterfaceASIO::TableRow NetworkInterfaceASIO::AsyncOp::kFieldLabels = { + "", "id", "states", "start_time", "request"}; + NetworkInterfaceASIO::AsyncOp::AsyncOp(NetworkInterfaceASIO* const owner, const TaskExecutor::CallbackHandle& cbHandle, const RemoteCommandRequest& request, @@ -300,7 +303,7 @@ void NetworkInterfaceASIO::AsyncOp::setOnFinish(RemoteCommandCompletionFn&& onFi std::string NetworkInterfaceASIO::AsyncOp::_stateToString(AsyncOp::State state) const { switch (state) { case State::kUninitialized: - return "UNITIALIZED"; + return "UNINITIALIZED"; case State::kInProgress: return "IN_PROGRESS"; case State::kTimedOut: @@ -344,10 +347,21 @@ NetworkInterfaceASIO::TableRow NetworkInterfaceASIO::AsyncOp::getStringFields() std::string NetworkInterfaceASIO::AsyncOp::toString() const { str::stream s; + int fieldIdx = 1; + bool first = true; + for (auto field : getStringFields()) { - s << field << "\t\t"; + if (field != "") { + if (first) { + first = false; + } else { + s << ", "; + } + + s << kFieldLabels[fieldIdx] << ": " << field; + fieldIdx++; + } } - s << "\n"; return s; } @@ -431,8 +445,8 @@ void NetworkInterfaceASIO::AsyncOp::_failWithInfo(const char* file, int line, std::string error) const { std::stringstream ss; - ss << "Invariant failure at " << file << ":" << line << ": " << error; - ss << "\n\t Operation: " << toString(); + ss << "Invariant failure at " << file << ":" << line << ": " << error + << ", Operation: " << toString(); Status status{ErrorCodes::InternalError, ss.str()}; fassertFailedWithStatus(34430, status); } |