Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
470fef64
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
提交
470fef64
编写于
4月 24, 2023
作者:
C
cadem
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix/block check to async check for mnode
上级
a781d435
变更
8
显示空白变更内容
内联
并排
Showing
8 changed file
with
32 addition
and
3 deletion
+32
-3
include/dnode/mnode/mnode.h
include/dnode/mnode/mnode.h
+2
-0
include/util/taoserror.h
include/util/taoserror.h
+2
-0
source/dnode/mgmt/mgmt_mnode/src/mmInt.c
source/dnode/mgmt/mgmt_mnode/src/mmInt.c
+5
-0
source/dnode/mgmt/mgmt_vnode/src/vmHandle.c
source/dnode/mgmt/mgmt_vnode/src/vmHandle.c
+3
-1
source/dnode/mgmt/node_mgmt/src/dmEnv.c
source/dnode/mgmt/node_mgmt/src/dmEnv.c
+11
-1
source/dnode/mgmt/node_util/inc/dmUtil.h
source/dnode/mgmt/node_util/inc/dmUtil.h
+2
-0
source/dnode/mnode/impl/src/mndMain.c
source/dnode/mnode/impl/src/mndMain.c
+5
-0
source/dnode/mnode/impl/src/mndMnode.c
source/dnode/mnode/impl/src/mndMnode.c
+2
-1
未找到文件。
include/dnode/mnode/mnode.h
浏览文件 @
470fef64
...
...
@@ -20,6 +20,7 @@
#include "tmsg.h"
#include "tmsgcb.h"
#include "trpc.h"
#include "sync.h"
#ifdef __cplusplus
extern
"C"
{
...
...
@@ -73,6 +74,7 @@ int32_t mndStart(SMnode *pMnode);
void
mndStop
(
SMnode
*
pMnode
);
int32_t
mndIsCatchUp
(
SMnode
*
pMnode
);
ESyncRole
mndGetRole
(
SMnode
*
pMnode
);
/**
* @brief Get mnode monitor info.
...
...
include/util/taoserror.h
浏览文件 @
470fef64
...
...
@@ -403,6 +403,8 @@ int32_t* taosGetErrno();
#define TSDB_CODE_SNODE_ALREADY_DEPLOYED TAOS_DEF_ERROR_CODE(0, 0x040F)
#define TSDB_CODE_SNODE_NOT_FOUND TAOS_DEF_ERROR_CODE(0, 0x0410)
#define TSDB_CODE_SNODE_NOT_DEPLOYED TAOS_DEF_ERROR_CODE(0, 0x0411)
#define TSDB_CODE_MNODE_NOT_CATCH_UP TAOS_DEF_ERROR_CODE(0, 0x0412) // internal
#define TSDB_CODE_MNODE_ALREADY_IS_VOTER TAOS_DEF_ERROR_CODE(0, 0x0413) // internal
// vnode
// #define TSDB_CODE_VND_ACTION_IN_PROGRESS TAOS_DEF_ERROR_CODE(0, 0x0500) // 2.x
...
...
source/dnode/mgmt/mgmt_mnode/src/mmInt.c
浏览文件 @
470fef64
...
...
@@ -159,6 +159,10 @@ static int32_t mmSyncIsCatchUp(SMnodeMgmt *pMgmt) {
return
mndIsCatchUp
(
pMgmt
->
pMnode
);
}
static
ESyncRole
mmSyncGetRole
(
SMnodeMgmt
*
pMgmt
)
{
return
mndGetRole
(
pMgmt
->
pMnode
);
}
SMgmtFunc
mmGetMgmtFunc
()
{
SMgmtFunc
mgmtFunc
=
{
0
};
mgmtFunc
.
openFp
=
mmOpen
;
...
...
@@ -170,6 +174,7 @@ SMgmtFunc mmGetMgmtFunc() {
mgmtFunc
.
requiredFp
=
mmRequire
;
mgmtFunc
.
getHandlesFp
=
mmGetMsgHandles
;
mgmtFunc
.
isCatchUpFp
=
(
NodeIsCatchUpFp
)
mmSyncIsCatchUp
;
mgmtFunc
.
nodeRoleFp
=
(
NodeRole
)
mmSyncGetRole
;
return
mgmtFunc
;
}
source/dnode/mgmt/mgmt_vnode/src/vmHandle.c
浏览文件 @
470fef64
...
...
@@ -341,7 +341,9 @@ int32_t vmProcessAlterVnodeTypeReq(SVnodeMgmt *pMgmt, SRpcMsg *pMsg) {
return
-
1
;
}
if
(
vnodeGetRole
(
pVnode
->
pImpl
)
==
TAOS_SYNC_ROLE_VOTER
){
ESyncRole
role
=
vnodeGetRole
(
pVnode
->
pImpl
);
dInfo
(
"vgId:%d, checking node role:%d"
,
req
.
vgId
,
role
);
if
(
role
==
TAOS_SYNC_ROLE_VOTER
){
terrno
=
TSDB_CODE_VND_ALREADY_IS_VOTER
;
vmReleaseVnode
(
pMgmt
,
pVnode
);
return
-
1
;
...
...
source/dnode/mgmt/node_mgmt/src/dmEnv.c
浏览文件 @
470fef64
...
...
@@ -214,9 +214,19 @@ static int32_t dmProcessAlterNodeTypeReq(EDndNodeType ntype, SRpcMsg *pMsg) {
pWrapper
=
&
pDnode
->
wrappers
[
ntype
];
if
(
pWrapper
->
func
.
nodeRoleFp
!=
NULL
){
ESyncRole
role
=
(
*
pWrapper
->
func
.
nodeRoleFp
)(
pWrapper
->
pMgmt
);
dInfo
(
"node:%s, checking node role:%d"
,
pWrapper
->
name
,
role
);
if
(
role
==
TAOS_SYNC_ROLE_VOTER
){
terrno
=
TSDB_CODE_MNODE_ALREADY_IS_VOTER
;
return
-
1
;
}
}
if
(
pWrapper
->
func
.
isCatchUpFp
!=
NULL
){
dInfo
(
"node:%s, checking node catch up"
,
pWrapper
->
name
);
if
(
!
(
*
pWrapper
->
func
.
isCatchUpFp
)(
pWrapper
->
pMgmt
)
==
0
){
if
((
*
pWrapper
->
func
.
isCatchUpFp
)(
pWrapper
->
pMgmt
)
!=
1
){
terrno
=
TSDB_CODE_MNODE_NOT_CATCH_UP
;
return
-
1
;
}
}
...
...
source/dnode/mgmt/node_util/inc/dmUtil.h
浏览文件 @
470fef64
...
...
@@ -135,6 +135,7 @@ typedef int32_t (*NodeDropFp)(const SMgmtInputOpt *pInput, SRpcMsg *pMsg);
typedef
int32_t
(
*
NodeRequireFp
)(
const
SMgmtInputOpt
*
pInput
,
bool
*
required
);
typedef
SArray
*
(
*
NodeGetHandlesFp
)();
// array of SMgmtHandle
typedef
bool
(
*
NodeIsCatchUpFp
)(
void
*
pMgmt
);
typedef
bool
(
*
NodeRole
)(
void
*
pMgmt
);
typedef
struct
{
NodeOpenFp
openFp
;
...
...
@@ -146,6 +147,7 @@ typedef struct {
NodeRequireFp
requiredFp
;
NodeGetHandlesFp
getHandlesFp
;
NodeIsCatchUpFp
isCatchUpFp
;
NodeRole
nodeRoleFp
;
}
SMgmtFunc
;
typedef
struct
{
...
...
source/dnode/mnode/impl/src/mndMain.c
浏览文件 @
470fef64
...
...
@@ -590,6 +590,11 @@ int32_t mndIsCatchUp(SMnode *pMnode) {
return
syncIsCatchUp
(
rid
);
}
ESyncRole
mndGetRole
(
SMnode
*
pMnode
){
int64_t
rid
=
pMnode
->
syncMgmt
.
sync
;
return
syncGetRole
(
rid
);
}
void
mndStop
(
SMnode
*
pMnode
)
{
mndSetStop
(
pMnode
);
mndSyncStop
(
pMnode
);
...
...
source/dnode/mnode/impl/src/mndMnode.c
浏览文件 @
470fef64
...
...
@@ -322,7 +322,8 @@ static int32_t mndBuildAlterMnodeTypeRedoAction(STrans *pTrans,
.
pCont
=
pReq
,
.
contLen
=
contLen
,
.
msgType
=
TDMT_DND_ALTER_MNODE_TYPE
,
.
acceptableCode
=
TSDB_CODE_MNODE_ALREADY_DEPLOYED
,
.
retryCode
=
TSDB_CODE_MNODE_NOT_CATCH_UP
,
.
acceptableCode
=
TSDB_CODE_MNODE_ALREADY_IS_VOTER
,
};
if
(
mndTransAppendRedoAction
(
pTrans
,
&
action
)
!=
0
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录