Commit 7948a1dc authored by Julius Goryavsky's avatar Julius Goryavsky

MDEV-26914: Unreleased mutex in the exec_relay_log_event() function

In the replication-related code, in the exec_relay_log_event() (slave.cc)
function, where the "data_lock" mutex is captured, this mutex is then not
released on one of the early return branches within a specific insert for
WSREP, namely under the branch: "if (wsrep_before_statement(thd))". As a
result, the mutex remains captured, resulting in errors or hangs.

This commit fixes this issue, which is now showing up as intermittent
failures in mtr tests for galera and galera_sr suites.
parent 772d6d34
......@@ -4124,6 +4124,8 @@ static int exec_relay_log_event(THD* thd, Relay_log_info* rli,
#ifdef WITH_WSREP
if (wsrep_before_statement(thd))
{
mysql_mutex_unlock(&rli->data_lock);
delete ev;
WSREP_INFO("Wsrep before statement error");
DBUG_RETURN(1);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment