mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
Fix race condition in binlog dump thread during server shutdown.
There was missing a check for THD::killed after THD::enter_cond(). This could cause the binlog dump thread to miss the kill signal during server shutdown and hang until it was force-closed. Also fix a race in a test case that occasionally fails in Buildbot.
This commit is contained in:
@@ -2263,6 +2263,8 @@ impossible position";
|
||||
thd->enter_cond(log_cond, log_lock,
|
||||
"Master has sent all binlog to slave; "
|
||||
"waiting for binlog to be updated");
|
||||
if (thd->killed)
|
||||
break;
|
||||
ret= mysql_bin_log.wait_for_update_bin_log(thd, heartbeat_ts);
|
||||
DBUG_ASSERT(ret == 0 || (heartbeat_period != 0));
|
||||
if (ret == ETIMEDOUT || ret == ETIME)
|
||||
@@ -2294,7 +2296,7 @@ impossible position";
|
||||
{
|
||||
DBUG_PRINT("wait",("binary log received update or a broadcast signal caught"));
|
||||
}
|
||||
} while (signal_cnt == mysql_bin_log.signal_cnt && !thd->killed);
|
||||
} while (signal_cnt == mysql_bin_log.signal_cnt);
|
||||
thd->exit_cond(old_msg);
|
||||
}
|
||||
break;
|
||||
|
Reference in New Issue
Block a user