diff --git a/plugin/semisync/semisync_master.cc b/plugin/semisync/semisync_master.cc index b67d7b8add4..0c84519fac0 100644 --- a/plugin/semisync/semisync_master.cc +++ b/plugin/semisync/semisync_master.cc @@ -629,7 +629,7 @@ int ReplSemiSyncMaster::commitTrx(const char* trx_wait_binlog_name, (int)is_on()); } - while (is_on()) + while (is_on() && !thd_killed(NULL)) { if (reply_file_name_inited_) { @@ -741,7 +741,8 @@ int ReplSemiSyncMaster::commitTrx(const char* trx_wait_binlog_name, At this point, the binlog file and position of this transaction must have been removed from ActiveTranx. */ - assert(!active_tranxs_->is_tranx_end_pos(trx_wait_binlog_name, + assert(thd_killed(NULL) || + !active_tranxs_->is_tranx_end_pos(trx_wait_binlog_name, trx_wait_binlog_pos)); l_end: