From 4dd55aff6fa0caddfb40d70aba5477865c98a1e6 Mon Sep 17 00:00:00 2001 From: zhouwenbin_db <506739837@qq.com> Date: Fri, 24 Mar 2023 02:25:17 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9UpdateAllNodeHeartBeat?= =?UTF-8?q?=EF=BC=8C=E6=AF=8F=E6=AC=A1=E6=A0=B9=E6=8D=AE=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E6=95=B0=E8=AF=BB=E5=8F=96=E5=85=B1=E4=BA=AB=E7=9B=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/cm_adapter/cm_sharediskapi/cm_voting_disk.cpp | 6 +++--- src/cm_server/cms_arbitrate_cluster.cpp | 2 +- src/include/cm/cm_adapter/cm_sharedisk/cm_voting_disk.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/cm_adapter/cm_sharediskapi/cm_voting_disk.cpp b/src/cm_adapter/cm_sharediskapi/cm_voting_disk.cpp index d3f8545..cb85c97 100644 --- a/src/cm_adapter/cm_sharediskapi/cm_voting_disk.cpp +++ b/src/cm_adapter/cm_sharediskapi/cm_voting_disk.cpp @@ -112,14 +112,14 @@ status_t SetVotingDiskNodeData(char *data, uint32 dataLen) return CM_SUCCESS; } -status_t UpdateAllNodeHeartBeat() +status_t UpdateAllNodeHeartBeat(uint32 nodeNum) { - uint32 dataLen = VOTING_DISK_DATA_SIZE; + uint32 dataLen = nodeNum * VOTING_DISK_EACH_NODE_OFFSET; if (GetVotingDiskNodeData(g_nodeDataBuff, dataLen) != CM_SUCCESS) { write_runlog(ERROR, "[%s] get voting disk node data failed.\n", __FUNCTION__); return CM_ERROR; } - for (uint32 i = 0; i < VOTING_DISK_MAX_NODE_NUM; i++) { + for (uint32 i = 0; i < nodeNum; i++) { uint32 offset = i * VOTING_DISK_EACH_NODE_OFFSET; VotingDiskNodeInfo *nodeInfo = (VotingDiskNodeInfo*)(g_nodeDataBuff + offset); if (nodeInfo->nodeTime == 0) { diff --git a/src/cm_server/cms_arbitrate_cluster.cpp b/src/cm_server/cms_arbitrate_cluster.cpp index b9bdc95..0808766 100644 --- a/src/cm_server/cms_arbitrate_cluster.cpp +++ b/src/cm_server/cms_arbitrate_cluster.cpp @@ -999,7 +999,7 @@ static status_t CheckVotingDisk() const uint32 timeout = 6; uint32 time = timeout; while (time > 0) { - if (UpdateAllNodeHeartBeat() == CM_SUCCESS) { + if (UpdateAllNodeHeartBeat(g_node_num) == CM_SUCCESS) { return CM_SUCCESS; } time--; diff --git a/src/include/cm/cm_adapter/cm_sharedisk/cm_voting_disk.h b/src/include/cm/cm_adapter/cm_sharedisk/cm_voting_disk.h index c32816c..eb2be21 100644 --- a/src/include/cm/cm_adapter/cm_sharedisk/cm_voting_disk.h +++ b/src/include/cm/cm_adapter/cm_sharedisk/cm_voting_disk.h @@ -42,7 +42,7 @@ status_t GetVotingDiskData(char *data, uint32 dataLen, uint32 offset); status_t GetVotingDiskSingleNodeInfo(VotingDiskNodeInfo *nodeInfo, uint32 nodeIndex); status_t InitVotingDiskHandler(const char *scsiDev, uint32 offset); status_t InitVotingDisk(const char *votingDiskPath); -status_t UpdateAllNodeHeartBeat(); +status_t UpdateAllNodeHeartBeat(uint32 nodeNum); void ResetVotingdiskHeartBeat(); VotingDiskStatus GetNodeHeartbeatStat(uint32 nodeIndex, uint32 diskTimeout, int logLevel); status_t AllocVotingDiskMem();