From 45b8a1387ad8e73f3b6cf1f01424f3fec4628991 Mon Sep 17 00:00:00 2001 From: alesapin Date: Mon, 25 Feb 2019 18:03:37 +0300 Subject: [PATCH] Fix flap on kill query test --- .../0_stateless/00417_kill_query.reference | 1 - .../queries/0_stateless/00417_kill_query.sh | 27 ----------------- ...00909_kill_not_initialized_query.reference | 1 + .../00909_kill_not_initialized_query.sh | 29 +++++++++++++++++++ 4 files changed, 30 insertions(+), 28 deletions(-) create mode 100644 dbms/tests/queries/0_stateless/00909_kill_not_initialized_query.reference create mode 100755 dbms/tests/queries/0_stateless/00909_kill_not_initialized_query.sh diff --git a/dbms/tests/queries/0_stateless/00417_kill_query.reference b/dbms/tests/queries/0_stateless/00417_kill_query.reference index 844ee1838c..7e89d9674d 100644 --- a/dbms/tests/queries/0_stateless/00417_kill_query.reference +++ b/dbms/tests/queries/0_stateless/00417_kill_query.reference @@ -1,3 +1,2 @@ SELECT sleep(1) FROM system.numbers LIMIT 4 SELECT sleep(1) FROM system.numbers LIMIT 5 -0 diff --git a/dbms/tests/queries/0_stateless/00417_kill_query.sh b/dbms/tests/queries/0_stateless/00417_kill_query.sh index 332d0e4591..04bce8df01 100755 --- a/dbms/tests/queries/0_stateless/00417_kill_query.sh +++ b/dbms/tests/queries/0_stateless/00417_kill_query.sh @@ -19,30 +19,3 @@ $CLICKHOUSE_CLIENT -q "KILL QUERY WHERE 0 ASYNC" $CLICKHOUSE_CLIENT -q "KILL QUERY WHERE 0 FORMAT TabSeparated" $CLICKHOUSE_CLIENT -q "KILL QUERY WHERE 0 SYNC FORMAT TabSeparated" $CLICKHOUSE_CLIENT -q "KILL QUERY WHERE 1 TEST" &>/dev/null - - -$CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS test.cannot_kill_query" -$CLICKHOUSE_CLIENT -q "CREATE TABLE test.cannot_kill_query (x UInt64) ENGINE = MergeTree ORDER BY x" &> /dev/null -$CLICKHOUSE_CLIENT -q "INSERT INTO test.cannot_kill_query SELECT * FROM numbers(10000000)" &> /dev/null - -query_for_pending="SELECT count() FROM test.cannot_kill_query WHERE NOT ignore(sleep(1)) SETTINGS max_threads=1" -$CLICKHOUSE_CLIENT -q "$query_for_pending" &>/dev/null & - -$CLICKHOUSE_CLIENT -q "ALTER TABLE test.cannot_kill_query MODIFY COLUMN x UInt64" &>/dev/null & - -query_to_kill="SELECT sum(1) FROM test.cannot_kill_query WHERE NOT ignore(sleep(1)) SETTINGS max_threads=1" -$CLICKHOUSE_CLIENT -q "$query_to_kill" &>/dev/null & - -sleep 1 # just to be sure that 'KILL ...' will be executed after 'SELECT ... WHERE NOT ignore(sleep(1))' - -$CLICKHOUSE_CLIENT -q "KILL QUERY WHERE query='$query_to_kill'" &>/dev/null & - -# 'SELECT ... WHERE NOT ignore(sleep(1))' is executing much longer than 3 secs, so this sleep doesn't fail test logic -# but guarantees to eliminate flaps, when SELECT from system.process is executed before KILL is completed -sleep 3 - -$CLICKHOUSE_CLIENT -q "SELECT count() FROM system.processes where query='$query_to_kill'" - -$CLICKHOUSE_CLIENT -q "KILL QUERY WHERE query='$query_for_pending'" &>/dev/null & # kill pending query - -$CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS test.cannot_kill_query" &>/dev/null diff --git a/dbms/tests/queries/0_stateless/00909_kill_not_initialized_query.reference b/dbms/tests/queries/0_stateless/00909_kill_not_initialized_query.reference new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/dbms/tests/queries/0_stateless/00909_kill_not_initialized_query.reference @@ -0,0 +1 @@ +0 diff --git a/dbms/tests/queries/0_stateless/00909_kill_not_initialized_query.sh b/dbms/tests/queries/0_stateless/00909_kill_not_initialized_query.sh new file mode 100755 index 0000000000..443b2463a3 --- /dev/null +++ b/dbms/tests/queries/0_stateless/00909_kill_not_initialized_query.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +set -e + +CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) +. $CURDIR/../shell_config.sh + + +$CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS test.cannot_kill_query" +$CLICKHOUSE_CLIENT -q "CREATE TABLE test.cannot_kill_query (x UInt64) ENGINE = MergeTree ORDER BY x" &> /dev/null +$CLICKHOUSE_CLIENT -q "INSERT INTO test.cannot_kill_query SELECT * FROM numbers(10000000)" &> /dev/null + +query_for_pending="SELECT count() FROM test.cannot_kill_query WHERE NOT ignore(sleep(1)) SETTINGS max_threads=1, max_block_size=1" +$CLICKHOUSE_CLIENT -q "$query_for_pending" &>/dev/null & + +$CLICKHOUSE_CLIENT -q "ALTER TABLE test.cannot_kill_query MODIFY COLUMN x UInt64" &>/dev/null & + +query_to_kill="SELECT sum(1) FROM test.cannot_kill_query WHERE NOT ignore(sleep(1)) SETTINGS max_threads=1" +$CLICKHOUSE_CLIENT -q "$query_to_kill" &>/dev/null & + +sleep 3 # just to be sure that 'KILL ...' will be executed after 'SELECT ... WHERE NOT ignore(sleep(1))' + +timeout 15 $CLICKHOUSE_CLIENT -q "KILL QUERY WHERE query='$query_to_kill' SYNC" &>/dev/null + +$CLICKHOUSE_CLIENT -q "SELECT count() FROM system.processes where query='$query_to_kill'" + +$CLICKHOUSE_CLIENT -q "KILL QUERY WHERE query='$query_for_pending'" &>/dev/null & # kill pending query + +$CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS test.cannot_kill_query" &>/dev/null -- GitLab