mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-23 16:12:01 +00:00
Merge pull request #68160 from azat/tests/02122_join_group_by_timeout
tests: fix 02122_join_group_by_timeout flakiness
This commit is contained in:
commit
d18a68f285
@ -1,4 +1,6 @@
|
|||||||
Code: 159
|
Code: 159
|
||||||
0
|
query_duration 1
|
||||||
|
0
|
||||||
|
query_duration 1
|
||||||
Code: 159
|
Code: 159
|
||||||
0
|
0
|
||||||
|
@ -1,27 +1,23 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Tags: no-debug
|
|
||||||
|
|
||||||
# no-debug: Query is canceled by timeout after max_execution_time,
|
|
||||||
# but sending an exception to the client may hang
|
|
||||||
# for more than MAX_PROCESS_WAIT seconds in a slow debug build,
|
|
||||||
# and test will fail.
|
|
||||||
|
|
||||||
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||||||
# shellcheck source=../shell_config.sh
|
# shellcheck source=../shell_config.sh
|
||||||
. "$CURDIR"/../shell_config.sh
|
. "$CURDIR"/../shell_config.sh
|
||||||
|
|
||||||
MAX_PROCESS_WAIT=5
|
TIMEOUT=5
|
||||||
|
IS_SANITIZER_OR_DEBUG=$($CLICKHOUSE_CLIENT -q "SELECT count() FROM system.warnings WHERE message like '%built with sanitizer%' or message like '%built in debug mode%'")
|
||||||
IS_SANITIZER=$($CLICKHOUSE_CLIENT -q "SELECT count() FROM system.warnings WHERE message like '%built with sanitizer%'")
|
if [ "$IS_SANITIZER_OR_DEBUG" -gt 0 ]; then
|
||||||
if [ "$IS_SANITIZER" -gt 0 ]; then
|
# Increase the timeout due to in debug/sanitizers build:
|
||||||
# Query may hang for more than 5 seconds, especially in tsan build
|
# - client is slow
|
||||||
MAX_PROCESS_WAIT=15
|
# - stacktrace resolving is slow
|
||||||
|
TIMEOUT=15
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# TCP CLIENT: As of today (02/12/21) uses PullingAsyncPipelineExecutor
|
# TCP CLIENT: As of today (02/12/21) uses PullingAsyncPipelineExecutor
|
||||||
### Should be cancelled after 1 second and return a 159 exception (timeout)
|
### Should be cancelled after 1 second and return a 159 exception (timeout)
|
||||||
timeout -s KILL $MAX_PROCESS_WAIT $CLICKHOUSE_CLIENT --max_execution_time 1 -q \
|
query_id=$(random_str 12)
|
||||||
"SELECT * FROM
|
$CLICKHOUSE_CLIENT --query_id "$query_id" --max_execution_time 1 -q "
|
||||||
|
SELECT * FROM
|
||||||
(
|
(
|
||||||
SELECT a.name as n
|
SELECT a.name as n
|
||||||
FROM
|
FROM
|
||||||
@ -34,28 +30,35 @@ timeout -s KILL $MAX_PROCESS_WAIT $CLICKHOUSE_CLIENT --max_execution_time 1 -q \
|
|||||||
GROUP BY n
|
GROUP BY n
|
||||||
)
|
)
|
||||||
LIMIT 20
|
LIMIT 20
|
||||||
FORMAT Null" 2>&1 | grep -o "Code: 159" | sort | uniq
|
FORMAT Null
|
||||||
|
" 2>&1 | grep -m1 -o "Code: 159"
|
||||||
|
$CLICKHOUSE_CLIENT -q "system flush logs"
|
||||||
|
${CLICKHOUSE_CURL} -q -sS "$CLICKHOUSE_URL" -d "select 'query_duration', round(query_duration_ms/1000) from system.query_log where current_database = '$CLICKHOUSE_DATABASE' and query_id = '$query_id' and type != 'QueryStart'"
|
||||||
|
|
||||||
|
|
||||||
### Should stop pulling data and return what has been generated already (return code 0)
|
### Should stop pulling data and return what has been generated already (return code 0)
|
||||||
timeout -s KILL $MAX_PROCESS_WAIT $CLICKHOUSE_CLIENT -q \
|
query_id=$(random_str 12)
|
||||||
"SELECT a.name as n
|
$CLICKHOUSE_CLIENT --query_id "$query_id" -q "
|
||||||
FROM
|
SELECT a.name as n
|
||||||
(
|
FROM
|
||||||
SELECT 'Name' as name, number FROM system.numbers LIMIT 2000000
|
(
|
||||||
) AS a,
|
SELECT 'Name' as name, number FROM system.numbers LIMIT 2000000
|
||||||
(
|
) AS a,
|
||||||
SELECT 'Name' as name2, number FROM system.numbers LIMIT 2000000
|
(
|
||||||
) as b
|
SELECT 'Name' as name2, number FROM system.numbers LIMIT 2000000
|
||||||
FORMAT Null
|
) as b
|
||||||
SETTINGS max_execution_time = 1, timeout_overflow_mode = 'break'
|
FORMAT Null
|
||||||
"
|
SETTINGS max_execution_time = 1, timeout_overflow_mode = 'break'
|
||||||
|
"
|
||||||
echo $?
|
echo $?
|
||||||
|
$CLICKHOUSE_CLIENT -q "system flush logs"
|
||||||
|
${CLICKHOUSE_CURL} -q -sS "$CLICKHOUSE_URL" -d "select 'query_duration', round(query_duration_ms/1000) from system.query_log where current_database = '$CLICKHOUSE_DATABASE' and query_id = '$query_id' and type != 'QueryStart'"
|
||||||
|
|
||||||
|
|
||||||
# HTTP CLIENT: As of today (02/12/21) uses PullingPipelineExecutor
|
# HTTP CLIENT: As of today (02/12/21) uses PullingPipelineExecutor
|
||||||
### Should be cancelled after 1 second and return a 159 exception (timeout)
|
### Should be cancelled after 1 second and return a 159 exception (timeout)
|
||||||
${CLICKHOUSE_CURL} -q --max-time $MAX_PROCESS_WAIT -sS "$CLICKHOUSE_URL&max_execution_time=1" -d \
|
${CLICKHOUSE_CURL} -q --max-time $TIMEOUT -sS "$CLICKHOUSE_URL&max_execution_time=1" -d "
|
||||||
"SELECT * FROM
|
SELECT * FROM
|
||||||
(
|
(
|
||||||
SELECT a.name as n
|
SELECT a.name as n
|
||||||
FROM
|
FROM
|
||||||
@ -68,12 +71,13 @@ ${CLICKHOUSE_CURL} -q --max-time $MAX_PROCESS_WAIT -sS "$CLICKHOUSE_URL&max_exec
|
|||||||
GROUP BY n
|
GROUP BY n
|
||||||
)
|
)
|
||||||
LIMIT 20
|
LIMIT 20
|
||||||
FORMAT Null" 2>&1 | grep -o "Code: 159" | sort | uniq
|
FORMAT Null
|
||||||
|
" 2>&1 | grep -o "Code: 159" | sort | uniq
|
||||||
|
|
||||||
|
|
||||||
### Should stop pulling data and return what has been generated already (return code 0)
|
### Should stop pulling data and return what has been generated already (return code 0)
|
||||||
${CLICKHOUSE_CURL} -q --max-time $MAX_PROCESS_WAIT -sS "$CLICKHOUSE_URL" -d \
|
${CLICKHOUSE_CURL} -q --max-time $TIMEOUT -sS "$CLICKHOUSE_URL" -d "
|
||||||
"SELECT a.name as n
|
SELECT a.name as n
|
||||||
FROM
|
FROM
|
||||||
(
|
(
|
||||||
SELECT 'Name' as name, number FROM system.numbers LIMIT 2000000
|
SELECT 'Name' as name, number FROM system.numbers LIMIT 2000000
|
||||||
@ -83,5 +87,5 @@ ${CLICKHOUSE_CURL} -q --max-time $MAX_PROCESS_WAIT -sS "$CLICKHOUSE_URL" -d \
|
|||||||
) as b
|
) as b
|
||||||
FORMAT Null
|
FORMAT Null
|
||||||
SETTINGS max_execution_time = 1, timeout_overflow_mode = 'break'
|
SETTINGS max_execution_time = 1, timeout_overflow_mode = 'break'
|
||||||
"
|
"
|
||||||
echo $?
|
echo $?
|
||||||
|
Loading…
Reference in New Issue
Block a user