Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
e9586c69
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e9586c69
编写于
5月 13, 2022
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: check server status
上级
992a64e7
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
30 addition
and
15 deletion
+30
-15
source/dnode/mgmt/mgmt_dnode/CMakeLists.txt
source/dnode/mgmt/mgmt_dnode/CMakeLists.txt
+1
-1
source/dnode/mgmt/node_mgmt/inc/dmMgmt.h
source/dnode/mgmt/node_mgmt/inc/dmMgmt.h
+1
-0
source/dnode/mgmt/node_mgmt/src/dmMgmt.c
source/dnode/mgmt/node_mgmt/src/dmMgmt.c
+28
-14
未找到文件。
source/dnode/mgmt/mgmt_dnode/CMakeLists.txt
浏览文件 @
e9586c69
...
...
@@ -2,7 +2,7 @@ aux_source_directory(src MGMT_DNODE)
add_library
(
mgmt_dnode STATIC
${
MGMT_DNODE
}
)
target_include_directories
(
mgmt_dnode
P
RIVATE
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/inc"
P
UBLIC
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/inc"
)
target_link_libraries
(
mgmt_dnode node_util
...
...
source/dnode/mgmt/node_mgmt/inc/dmMgmt.h
浏览文件 @
e9586c69
...
...
@@ -20,6 +20,7 @@
#include "uv.h"
#include "dmUtil.h"
#include "dmInt.h"
#ifdef __cplusplus
extern
"C"
{
...
...
source/dnode/mgmt/node_mgmt/src/dmMgmt.c
浏览文件 @
e9586c69
...
...
@@ -236,29 +236,43 @@ void dmReportStartupByWrapper(SMgmtWrapper *pWrapper, const char *pName, const c
}
static
void
dmGetServerStatus
(
SDnode
*
pDnode
,
SServerStatusRsp
*
pStatus
)
{
SDnodeMgmt
*
pMgmt
=
pDnode
->
wrappers
[
DNODE
].
pMgmt
;
pStatus
->
statusCode
=
TSDB_SRV_STATUS_SERVICE_OK
;
pStatus
->
details
[
0
]
=
0
;
if
(
pDnode
->
status
==
DND_STAT_INIT
)
{
pStatus
->
statusCode
=
TSDB_SRV_STATUS_NETWORK_OK
;
snprintf
(
pStatus
->
details
,
sizeof
(
pStatus
->
details
),
"%s: %s"
,
pDnode
->
startup
.
name
,
pDnode
->
startup
.
desc
);
}
else
if
(
pDnode
->
status
==
DND_STAT_STOPPED
)
{
return
;
}
if
(
pDnode
->
status
==
DND_STAT_STOPPED
)
{
pStatus
->
statusCode
=
TSDB_SRV_STATUS_EXTING
;
}
else
{
#if 0
SDnodeData *pData = &pDnode->data;
if (pData->isMnode && pData->mndState != TAOS_SYNC_STATE_LEADER && pData->mndState == TAOS_SYNC_STATE_CANDIDATE) {
return
;
}
SMonMloadInfo
minfo
=
{
0
};
dmGetMnodeLoads
(
pMgmt
,
&
minfo
);
if
(
minfo
.
isMnode
&&
minfo
.
load
.
syncState
!=
TAOS_SYNC_STATE_LEADER
&&
minfo
.
load
.
syncState
!=
TAOS_SYNC_STATE_CANDIDATE
)
{
pStatus
->
statusCode
=
TSDB_SRV_STATUS_SERVICE_DEGRADED
;
snprintf(pStatus->details, sizeof(pStatus->details), "mnode sync state is %s", syncStr(pData->mndState));
} else if (pData->unsyncedVgId != 0 && pData->vndState != TAOS_SYNC_STATE_LEADER &&
pData->vndState != TAOS_SYNC_STATE_CANDIDATE) {
snprintf
(
pStatus
->
details
,
sizeof
(
pStatus
->
details
),
"mnode sync state is %s"
,
syncStr
(
minfo
.
load
.
syncState
));
return
;
}
SMonVloadInfo
vinfo
=
{
0
};
dmGetVnodeLoads
(
pMgmt
,
&
vinfo
);
for
(
int32_t
i
=
0
;
i
<
taosArrayGetSize
(
vinfo
.
pVloads
);
++
i
)
{
SVnodeLoad
*
pLoad
=
taosArrayGet
(
vinfo
.
pVloads
,
i
);
if
(
pLoad
->
syncState
!=
TAOS_SYNC_STATE_LEADER
&&
pLoad
->
syncState
!=
TAOS_SYNC_STATE_FOLLOWER
)
{
pStatus
->
statusCode
=
TSDB_SRV_STATUS_SERVICE_DEGRADED
;
snprintf(pStatus->details, sizeof(pStatus->details), "vnode:%d sync state is %s", pData->unsyncedVgId,
syncStr(pData->vndState));
} else {
pStatus->statusCode = TSDB_SRV_STATUS_SERVICE_OK;
snprintf
(
pStatus
->
details
,
sizeof
(
pStatus
->
details
),
"vnode:%d sync state is %s"
,
pLoad
->
vgId
,
syncStr
(
pLoad
->
syncState
));
break
;
}
#endif
}
taosArrayDestroy
(
vinfo
.
pVloads
);
}
void
dmProcessNetTestReq
(
SDnode
*
pDnode
,
SRpcMsg
*
pReq
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录