Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
588568f3
C
ClickHouse
项目概览
2dot5
/
ClickHouse
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
ClickHouse
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
588568f3
编写于
6月 22, 2020
作者:
A
alesapin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Disable MySQL tests under tsan
上级
d6abf45a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
47 addition
and
1 deletion
+47
-1
tests/integration/helpers/cluster.py
tests/integration/helpers/cluster.py
+4
-0
tests/integration/test_dictionaries_all_layouts_and_sources/test.py
...gration/test_dictionaries_all_layouts_and_sources/test.py
+43
-1
未找到文件。
tests/integration/helpers/cluster.py
浏览文件 @
588568f3
...
...
@@ -732,6 +732,10 @@ class ClickHouseInstance:
self
.
ipv6_address
=
ipv6_address
self
.
with_installed_binary
=
with_installed_binary
def
is_built_with_thread_sanitizer
(
self
):
build_opts
=
self
.
query
(
"SELECT value FROM system.build_options WHERE name = 'CXX_FLAGS'"
)
return
"-fsanitize=thread"
in
build_opts
# Connects to the instance via clickhouse-client, sends a query (1st argument) and returns the answer
def
query
(
self
,
sql
,
stdin
=
None
,
timeout
=
None
,
settings
=
None
,
user
=
None
,
password
=
None
,
ignore_error
=
False
):
return
self
.
client
.
query
(
sql
,
stdin
,
timeout
,
settings
,
user
,
password
,
ignore_error
)
...
...
tests/integration/test_dictionaries_all_layouts_and_sources/test.py
浏览文件 @
588568f3
...
...
@@ -153,6 +153,7 @@ def get_dict(source, layout, fields, suffix_name=''):
dictionary
.
generate_config
()
return
dictionary
def
setup_module
(
module
):
global
DICTIONARIES
global
cluster
...
...
@@ -210,8 +211,42 @@ def get_dictionaries(fold, total_folds, all_dicts):
return
all_dicts
[
fold
*
chunk_len
:
(
fold
+
1
)
*
chunk_len
]
def
remove_mysql_dicts
():
"""
We have false-positive race condition in our openSSL version.
MySQL dictionary use OpenSSL, so to prevent known failure we
disable tests for these dictionaries.
Read of size 8 at 0x7b3c00005dd0 by thread T61 (mutexes: write M1010349240585225536):
#0 EVP_CIPHER_mode <null> (clickhouse+0x13b2223b)
#1 do_ssl3_write <null> (clickhouse+0x13a137bc)
#2 ssl3_write_bytes <null> (clickhouse+0x13a12387)
#3 ssl3_write <null> (clickhouse+0x139db0e6)
#4 ssl_write_internal <null> (clickhouse+0x139eddce)
#5 SSL_write <null> (clickhouse+0x139edf20)
#6 ma_tls_write <null> (clickhouse+0x139c7557)
#7 ma_pvio_tls_write <null> (clickhouse+0x139a8f59)
#8 ma_pvio_write <null> (clickhouse+0x139a8488)
#9 ma_net_real_write <null> (clickhouse+0x139a4e2c)
#10 ma_net_write_command <null> (clickhouse+0x139a546d)
#11 mthd_my_send_cmd <null> (clickhouse+0x13992546)
#12 mysql_close_slow_part <null> (clickhouse+0x13999afd)
#13 mysql_close <null> (clickhouse+0x13999071)
#14 mysqlxx::Connection::~Connection() <null> (clickhouse+0x1370f814)
#15 mysqlxx::Pool::~Pool() <null> (clickhouse+0x13715a7b)
TODO remove this when open ssl will be fixed or thread sanitizer will be suppressed
"""
global
DICTIONARIES
DICTIONARIES
=
[
d
for
d
in
DICTIONARIES
if
not
d
.
name
.
startswith
(
"MySQL"
)]
@
pytest
.
mark
.
parametrize
(
"fold"
,
list
(
range
(
10
)))
def
test_simple_dictionaries
(
started_cluster
,
fold
):
if
node
.
is_built_with_thread_sanitizer
():
remove_mysql_dicts
()
fields
=
FIELDS
[
"simple"
]
values
=
VALUES
[
"simple"
]
data
=
[
Row
(
fields
,
vals
)
for
vals
in
values
]
...
...
@@ -259,6 +294,10 @@ def test_simple_dictionaries(started_cluster, fold):
@
pytest
.
mark
.
parametrize
(
"fold"
,
list
(
range
(
10
)))
def
test_complex_dictionaries
(
started_cluster
,
fold
):
if
node
.
is_built_with_thread_sanitizer
():
remove_mysql_dicts
()
fields
=
FIELDS
[
"complex"
]
values
=
VALUES
[
"complex"
]
data
=
[
Row
(
fields
,
vals
)
for
vals
in
values
]
...
...
@@ -292,6 +331,9 @@ def test_complex_dictionaries(started_cluster, fold):
@
pytest
.
mark
.
parametrize
(
"fold"
,
list
(
range
(
10
)))
def
test_ranged_dictionaries
(
started_cluster
,
fold
):
if
node
.
is_built_with_thread_sanitizer
():
remove_mysql_dicts
()
fields
=
FIELDS
[
"ranged"
]
values
=
VALUES
[
"ranged"
]
data
=
[
Row
(
fields
,
vals
)
for
vals
in
values
]
...
...
@@ -380,7 +422,7 @@ def test_key_value_complex_dictionaries(started_cluster, fold):
values
=
VALUES
[
"complex"
]
data
=
[
Row
(
fields
,
vals
)
for
vals
in
values
]
all_complex_dicts
=
[
d
for
d
in
DICTIONARIES
if
d
.
structure
.
layout
.
layout_type
==
"complex"
]
all_complex_dicts
=
[
d
for
d
in
DICTIONARIES
_KV
if
d
.
structure
.
layout
.
layout_type
==
"complex"
]
complex_dicts
=
get_dictionaries
(
fold
,
10
,
all_complex_dicts
)
for
dct
in
complex_dicts
:
dct
.
load_data
(
data
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录