Merge pull request #26894 from qoega/flacky-backward-compatibility

Better integration tests
This commit is contained in:
Ilya Yatsishin 2021-07-28 18:52:57 +03:00 committed by GitHub
commit ea0514a955
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 18 deletions

View File

@ -2,7 +2,7 @@ import pytest
from helpers.cluster import ClickHouseCluster
cluster = ClickHouseCluster(__file__)
cluster = ClickHouseCluster(__file__, name="detach")
# Version 21.6.3.14 has incompatible partition id for tables with UUID in partition key.
node_21_6 = cluster.add_instance('node_21_6', image='yandex/clickhouse-server', tag='21.6.3.14', stay_alive=True, with_installed_binary=True)

View File

@ -23,27 +23,27 @@ node5 = cluster.add_instance('node5', macros={'cluster': 'test3'}, main_configs=
all_nodes = [node1, node2, node3, node4, node5]
def prepare_cluster():
for node in all_nodes:
node.query("DROP TABLE IF EXISTS test_mutations SYNC")
for node in [node1, node2, node3, node4]:
node.query("""
CREATE TABLE test_mutations(d Date, x UInt32, i UInt32)
ENGINE ReplicatedMergeTree('/clickhouse/{cluster}/tables/test/test_mutations', '{instance}')
ORDER BY x
PARTITION BY toYYYYMM(d)
SETTINGS number_of_free_entries_in_pool_to_execute_mutation=0
""")
node5.query(
"CREATE TABLE test_mutations(d Date, x UInt32, i UInt32) ENGINE MergeTree() ORDER BY x PARTITION BY toYYYYMM(d)")
@pytest.fixture(scope="module")
def started_cluster():
try:
cluster.start()
for node in all_nodes:
node.query("DROP TABLE IF EXISTS test_mutations")
for node in [node1, node2, node3, node4]:
node.query("""
CREATE TABLE test_mutations(d Date, x UInt32, i UInt32)
ENGINE ReplicatedMergeTree('/clickhouse/{cluster}/tables/test/test_mutations', '{instance}')
ORDER BY x
PARTITION BY toYYYYMM(d)
SETTINGS number_of_free_entries_in_pool_to_execute_mutation=0
""")
node5.query(
"CREATE TABLE test_mutations(d Date, x UInt32, i UInt32) ENGINE MergeTree() ORDER BY x PARTITION BY toYYYYMM(d)")
yield cluster
finally:
@ -165,6 +165,8 @@ def wait_for_mutations(nodes, number_of_mutations):
def test_mutations(started_cluster):
prepare_cluster()
DURATION_SECONDS = 30
nodes = [node1, node2]
@ -212,6 +214,8 @@ def test_mutations(started_cluster):
]
)
def test_mutations_dont_prevent_merges(started_cluster, nodes):
prepare_cluster()
for year in range(2000, 2016):
rows = ''
date_str = '{}-01-{}'.format(year, random.randint(1, 10))

View File

@ -86,7 +86,7 @@ def test_upgrade_while_mutation(start_cluster):
node3.restart_with_latest_version(signal=9)
# checks for readonly
exec_query_with_retry(node3, "OPTIMIZE TABLE mt1", retry_count=60)
exec_query_with_retry(node3, "OPTIMIZE TABLE mt1", sleep_time=5, retry_count=60)
node3.query("ALTER TABLE mt1 DELETE WHERE id > 100000", settings={"mutations_sync": "2"})
# will delete nothing, but previous async mutation will finish with this query