Commit c2878737 authored by Kristian Nielsen's avatar Kristian Nielsen

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.
parent b0708133
...@@ -3,13 +3,15 @@ SHOW PROCESSLIST; ...@@ -3,13 +3,15 @@ SHOW PROCESSLIST;
Id User Host db Command Time State Info Progress Id User Host db Command Time State Info Progress
# root # test Sleep # # NULL 0.000 # root # test Sleep # # NULL 0.000
# root # test Query # # SHOW PROCESSLIST 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; SHOW PROCESSLIST;
connection default; connection default;
SET DEBUG_SYNC='now WAIT_FOR ready';
KILL QUERY con_id; KILL QUERY con_id;
SET DEBUG_SYNC='now SIGNAL go'; SET DEBUG_SYNC='now SIGNAL go';
connection con1; connection con1;
ERROR 70100: Query execution was interrupted ERROR 70100: Query execution was interrupted
SET DEBUG_SYNC='reset';
SHOW PROCESSLIST; SHOW PROCESSLIST;
Id User Host db Command Time State Info Progress Id User Host db Command Time State Info Progress
# root # test Sleep # # NULL 0.000 # root # test Sleep # # NULL 0.000
......
...@@ -9,14 +9,19 @@ ...@@ -9,14 +9,19 @@
--let $con_id = `SELECT CONNECTION_ID()` --let $con_id = `SELECT CONNECTION_ID()`
--replace_column 1 # 3 # 6 # 7 # --replace_column 1 # 3 # 6 # 7 #
SHOW PROCESSLIST; 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; send SHOW PROCESSLIST;
--connection default --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 --replace_result $con_id con_id
eval KILL QUERY $con_id; eval KILL QUERY $con_id;
SET DEBUG_SYNC='now SIGNAL go'; SET DEBUG_SYNC='now SIGNAL go';
--connection con1 --connection con1
--error ER_QUERY_INTERRUPTED --error ER_QUERY_INTERRUPTED
reap; reap;
SET DEBUG_SYNC='reset';
--replace_column 1 # 3 # 6 # 7 # --replace_column 1 # 3 # 6 # 7 #
SHOW PROCESSLIST; SHOW PROCESSLIST;
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment