Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
loser646
TDengine
提交
d9e4587f
T
TDengine
项目概览
loser646
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d9e4587f
编写于
2月 06, 2021
作者:
L
liuyq-617
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TD-2842]<test>add valgrind in concurrent_inquiry
上级
e5820062
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
99 addition
and
16 deletion
+99
-16
Jenkinsfile
Jenkinsfile
+17
-16
tests/pytest/concurrent_inquiry.sh
tests/pytest/concurrent_inquiry.sh
+82
-0
未找到文件。
Jenkinsfile
浏览文件 @
d9e4587f
...
...
@@ -127,12 +127,12 @@ pipeline {
pre_test
()
timeout
(
time:
45
,
unit:
'MINUTES'
){
sh
'''
date
cd ${WKC}/tests
find pytest -name '*'sql|xargs rm -rf
./test-all.sh p2
date'''
sh
'''
date
cd ${WKC}/tests
find pytest -name '*'sql|xargs rm -rf
./test-all.sh p2
date'''
}
}
}
...
...
@@ -164,9 +164,7 @@ pipeline {
stage
(
'test_crash_gen_s3'
)
{
agent
{
label
"b2"
}
options
{
timeout
(
time:
45
,
unit:
'MINUTES'
)
}
steps
{
pre_test
()
catchError
(
buildResult:
'SUCCESS'
,
stageResult:
'FAILURE'
)
{
...
...
@@ -182,13 +180,16 @@ pipeline {
rm -rf /var/log/taos/*
./handle_crash_gen_val_log.sh
'''
}
sh
'''
date
cd ${WKC}/tests
./test-all.sh b2fq
date
'''
}
timeout
(
time:
45
,
unit:
'MINUTES'
){
sh
'''
date
cd ${WKC}/tests
./test-all.sh b2fq
date
'''
}
}
}
...
...
tests/pytest/concurrent_inquiry.sh
0 → 100755
浏览文件 @
d9e4587f
#!/bin/bash
# This is the script for us to try to cause the TDengine server or client to crash
#
# PREPARATION
#
# 1. Build an compile the TDengine source code that comes with this script, in the same directory tree
# 2. Please follow the direction in our README.md, and build TDengine in the build/ directory
# 3. Adjust the configuration file if needed under build/test/cfg/taos.cfg
# 4. Run the TDengine server instance: cd build; ./build/bin/taosd -c test/cfg
# 5. Make sure you have a working Python3 environment: run /usr/bin/python3 --version, and you should get 3.6 or above
# 6. Make sure you have the proper Python packages: # sudo apt install python3-setuptools python3-pip python3-distutils
#
# RUNNING THIS SCRIPT
#
# This script assumes the source code directory is intact, and that the binaries has been built in the
# build/ directory, as such, will will load the Python libraries in the directory tree, and also load
# the TDengine client shared library (so) file, in the build/directory, as evidenced in the env
# variables below.
#
# Running the script is simple, no parameter is needed (for now, but will change in the future).
#
# Happy Crashing...
# Due to the heavy path name assumptions/usage, let us require that the user be in the current directory
EXEC_DIR
=
`
dirname
"
$0
"
`
if
[[
$EXEC_DIR
!=
"."
]]
then
echo
"ERROR: Please execute
`
basename
"
$0
"
`
in its own directory (for now anyway, pardon the dust)"
exit
-1
fi
CURR_DIR
=
`
pwd
`
IN_TDINTERNAL
=
"community"
if
[[
"
$CURR_DIR
"
==
*
"
$IN_TDINTERNAL
"
*
]]
;
then
TAOS_DIR
=
$CURR_DIR
/../../..
TAOSD_DIR
=
`
find
$TAOS_DIR
-name
"taosd"
|grep bin|head
-n1
`
LIB_DIR
=
`
echo
$TAOSD_DIR
|rev|cut
-d
'/'
-f
3,4,5,6,7|rev
`
/lib
else
TAOS_DIR
=
$CURR_DIR
/../..
TAOSD_DIR
=
`
find
$TAOS_DIR
-name
"taosd"
|grep bin|head
-n1
`
LIB_DIR
=
`
echo
$TAOSD_DIR
|rev|cut
-d
'/'
-f
3,4,5,6|rev
`
/lib
fi
# Now getting ready to execute Python
# The following is the default of our standard dev env (Ubuntu 20.04), modify/adjust at your own risk
PYTHON_EXEC
=
python3.8
# First we need to set up a path for Python to find our own TAOS modules, so that "import" can work.
export
PYTHONPATH
=
$(
pwd
)
/../../src/connector/python/linux/python3:
$(
pwd
)
# Then let us set up the library path so that our compiled SO file can be loaded by Python
export
LD_LIBRARY_PATH
=
$LD_LIBRARY_PATH
:
$LIB_DIR
# Now we are all let, and let's see if we can find a crash. Note we pass all params
CONCURRENT_INQUIRY
=
concurrent_inquiry.py
if
[[
$1
==
'--valgrind'
]]
;
then
shift
export
PYTHONMALLOC
=
malloc
VALGRIND_OUT
=
valgrind.out
VALGRIND_ERR
=
valgrind.err
# How to generate valgrind suppression file: https://stackoverflow.com/questions/17159578/generating-suppressions-for-memory-leaks
# valgrind --leak-check=full --gen-suppressions=all --log-fd=9 python3.8 ./crash_gen.py $@ 9>>memcheck.log
echo
Executing under VALGRIND, with STDOUT/ERR going to
$VALGRIND_OUT
and
$VALGRIND_ERR
, please watch them from a different terminal.
valgrind
\
--leak-check
=
yes
\
--suppressions
=
crash_gen/valgrind_taos.supp
\
$PYTHON_EXEC
\
$CONCURRENT_INQUIRY
$@
>
$VALGRIND_OUT
2>
$VALGRIND_ERR
elif
[[
$1
==
'--helgrind'
]]
;
then
shift
HELGRIND_OUT
=
helgrind.out
HELGRIND_ERR
=
helgrind.err
valgrind
\
--tool
=
helgrind
\
$PYTHON_EXEC
\
$CONCURRENT_INQUIRY
$@
>
$HELGRIND_OUT
2>
$HELGRIND_ERR
else
$PYTHON_EXEC
$CONCURRENT_INQUIRY
$@
fi
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录