diff --git a/src/Core/Settings.h b/src/Core/Settings.h index cf7bda7d1a1..5b2f603e915 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -220,8 +220,8 @@ class IColumn; M(Milliseconds, stream_poll_timeout_ms, 500, "Timeout for polling data from/to streaming storages.", 0) \ \ /** Settings for testing hedged requests */ \ - M(Int64, sleep_in_send_tables_status, 0, "Time to sleep in sending tables status response in TCPHandler", 0) \ - M(Int64, sleep_in_send_data, 0, "Time to sleep in sending data in TCPHandler", 0) \ + M(Milliseconds, sleep_in_send_tables_status_ms, 0, "Time to sleep in sending tables status response in TCPHandler", 0) \ + M(Milliseconds, sleep_in_send_data_ms, 0, "Time to sleep in sending data in TCPHandler", 0) \ \ M(Bool, insert_allow_materialized_columns, 0, "If setting is enabled, Allow materialized columns in INSERT.", 0) \ M(Seconds, http_connection_timeout, DEFAULT_HTTP_READ_BUFFER_CONNECTION_TIMEOUT, "HTTP connection timeout.", 0) \ diff --git a/src/Server/TCPHandler.cpp b/src/Server/TCPHandler.cpp index 5765c3ec43e..e00a8f01c3e 100644 --- a/src/Server/TCPHandler.cpp +++ b/src/Server/TCPHandler.cpp @@ -722,11 +722,10 @@ void TCPHandler::processTablesStatusRequest() /// For testing hedged requests const Settings & settings = query_context->getSettingsRef(); - if (settings.sleep_in_send_tables_status) + if (settings.sleep_in_send_tables_status_ms.totalMilliseconds()) { out->next(); - std::chrono::seconds sec(settings.sleep_in_send_tables_status); - std::this_thread::sleep_for(sec); + std::this_thread::sleep_for(settings.sleep_in_send_tables_status_ms); } response.write(*out, client_tcp_protocol_version); @@ -1415,11 +1414,10 @@ void TCPHandler::sendData(const Block & block) /// For testing hedged requests const Settings & settings = query_context->getSettingsRef(); - if (block.rows() > 0 && settings.sleep_in_send_data) + if (block.rows() > 0 && settings.sleep_in_send_data_ms.totalMilliseconds()) { out->next(); - std::chrono::seconds sec(settings.sleep_in_send_data); - std::this_thread::sleep_for(sec); + std::this_thread::sleep_for(settings.sleep_in_send_data_ms); } state.block_out->write(block); diff --git a/tests/integration/test_hedged_requests/test.py b/tests/integration/test_hedged_requests/test.py index fbb8e20c450..a1693206ecc 100644 --- a/tests/integration/test_hedged_requests/test.py +++ b/tests/integration/test_hedged_requests/test.py @@ -15,28 +15,30 @@ NODES = {'node_' + str(i): None for i in (1, 2, 3)} NODES['node'] = None -sleep_time = 30 +# Sleep time in milliseconds. +sleep_time = 30000 @pytest.fixture(scope="module") def started_cluster(): NODES['node'] = cluster.add_instance( - 'node', with_zookeeper=True, stay_alive=True, main_configs=['configs/remote_servers.xml'], user_configs=['configs/users.xml']) + 'node', stay_alive=True, main_configs=['configs/remote_servers.xml'], user_configs=['configs/users.xml']) for name in NODES: if name != 'node': - NODES[name] = cluster.add_instance(name, with_zookeeper=True, user_configs=['configs/users1.xml']) + NODES[name] = cluster.add_instance(name, user_configs=['configs/users1.xml']) try: cluster.start() for node_id, node in list(NODES.items()): - node.query('''CREATE TABLE replicated (id UInt32, date Date) ENGINE = - ReplicatedMergeTree('/clickhouse/tables/replicated', '{}') ORDER BY id PARTITION BY toYYYYMM(date)'''.format(node_id)) + node.query('''CREATE TABLE test_hedged (id UInt32, date Date) ENGINE = + MergeTree() ORDER BY id PARTITION BY toYYYYMM(date)''') + + node.query("INSERT INTO test_hedged select number, toDate(number) from numbers(100);") + NODES['node'].query('''CREATE TABLE distributed (id UInt32, date Date) ENGINE = - Distributed('test_cluster', 'default', 'replicated')''') - - NODES['node'].query("INSERT INTO distributed select number, toDate(number) from numbers(100);") + Distributed('test_cluster', 'default', 'test_hedged')''') yield cluster @@ -47,8 +49,8 @@ def started_cluster(): config = ''' - {sleep_in_send_tables_status} - {sleep_in_send_data} + {sleep_in_send_tables_status_ms} + {sleep_in_send_data_ms} ''' @@ -70,12 +72,12 @@ def check_query(expected_replica, receive_timeout=300): assert query_time < 10 -def check_settings(node_name, sleep_in_send_tables_status, sleep_in_send_data): +def check_settings(node_name, sleep_in_send_tables_status_ms, sleep_in_send_data_ms): attempts = 0 while attempts < 1000: - setting1 = NODES[node_name].http_query("SELECT value FROM system.settings WHERE name='sleep_in_send_tables_status'") - setting2 = NODES[node_name].http_query("SELECT value FROM system.settings WHERE name='sleep_in_send_data'") - if int(setting1) == sleep_in_send_tables_status and int(setting2) == sleep_in_send_data: + setting1 = NODES[node_name].http_query("SELECT value FROM system.settings WHERE name='sleep_in_send_tables_status_ms'") + setting2 = NODES[node_name].http_query("SELECT value FROM system.settings WHERE name='sleep_in_send_data_ms'") + if int(setting1) == sleep_in_send_tables_status_ms and int(setting2) == sleep_in_send_data_ms: return time.sleep(0.1) attempts += 1 @@ -88,7 +90,29 @@ def check_changing_replica_events(expected_count): assert int(result) == expected_count +def update_configs(node_1_sleep_in_send_tables_status=0, node_1_sleep_in_send_data=0, + node_2_sleep_in_send_tables_status=0, node_2_sleep_in_send_data=0, + node_3_sleep_in_send_tables_status=0, node_3_sleep_in_send_data=0): + NODES['node_1'].replace_config( + '/etc/clickhouse-server/users.d/users1.xml', + config.format(sleep_in_send_tables_status_ms=node_1_sleep_in_send_tables_status, sleep_in_send_data_ms=node_1_sleep_in_send_data)) + + NODES['node_2'].replace_config( + '/etc/clickhouse-server/users.d/users1.xml', + config.format(sleep_in_send_tables_status_ms=node_2_sleep_in_send_tables_status, sleep_in_send_data_ms=node_2_sleep_in_send_data)) + + NODES['node_3'].replace_config( + '/etc/clickhouse-server/users.d/users1.xml', + config.format(sleep_in_send_tables_status_ms=node_3_sleep_in_send_tables_status, sleep_in_send_data_ms=node_3_sleep_in_send_data)) + + check_settings('node_1', node_1_sleep_in_send_tables_status, node_1_sleep_in_send_data) + check_settings('node_2', node_2_sleep_in_send_tables_status, node_2_sleep_in_send_data) + check_settings('node_3', node_3_sleep_in_send_tables_status, node_3_sleep_in_send_data) + + def test_stuck_replica(started_cluster): + update_configs() + cluster.pause_container("node_1") check_query(expected_replica="node_2") @@ -111,6 +135,8 @@ def test_stuck_replica(started_cluster): def test_long_query(started_cluster): + update_configs() + # Restart to reset pool states. NODES['node'].restart_clickhouse() @@ -121,169 +147,54 @@ def test_long_query(started_cluster): def test_send_table_status_sleep(started_cluster): - NODES['node_1'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=sleep_time, sleep_in_send_data=0)) - - NODES['node_2'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=0)) - - NODES['node_3'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=0)) - - check_settings('node_1', sleep_time, 0) - check_settings('node_2', 0, 0) - check_settings('node_3', 0, 0) - + update_configs(node_1_sleep_in_send_tables_status=sleep_time) check_query(expected_replica="node_2") check_changing_replica_events(1) def test_send_table_status_sleep2(started_cluster): - NODES['node_1'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=sleep_time, sleep_in_send_data=0)) - - NODES['node_2'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=sleep_time, sleep_in_send_data=0)) - - NODES['node_3'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=0)) - - check_settings('node_1', sleep_time, 0) - check_settings('node_2', sleep_time, 0) - check_settings('node_3', 0, 0) - + update_configs(node_1_sleep_in_send_tables_status=sleep_time, node_2_sleep_in_send_tables_status=sleep_time) check_query(expected_replica="node_3") check_changing_replica_events(2) def test_send_data(started_cluster): - NODES['node_1'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=sleep_time)) - - NODES['node_2'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=0)) - - NODES['node_3'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=0)) - - check_settings('node_1', 0, sleep_time) - check_settings('node_2', 0, 0) - check_settings('node_3', 0, 0) - + update_configs(node_1_sleep_in_send_data=sleep_time) check_query(expected_replica="node_2") check_changing_replica_events(1) def test_send_data2(started_cluster): - NODES['node_1'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=sleep_time)) - - NODES['node_2'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=sleep_time)) - - NODES['node_3'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=0)) - - check_settings('node_1', 0, sleep_time) - check_settings('node_2', 0, sleep_time) - check_settings('node_3', 0, 0) - + update_configs(node_1_sleep_in_send_data=sleep_time, node_2_sleep_in_send_data=sleep_time) check_query(expected_replica="node_3") check_changing_replica_events(2) def test_combination1(started_cluster): - NODES['node_1'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=sleep_time, sleep_in_send_data=0)) - - NODES['node_2'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=sleep_time)) - - NODES['node_3'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=0)) - - check_settings('node_1', sleep_time, 0) - check_settings('node_2', 0, sleep_time) - check_settings('node_3', 0, 0) - + update_configs(node_1_sleep_in_send_tables_status=sleep_time, node_2_sleep_in_send_data=sleep_time) check_query(expected_replica="node_3") check_changing_replica_events(2) def test_combination2(started_cluster): - NODES['node_1'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=sleep_time)) - - NODES['node_2'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=sleep_time, sleep_in_send_data=0)) - - NODES['node_3'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=0)) - - check_settings('node_1', 0, sleep_time) - check_settings('node_2', sleep_time, 0) - check_settings('node_3', 0, 0) - + update_configs(node_1_sleep_in_send_data=sleep_time, node_2_sleep_in_send_tables_status=sleep_time) check_query(expected_replica="node_3") check_changing_replica_events(2) def test_combination3(started_cluster): - NODES['node_1'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=sleep_time)) - - NODES['node_2'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=1, sleep_in_send_data=0)) - - NODES['node_3'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=sleep_time)) - - check_settings('node_1', 0, sleep_time) - check_settings('node_2', 1, 0) - check_settings('node_3', 0, sleep_time) - + update_configs(node_1_sleep_in_send_data=sleep_time, + node_2_sleep_in_send_tables_status=1000, + node_3_sleep_in_send_data=sleep_time) check_query(expected_replica="node_2") check_changing_replica_events(3) def test_combination4(started_cluster): - NODES['node_1'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=1, sleep_in_send_data=sleep_time)) - - NODES['node_2'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=1, sleep_in_send_data=0)) - - NODES['node_3'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=2, sleep_in_send_data=0)) - - check_settings('node_1', 1, sleep_time) - check_settings('node_2', 1, 0) - check_settings('node_3', 2, 0) - + update_configs(node_1_sleep_in_send_tables_status=1000, + node_1_sleep_in_send_data=sleep_time, + node_2_sleep_in_send_tables_status=1000, + node_3_sleep_in_send_tables_status=1000) check_query(expected_replica="node_2") check_changing_replica_events(4) @@ -291,22 +202,9 @@ def test_combination4(started_cluster): def test_receive_timeout1(started_cluster): # Check the situation when first two replicas get receive timeout # in establishing connection, but the third replica is ok. - NODES['node_1'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=3, sleep_in_send_data=0)) - - NODES['node_2'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=3, sleep_in_send_data=0)) - - NODES['node_3'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=1)) - - check_settings('node_1', 3, 0) - check_settings('node_2', 3, 0) - check_settings('node_3', 0, 1) - + update_configs(node_1_sleep_in_send_tables_status=3000, + node_2_sleep_in_send_tables_status=3000, + node_3_sleep_in_send_data=1000) check_query(expected_replica="node_3", receive_timeout=2) check_changing_replica_events(2) @@ -315,22 +213,9 @@ def test_receive_timeout2(started_cluster): # Check the situation when first replica get receive timeout # in packet receiving but there are replicas in process of # connection establishing. - NODES['node_1'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=4)) - - NODES['node_2'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=2, sleep_in_send_data=0)) - - NODES['node_3'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=2, sleep_in_send_data=0)) - - check_settings('node_1', 0, 4) - check_settings('node_2', 2, 0) - check_settings('node_3', 2, 0) - + update_configs(node_1_sleep_in_send_data=4000, + node_2_sleep_in_send_tables_status=2000, + node_3_sleep_in_send_tables_status=2000) check_query(expected_replica="node_2", receive_timeout=3) check_changing_replica_events(3) diff --git a/tests/integration/test_hedged_requests_parallel/test.py b/tests/integration/test_hedged_requests_parallel/test.py index 543d93f9989..33f70da00ca 100644 --- a/tests/integration/test_hedged_requests_parallel/test.py +++ b/tests/integration/test_hedged_requests_parallel/test.py @@ -14,29 +14,30 @@ cluster = ClickHouseCluster(__file__) NODES = {'node_' + str(i): None for i in (1, 2, 3, 4)} NODES['node'] = None -sleep_time = 30 +# Cleep time in milliseconds. +sleep_time = 30000 @pytest.fixture(scope="module") def started_cluster(): cluster = ClickHouseCluster(__file__) NODES['node'] = cluster.add_instance( - 'node', with_zookeeper=True, stay_alive=True, main_configs=['configs/remote_servers.xml'], user_configs=['configs/users.xml']) + 'node', stay_alive=True, main_configs=['configs/remote_servers.xml'], user_configs=['configs/users.xml']) for name in NODES: if name != 'node': - NODES[name] = cluster.add_instance(name, with_zookeeper=True, user_configs=['configs/users1.xml']) + NODES[name] = cluster.add_instance(name, user_configs=['configs/users1.xml']) try: cluster.start() for node_id, node in list(NODES.items()): - node.query('''CREATE TABLE replicated (id UInt32, date Date) ENGINE = - ReplicatedMergeTree('/clickhouse/tables/replicated', '{}') ORDER BY id PARTITION BY toYYYYMM(date)'''.format(node_id)) + node.query('''CREATE TABLE test_hedged (id UInt32, date Date) ENGINE = + MergeTree() ORDER BY id PARTITION BY toYYYYMM(date)''') + + node.query("INSERT INTO test_hedged SELECT number, toDateTime(number) FROM numbers(100)") NODES['node'].query('''CREATE TABLE distributed (id UInt32, date Date) ENGINE = - Distributed('test_cluster', 'default', 'replicated')''') - - NODES['node'].query("INSERT INTO distributed SELECT number, toDateTime(number) FROM numbers(100)") + Distributed('test_cluster', 'default', 'test_hedged')''') yield cluster @@ -47,8 +48,8 @@ def started_cluster(): config = ''' - {sleep_in_send_tables_status} - {sleep_in_send_data} + {sleep_in_send_tables_status_ms} + {sleep_in_send_data_ms} ''' @@ -72,12 +73,12 @@ def check_query(query=QUERY_1): assert query_time < 5 -def check_settings(node_name, sleep_in_send_tables_status, sleep_in_send_data): +def check_settings(node_name, sleep_in_send_tables_status_ms, sleep_in_send_data_ms): attempts = 0 while attempts < 1000: - setting1 = NODES[node_name].http_query("SELECT value FROM system.settings WHERE name='sleep_in_send_tables_status'") - setting2 = NODES[node_name].http_query("SELECT value FROM system.settings WHERE name='sleep_in_send_data'") - if int(setting1) == sleep_in_send_tables_status and int(setting2) == sleep_in_send_data: + setting1 = NODES[node_name].http_query("SELECT value FROM system.settings WHERE name='sleep_in_send_tables_status_ms'") + setting2 = NODES[node_name].http_query("SELECT value FROM system.settings WHERE name='sleep_in_send_data_ms'") + if int(setting1) == sleep_in_send_tables_status_ms and int(setting2) == sleep_in_send_data_ms: return time.sleep(0.1) attempts += 1 @@ -90,107 +91,64 @@ def check_changing_replica_events(expected_count): assert int(result) == expected_count -def test_send_table_status_sleep(started_cluster): +def update_configs(node_1_sleep_in_send_tables_status=0, node_1_sleep_in_send_data=0, + node_2_sleep_in_send_tables_status=0, node_2_sleep_in_send_data=0, + node_3_sleep_in_send_tables_status=0, node_3_sleep_in_send_data=0, + node_4_sleep_in_send_tables_status=0, node_4_sleep_in_send_data=0): NODES['node_1'].replace_config( '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=sleep_time, sleep_in_send_data=0)) + config.format(sleep_in_send_tables_status_ms=node_1_sleep_in_send_tables_status, sleep_in_send_data_ms=node_1_sleep_in_send_data)) NODES['node_2'].replace_config( '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=sleep_time, sleep_in_send_data=0)) - - check_settings('node_1', sleep_time, 0) - check_settings('node_2', sleep_time, 0) + config.format(sleep_in_send_tables_status_ms=node_2_sleep_in_send_tables_status, sleep_in_send_data_ms=node_2_sleep_in_send_data)) + NODES['node_3'].replace_config( + '/etc/clickhouse-server/users.d/users1.xml', + config.format(sleep_in_send_tables_status_ms=node_3_sleep_in_send_tables_status, sleep_in_send_data_ms=node_3_sleep_in_send_data)) + + NODES['node_4'].replace_config( + '/etc/clickhouse-server/users.d/users1.xml', + config.format(sleep_in_send_tables_status_ms=node_4_sleep_in_send_tables_status, sleep_in_send_data_ms=node_4_sleep_in_send_data)) + + check_settings('node_1', node_1_sleep_in_send_tables_status, node_1_sleep_in_send_data) + check_settings('node_2', node_2_sleep_in_send_tables_status, node_2_sleep_in_send_data) + check_settings('node_3', node_3_sleep_in_send_tables_status, node_3_sleep_in_send_data) + check_settings('node_4', node_4_sleep_in_send_tables_status, node_4_sleep_in_send_data) + + +def test_send_table_status_sleep(started_cluster): + update_configs(node_1_sleep_in_send_tables_status=sleep_time, node_2_sleep_in_send_tables_status=sleep_time) check_query() check_changing_replica_events(2) def test_send_data(started_cluster): - - NODES['node_1'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=sleep_time)) - - NODES['node_2'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=sleep_time)) - - check_settings('node_1', 0, sleep_time) - check_settings('node_2', 0, sleep_time) - + update_configs(node_1_sleep_in_send_data=sleep_time, node_2_sleep_in_send_data=sleep_time) check_query() check_changing_replica_events(2) def test_combination1(started_cluster): - NODES['node_1'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=1, sleep_in_send_data=0)) - - NODES['node_2'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=1, sleep_in_send_data=0)) - - NODES['node_3'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=sleep_time)) - - check_settings('node_1', 1, 0) - check_settings('node_2', 1, 0) - check_settings('node_3', 0, sleep_time) - + update_configs(node_1_sleep_in_send_tables_status=1000, + node_2_sleep_in_send_tables_status=1000, + node_3_sleep_in_send_data=sleep_time) check_query() check_changing_replica_events(3) def test_combination2(started_cluster): - NODES['node_1'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=sleep_time)) - - NODES['node_2'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=1, sleep_in_send_data=0)) - - NODES['node_3'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=sleep_time)) - - NODES['node_4'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=1, sleep_in_send_data=0)) - - - check_settings('node_1', 0, sleep_time) - check_settings('node_2', 1, 0) - check_settings('node_3', 0, sleep_time) - check_settings('node_4', 1, 0) - + update_configs(node_1_sleep_in_send_data=sleep_time, + node_2_sleep_in_send_tables_status=1000, + node_3_sleep_in_send_data=sleep_time, + node_4_sleep_in_send_tables_status=1000) check_query() check_changing_replica_events(4) def test_query_with_no_data_to_sample(started_cluster): - NODES['node_1'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=sleep_time)) - - NODES['node_2'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=sleep_time)) - - NODES['node_3'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=0)) - - NODES['node_4'].replace_config( - '/etc/clickhouse-server/users.d/users1.xml', - config.format(sleep_in_send_tables_status=0, sleep_in_send_data=0)) - check_settings('node_1', 0, sleep_time) - check_settings('node_2', 0, sleep_time) - check_settings('node_3', 0, 0) - check_settings('node_4', 0, 0) + update_configs(node_1_sleep_in_send_data=sleep_time, + node_2_sleep_in_send_data=sleep_time) # When there is no way to sample data, the whole query will be performed by # the first replica and the second replica will just send EndOfStream,