From bde9b43933560836370d3478641bab9d205a2802 Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Tue, 15 Mar 2022 20:47:26 +0800 Subject: [PATCH] shm --- source/dnode/mgmt/container/src/dndInt.c | 1 + source/dnode/mgmt/mnode/src/mmInt.c | 7 +++++++ source/dnode/mgmt/mnode/src/mmWorker.c | 9 ++++++--- source/dnode/mgmt/vnode/src/vmInt.c | 12 +++++------- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/source/dnode/mgmt/container/src/dndInt.c b/source/dnode/mgmt/container/src/dndInt.c index 7f4b000ed5..e9c52ef575 100644 --- a/source/dnode/mgmt/container/src/dndInt.c +++ b/source/dnode/mgmt/container/src/dndInt.c @@ -60,6 +60,7 @@ void dndCleanup() { monCleanup(); rpcCleanup(); + walCleanUp(); taosStopCacheRefreshWorker(); dInfo("dnode env is cleaned up"); } diff --git a/source/dnode/mgmt/mnode/src/mmInt.c b/source/dnode/mgmt/mnode/src/mmInt.c index 04c91b1934..608ecca665 100644 --- a/source/dnode/mgmt/mnode/src/mmInt.c +++ b/source/dnode/mgmt/mnode/src/mmInt.c @@ -49,6 +49,12 @@ void mmRelease(SMnodeMgmt *pMgmt, SMnode *pMnode) { } int32_t mmOpen(SMnodeMgmt *pMgmt, SMnodeOpt *pOption) { + if (walInit() != 0) { + dError("failed to init wal since %s", terrstr()); + dndCleanup(); + return -1; + } + SMnode *pMnode = mndOpen(pMgmt->path, pOption); if (pMnode == NULL) { dError("failed to open mnode since %s", terrstr()); @@ -240,6 +246,7 @@ static int32_t mmInit(SMgmtWrapper *pWrapper) { _OVER: if (code == 0) { + pWrapper->pMgmt = pMgmt; dInfo("mnode-mgmt is initialized"); } else { dError("failed to init mnode-mgmtsince %s", terrstr()); diff --git a/source/dnode/mgmt/mnode/src/mmWorker.c b/source/dnode/mgmt/mnode/src/mmWorker.c index 067ca23e2b..67e8d89719 100644 --- a/source/dnode/mgmt/mnode/src/mmWorker.c +++ b/source/dnode/mgmt/mnode/src/mmWorker.c @@ -94,15 +94,18 @@ static int32_t mmPutMsgToWorker(SMnodeMgmt *pMgmt, SDnodeWorker *pWorker, SNodeM return code; } -int32_t mmProcessWriteMsg(SMnodeMgmt *pMgmt, SNodeMsg *pMsg) { +int32_t mmProcessWriteMsg(SMgmtWrapper *pWrapper, SNodeMsg *pMsg) { + SMnodeMgmt *pMgmt = pWrapper->pMgmt; return mmPutMsgToWorker(pMgmt, &pMgmt->writeWorker, pMsg); } -int32_t mmProcessSyncMsg(SMnodeMgmt *pMgmt, SNodeMsg *pMsg) { +int32_t mmProcessSyncMsg(SMgmtWrapper *pWrapper, SNodeMsg *pMsg) { + SMnodeMgmt *pMgmt = pWrapper->pMgmt; return mmPutMsgToWorker(pMgmt, &pMgmt->syncWorker, pMsg); } -int32_t mmProcessReadMsg(SMnodeMgmt *pMgmt, SNodeMsg *pMsg) { +int32_t mmProcessReadMsg(SMgmtWrapper *pWrapper, SNodeMsg *pMsg) { + SMnodeMgmt *pMgmt = pWrapper->pMgmt; return mmPutMsgToWorker(pMgmt, &pMgmt->readWorker, pMsg); } diff --git a/source/dnode/mgmt/vnode/src/vmInt.c b/source/dnode/mgmt/vnode/src/vmInt.c index 966b06c85c..a0584c5d2d 100644 --- a/source/dnode/mgmt/vnode/src/vmInt.c +++ b/source/dnode/mgmt/vnode/src/vmInt.c @@ -35,6 +35,11 @@ static int32_t vmInit(SMgmtWrapper *pWrapper) { // dError("failed to init tfs since %s", terrstr()); // return -1; // } + if (walInit() != 0) { + dError("failed to init wal since %s", terrstr()); + dndCleanup(); + return -1; + } SVnodeOpt vnodeOpt = {0}; vnodeOpt.nthreads = tsNumOfCommitThreads; @@ -46,17 +51,10 @@ static int32_t vmInit(SMgmtWrapper *pWrapper) { return -1; } - if (walInit() != 0) { - dError("failed to init wal since %s", terrstr()); - dndCleanup(); - return -1; - } - return 0; } static void vmCleanup(SMgmtWrapper *pWrapper) { - walCleanUp(); vnodeCleanup(); } -- GitLab