Merge pull request #11717 from ClickHouse/fix-test-mysql-federated

Added retries to test_mysql_federated
This commit is contained in:
alexey-milovidov 2020-06-17 09:26:33 +03:00 committed by GitHub
commit 8eb811140a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -139,6 +139,9 @@ def test_mysql_client(mysql_client, server_address):
def test_mysql_federated(mysql_server, server_address):
# For some reason it occasionally fails without retries.
retries = 100
for try_num in range(retries):
node.query('''DROP DATABASE IF EXISTS mysql_federated''', settings={"password": "123"})
node.query('''CREATE DATABASE mysql_federated''', settings={"password": "123"})
node.query('''CREATE TABLE mysql_federated.test (col UInt32) ENGINE = Log''', settings={"password": "123"})
@ -147,14 +150,18 @@ def test_mysql_federated(mysql_server, server_address):
code, (stdout, stderr) = mysql_server.exec_run('''
mysql
-e "DROP SERVER IF EXISTS clickhouse;"
-e "CREATE SERVER clickhouse FOREIGN DATA WRAPPER mysql OPTIONS (USER 'default', PASSWORD '123', HOST '{host}', PORT {port}, DATABASE 'mysql_federated');"
-e "CREATE SERVER clickhouse FOREIGN DATA WRAPPER mysql
OPTIONS (USER 'default', PASSWORD '123', HOST '{host}', PORT {port}, DATABASE 'mysql_federated');"
-e "DROP DATABASE IF EXISTS mysql_federated;"
-e "CREATE DATABASE mysql_federated;"
'''.format(host=server_address, port=server_port), demux=True)
if code != 0:
print(stdout)
print(stderr)
print("stdout", stdout)
print("stderr", stderr)
if try_num + 1 < retries and "Can't connect to local MySQL server through socket" in stderr:
time.sleep(1)
continue
assert code == 0
code, (stdout, stderr) = mysql_server.exec_run('''
@ -163,6 +170,14 @@ def test_mysql_federated(mysql_server, server_address):
-e "SELECT * FROM mysql_federated.test ORDER BY col;"
'''.format(host=server_address, port=server_port), demux=True)
if code != 0:
print("stdout", stdout)
print("stderr", stderr)
if try_num + 1 < retries and "Can't connect to local MySQL server through socket" in stderr:
time.sleep(1)
continue
assert code == 0
assert stdout == '\n'.join(['col', '0', '1', '5', ''])
code, (stdout, stderr) = mysql_server.exec_run('''
@ -171,6 +186,14 @@ def test_mysql_federated(mysql_server, server_address):
-e "SELECT * FROM mysql_federated.test ORDER BY col;"
'''.format(host=server_address, port=server_port), demux=True)
if code != 0:
print("stdout", stdout)
print("stderr", stderr)
if try_num + 1 < retries and "Can't connect to local MySQL server through socket" in stderr:
time.sleep(1)
continue
assert code == 0
assert stdout == '\n'.join(['col', '0', '0', '1', '1', '5', '5', ''])