Merge branch '2.2' into 2.3

This commit is contained in:
Markus Mäkelä
2018-11-09 14:22:28 +02:00
4 changed files with 70 additions and 26 deletions

View File

@ -625,8 +625,8 @@ Rpl::Rpl(SERVICE* service,
, m_md_exclude(m_exclude ? pcre2_match_data_create_from_pattern(m_exclude, NULL) : nullptr)
{
/** For detection of CREATE/ALTER TABLE statements */
static const char* create_table_regex = "(?i)create[a-z0-9[:space:]_]+table";
static const char* alter_table_regex = "(?i)alter[[:space:]]+table";
static const char* create_table_regex = "(?i)^[[:space:]]*create[a-z0-9[:space:]_]+table";
static const char* alter_table_regex = "(?i)^[[:space:]]*alter[[:space:]]+table";
int pcreerr;
size_t erroff;
m_create_table_re = pcre2_compile((PCRE2_SPTR) create_table_regex,

View File

@ -121,10 +121,9 @@ void RWSplitSession::close()
}
backend->response_stat().reset();
m_router->server_stats(backend->server()).end_session(
backend->session_timer().split(),
backend->select_timer().total(),
backend->num_selects());
m_router->server_stats(backend->server()).end_session(backend->session_timer().split(),
backend->select_timer().total(),
backend->num_selects());
}
}
@ -878,14 +877,20 @@ void RWSplitSession::handleError(GWBUF* errmsgbuf,
send_readonly_error(m_client);
}
if (!can_continue && !backend->is_master()
&& !backend->server()->master_err_is_logged)
if (!can_continue)
{
MXS_ERROR("Server %s (%s) lost the master status while waiting"
" for a result. Client sessions will be closed.",
backend->name(),
backend->uri());
backend->server()->master_err_is_logged = true;
if (!backend->is_master() && !backend->server()->master_err_is_logged)
{
MXS_ERROR("Server %s (%s) lost the master status while waiting"
" for a result. Client sessions will be closed.",
backend->name(),
backend->uri());
backend->server()->master_err_is_logged = true;
}
else
{
MXS_ERROR("Lost connection to the master server, closing session.");
}
}
}
@ -1038,6 +1043,12 @@ bool RWSplitSession::handle_error_new_connection(DCB* backend_dcb, GWBUF* errmsg
break;
}
}
if (!succp)
{
MXS_ERROR("Unable to continue session as all connections have failed, "
"last server to fail was '%s'.", backend->name());
}
}
else
{