Fix for rpl_start_stop_slave failure
One may access freed THD members after LOCK_thd_kill is released. With original code it can happen when killing wsrep-disabled thread on a wsrep-enabled server. With 91ab42a8 it is happening on a wsrep-disabled server.
This commit is contained in:
parent
af4b2ae858
commit
ba679ae52f
@ -9086,8 +9086,8 @@ kill_one_thread(THD *thd, longlong id, killed_state kill_signal, killed_type typ
|
|||||||
else
|
else
|
||||||
error= (type == KILL_TYPE_QUERY ? ER_KILL_QUERY_DENIED_ERROR :
|
error= (type == KILL_TYPE_QUERY ? ER_KILL_QUERY_DENIED_ERROR :
|
||||||
ER_KILL_DENIED_ERROR);
|
ER_KILL_DENIED_ERROR);
|
||||||
mysql_mutex_unlock(&tmp->LOCK_thd_kill);
|
|
||||||
if (WSREP(tmp)) mysql_mutex_unlock(&tmp->LOCK_thd_data);
|
if (WSREP(tmp)) mysql_mutex_unlock(&tmp->LOCK_thd_data);
|
||||||
|
mysql_mutex_unlock(&tmp->LOCK_thd_kill);
|
||||||
}
|
}
|
||||||
DBUG_PRINT("exit", ("%d", error));
|
DBUG_PRINT("exit", ("%d", error));
|
||||||
DBUG_RETURN(error);
|
DBUG_RETURN(error);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user