Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
4ee4266e
T
TDengine
项目概览
taosdata
/
TDengine
接近 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
4ee4266e
编写于
6月 15, 2022
作者:
haoranc
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
test:modify testcase of muti-mnode
上级
1b2a4923
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
254 addition
and
170 deletion
+254
-170
tests/pytest/util/dnodes.py
tests/pytest/util/dnodes.py
+16
-16
tests/pytest/util/sql.py
tests/pytest/util/sql.py
+1
-0
tests/system-test/6-cluster/5dnode2mnode.py
tests/system-test/6-cluster/5dnode2mnode.py
+5
-1
tests/system-test/6-cluster/5dnode3mnodeDrop.py
tests/system-test/6-cluster/5dnode3mnodeDrop.py
+52
-39
tests/system-test/6-cluster/5dnode3mnodeStop.py
tests/system-test/6-cluster/5dnode3mnodeStop.py
+49
-42
tests/system-test/6-cluster/5dnode3mnodeStopInsert.py
tests/system-test/6-cluster/5dnode3mnodeStopInsert.py
+130
-71
tests/system-test/fulltest.sh
tests/system-test/fulltest.sh
+1
-1
未找到文件。
tests/pytest/util/dnodes.py
浏览文件 @
4ee4266e
...
@@ -334,22 +334,22 @@ class TDDnode:
...
@@ -334,22 +334,22 @@ class TDDnode:
bkey2
=
bytes
(
key2
,
encoding
=
"utf8"
)
bkey2
=
bytes
(
key2
,
encoding
=
"utf8"
)
logFile
=
self
.
logDir
+
"/taosdlog.0"
logFile
=
self
.
logDir
+
"/taosdlog.0"
i
=
0
i
=
0
while
not
os
.
path
.
exists
(
logFile
):
#
while not os.path.exists(logFile):
sleep
(
0.1
)
#
sleep(0.1)
i
+=
1
#
i += 1
if
i
>
10
:
#
if i > 10:
break
#
break
tailCmdStr
=
'tail -f '
#
tailCmdStr = 'tail -f '
if
platform
.
system
().
lower
()
==
'windows'
:
#
if platform.system().lower() == 'windows':
tailCmdStr
=
'tail -n +0 -f '
#
tailCmdStr = 'tail -n +0 -f '
popen
=
subprocess
.
Popen
(
#
popen = subprocess.Popen(
tailCmdStr
+
logFile
,
#
tailCmdStr + logFile,
stdout
=
subprocess
.
PIPE
,
#
stdout=subprocess.PIPE,
stderr
=
subprocess
.
PIPE
,
#
stderr=subprocess.PIPE,
shell
=
True
)
#
shell=True)
pid
=
popen
.
pid
#
pid = popen.pid
# print('Popen.pid:' + str(pid))
#
#
print('Popen.pid:' + str(pid))
timeout
=
time
.
time
()
+
60
*
2
#
timeout = time.time() + 60 * 2
# while True:
# while True:
# line = popen.stdout.readline().strip()
# line = popen.stdout.readline().strip()
# print(line)
# print(line)
...
...
tests/pytest/util/sql.py
浏览文件 @
4ee4266e
...
@@ -156,6 +156,7 @@ class TDSql:
...
@@ -156,6 +156,7 @@ class TDSql:
def
checkRows
(
self
,
expectRows
):
def
checkRows
(
self
,
expectRows
):
if
self
.
queryRows
==
expectRows
:
if
self
.
queryRows
==
expectRows
:
tdLog
.
info
(
"sql:%s, queryRows:%d == expect:%d"
%
(
self
.
sql
,
self
.
queryRows
,
expectRows
))
tdLog
.
info
(
"sql:%s, queryRows:%d == expect:%d"
%
(
self
.
sql
,
self
.
queryRows
,
expectRows
))
return
True
else
:
else
:
caller
=
inspect
.
getframeinfo
(
inspect
.
stack
()[
1
][
0
])
caller
=
inspect
.
getframeinfo
(
inspect
.
stack
()[
1
][
0
])
args
=
(
caller
.
filename
,
caller
.
lineno
,
self
.
sql
,
self
.
queryRows
,
expectRows
)
args
=
(
caller
.
filename
,
caller
.
lineno
,
self
.
sql
,
self
.
queryRows
,
expectRows
)
...
...
tests/system-test/6-cluster/5dnode2mnode.py
浏览文件 @
4ee4266e
...
@@ -54,7 +54,9 @@ class TDTestCase:
...
@@ -54,7 +54,9 @@ class TDTestCase:
valgrind
=
0
valgrind
=
0
hostname
=
socket
.
gethostname
()
hostname
=
socket
.
gethostname
()
dnodes
=
[]
dnodes
=
[]
start_port
=
6030
start_port
=
6030
start_port_sec
=
6130
for
num
in
range
(
1
,
dnodes_nums
+
1
):
for
num
in
range
(
1
,
dnodes_nums
+
1
):
dnode
=
TDDnode
(
num
)
dnode
=
TDDnode
(
num
)
dnode
.
addExtraCfg
(
"firstEp"
,
f
"
{
hostname
}
:
{
start_port
}
"
)
dnode
.
addExtraCfg
(
"firstEp"
,
f
"
{
hostname
}
:
{
start_port
}
"
)
...
@@ -62,6 +64,8 @@ class TDTestCase:
...
@@ -62,6 +64,8 @@ class TDTestCase:
dnode
.
addExtraCfg
(
"serverPort"
,
f
"
{
start_port
+
(
num
-
1
)
*
100
}
"
)
dnode
.
addExtraCfg
(
"serverPort"
,
f
"
{
start_port
+
(
num
-
1
)
*
100
}
"
)
dnode
.
addExtraCfg
(
"monitorFqdn"
,
hostname
)
dnode
.
addExtraCfg
(
"monitorFqdn"
,
hostname
)
dnode
.
addExtraCfg
(
"monitorPort"
,
7043
)
dnode
.
addExtraCfg
(
"monitorPort"
,
7043
)
dnode
.
addExtraCfg
(
"secondEp"
,
f
"
{
hostname
}
:
{
start_port_sec
}
"
)
dnodes
.
append
(
dnode
)
dnodes
.
append
(
dnode
)
self
.
TDDnodes
=
MyDnodes
(
dnodes
)
self
.
TDDnodes
=
MyDnodes
(
dnodes
)
...
...
tests/system-test/6-cluster/5dnode3mnodeDrop.py
浏览文件 @
4ee4266e
...
@@ -78,6 +78,7 @@ class TDTestCase:
...
@@ -78,6 +78,7 @@ class TDTestCase:
print
(
hostname
)
print
(
hostname
)
dnodes
=
[]
dnodes
=
[]
start_port
=
6030
start_port
=
6030
start_port_sec
=
6130
for
num
in
range
(
1
,
dnodes_nums
+
1
):
for
num
in
range
(
1
,
dnodes_nums
+
1
):
dnode
=
TDDnode
(
num
)
dnode
=
TDDnode
(
num
)
dnode
.
addExtraCfg
(
"firstEp"
,
f
"
{
hostname
}
:
{
start_port
}
"
)
dnode
.
addExtraCfg
(
"firstEp"
,
f
"
{
hostname
}
:
{
start_port
}
"
)
...
@@ -85,6 +86,7 @@ class TDTestCase:
...
@@ -85,6 +86,7 @@ class TDTestCase:
dnode
.
addExtraCfg
(
"serverPort"
,
f
"
{
start_port
+
(
num
-
1
)
*
100
}
"
)
dnode
.
addExtraCfg
(
"serverPort"
,
f
"
{
start_port
+
(
num
-
1
)
*
100
}
"
)
dnode
.
addExtraCfg
(
"monitorFqdn"
,
hostname
)
dnode
.
addExtraCfg
(
"monitorFqdn"
,
hostname
)
dnode
.
addExtraCfg
(
"monitorPort"
,
7043
)
dnode
.
addExtraCfg
(
"monitorPort"
,
7043
)
dnode
.
addExtraCfg
(
"secondEp"
,
f
"
{
hostname
}
:
{
start_port_sec
}
"
)
dnodes
.
append
(
dnode
)
dnodes
.
append
(
dnode
)
self
.
TDDnodes
=
MyDnodes
(
dnodes
)
self
.
TDDnodes
=
MyDnodes
(
dnodes
)
...
@@ -116,25 +118,28 @@ class TDTestCase:
...
@@ -116,25 +118,28 @@ class TDTestCase:
while
count
<
10
:
while
count
<
10
:
time
.
sleep
(
1
)
time
.
sleep
(
1
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'leader'
:
print
(
"mnode is three nodes"
)
if
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'leader'
:
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
print
(
"three mnodes is ready in 10s"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
break
print
(
"three mnodes is ready in 10s"
)
elif
tdSql
.
queryResult
[
0
][
2
]
==
'follower'
:
break
if
tdSql
.
queryResult
[
1
][
2
]
==
'leader'
:
elif
tdSql
.
queryResult
[
0
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
1
][
2
]
==
'leader'
:
print
(
"three mnodes is ready in 10s"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
break
print
(
"three mnodes is ready in 10s"
)
elif
tdSql
.
queryResult
[
0
][
2
]
==
'follower'
:
break
if
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
elif
tdSql
.
queryResult
[
0
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
2
][
2
]
==
'leader'
:
if
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
print
(
"three mnodes is ready in 10s"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'leader'
:
break
print
(
"three mnodes is ready in 10s"
)
break
count
+=
1
count
+=
1
else
:
else
:
print
(
tdSql
.
queryResult
)
print
(
"three mnodes is not ready in 10s "
)
print
(
"three mnodes is not ready in 10s "
)
return
-
1
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
checkRows
(
3
)
tdSql
.
checkRows
(
3
)
...
@@ -151,18 +156,21 @@ class TDTestCase:
...
@@ -151,18 +156,21 @@ class TDTestCase:
time
.
sleep
(
1
)
time
.
sleep
(
1
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'offline'
:
print
(
"mnode is three nodes"
)
if
tdSql
.
queryResult
[
1
][
2
]
==
'leader'
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'offline'
:
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
1
][
2
]
==
'leader'
:
print
(
"stop mnodes on dnode 2 successfully in 10s"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
break
print
(
"stop mnodes on dnode 2 successfully in 10s"
)
elif
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
break
if
tdSql
.
queryResult
[
2
][
2
]
==
'leader'
:
elif
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
print
(
"stop mnodes on dnode 2 successfully in 10s"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'leader'
:
break
print
(
"stop mnodes on dnode 2 successfully in 10s"
)
break
count
+=
1
count
+=
1
else
:
else
:
print
(
"stop mnodes on dnode 2 failed in 10s "
)
print
(
"stop mnodes on dnode 2 failed in 10s "
)
return
-
1
tdSql
.
error
(
"drop mnode on dnode 1;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
checkRows
(
3
)
tdSql
.
checkRows
(
3
)
...
@@ -174,20 +182,23 @@ class TDTestCase:
...
@@ -174,20 +182,23 @@ class TDTestCase:
tdSql
.
checkData
(
2
,
1
,
'%s:6230'
%
self
.
host
)
tdSql
.
checkData
(
2
,
1
,
'%s:6230'
%
self
.
host
)
tdSql
.
checkData
(
2
,
3
,
'ready'
)
tdSql
.
checkData
(
2
,
3
,
'ready'
)
def
check3mnode2
drop
(
self
):
def
check3mnode2
off
(
self
):
count
=
0
count
=
0
while
count
<
1
0
:
while
count
<
4
0
:
time
.
sleep
(
1
)
time
.
sleep
(
1
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'leader'
:
print
(
"mnode is three nodes"
)
if
tdSql
.
queryResult
[
1
][
2
]
==
'offline'
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'leader'
:
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
1
][
2
]
==
'offline'
:
print
(
"stop mnodes on dnode 2 successfully in 10s"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
break
print
(
"stop mnodes on dnode 2 successfully in 10s"
)
break
count
+=
1
count
+=
1
else
:
else
:
print
(
"stop mnodes on dnode 2 failed in 10s "
)
print
(
"stop mnodes on dnode 2 failed in 10s "
)
return
-
1
tdSql
.
error
(
"drop mnode on dnode 2;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
checkRows
(
3
)
tdSql
.
checkRows
(
3
)
...
@@ -197,7 +208,7 @@ class TDTestCase:
...
@@ -197,7 +208,7 @@ class TDTestCase:
tdSql
.
checkData
(
1
,
1
,
'%s:6130'
%
self
.
host
)
tdSql
.
checkData
(
1
,
1
,
'%s:6130'
%
self
.
host
)
tdSql
.
checkData
(
1
,
2
,
'offline'
)
tdSql
.
checkData
(
1
,
2
,
'offline'
)
tdSql
.
checkData
(
1
,
3
,
'ready'
)
tdSql
.
checkData
(
1
,
3
,
'ready'
)
tdSql
.
checkData
(
2
,
1
,
'%s:6230'
)
tdSql
.
checkData
(
2
,
1
,
'%s:6230'
%
self
.
host
)
tdSql
.
checkData
(
2
,
2
,
'follower'
)
tdSql
.
checkData
(
2
,
2
,
'follower'
)
tdSql
.
checkData
(
2
,
3
,
'ready'
)
tdSql
.
checkData
(
2
,
3
,
'ready'
)
...
@@ -207,15 +218,17 @@ class TDTestCase:
...
@@ -207,15 +218,17 @@ class TDTestCase:
time
.
sleep
(
1
)
time
.
sleep
(
1
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'leader'
:
print
(
"mnode is three nodes"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'offline'
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'leader'
:
if
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
2
][
2
]
==
'offline'
:
print
(
"stop mnodes on dnode 3 successfully in 10s"
)
if
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
break
print
(
"stop mnodes on dnode 3 successfully in 10s"
)
break
count
+=
1
count
+=
1
else
:
else
:
print
(
"stop mnodes on dnode 3 failed in 10s"
)
print
(
"stop mnodes on dnode 3 failed in 10s"
)
return
-
1
tdSql
.
error
(
"drop mnode on dnode 3;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
checkRows
(
3
)
tdSql
.
checkRows
(
3
)
tdSql
.
checkData
(
0
,
1
,
'%s:6030'
%
self
.
host
)
tdSql
.
checkData
(
0
,
1
,
'%s:6030'
%
self
.
host
)
...
...
tests/system-test/6-cluster/5dnode3mnodeStop.py
浏览文件 @
4ee4266e
...
@@ -115,25 +115,27 @@ class TDTestCase:
...
@@ -115,25 +115,27 @@ class TDTestCase:
while
count
<
10
:
while
count
<
10
:
time
.
sleep
(
1
)
time
.
sleep
(
1
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'leader'
:
print
(
"mnode is three nodes"
)
if
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'leader'
:
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
print
(
"three mnodes is ready in 10s"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
break
print
(
"three mnodes is ready in 10s"
)
elif
tdSql
.
queryResult
[
0
][
2
]
==
'follower'
:
break
if
tdSql
.
queryResult
[
1
][
2
]
==
'leader'
:
elif
tdSql
.
queryResult
[
0
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
1
][
2
]
==
'leader'
:
print
(
"three mnodes is ready in 10s"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
break
print
(
"three mnodes is ready in 10s"
)
elif
tdSql
.
queryResult
[
0
][
2
]
==
'follower'
:
break
if
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
elif
tdSql
.
queryResult
[
0
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
2
][
2
]
==
'leader'
:
if
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
print
(
"three mnodes is ready in 10s"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'leader'
:
break
print
(
"three mnodes is ready in 10s"
)
break
count
+=
1
count
+=
1
else
:
else
:
print
(
"three mnodes is not ready in 10s "
)
print
(
"three mnodes is not ready in 10s "
)
return
-
1
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
checkRows
(
3
)
tdSql
.
checkRows
(
3
)
...
@@ -145,24 +147,26 @@ class TDTestCase:
...
@@ -145,24 +147,26 @@ class TDTestCase:
tdSql
.
checkData
(
2
,
3
,
'ready'
)
tdSql
.
checkData
(
2
,
3
,
'ready'
)
def
check3mnode1off
(
self
):
def
check3mnode1off
(
self
):
tdSql
.
error
(
"drop mnode on dnode 1;"
)
count
=
0
count
=
0
while
count
<
10
:
while
count
<
10
:
time
.
sleep
(
1
)
time
.
sleep
(
1
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'offline'
:
print
(
"mnode is three nodes"
)
if
tdSql
.
queryResult
[
1
][
2
]
==
'leader'
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'offline'
:
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
1
][
2
]
==
'leader'
:
print
(
"stop mnodes on dnode 2 successfully in 10s"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
break
print
(
"stop mnodes on dnode 2 successfully in 10s"
)
elif
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
break
if
tdSql
.
queryResult
[
2
][
2
]
==
'leader'
:
elif
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
print
(
"stop mnodes on dnode 2 successfully in 10s"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'leader'
:
break
print
(
"stop mnodes on dnode 2 successfully in 10s"
)
break
count
+=
1
count
+=
1
else
:
else
:
print
(
"stop mnodes on dnode 2 failed in 10s "
)
print
(
"stop mnodes on dnode 2 failed in 10s "
)
return
-
1
tdSql
.
error
(
"drop mnode on dnode 1;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
checkRows
(
3
)
tdSql
.
checkRows
(
3
)
...
@@ -175,20 +179,22 @@ class TDTestCase:
...
@@ -175,20 +179,22 @@ class TDTestCase:
tdSql
.
checkData
(
2
,
3
,
'ready'
)
tdSql
.
checkData
(
2
,
3
,
'ready'
)
def
check3mnode2off
(
self
):
def
check3mnode2off
(
self
):
tdSql
.
error
(
"drop mnode on dnode 2;"
)
count
=
0
count
=
0
while
count
<
1
0
:
while
count
<
4
0
:
time
.
sleep
(
1
)
time
.
sleep
(
1
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'leader'
:
print
(
"mnode is three nodes"
)
if
tdSql
.
queryResult
[
1
][
2
]
==
'offline'
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'leader'
:
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
1
][
2
]
==
'offline'
:
print
(
"stop mnodes on dnode 2 successfully in 10s"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
break
print
(
"stop mnodes on dnode 2 successfully in 10s"
)
break
count
+=
1
count
+=
1
else
:
else
:
print
(
"stop mnodes on dnode 2 failed in 10s "
)
print
(
"stop mnodes on dnode 2 failed in 10s "
)
return
-
1
tdSql
.
error
(
"drop mnode on dnode 2;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
checkRows
(
3
)
tdSql
.
checkRows
(
3
)
...
@@ -203,21 +209,22 @@ class TDTestCase:
...
@@ -203,21 +209,22 @@ class TDTestCase:
tdSql
.
checkData
(
2
,
3
,
'ready'
)
tdSql
.
checkData
(
2
,
3
,
'ready'
)
def
check3mnode3off
(
self
):
def
check3mnode3off
(
self
):
tdSql
.
error
(
"drop mnode on dnode 3;"
)
count
=
0
count
=
0
while
count
<
10
:
while
count
<
10
:
time
.
sleep
(
1
)
time
.
sleep
(
1
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'leader'
:
print
(
"mnode is three nodes"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'offline'
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'leader'
:
if
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
2
][
2
]
==
'offline'
:
print
(
"stop mnodes on dnode 3 successfully in 10s"
)
if
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
break
print
(
"stop mnodes on dnode 3 successfully in 10s"
)
break
count
+=
1
count
+=
1
else
:
else
:
print
(
"stop mnodes on dnode 3 failed in 10s"
)
print
(
"stop mnodes on dnode 3 failed in 10s"
)
return
-
1
tdSql
.
error
(
"drop mnode on dnode 3;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
checkRows
(
3
)
tdSql
.
checkRows
(
3
)
tdSql
.
checkData
(
0
,
1
,
'%s:6030'
%
self
.
host
)
tdSql
.
checkData
(
0
,
1
,
'%s:6030'
%
self
.
host
)
...
@@ -264,13 +271,13 @@ class TDTestCase:
...
@@ -264,13 +271,13 @@ class TDTestCase:
self
.
TDDnodes
.
stoptaosd
(
3
)
self
.
TDDnodes
.
stoptaosd
(
3
)
self
.
check3mnode3off
()
self
.
check3mnode3off
()
self
.
TDDnodes
.
starttaosd
(
2
)
self
.
TDDnodes
.
starttaosd
(
3
)
self
.
TDDnodes
.
stoptaosd
(
1
)
self
.
TDDnodes
.
stoptaosd
(
1
)
self
.
check3mnode1off
()
self
.
check3mnode1off
()
self
.
TDDnodes
.
starttaosd
(
1
)
self
.
TDDnodes
.
starttaosd
(
1
)
#
self.check3mnode()
self
.
check3mnode
()
stopcount
=
0
stopcount
=
0
while
stopcount
<=
2
:
while
stopcount
<=
2
:
for
i
in
range
(
dnodenumber
):
for
i
in
range
(
dnodenumber
):
...
...
tests/system-test/6-cluster/5dnode3mnodeStopInsert.py
浏览文件 @
4ee4266e
...
@@ -13,13 +13,50 @@ import time
...
@@ -13,13 +13,50 @@ import time
import
socket
import
socket
import
subprocess
import
subprocess
from
multiprocessing
import
Process
from
multiprocessing
import
Process
import
threading
as
thd
import
threading
import
time
import
inspect
import
ctypes
class
MyDnodes
(
TDDnodes
):
class
MyDnodes
(
TDDnodes
):
def
__init__
(
self
,
dnodes_lists
):
def
__init__
(
self
,
dnodes_lists
):
super
(
MyDnodes
,
self
).
__init__
()
super
(
MyDnodes
,
self
).
__init__
()
self
.
dnodes
=
dnodes_lists
# dnode must be TDDnode instance
self
.
dnodes
=
dnodes_lists
# dnode must be TDDnode instance
self
.
simDeployed
=
False
self
.
simDeployed
=
False
class
MyThreadFunc
(
object
):
'''
手动终止线程的方法
'''
def
__init__
(
self
,
func
):
self
.
myThread
=
threading
.
Thread
(
target
=
func
)
def
start
(
self
):
print
(
'线程启动'
)
self
.
myThread
.
start
()
def
stop
(
self
):
print
(
'线程终止'
)
try
:
for
i
in
range
(
5
):
self
.
_async_raise
(
self
.
myThread
.
ident
,
SystemExit
)
time
.
sleep
(
1
)
except
Exception
as
e
:
print
(
e
)
def
_async_raise
(
self
,
tid
,
exctype
):
"""raises the exception, performs cleanup if needed"""
tid
=
ctypes
.
c_long
(
tid
)
if
not
inspect
.
isclass
(
exctype
):
exctype
=
type
(
exctype
)
res
=
ctypes
.
pythonapi
.
PyThreadState_SetAsyncExc
(
tid
,
ctypes
.
py_object
(
exctype
))
if
res
==
0
:
raise
ValueError
(
"invalid thread id"
)
elif
res
!=
1
:
# """if it returns a number greater than one, you're in trouble,
# and you should call it again with exc=NULL to revert the effect"""
ctypes
.
pythonapi
.
PyThreadState_SetAsyncExc
(
tid
,
None
)
raise
SystemError
(
"PyThreadState_SetAsyncExc failed"
)
class
TDTestCase
:
class
TDTestCase
:
def
init
(
self
,
conn
,
logSql
):
def
init
(
self
,
conn
,
logSql
):
...
@@ -52,8 +89,11 @@ class TDTestCase:
...
@@ -52,8 +89,11 @@ class TDTestCase:
def
insert_data
(
self
,
countstart
,
countstop
):
def
insert_data
(
self
,
countstart
,
countstop
):
# fisrt add data : db\stable\childtable\general table
# fisrt add data : db\stable\childtable\general table
for
couti
in
range
(
countstart
,
countstop
):
for
couti
in
range
(
countstart
,
countstop
):
tdLog
.
debug
(
"drop database if exists db%d"
%
couti
)
tdSql
.
execute
(
"drop database if exists db%d"
%
couti
)
tdSql
.
execute
(
"drop database if exists db%d"
%
couti
)
print
(
"create database if not exists db%d replica 1 days 300"
%
couti
)
tdSql
.
execute
(
"create database if not exists db%d replica 1 days 300"
%
couti
)
tdSql
.
execute
(
"create database if not exists db%d replica 1 days 300"
%
couti
)
tdSql
.
execute
(
"use db%d"
%
couti
)
tdSql
.
execute
(
"use db%d"
%
couti
)
tdSql
.
execute
(
tdSql
.
execute
(
...
@@ -78,6 +118,7 @@ class TDTestCase:
...
@@ -78,6 +118,7 @@ class TDTestCase:
hostname
=
socket
.
gethostname
()
hostname
=
socket
.
gethostname
()
dnodes
=
[]
dnodes
=
[]
start_port
=
6030
start_port
=
6030
start_port_sec
=
6130
for
num
in
range
(
1
,
dnodes_nums
+
1
):
for
num
in
range
(
1
,
dnodes_nums
+
1
):
dnode
=
TDDnode
(
num
)
dnode
=
TDDnode
(
num
)
dnode
.
addExtraCfg
(
"firstEp"
,
f
"
{
hostname
}
:
{
start_port
}
"
)
dnode
.
addExtraCfg
(
"firstEp"
,
f
"
{
hostname
}
:
{
start_port
}
"
)
...
@@ -85,6 +126,7 @@ class TDTestCase:
...
@@ -85,6 +126,7 @@ class TDTestCase:
dnode
.
addExtraCfg
(
"serverPort"
,
f
"
{
start_port
+
(
num
-
1
)
*
100
}
"
)
dnode
.
addExtraCfg
(
"serverPort"
,
f
"
{
start_port
+
(
num
-
1
)
*
100
}
"
)
dnode
.
addExtraCfg
(
"monitorFqdn"
,
hostname
)
dnode
.
addExtraCfg
(
"monitorFqdn"
,
hostname
)
dnode
.
addExtraCfg
(
"monitorPort"
,
7043
)
dnode
.
addExtraCfg
(
"monitorPort"
,
7043
)
dnode
.
addExtraCfg
(
"secondEp"
,
f
"
{
hostname
}
:
{
start_port_sec
}
"
)
dnodes
.
append
(
dnode
)
dnodes
.
append
(
dnode
)
self
.
TDDnodes
=
MyDnodes
(
dnodes
)
self
.
TDDnodes
=
MyDnodes
(
dnodes
)
...
@@ -111,30 +153,58 @@ class TDTestCase:
...
@@ -111,30 +153,58 @@ class TDTestCase:
time
.
sleep
(
2
)
time
.
sleep
(
2
)
tdLog
.
info
(
" create cluster with %d dnode done! "
%
dnodes_nums
)
tdLog
.
info
(
" create cluster with %d dnode done! "
%
dnodes_nums
)
def
checkdnodes
(
self
,
dnodenumber
):
count
=
0
while
count
<
10
:
time
.
sleep
(
1
)
statusReadyBumber
=
0
tdSql
.
query
(
"show dnodes;"
)
if
tdSql
.
checkRows
(
dnodenumber
)
:
print
(
"dnode is %d nodes"
%
dnodenumber
)
for
i
in
range
(
dnodenumber
):
if
tdSql
.
queryResult
[
i
][
4
]
!=
'ready'
:
status
=
tdSql
.
queryResult
[
i
][
4
]
print
(
"dnode:%d status is %s "
%
(
i
,
status
))
break
else
:
statusReadyBumber
+=
1
print
(
statusReadyBumber
)
if
statusReadyBumber
==
dnodenumber
:
print
(
"all of %d mnodes is ready in 10s "
%
dnodenumber
)
return
True
break
count
+=
1
else
:
print
(
"%d mnodes is not ready in 10s "
%
dnodenumber
)
return
False
def
check3mnode
(
self
):
def
check3mnode
(
self
):
count
=
0
count
=
0
while
count
<
10
:
while
count
<
10
:
time
.
sleep
(
1
)
time
.
sleep
(
1
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'leader'
:
print
(
"mnode is three nodes"
)
if
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'leader'
:
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
print
(
"three mnodes is ready in 10s"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
break
print
(
"three mnodes is ready in 10s"
)
elif
tdSql
.
queryResult
[
0
][
2
]
==
'follower'
:
break
if
tdSql
.
queryResult
[
1
][
2
]
==
'leader'
:
elif
tdSql
.
queryResult
[
0
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
1
][
2
]
==
'leader'
:
print
(
"three mnodes is ready in 10s"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
break
print
(
"three mnodes is ready in 10s"
)
elif
tdSql
.
queryResult
[
0
][
2
]
==
'follower'
:
break
if
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
elif
tdSql
.
queryResult
[
0
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
2
][
2
]
==
'leader'
:
if
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
print
(
"three mnodes is ready in 10s"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'leader'
:
break
print
(
"three mnodes is ready in 10s"
)
break
count
+=
1
count
+=
1
else
:
else
:
print
(
"three mnodes is not ready in 10s "
)
print
(
"three mnodes is not ready in 10s "
)
return
-
1
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
checkRows
(
3
)
tdSql
.
checkRows
(
3
)
...
@@ -146,24 +216,26 @@ class TDTestCase:
...
@@ -146,24 +216,26 @@ class TDTestCase:
tdSql
.
checkData
(
2
,
3
,
'ready'
)
tdSql
.
checkData
(
2
,
3
,
'ready'
)
def
check3mnode1off
(
self
):
def
check3mnode1off
(
self
):
tdSql
.
error
(
"drop mnode on dnode 1;"
)
count
=
0
count
=
0
while
count
<
10
:
while
count
<
10
:
time
.
sleep
(
1
)
time
.
sleep
(
1
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'offline'
:
print
(
"mnode is three nodes"
)
if
tdSql
.
queryResult
[
1
][
2
]
==
'leader'
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'offline'
:
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
1
][
2
]
==
'leader'
:
print
(
"stop mnodes on dnode 2 successfully in 10s"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
break
print
(
"stop mnodes on dnode 2 successfully in 10s"
)
elif
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
break
if
tdSql
.
queryResult
[
2
][
2
]
==
'leader'
:
elif
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
print
(
"stop mnodes on dnode 2 successfully in 10s"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'leader'
:
break
print
(
"stop mnodes on dnode 2 successfully in 10s"
)
break
count
+=
1
count
+=
1
else
:
else
:
print
(
"stop mnodes on dnode 2 failed in 10s "
)
print
(
"stop mnodes on dnode 2 failed in 10s "
)
return
-
1
tdSql
.
error
(
"drop mnode on dnode 1;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
checkRows
(
3
)
tdSql
.
checkRows
(
3
)
...
@@ -176,20 +248,22 @@ class TDTestCase:
...
@@ -176,20 +248,22 @@ class TDTestCase:
tdSql
.
checkData
(
2
,
3
,
'ready'
)
tdSql
.
checkData
(
2
,
3
,
'ready'
)
def
check3mnode2off
(
self
):
def
check3mnode2off
(
self
):
tdSql
.
error
(
"drop mnode on dnode 2;"
)
count
=
0
count
=
0
while
count
<
40
:
while
count
<
40
:
time
.
sleep
(
1
)
time
.
sleep
(
1
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'leader'
:
print
(
"mnode is three nodes"
)
if
tdSql
.
queryResult
[
1
][
2
]
==
'offline'
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'leader'
:
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
1
][
2
]
==
'offline'
:
print
(
"stop mnodes on dnode 2 successfully in 10s"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'follower'
:
break
print
(
"stop mnodes on dnode 2 successfully in 10s"
)
break
count
+=
1
count
+=
1
else
:
else
:
print
(
"stop mnodes on dnode 2 failed in 10s "
)
print
(
"stop mnodes on dnode 2 failed in 10s "
)
return
-
1
tdSql
.
error
(
"drop mnode on dnode 2;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
checkRows
(
3
)
tdSql
.
checkRows
(
3
)
...
@@ -204,21 +278,22 @@ class TDTestCase:
...
@@ -204,21 +278,22 @@ class TDTestCase:
tdSql
.
checkData
(
2
,
3
,
'ready'
)
tdSql
.
checkData
(
2
,
3
,
'ready'
)
def
check3mnode3off
(
self
):
def
check3mnode3off
(
self
):
tdSql
.
error
(
"drop mnode on dnode 3;"
)
count
=
0
count
=
0
while
count
<
10
:
while
count
<
10
:
time
.
sleep
(
1
)
time
.
sleep
(
1
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
checkRows
(
3
)
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'leader'
:
print
(
"mnode is three nodes"
)
if
tdSql
.
queryResult
[
2
][
2
]
==
'offline'
:
if
tdSql
.
queryResult
[
0
][
2
]
==
'leader'
:
if
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
if
tdSql
.
queryResult
[
2
][
2
]
==
'offline'
:
print
(
"stop mnodes on dnode 3 successfully in 10s"
)
if
tdSql
.
queryResult
[
1
][
2
]
==
'follower'
:
break
print
(
"stop mnodes on dnode 3 successfully in 10s"
)
break
count
+=
1
count
+=
1
else
:
else
:
print
(
"stop mnodes on dnode 3 failed in 10s"
)
print
(
"stop mnodes on dnode 3 failed in 10s"
)
return
-
1
tdSql
.
error
(
"drop mnode on dnode 3;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
query
(
"show mnodes;"
)
tdSql
.
checkRows
(
3
)
tdSql
.
checkRows
(
3
)
tdSql
.
checkData
(
0
,
1
,
'%s:6030'
%
self
.
host
)
tdSql
.
checkData
(
0
,
1
,
'%s:6030'
%
self
.
host
)
...
@@ -231,8 +306,6 @@ class TDTestCase:
...
@@ -231,8 +306,6 @@ class TDTestCase:
tdSql
.
checkData
(
2
,
2
,
'offline'
)
tdSql
.
checkData
(
2
,
2
,
'offline'
)
tdSql
.
checkData
(
2
,
3
,
'ready'
)
tdSql
.
checkData
(
2
,
3
,
'ready'
)
def
five_dnode_three_mnode
(
self
,
dnodenumber
):
def
five_dnode_three_mnode
(
self
,
dnodenumber
):
tdSql
.
query
(
"show dnodes;"
)
tdSql
.
query
(
"show dnodes;"
)
tdSql
.
checkData
(
0
,
1
,
'%s:6030'
%
self
.
host
)
tdSql
.
checkData
(
0
,
1
,
'%s:6030'
%
self
.
host
)
...
@@ -252,43 +325,29 @@ class TDTestCase:
...
@@ -252,43 +325,29 @@ class TDTestCase:
# fisrt check statut ready
# fisrt check statut ready
self
.
check3mnode
()
self
.
check3mnode
()
tdSql
.
error
(
"create mnode on dnode 2"
)
tdSql
.
error
(
"create mnode on dnode 2"
)
tdSql
.
query
(
"show dnodes;"
)
tdSql
.
query
(
"show dnodes;"
)
print
(
tdSql
.
queryResult
)
print
(
tdSql
.
queryResult
)
tdLog
.
debug
(
"stop all of mnode "
)
tdLog
.
debug
(
"stop and follower of mnode"
)
self
.
TDDnodes
.
stoptaosd
(
2
)
self
.
check3mnode2off
()
self
.
TDDnodes
.
starttaosd
(
2
)
self
.
TDDnodes
.
stoptaosd
(
3
)
self
.
check3mnode3off
()
self
.
TDDnodes
.
starttaosd
(
3
)
self
.
TDDnodes
.
stoptaosd
(
1
)
self
.
check3mnode1off
()
self
.
TDDnodes
.
starttaosd
(
1
)
# self.check3mnode()
stopcount
=
0
stopcount
=
0
while
stopcount
<=
2
:
while
stopcount
<=
2
:
for
i
in
range
(
dnodenumber
):
for
i
in
range
(
dnodenumber
):
threads
=
[]
# threads=[]
threads
.
append
(
thd
.
Thread
(
target
=
self
.
insert_data
,
args
=
(
i
*
2
,
i
*
2
+
2
)))
# threads = MyThreadFunc(self.insert_data(i*2,i*2+2))
threads
[
0
].
start
()
threads
=
threading
.
Thread
(
target
=
self
.
insert_data
,
args
=
((
stopcount
+
i
)
*
2
,(
i
+
stopcount
)
*
2
+
2
))
threads
.
start
()
self
.
TDDnodes
.
stoptaosd
(
i
+
1
)
self
.
TDDnodes
.
stoptaosd
(
i
+
1
)
# if i == 1 :
# self.check3mnode2off()
# elif i == 2 :
# self.check3mnode3off()
# elif i == 0:
# self.check3mnode1off()
self
.
TDDnodes
.
starttaosd
(
i
+
1
)
self
.
TDDnodes
.
starttaosd
(
i
+
1
)
threads
[
0
].
join
()
if
self
.
checkdnodes
(
5
):
print
(
"123"
)
threads
.
join
()
else
:
print
(
"456"
)
self
.
_is_stopped
=
True
assert
1
==
2
,
"some dnode started failed"
return
False
# self.check3mnode()
# self.check3mnode()
stopcount
+=
1
stopcount
+=
1
self
.
check3mnode
()
self
.
check3mnode
()
...
...
tests/system-test/fulltest.sh
浏览文件 @
4ee4266e
...
@@ -101,7 +101,7 @@ python3 ./test.py -f 2-query/tail.py
...
@@ -101,7 +101,7 @@ python3 ./test.py -f 2-query/tail.py
python3 ./test.py
-f
6-cluster/5dnode1mnode.py
python3 ./test.py
-f
6-cluster/5dnode1mnode.py
python3 ./test.py
-f
6-cluster/5dnode2mnode.py
python3 ./test.py
-f
6-cluster/5dnode2mnode.py
# BUG
python3 ./test.py -f 6-cluster/5dnode3mnodeStop.py
python3 ./test.py
-f
6-cluster/5dnode3mnodeStop.py
python3 ./test.py
-f
6-cluster/5dnode3mnodeDrop.py
python3 ./test.py
-f
6-cluster/5dnode3mnodeDrop.py
# BUG python3 ./test.py -f 6-cluster/5dnode3mnodeStopInsert.py
# BUG python3 ./test.py -f 6-cluster/5dnode3mnodeStopInsert.py
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录