Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
12633aa2
T
TDengine
项目概览
慢慢CG
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
12633aa2
编写于
7月 29, 2020
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TD-993] add error code of "cluster not ready"
上级
45ec0df6
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
22 addition
and
13 deletion
+22
-13
src/balance/src/balance.c
src/balance/src/balance.c
+8
-3
src/inc/taoserror.h
src/inc/taoserror.h
+1
-0
src/mnode/inc/mnodeDnode.h
src/mnode/inc/mnodeDnode.h
+1
-1
src/mnode/src/mnodeDnode.c
src/mnode/src/mnodeDnode.c
+1
-1
src/mnode/src/mnodeShow.c
src/mnode/src/mnodeShow.c
+1
-1
src/mnode/src/mnodeVgroup.c
src/mnode/src/mnodeVgroup.c
+10
-7
未找到文件。
src/balance/src/balance.c
浏览文件 @
12633aa2
...
...
@@ -142,9 +142,14 @@ int32_t balanceAllocVnodes(SVgObj *pVgroup) {
if
(
vnodes
!=
pVgroup
->
numOfVnodes
)
{
mDebug
(
"vgId:%d, db:%s need vnodes:%d, but alloc:%d, free them"
,
pVgroup
->
vgId
,
pVgroup
->
dbName
,
pVgroup
->
numOfVnodes
,
vnodes
);
balanceReleaseDnodeList
();
balanceReleaseDnodeList
();
balanceUnLock
();
return
-
1
;
if
(
mnodeGetOnlineDnodesNum
()
==
0
)
{
return
TSDB_CODE_MND_NOT_READY
;
}
else
{
return
TSDB_CODE_MND_NO_ENOUGH_DNODES
;
}
}
/*
...
...
@@ -179,7 +184,7 @@ int32_t balanceAllocVnodes(SVgObj *pVgroup) {
balanceReleaseDnodeList
();
balanceUnLock
();
return
0
;
return
TSDB_CODE_SUCCESS
;
}
static
bool
balanceCheckVgroupReady
(
SVgObj
*
pVgroup
,
SVnodeGid
*
pRmVnode
)
{
...
...
src/inc/taoserror.h
浏览文件 @
12633aa2
...
...
@@ -132,6 +132,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_MND_VGROUP_NOT_IN_DNODE, 0, 0x0338, "vgroup not
TAOS_DEFINE_ERROR
(
TSDB_CODE_MND_VGROUP_ALREADY_IN_DNODE
,
0
,
0x0339
,
"vgroup already in dnode"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_MND_DNODE_NOT_FREE
,
0
,
0x033A
,
"dnode not avaliable"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_MND_INVALID_CLUSTER_ID
,
0
,
0x033B
,
"cluster id not match"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_MND_NOT_READY
,
0
,
0x033C
,
"cluster not ready"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_MND_ACCT_ALREADY_EXIST
,
0
,
0x0340
,
"mnode accounts already exist"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_MND_INVALID_ACCT
,
0
,
0x0341
,
"mnode invalid account"
)
...
...
src/mnode/inc/mnodeDnode.h
浏览文件 @
12633aa2
...
...
@@ -41,7 +41,7 @@ void mgmtMonitorDnodeModule();
int32_t
mnodeGetDnodesNum
();
int32_t
mnodeGetOnlinDnodesCpuCoreNum
();
int32_t
mnodeGetOnlinDnodesNum
();
int32_t
mnodeGetOnlin
e
DnodesNum
();
void
*
mnodeGetNextDnode
(
void
*
pIter
,
SDnodeObj
**
pDnode
);
void
mnodeIncDnodeRef
(
SDnodeObj
*
pDnode
);
void
mnodeDecDnodeRef
(
SDnodeObj
*
pDnode
);
...
...
src/mnode/src/mnodeDnode.c
浏览文件 @
12633aa2
...
...
@@ -206,7 +206,7 @@ int32_t mnodeGetOnlinDnodesCpuCoreNum() {
return
cpuCores
;
}
int32_t
mnodeGetOnlinDnodesNum
()
{
int32_t
mnodeGetOnlin
e
DnodesNum
()
{
SDnodeObj
*
pDnode
=
NULL
;
void
*
pIter
=
NULL
;
int32_t
onlineDnodes
=
0
;
...
...
src/mnode/src/mnodeShow.c
浏览文件 @
12633aa2
...
...
@@ -270,7 +270,7 @@ static int32_t mnodeProcessHeartBeatMsg(SMnodeMsg *pMsg) {
}
}
pHBRsp
->
onlineDnodes
=
htonl
(
mnodeGetOnlinDnodesNum
());
pHBRsp
->
onlineDnodes
=
htonl
(
mnodeGetOnlin
e
DnodesNum
());
pHBRsp
->
totalDnodes
=
htonl
(
mnodeGetDnodesNum
());
mnodeGetMnodeEpSetForShell
(
&
pHBRsp
->
epSet
);
...
...
src/mnode/src/mnodeVgroup.c
浏览文件 @
12633aa2
...
...
@@ -434,11 +434,12 @@ int32_t mnodeGetAvailableVgroup(SMnodeMsg *pMsg, SVgObj **ppVgroup, int32_t *pSi
maxVgroupsPerDb
=
MAX
(
maxVgroupsPerDb
,
2
);
}
int32_t
code
=
TSDB_CODE_MND_NO_ENOUGH_DNODES
;
if
(
pDb
->
numOfVgroups
<
maxVgroupsPerDb
)
{
mDebug
(
"app:%p:%p, db:%s, try to create a new vgroup, numOfVgroups:%d maxVgroupsPerDb:%d"
,
pMsg
->
rpcMsg
.
ahandle
,
pMsg
,
pDb
->
name
,
pDb
->
numOfVgroups
,
maxVgroupsPerDb
);
pthread_mutex_unlock
(
&
pDb
->
mutex
);
int32_t
code
=
mnodeCreateVgroup
(
pMsg
);
code
=
mnodeCreateVgroup
(
pMsg
);
if
(
code
==
TSDB_CODE_MND_ACTION_IN_PROGRESS
)
{
return
code
;
}
else
{
...
...
@@ -449,10 +450,10 @@ int32_t mnodeGetAvailableVgroup(SMnodeMsg *pMsg, SVgObj **ppVgroup, int32_t *pSi
SVgObj
*
pVgroup
=
pDb
->
vgList
[
0
];
if
(
pVgroup
==
NULL
)
{
pthread_mutex_unlock
(
&
pDb
->
mutex
);
return
TSDB_CODE_MND_NO_ENOUGH_DNODES
;
return
code
;
}
int32_t
code
=
mnodeAllocVgroupIdPool
(
pVgroup
);
code
=
mnodeAllocVgroupIdPool
(
pVgroup
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
pthread_mutex_unlock
(
&
pDb
->
mutex
);
return
code
;
...
...
@@ -529,10 +530,12 @@ int32_t mnodeCreateVgroup(SMnodeMsg *pMsg) {
pVgroup
->
numOfVnodes
=
pDb
->
cfg
.
replications
;
pVgroup
->
createdTime
=
taosGetTimestampMs
();
pVgroup
->
accessState
=
TSDB_VN_ALL_ACCCESS
;
if
(
balanceAllocVnodes
(
pVgroup
)
!=
0
)
{
mError
(
"db:%s, no enough dnode to alloc %d vnodes to vgroup"
,
pDb
->
name
,
pVgroup
->
numOfVnodes
);
int32_t
code
=
balanceAllocVnodes
(
pVgroup
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
mError
(
"db:%s, no enough dnode to alloc %d vnodes to vgroup, reason:%s"
,
pDb
->
name
,
pVgroup
->
numOfVnodes
,
tstrerror
(
code
));
free
(
pVgroup
);
return
TSDB_CODE_MND_NO_ENOUGH_DNODES
;
return
code
;
}
if
(
pMsg
->
pVgroup
!=
NULL
)
{
...
...
@@ -551,7 +554,7 @@ int32_t mnodeCreateVgroup(SMnodeMsg *pMsg) {
.
reqFp
=
mnodeCreateVgroupFp
};
int32_t
code
=
sdbInsertRow
(
&
oper
);
code
=
sdbInsertRow
(
&
oper
);
if
(
code
!=
TSDB_CODE_SUCCESS
&&
code
!=
TSDB_CODE_MND_ACTION_IN_PROGRESS
)
{
pMsg
->
pVgroup
=
NULL
;
mnodeDestroyVgroup
(
pVgroup
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录