From 68da160004ed23eaad7c309618c2c017582751da Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Wed, 30 Mar 2022 20:51:34 +0800 Subject: [PATCH] shm --- source/dnode/mgmt/main/exe/dndMain.c | 2 -- source/dnode/mgmt/main/src/dndExec.c | 9 ++++++--- source/dnode/mgmt/main/src/dndFile.c | 2 +- source/dnode/mgmt/main/src/dndObj.c | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/source/dnode/mgmt/main/exe/dndMain.c b/source/dnode/mgmt/main/exe/dndMain.c index 5acab06216..ca89c7cc1a 100644 --- a/source/dnode/mgmt/main/exe/dndMain.c +++ b/source/dnode/mgmt/main/exe/dndMain.c @@ -52,11 +52,9 @@ static void dndSetSignalHandle() { if (!tsMultiProcess) { // Set the single process signal } else if (global.ntype == DNODE) { - // Set the parent process signal // When the child process exits, the parent process receives a signal taosSetSignal(SIGCHLD, dndHandleChild); } else { - // Set child process signal // When the parent process exits, the child process will receive the SIGKILL signal prctl(PR_SET_PDEATHSIG, SIGKILL); } diff --git a/source/dnode/mgmt/main/src/dndExec.c b/source/dnode/mgmt/main/src/dndExec.c index 10e1685153..c2a075cfc0 100644 --- a/source/dnode/mgmt/main/src/dndExec.c +++ b/source/dnode/mgmt/main/src/dndExec.c @@ -192,8 +192,11 @@ static int32_t dndRunInParentProcess(SDnode *pDnode) { SMgmtWrapper *pWrapper = &pDnode->wrappers[n]; if (!pWrapper->required) continue; - dInfo("node:%s, will not start in parent process", pWrapper->name); - // exec new node + if (pDnode->ntype == NODE_MAX) { + dInfo("node:%s, will be started manually", pWrapper->name); + } else { + dInfo("node:%s, will pull up the child process through exec", pWrapper->name); + } if (taosProcRun(pWrapper->pProc) != 0) { dError("node:%s, failed to run proc since %s", pWrapper->name, terrstr()); @@ -268,7 +271,7 @@ int32_t dndRun(SDnode * pDnode) { dError("failed to run dnode since %s", terrstr()); return -1; } - } else if (pDnode->ntype == DNODE) { + } else if (pDnode->ntype == DNODE || pDnode->ntype == NODE_MAX) { if (dndRunInParentProcess(pDnode) != 0) { dError("failed to run dnode in parent process since %s", terrstr()); return -1; diff --git a/source/dnode/mgmt/main/src/dndFile.c b/source/dnode/mgmt/main/src/dndFile.c index edd5b75d97..0214cf33d4 100644 --- a/source/dnode/mgmt/main/src/dndFile.c +++ b/source/dnode/mgmt/main/src/dndFile.c @@ -179,7 +179,7 @@ int32_t dndReadShmFile(SDnode *pDnode) { } } - if (!tsMultiProcess || pDnode->ntype == DNODE) { + if (!tsMultiProcess || pDnode->ntype == DNODE || pDnode->ntype == DNODE) { for (ENodeType ntype = DNODE; ntype < NODE_MAX; ++ntype) { SMgmtWrapper *pWrapper = &pDnode->wrappers[ntype]; if (pWrapper->shm.id >= 0) { diff --git a/source/dnode/mgmt/main/src/dndObj.c b/source/dnode/mgmt/main/src/dndObj.c index cd0ef4879b..44013deed8 100644 --- a/source/dnode/mgmt/main/src/dndObj.c +++ b/source/dnode/mgmt/main/src/dndObj.c @@ -35,7 +35,7 @@ static int32_t dndInitVars(SDnode *pDnode, const SDnodeOpt *pOption) { return -1; } - if (!tsMultiProcess || pDnode->ntype == DNODE) { + if (!tsMultiProcess || pDnode->ntype == DNODE || pDnode->ntype == NODE_MAX) { pDnode->lockfile = dndCheckRunning(pDnode->dataDir); if (pDnode->lockfile == NULL) { return -1;