Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
bc44f8b2
Y
YTBP
项目概览
YottaChain
/
YTBP
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
YTBP
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
bc44f8b2
编写于
6月 04, 2018
作者:
C
Ciju John
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix deadlock prone test code.
上级
a8981ead
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
10 deletion
+9
-10
tests/validate-dirty-db.py
tests/validate-dirty-db.py
+9
-10
未找到文件。
tests/validate-dirty-db.py
浏览文件 @
bc44f8b2
...
...
@@ -70,35 +70,34 @@ try:
Print
(
"Kill cluster nodes."
)
cluster
.
killall
()
def
runNodeosAndGetOutput
(
nodeId
,
waitTime
=
3
):
"""Startup nodeos, wait for waitTime (before forced shutdown) and collect output. Stdout, stderr and return code are returned in a dictionary.
Large waittimes have potential to deadlock as the popen PIPE buffer can get filled up."""
def
runNodeosAndGetOutput
(
nodeId
,
timeout
=
3
):
"""Startup nodeos, wait for timeout (before forced shutdown) and collect output. Stdout, stderr and return code are returned in a dictionary."""
Print
(
"Launching nodeos process id: %d"
%
(
nodeId
))
dataDir
=
"var/lib/node_%02d"
%
(
nodeId
)
cmd
=
"programs/nodeos/nodeos --config-dir etc/eosio/node_bios --data-dir var/lib/node_bios"
Print
(
"cmd: %s"
%
(
cmd
))
proc
=
subprocess
.
Popen
(
cmd
.
split
(),
stdout
=
subprocess
.
PIPE
,
stderr
=
subprocess
.
PIPE
)
output
=
{}
try
:
proc
.
wait
(
waitTime
)
outs
,
errs
=
proc
.
communicate
(
timeout
=
timeout
)
output
[
"stdout"
]
=
outs
.
decode
(
"utf-8"
)
output
[
"stderr"
]
=
errs
.
decode
(
"utf-8"
)
output
[
"returncode"
]
=
proc
.
returncode
except
(
subprocess
.
TimeoutExpired
)
as
_
:
Print
(
"ERROR: Nodeos is running beyond the defined wait time. Hard killing nodeos instance."
)
proc
.
send_signal
(
signal
.
SIGKILL
)
return
(
False
,
None
)
output
=
{}
output
[
"stdout"
]
=
proc
.
stdout
.
read
().
decode
(
"utf-8"
)
output
[
"stderr"
]
=
proc
.
stderr
.
read
().
decode
(
"utf-8"
)
output
[
"returncode"
]
=
proc
.
returncode
return
(
True
,
output
)
Print
(
"Restart nodeos repeatedly to ensure dirty database flag sticks."
)
nodeId
=
0
waitTime
=
3
timeout
=
3
for
i
in
range
(
0
,
3
):
Print
(
"Attempt %d."
%
(
i
))
ret
=
runNodeosAndGetOutput
(
nodeId
,
waitTime
)
ret
=
runNodeosAndGetOutput
(
nodeId
,
timeout
)
if
not
ret
or
not
ret
[
0
]:
exit
(
1
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录