From c287873795debc6c7939f6425ee41348e4a30690 Mon Sep 17 00:00:00 2001 From: Kristian Nielsen Date: Fri, 23 Jan 2015 13:56:46 +0100 Subject: [PATCH] MDEV-7352: main.kill_processlist-6619 fails sporadically in buildbot After fix of MDEV-6728, the KILL signal is reset at the start of query execution. This means that in this test case, we need to wait for the to-be-killed query to have started; otherwise the kill signal can be lost, causing the test case to fail. --- mysql-test/r/kill_processlist-6619.result | 4 +++- mysql-test/t/kill_processlist-6619.test | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/kill_processlist-6619.result b/mysql-test/r/kill_processlist-6619.result index 8cb9fe7270c..7dd42790cc7 100644 --- a/mysql-test/r/kill_processlist-6619.result +++ b/mysql-test/r/kill_processlist-6619.result @@ -3,13 +3,15 @@ SHOW PROCESSLIST; Id User Host db Command Time State Info Progress # root # test Sleep # # NULL 0.000 # root # test Query # # SHOW PROCESSLIST 0.000 -SET DEBUG_SYNC='before_execute_sql_command WAIT_FOR go'; +SET DEBUG_SYNC='before_execute_sql_command SIGNAL ready WAIT_FOR go'; SHOW PROCESSLIST; connection default; +SET DEBUG_SYNC='now WAIT_FOR ready'; KILL QUERY con_id; SET DEBUG_SYNC='now SIGNAL go'; connection con1; ERROR 70100: Query execution was interrupted +SET DEBUG_SYNC='reset'; SHOW PROCESSLIST; Id User Host db Command Time State Info Progress # root # test Sleep # # NULL 0.000 diff --git a/mysql-test/t/kill_processlist-6619.test b/mysql-test/t/kill_processlist-6619.test index 472d2d57fb2..95af83be56d 100644 --- a/mysql-test/t/kill_processlist-6619.test +++ b/mysql-test/t/kill_processlist-6619.test @@ -9,14 +9,19 @@ --let $con_id = `SELECT CONNECTION_ID()` --replace_column 1 # 3 # 6 # 7 # SHOW PROCESSLIST; -SET DEBUG_SYNC='before_execute_sql_command WAIT_FOR go'; +SET DEBUG_SYNC='before_execute_sql_command SIGNAL ready WAIT_FOR go'; send SHOW PROCESSLIST; --connection default +# We must wait for the SHOW PROCESSLIST query to have started before sending +# the kill. Otherwise, the KILL may be lost since it is reset at the start of +# query execution. +SET DEBUG_SYNC='now WAIT_FOR ready'; --replace_result $con_id con_id eval KILL QUERY $con_id; SET DEBUG_SYNC='now SIGNAL go'; --connection con1 --error ER_QUERY_INTERRUPTED reap; +SET DEBUG_SYNC='reset'; --replace_column 1 # 3 # 6 # 7 # SHOW PROCESSLIST;