Merge branch '2.3' into 2.4
This commit is contained in:
@ -609,16 +609,9 @@ bool RWSplitSession::route_session_write(GWBUF* querybuf, uint8_t command, uint3
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::string status;
|
MXS_ERROR("Could not route session command: %s. Connection status: %s",
|
||||||
for (const auto& a : m_backends)
|
|
||||||
{
|
|
||||||
status += "\n";
|
|
||||||
status += a->get_verbose_status();
|
|
||||||
}
|
|
||||||
|
|
||||||
MXS_ERROR("Could not route session command: %s. Connection information: %s",
|
|
||||||
attempted_write ? "Write to all backends failed" : "All connections have failed",
|
attempted_write ? "Write to all backends failed" : "All connections have failed",
|
||||||
status.c_str());
|
get_verbose_status().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
return nsucc;
|
return nsucc;
|
||||||
@ -669,8 +662,8 @@ RWBackend* RWSplitSession::get_master_backend()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
MXS_ERROR("Cannot choose server '%s' as the master because it is not "
|
MXS_ERROR("Cannot choose server '%s' as the master because it is not "
|
||||||
"in use and a new connection to it cannot be created.",
|
"in use and a new connection to it cannot be created. Connection status: %s",
|
||||||
master->name());
|
master->name(), get_verbose_status().c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1254,25 +1254,17 @@ bool RWSplitSession::handle_error_new_connection(DCB* backend_dcb, GWBUF* errmsg
|
|||||||
route_stored_query();
|
route_stored_query();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool succp = false;
|
bool ok = can_recover_servers() || can_continue_session();
|
||||||
|
|
||||||
if (!can_recover_servers())
|
if (!ok)
|
||||||
{
|
{
|
||||||
succp = can_continue_session();
|
MXS_ERROR("Unable to continue session as all connections have failed and "
|
||||||
|
"new connections cannot be created. Last server to fail was '%s'.",
|
||||||
if (!succp)
|
backend->name());
|
||||||
{
|
MXS_INFO("Connection status: %s", get_verbose_status().c_str());
|
||||||
MXS_ERROR("Unable to continue session as all connections have failed, "
|
|
||||||
"last server to fail was '%s'.", backend->name());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Try to replace failed connections
|
|
||||||
succp = open_connections();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return succp;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -262,6 +262,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)
|
inline bool is_large_query(GWBUF* buf)
|
||||||
{
|
{
|
||||||
uint32_t buflen = gwbuf_length(buf);
|
uint32_t buflen = gwbuf_length(buf);
|
||||||
|
Reference in New Issue
Block a user