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.
This commit is contained in:
parent
772d6d347d
commit
7948a1dc53
@ -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);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user