Fix flaky test 02503_insert_storage_snapshot

This commit is contained in:
alesapin 2023-01-03 16:50:54 +01:00
parent 16fca48f5b
commit 48fe25aae7
2 changed files with 17 additions and 2 deletions

View File

@ -1 +1 @@
all_1_1_0 1 1
"all_1_1_0",1,1

View File

@ -1,4 +1,5 @@
#!/usr/bin/env bash
# Tags: no-parallel
set -e
@ -13,7 +14,21 @@ $CLICKHOUSE_CLIENT -q "INSERT INTO t_insert_storage_snapshot VALUES (1)"
query_id="$CLICKHOUSE_DATABASE-$RANDOM"
$CLICKHOUSE_CLIENT --query_id $query_id -q "INSERT INTO t_insert_storage_snapshot SELECT sleep(1) FROM numbers(1000) SETTINGS max_block_size = 1" 2>/dev/null &
$CLICKHOUSE_CLIENT -q "SELECT name, active, refcount FROM system.parts WHERE database = '$CLICKHOUSE_DATABASE' AND table = 't_insert_storage_snapshot'"
counter=0 retries=60
# There can be different background processes which can hold the references to parts
# for a short period of time. To avoid flakyness we check that refcount became 1 at least once during long INSERT query.
# It proves that the INSERT query doesn't hold redundant references to parts.
while [[ $counter -lt $retries ]]; do
query_result=$($CLICKHOUSE_CLIENT -q "SELECT name, active, refcount FROM system.parts WHERE database = '$CLICKHOUSE_DATABASE' AND table = 't_insert_storage_snapshot' FORMAT CSV")
if [ "$query_result" == '"all_1_1_0",1,1' ]; then
echo "$query_result"
break;
fi
sleep 0.1
((++counter))
done
$CLICKHOUSE_CLIENT -q "KILL QUERY WHERE query_id = '$query_id' SYNC" >/dev/null
wait