MDEV-6698: safe_mutex: Found wrong usage of mutex 'log_space_lock' and 'LOCK_log'
Moved freeing of mutex earlier, as we don't need to have log_space_cond locked for doing rotate_relay_log() sql/slave.cc: Moved freeing of mutex earlier, as we don't need to have log_space_cond locked for doing rotate_relay_log()
This commit is contained in:
parent
9c79227c96
commit
2362d98470
12
sql/slave.cc
12
sql/slave.cc
@ -2230,6 +2230,7 @@ slave_killed_err:
|
||||
static bool wait_for_relay_log_space(Relay_log_info* rli)
|
||||
{
|
||||
bool slave_killed=0;
|
||||
bool ignore_log_space_limit;
|
||||
Master_info* mi = rli->mi;
|
||||
PSI_stage_info old_stage;
|
||||
THD* thd = mi->io_thd;
|
||||
@ -2245,6 +2246,11 @@ static bool wait_for_relay_log_space(Relay_log_info* rli)
|
||||
!rli->ignore_log_space_limit)
|
||||
mysql_cond_wait(&rli->log_space_cond, &rli->log_space_lock);
|
||||
|
||||
ignore_log_space_limit= rli->ignore_log_space_limit;
|
||||
rli->ignore_log_space_limit= 0;
|
||||
|
||||
thd->EXIT_COND(&old_stage);
|
||||
|
||||
/*
|
||||
Makes the IO thread read only one event at a time
|
||||
until the SQL thread is able to purge the relay
|
||||
@ -2268,7 +2274,8 @@ static bool wait_for_relay_log_space(Relay_log_info* rli)
|
||||
thread sleeps waiting for events.
|
||||
|
||||
*/
|
||||
if (rli->ignore_log_space_limit)
|
||||
|
||||
if (ignore_log_space_limit)
|
||||
{
|
||||
#ifndef DBUG_OFF
|
||||
{
|
||||
@ -2290,11 +2297,8 @@ static bool wait_for_relay_log_space(Relay_log_info* rli)
|
||||
mysql_mutex_unlock(&mi->data_lock);
|
||||
rli->sql_force_rotate_relay= false;
|
||||
}
|
||||
|
||||
rli->ignore_log_space_limit= false;
|
||||
}
|
||||
|
||||
thd->EXIT_COND(&old_stage);
|
||||
DBUG_RETURN(slave_killed);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user