This commit is contained in:
Shengliang Guan 2022-03-30 20:51:34 +08:00
parent afad08d106
commit 68da160004
4 changed files with 8 additions and 7 deletions

View File

@ -52,11 +52,9 @@ static void dndSetSignalHandle() {
if (!tsMultiProcess) { if (!tsMultiProcess) {
// Set the single process signal // Set the single process signal
} else if (global.ntype == DNODE) { } else if (global.ntype == DNODE) {
// Set the parent process signal
// When the child process exits, the parent process receives a signal // When the child process exits, the parent process receives a signal
taosSetSignal(SIGCHLD, dndHandleChild); taosSetSignal(SIGCHLD, dndHandleChild);
} else { } else {
// Set child process signal
// When the parent process exits, the child process will receive the SIGKILL signal // When the parent process exits, the child process will receive the SIGKILL signal
prctl(PR_SET_PDEATHSIG, SIGKILL); prctl(PR_SET_PDEATHSIG, SIGKILL);
} }

View File

@ -192,8 +192,11 @@ static int32_t dndRunInParentProcess(SDnode *pDnode) {
SMgmtWrapper *pWrapper = &pDnode->wrappers[n]; SMgmtWrapper *pWrapper = &pDnode->wrappers[n];
if (!pWrapper->required) continue; if (!pWrapper->required) continue;
dInfo("node:%s, will not start in parent process", pWrapper->name); if (pDnode->ntype == NODE_MAX) {
// exec new node 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) { if (taosProcRun(pWrapper->pProc) != 0) {
dError("node:%s, failed to run proc since %s", pWrapper->name, terrstr()); 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()); dError("failed to run dnode since %s", terrstr());
return -1; return -1;
} }
} else if (pDnode->ntype == DNODE) { } else if (pDnode->ntype == DNODE || pDnode->ntype == NODE_MAX) {
if (dndRunInParentProcess(pDnode) != 0) { if (dndRunInParentProcess(pDnode) != 0) {
dError("failed to run dnode in parent process since %s", terrstr()); dError("failed to run dnode in parent process since %s", terrstr());
return -1; return -1;

View File

@ -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) { for (ENodeType ntype = DNODE; ntype < NODE_MAX; ++ntype) {
SMgmtWrapper *pWrapper = &pDnode->wrappers[ntype]; SMgmtWrapper *pWrapper = &pDnode->wrappers[ntype];
if (pWrapper->shm.id >= 0) { if (pWrapper->shm.id >= 0) {

View File

@ -35,7 +35,7 @@ static int32_t dndInitVars(SDnode *pDnode, const SDnodeOpt *pOption) {
return -1; return -1;
} }
if (!tsMultiProcess || pDnode->ntype == DNODE) { if (!tsMultiProcess || pDnode->ntype == DNODE || pDnode->ntype == NODE_MAX) {
pDnode->lockfile = dndCheckRunning(pDnode->dataDir); pDnode->lockfile = dndCheckRunning(pDnode->dataDir);
if (pDnode->lockfile == NULL) { if (pDnode->lockfile == NULL) {
return -1; return -1;