From da2ca889f28808569ef23b0c567b59416524741e Mon Sep 17 00:00:00 2001 From: kailixu Date: Sun, 23 Apr 2023 14:42:24 +0800 Subject: [PATCH 1/3] fix: release resources if node open/start failed --- source/dnode/mgmt/node_mgmt/src/dmNodes.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/dnode/mgmt/node_mgmt/src/dmNodes.c b/source/dnode/mgmt/node_mgmt/src/dmNodes.c index 16931ab6df..8c1e6e745c 100644 --- a/source/dnode/mgmt/node_mgmt/src/dmNodes.c +++ b/source/dnode/mgmt/node_mgmt/src/dmNodes.c @@ -107,6 +107,9 @@ static int32_t dmStartNodes(SDnode *pDnode) { dError("node:%s, failed to start since %s", pWrapper->name, terrstr()); return -1; } + if(ntype == VNODE) { + return -1; + } } dInfo("The daemon initialized successfully"); @@ -132,11 +135,14 @@ int32_t dmRunDnode(SDnode *pDnode) { int32_t count = 0; if (dmOpenNodes(pDnode) != 0) { dError("failed to open nodes since %s", terrstr()); + dmCloseNodes(pDnode); return -1; } if (dmStartNodes(pDnode) != 0) { dError("failed to start nodes since %s", terrstr()); + dmStopNodes(pDnode); + dmCloseNodes(pDnode); return -1; } From ebb1d83a3e21a7584fd09af37cd8773390075a66 Mon Sep 17 00:00:00 2001 From: kailixu Date: Sun, 23 Apr 2023 14:43:26 +0800 Subject: [PATCH 2/3] chore: remove ut code --- source/dnode/mgmt/node_mgmt/src/dmNodes.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/source/dnode/mgmt/node_mgmt/src/dmNodes.c b/source/dnode/mgmt/node_mgmt/src/dmNodes.c index 8c1e6e745c..df2a17a219 100644 --- a/source/dnode/mgmt/node_mgmt/src/dmNodes.c +++ b/source/dnode/mgmt/node_mgmt/src/dmNodes.c @@ -107,9 +107,6 @@ static int32_t dmStartNodes(SDnode *pDnode) { dError("node:%s, failed to start since %s", pWrapper->name, terrstr()); return -1; } - if(ntype == VNODE) { - return -1; - } } dInfo("The daemon initialized successfully"); From f31e2b9cb420723c7900e88a48b01fdba9433ebe Mon Sep 17 00:00:00 2001 From: kailixu Date: Sun, 23 Apr 2023 14:56:06 +0800 Subject: [PATCH 3/3] chore: more code --- source/dnode/mgmt/node_mgmt/src/dmNodes.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/dnode/mgmt/node_mgmt/src/dmNodes.c b/source/dnode/mgmt/node_mgmt/src/dmNodes.c index df2a17a219..19d5e06c5b 100644 --- a/source/dnode/mgmt/node_mgmt/src/dmNodes.c +++ b/source/dnode/mgmt/node_mgmt/src/dmNodes.c @@ -138,6 +138,7 @@ int32_t dmRunDnode(SDnode *pDnode) { if (dmStartNodes(pDnode) != 0) { dError("failed to start nodes since %s", terrstr()); + dmSetStatus(pDnode, DND_STAT_STOPPED); dmStopNodes(pDnode); dmCloseNodes(pDnode); return -1;