Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yiicenne
TDengine
提交
4aebd5bd
TDengine
项目概览
yiicenne
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4aebd5bd
编写于
4月 01, 2021
作者:
M
Minglei Jin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TD-3612]<fix>: fix vnode write msg double free issue
上级
58d1d6a4
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
6 addition
and
2 deletion
+6
-2
src/dnode/src/dnodeVWrite.c
src/dnode/src/dnodeVWrite.c
+1
-1
src/vnode/src/vnodeWrite.c
src/vnode/src/vnodeWrite.c
+5
-1
未找到文件。
src/dnode/src/dnodeVWrite.c
浏览文件 @
4aebd5bd
...
@@ -205,7 +205,7 @@ static void *dnodeProcessVWriteQueue(void *wparam) {
...
@@ -205,7 +205,7 @@ static void *dnodeProcessVWriteQueue(void *wparam) {
pWrite
->
rpcMsg
.
ahandle
,
taosMsg
[
pWrite
->
pHead
.
msgType
],
qtypeStr
[
qtype
],
pWrite
->
pHead
.
version
);
pWrite
->
rpcMsg
.
ahandle
,
taosMsg
[
pWrite
->
pHead
.
msgType
],
qtypeStr
[
qtype
],
pWrite
->
pHead
.
version
);
pWrite
->
code
=
vnodeProcessWrite
(
pVnode
,
&
pWrite
->
pHead
,
qtype
,
pWrite
);
pWrite
->
code
=
vnodeProcessWrite
(
pVnode
,
&
pWrite
->
pHead
,
qtype
,
pWrite
);
if
(
pWrite
->
code
<=
0
)
pWrite
->
processedCount
=
1
;
if
(
pWrite
->
code
<=
0
)
atomic_add_fetch_32
(
&
pWrite
->
processedCount
,
1
)
;
if
(
pWrite
->
code
>
0
)
pWrite
->
code
=
0
;
if
(
pWrite
->
code
>
0
)
pWrite
->
code
=
0
;
if
(
pWrite
->
code
==
0
&&
pWrite
->
pHead
.
msgType
!=
TSDB_MSG_TYPE_SUBMIT
)
forceFsync
=
true
;
if
(
pWrite
->
code
==
0
&&
pWrite
->
pHead
.
msgType
!=
TSDB_MSG_TYPE_SUBMIT
)
forceFsync
=
true
;
...
...
src/vnode/src/vnodeWrite.c
浏览文件 @
4aebd5bd
...
@@ -96,6 +96,7 @@ int32_t vnodeProcessWrite(void *vparam, void *wparam, int32_t qtype, void *rpara
...
@@ -96,6 +96,7 @@ int32_t vnodeProcessWrite(void *vparam, void *wparam, int32_t qtype, void *rpara
// write into WAL
// write into WAL
code
=
walWrite
(
pVnode
->
wal
,
pHead
);
code
=
walWrite
(
pVnode
->
wal
,
pHead
);
if
(
code
<
0
)
{
if
(
code
<
0
)
{
if
(
syncCode
>
0
)
atomic_sub_fetch_32
(
&
pWrite
->
processedCount
,
1
);
vError
(
"vgId:%d, hver:%"
PRIu64
" vver:%"
PRIu64
" code:0x%x"
,
pVnode
->
vgId
,
pHead
->
version
,
pVnode
->
version
,
code
);
vError
(
"vgId:%d, hver:%"
PRIu64
" vver:%"
PRIu64
" code:0x%x"
,
pVnode
->
vgId
,
pHead
->
version
,
pVnode
->
version
,
code
);
return
code
;
return
code
;
}
}
...
@@ -104,7 +105,10 @@ int32_t vnodeProcessWrite(void *vparam, void *wparam, int32_t qtype, void *rpara
...
@@ -104,7 +105,10 @@ int32_t vnodeProcessWrite(void *vparam, void *wparam, int32_t qtype, void *rpara
// write data locally
// write data locally
code
=
(
*
vnodeProcessWriteMsgFp
[
pHead
->
msgType
])(
pVnode
,
pHead
->
cont
,
pRspRet
);
code
=
(
*
vnodeProcessWriteMsgFp
[
pHead
->
msgType
])(
pVnode
,
pHead
->
cont
,
pRspRet
);
if
(
code
<
0
)
return
code
;
if
(
code
<
0
)
{
if
(
syncCode
>
0
)
atomic_sub_fetch_32
(
&
pWrite
->
processedCount
,
1
);
return
code
;
}
return
syncCode
;
return
syncCode
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录