Add verbose backend status helper
This allows the same verbose information to be logged in the cases where it is of use. Mostly this information can be used to figure out why a certain session was closed.
This commit is contained in:
parent
fd0c156655
commit
f46f873dc1
@ -591,16 +591,9 @@ bool RWSplitSession::route_session_write(GWBUF* querybuf, uint8_t command, uint3
|
||||
}
|
||||
else
|
||||
{
|
||||
std::string status;
|
||||
for (const auto& a : m_backends)
|
||||
{
|
||||
status += "\n";
|
||||
status += a->get_verbose_status();
|
||||
}
|
||||
|
||||
MXS_ERROR("Could not route session command: %s. Connection information: %s",
|
||||
MXS_ERROR("Could not route session command: %s. Connection status: %s",
|
||||
attempted_write ? "Write to all backends failed" : "All connections have failed",
|
||||
status.c_str());
|
||||
get_verbose_status().c_str());
|
||||
}
|
||||
|
||||
return nsucc;
|
||||
@ -739,7 +732,7 @@ SRWBackend RWSplitSession::get_master_backend()
|
||||
{
|
||||
MXS_ERROR("Cannot choose server '%s' as the master because it is not "
|
||||
"in use and a new connection to it cannot be created. Connection status: %s",
|
||||
master->name(), master->get_verbose_status().c_str());
|
||||
master->name(), get_verbose_status().c_str());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1182,6 +1182,7 @@ bool RWSplitSession::handle_error_new_connection(DCB* backend_dcb, GWBUF* errmsg
|
||||
MXS_ERROR("Unable to continue session as all connections have failed and "
|
||||
"new connections cannot be created. Last server to fail was '%s'.",
|
||||
backend->name());
|
||||
MXS_INFO("Connection status: %s", get_verbose_status().c_str());
|
||||
}
|
||||
|
||||
return ok;
|
||||
|
@ -301,6 +301,19 @@ private:
|
||||
});
|
||||
}
|
||||
|
||||
std::string get_verbose_status()
|
||||
{
|
||||
std::string status;
|
||||
|
||||
for (const auto& a : m_backends)
|
||||
{
|
||||
status += "\n";
|
||||
status += a->get_verbose_status();
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
inline bool is_large_query(GWBUF* buf)
|
||||
{
|
||||
uint32_t buflen = gwbuf_length(buf);
|
||||
|
Loading…
x
Reference in New Issue
Block a user