Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
154bc177
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看板
提交
154bc177
编写于
7月 19, 2023
作者:
D
dmchen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
memory leak
上级
8062d603
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
30 addition
and
29 deletion
+30
-29
source/libs/sync/src/syncPipeline.c
source/libs/sync/src/syncPipeline.c
+30
-29
未找到文件。
source/libs/sync/src/syncPipeline.c
浏览文件 @
154bc177
...
...
@@ -638,39 +638,40 @@ int32_t syncLogBufferCommit(SSyncLogBuffer* pBuf, SSyncNode* pNode, int64_t comm
pEntry
->
index
,
pEntry
->
term
,
role
,
currentTerm
);
pNextEntry
=
syncLogBufferGetOneEntry
(
pBuf
,
pNode
,
index
+
1
,
&
nextInBuf
);
if
(
pNextEntry
!=
NULL
&&
pNextEntry
->
originalRpcType
==
TDMT_SYNC_CONFIG_CHANGE
)
{
sInfo
(
"vgId:%d, to change config at Commit. "
"current entry, index:%"
PRId64
", term:%"
PRId64
", "
"node, role:%d, current term:%"
PRId64
", restore:%d, "
"cond, next entry index:%"
PRId64
", msgType:%s"
,
vgId
,
pEntry
->
index
,
pEntry
->
term
,
role
,
currentTerm
,
pNode
->
restoreFinish
,
pNextEntry
->
index
,
TMSG_INFO
(
pNextEntry
->
originalRpcType
));
if
(
syncNodeChangeConfig
(
pNode
,
pNextEntry
,
"Commit"
)
!=
0
){
sError
(
"vgId:%d, failed to change config from Commit. index:%"
PRId64
", term:%"
PRId64
", role:%d, current term:%"
PRId64
,
vgId
,
pNextEntry
->
index
,
pNextEntry
->
term
,
role
,
currentTerm
);
goto
_out
;
}
//for 2->1, need to apply config change entry in sync thread,
if
(
pNode
->
replicaNum
==
1
){
if
(
syncFsmExecute
(
pNode
,
pFsm
,
role
,
currentTerm
,
pNextEntry
,
0
,
true
)
!=
0
)
{
sError
(
"vgId:%d, failed to execute sync log entry. index:%"
PRId64
", term:%"
PRId64
", role:%d, current term:%"
PRId64
,
vgId
,
pNextEntry
->
index
,
pNextEntry
->
term
,
role
,
currentTerm
);
goto
_out
;
if
(
pNextEntry
!=
NULL
)
{
if
(
pNextEntry
->
originalRpcType
==
TDMT_SYNC_CONFIG_CHANGE
){
sInfo
(
"vgId:%d, to change config at Commit. "
"current entry, index:%"
PRId64
", term:%"
PRId64
", "
"node, role:%d, current term:%"
PRId64
", restore:%d, "
"cond, next entry index:%"
PRId64
", msgType:%s"
,
vgId
,
pEntry
->
index
,
pEntry
->
term
,
role
,
currentTerm
,
pNode
->
restoreFinish
,
pNextEntry
->
index
,
TMSG_INFO
(
pNextEntry
->
originalRpcType
));
if
(
syncNodeChangeConfig
(
pNode
,
pNextEntry
,
"Commit"
)
!=
0
){
sError
(
"vgId:%d, failed to change config from Commit. index:%"
PRId64
", term:%"
PRId64
", role:%d, current term:%"
PRId64
,
vgId
,
pNextEntry
->
index
,
pNextEntry
->
term
,
role
,
currentTerm
);
goto
_out
;
}
index
++
;
pBuf
->
commitIndex
=
index
;
//for 2->1, need to apply config change entry in sync thread,
if
(
pNode
->
replicaNum
==
1
){
if
(
syncFsmExecute
(
pNode
,
pFsm
,
role
,
currentTerm
,
pNextEntry
,
0
,
true
)
!=
0
)
{
sError
(
"vgId:%d, failed to execute sync log entry. index:%"
PRId64
", term:%"
PRId64
", role:%d, current term:%"
PRId64
,
vgId
,
pNextEntry
->
index
,
pNextEntry
->
term
,
role
,
currentTerm
);
goto
_out
;
}
sTrace
(
"vgId:%d, committed index:%"
PRId64
", term:%"
PRId64
", role:%d, current term:%"
PRId64
""
,
pNode
->
vgId
,
pNextEntry
->
index
,
pNextEntry
->
term
,
role
,
currentTerm
);
index
++
;
pBuf
->
commitIndex
=
index
;
sTrace
(
"vgId:%d, committed index:%"
PRId64
", term:%"
PRId64
", role:%d, current term:%"
PRId64
""
,
pNode
->
vgId
,
pNextEntry
->
index
,
pNextEntry
->
term
,
role
,
currentTerm
);
}
}
if
(
!
nextInBuf
)
{
syncEntryDestroy
(
pNextEntry
);
pNextEntry
=
NULL
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录