From 9fa0685a24de3dd69889e115a01acf478d167bc4 Mon Sep 17 00:00:00 2001 From: slguan Date: Sun, 5 Apr 2020 18:40:18 +0800 Subject: [PATCH] [TD-93] fix deadlocks in dnode --- src/mnode/src/mgmtDnode.c | 2 +- src/util/src/tglobalcfg.c | 2 +- src/vnode/main/src/vnodeMain.c | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/mnode/src/mgmtDnode.c b/src/mnode/src/mgmtDnode.c index d062a7adbc..f7d8675977 100644 --- a/src/mnode/src/mgmtDnode.c +++ b/src/mnode/src/mgmtDnode.c @@ -182,7 +182,7 @@ void mgmtProcessCfgDnodeMsg(SQueuedMsg *pMsg) { } static void mgmtProcessCfgDnodeMsgRsp(SRpcMsg *rpcMsg) { - mPrint("cfg vnode rsp is received"); + mPrint("cfg vnode rsp is received, result:%s", tstrerror(rpcMsg->code)); } void mgmtProcessDnodeStatusMsg(SRpcMsg *rpcMsg) { diff --git a/src/util/src/tglobalcfg.c b/src/util/src/tglobalcfg.c index 298b332e6d..0287285f4d 100644 --- a/src/util/src/tglobalcfg.c +++ b/src/util/src/tglobalcfg.c @@ -995,7 +995,7 @@ int tsCfgDynamicOptions(char *msg) { int vint = 0; paGetToken(msg, &option, &olen); - if (olen == 0) return code; + if (olen == 0) return TSDB_CODE_INVALID_MSG_CONTENT; paGetToken(option + olen + 1, &value, &vlen); if (vlen == 0) diff --git a/src/vnode/main/src/vnodeMain.c b/src/vnode/main/src/vnodeMain.c index 8f4ce802e7..be41b6b7c1 100644 --- a/src/vnode/main/src/vnodeMain.c +++ b/src/vnode/main/src/vnodeMain.c @@ -232,8 +232,11 @@ static void vnodeBuildVloadMsg(char *pNode, void * param) { } static void vnodeCleanUp(SVnodeObj *pVnode) { - taosDeleteIntHash(tsDnodeVnodesHash, pVnode->vgId); - + if (pVnode->status == VN_STATUS_DELETING) { + // fix deadlock occured while close system + taosDeleteIntHash(tsDnodeVnodesHash, pVnode->vgId); + } + //syncStop(pVnode->sync); tsdbCloseRepo(pVnode->tsdb); walClose(pVnode->wal); -- GitLab