1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

BUG#37145 Killing a statement doing DDL may log binlog event with error code 1053

When the thread executing a DDL was killed after finished its
execution but before writing the binlog event, the error code in
the binlog event could be set wrongly to ER_SERVER_SHUTDOWN or
ER_QUERY_INTERRUPTED.

This patch fixed the problem by ignoring the kill status when
constructing the event for DDL statements.

This patch also included the following changes in order to
provide the test case.

 1) modified mysqltest to support variable for connection command

 2) modified mysql-test-run.pl, add new variable MYSQL_SLAVE to
    run mysql client against the slave mysqld.
This commit is contained in:
He Zhenxing
2009-03-27 13:19:50 +08:00
parent f606cfeae3
commit 51a9116638
26 changed files with 674 additions and 63 deletions

View File

@ -451,6 +451,13 @@ MY_LOCALE *my_locale_by_number(uint number);
The client tells the server to block with SELECT GET_LOCK()
and unblocks it with SELECT RELEASE_LOCK(). Used for debugging difficult
concurrency problems
NOTE: This will release the user lock that the thread currently
locked, which can cause problem if users want to use user locks for
other purposes. In order to overcome this problem, it's adviced to
wrap the call to DBUG_SYNC_POINT() within the DBUG_EXECUTE_IF(), so
that it will only be activated if the given keyword is included in
the 'debug' option, and will not fiddle user locks otherwise.
*/
#define DBUG_SYNC_POINT(lock_name,lock_timeout) \
debug_sync_point(lock_name,lock_timeout)