mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Avoid possible race condition in accessing slave statistics
during shutdown. (Bug #11796) sql/sql_show.cc: Check that active_mi is not NULL before accessing its members.
This commit is contained in:
@ -1890,7 +1890,7 @@ int mysqld_show(THD *thd, const char *wild, show_var_st *variables,
|
|||||||
case SHOW_SLAVE_RUNNING:
|
case SHOW_SLAVE_RUNNING:
|
||||||
{
|
{
|
||||||
pthread_mutex_lock(&LOCK_active_mi);
|
pthread_mutex_lock(&LOCK_active_mi);
|
||||||
end= strmov(buff, (active_mi->slave_running &&
|
end= strmov(buff, (active_mi && active_mi->slave_running &&
|
||||||
active_mi->rli.slave_running) ? "ON" : "OFF");
|
active_mi->rli.slave_running) ? "ON" : "OFF");
|
||||||
pthread_mutex_unlock(&LOCK_active_mi);
|
pthread_mutex_unlock(&LOCK_active_mi);
|
||||||
break;
|
break;
|
||||||
@ -1902,9 +1902,12 @@ int mysqld_show(THD *thd, const char *wild, show_var_st *variables,
|
|||||||
SLAVE STATUS, and have the sum over all lines here.
|
SLAVE STATUS, and have the sum over all lines here.
|
||||||
*/
|
*/
|
||||||
pthread_mutex_lock(&LOCK_active_mi);
|
pthread_mutex_lock(&LOCK_active_mi);
|
||||||
pthread_mutex_lock(&active_mi->rli.data_lock);
|
if (active_mi)
|
||||||
end= int10_to_str(active_mi->rli.retried_trans, buff, 10);
|
{
|
||||||
pthread_mutex_unlock(&active_mi->rli.data_lock);
|
pthread_mutex_lock(&active_mi->rli.data_lock);
|
||||||
|
end= int10_to_str(active_mi->rli.retried_trans, buff, 10);
|
||||||
|
pthread_mutex_unlock(&active_mi->rli.data_lock);
|
||||||
|
}
|
||||||
pthread_mutex_unlock(&LOCK_active_mi);
|
pthread_mutex_unlock(&LOCK_active_mi);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user