summaryrefslogtreecommitdiff
path: root/sql/slave.cc
diff options
context:
space:
mode:
authorSachin <sachin.setiya@mariadb.com>2020-03-10 21:17:34 +0530
committerSachin <sachin.setiya@mariadb.com>2020-03-10 21:17:34 +0530
commitbbe641664d35ca0d88e6cd2f34870e0d1b9b68c0 (patch)
tree97f0b690481de9560db5647243204301fe72fc37 /sql/slave.cc
parentbb91facb8fcc834554d79dd34814bde077ba89df (diff)
downloadmariadb-git-bb-10.5-oalter.tar.gz
States reducedbb-10.5-oalter
Diffstat (limited to 'sql/slave.cc')
-rw-r--r--sql/slave.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/sql/slave.cc b/sql/slave.cc
index 73a793e463f..10e4189c3b3 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -5763,14 +5763,18 @@ err_during_init:
List_iterator<start_alter_info> info_iterator(mi->start_alter_list);
while ((info= info_iterator++))
{
- info->state= start_alter_state::SHUTDOWN_RECIEVED;
+ mysql_mutex_lock(&mi->start_alter_lock);
+ info->state= start_alter_state::ROLLBACK_ALTER;
mysql_cond_broadcast(&info->start_alter_cond);
+ mysql_mutex_unlock(&mi->start_alter_lock);
mysql_mutex_lock(&mi->start_alter_lock);
- while(info->state == start_alter_state::SHUTDOWN_RECIEVED)
+ while(info->state == start_alter_state::ROLLBACK_ALTER)
mysql_cond_wait(&info->start_alter_cond, &mi->start_alter_lock);
- DBUG_ASSERT(info->state == start_alter_state::SHUTDOWN_COMPLETED);
- info_iterator.remove();
mysql_mutex_unlock(&mi->start_alter_lock);
+ DBUG_ASSERT(info->state == start_alter_state::COMMITTED);
+ info_iterator.remove();
+ mysql_cond_destroy(&info->start_alter_cond);
+ my_free(info);
}
/* When master_pos_wait() wakes up it will check this and terminate */
rli->slave_running= MYSQL_SLAVE_NOT_RUN;