Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
d10684a3
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
d10684a3
编写于
5月 13, 2022
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: invalid write while send recv
上级
095f6938
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
12 addition
and
17 deletion
+12
-17
include/common/tmsgcb.h
include/common/tmsgcb.h
+2
-2
source/common/src/tmsgcb.c
source/common/src/tmsgcb.c
+2
-2
source/dnode/mgmt/node_mgmt/src/dmTransport.c
source/dnode/mgmt/node_mgmt/src/dmTransport.c
+8
-13
未找到文件。
include/common/tmsgcb.h
浏览文件 @
d10684a3
...
...
@@ -67,9 +67,9 @@ void tmsgSetDefaultMsgCb(const SMsgCb* pMsgCb);
int32_t
tmsgPutToQueue
(
const
SMsgCb
*
pMsgCb
,
EQueueType
qtype
,
SRpcMsg
*
pReq
);
int32_t
tmsgGetQueueSize
(
const
SMsgCb
*
pMsgCb
,
int32_t
vgId
,
EQueueType
qtype
);
int32_t
tmsgSendReq
(
const
SMsgCb
*
pMsgCb
,
const
SEpSet
*
epSet
,
SRpcMsg
*
pReq
);
void
tmsgSendRsp
(
const
SRpcMsg
*
pRsp
);
void
tmsgSendRsp
(
SRpcMsg
*
pRsp
);
void
tmsgSendMnodeRecv
(
SRpcMsg
*
pReq
,
SRpcMsg
*
pRsp
);
void
tmsgSendRedirectRsp
(
const
SRpcMsg
*
pRsp
,
const
SEpSet
*
pNewEpSet
);
void
tmsgSendRedirectRsp
(
SRpcMsg
*
pRsp
,
const
SEpSet
*
pNewEpSet
);
void
tmsgRegisterBrokenLinkArg
(
const
SMsgCb
*
pMsgCb
,
SRpcMsg
*
pMsg
);
void
tmsgReleaseHandle
(
void
*
handle
,
int8_t
type
);
void
tmsgReportStartup
(
const
char
*
name
,
const
char
*
desc
);
...
...
source/common/src/tmsgcb.c
浏览文件 @
d10684a3
...
...
@@ -55,7 +55,7 @@ int32_t tmsgSendReq(const SMsgCb* pMsgCb, const SEpSet* epSet, SRpcMsg* pReq) {
}
}
void
tmsgSendRsp
(
const
SRpcMsg
*
pRsp
)
{
void
tmsgSendRsp
(
SRpcMsg
*
pRsp
)
{
SendRspFp
fp
=
tsDefaultMsgCb
.
sendRspFp
;
if
(
fp
!=
NULL
)
{
return
(
*
fp
)(
tsDefaultMsgCb
.
pWrapper
,
pRsp
);
...
...
@@ -64,7 +64,7 @@ void tmsgSendRsp(const SRpcMsg* pRsp) {
}
}
void
tmsgSendRedirectRsp
(
const
SRpcMsg
*
pRsp
,
const
SEpSet
*
pNewEpSet
)
{
void
tmsgSendRedirectRsp
(
SRpcMsg
*
pRsp
,
const
SEpSet
*
pNewEpSet
)
{
SendRedirectRspFp
fp
=
tsDefaultMsgCb
.
sendRedirectRspFp
;
if
(
fp
!=
NULL
)
{
(
*
fp
)(
tsDefaultMsgCb
.
pWrapper
,
pRsp
,
pNewEpSet
);
...
...
source/dnode/mgmt/node_mgmt/src/dmTransport.c
浏览文件 @
d10684a3
...
...
@@ -259,34 +259,29 @@ static inline void dmSendRpcRsp(SDnode *pDnode, const SRpcMsg *pRsp) {
static
inline
void
dmSendRecv
(
SDnode
*
pDnode
,
SEpSet
*
pEpSet
,
SRpcMsg
*
pReq
,
SRpcMsg
*
pRsp
)
{
if
(
pDnode
->
status
!=
DND_STAT_RUNNING
)
{
pRsp
->
code
=
TSDB_CODE_NODE_OFFLINE
;
rpcFreeCont
(
pReq
->
pCont
);
pReq
->
pCont
=
NULL
;
}
else
{
rpcSendRecv
(
pDnode
->
trans
.
clientRpc
,
pEpSet
,
pReq
,
pRsp
);
}
}
static
inline
void
dmSendToMnodeRecv
(
SMgmtWrapper
*
pWrapper
,
SRpcMsg
*
pReq
,
SRpcMsg
*
pRsp
)
{
if
(
pWrapper
->
pDnode
->
status
!=
DND_STAT_RUNNING
)
{
pRsp
->
code
=
TSDB_CODE_NODE_OFFLINE
;
}
else
{
SEpSet
epSet
=
{
0
};
dmGetMnodeEpSet
(
pWrapper
->
pDnode
,
&
epSet
);
dmSendRecv
(
pWrapper
->
pDnode
,
&
epSet
,
pReq
,
pRsp
);
}
SEpSet
epSet
=
{
0
};
dmGetMnodeEpSet
(
pWrapper
->
pDnode
,
&
epSet
);
dmSendRecv
(
pWrapper
->
pDnode
,
&
epSet
,
pReq
,
pRsp
);
}
static
inline
int32_t
dmSendReq
(
SMgmtWrapper
*
pWrapper
,
const
SEpSet
*
pEpSet
,
SRpcMsg
*
pReq
)
{
SDnode
*
pDnode
=
pWrapper
->
pDnode
;
if
(
pDnode
->
status
!=
DND_STAT_RUNNING
)
{
if
(
pDnode
->
status
!=
DND_STAT_RUNNING
||
pDnode
->
trans
.
clientRpc
==
NULL
)
{
rpcFreeCont
(
pReq
->
pCont
);
pReq
->
pCont
=
NULL
;
terrno
=
TSDB_CODE_NODE_OFFLINE
;
dError
(
"failed to send rpc msg since %s, handle:%p"
,
terrstr
(),
pReq
->
handle
);
return
-
1
;
}
if
(
pDnode
->
trans
.
clientRpc
==
NULL
)
{
terrno
=
TSDB_CODE_NODE_OFFLINE
;
return
-
1
;
}
rpcSendRequest
(
pDnode
->
trans
.
clientRpc
,
pEpSet
,
pReq
,
NULL
);
return
0
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录