From 01cc9018cf23a051f4ecf468b8c534d4bce2f27e Mon Sep 17 00:00:00 2001 From: dmchen Date: Thu, 17 Oct 2024 03:48:12 +0000 Subject: [PATCH 1/2] feat/TS-4785-redo-multi-create-db --- source/dnode/mgmt/mgmt_vnode/src/vmHandle.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/dnode/mgmt/mgmt_vnode/src/vmHandle.c b/source/dnode/mgmt/mgmt_vnode/src/vmHandle.c index 70c873e0f5..834b43c380 100644 --- a/source/dnode/mgmt/mgmt_vnode/src/vmHandle.c +++ b/source/dnode/mgmt/mgmt_vnode/src/vmHandle.c @@ -415,14 +415,14 @@ int32_t vmProcessCreateVnodeReq(SVnodeMgmt *pMgmt, SRpcMsg *pMsg) { goto _OVER; } - // taosThreadMutexLock(&pMgmt->createLock); + taosThreadMutexLock(&pMgmt->createLock); code = vmWriteVnodeListToFile(pMgmt); if (code != 0) { code = terrno != 0 ? terrno : code; - // taosThreadMutexUnlock(&pMgmt->createLock); + taosThreadMutexUnlock(&pMgmt->createLock); goto _OVER; } - // taosThreadMutexUnlock(&pMgmt->createLock); + taosThreadMutexUnlock(&pMgmt->createLock); _OVER: if (code != 0) { @@ -1037,7 +1037,7 @@ SArray *vmGetMsgHandles() { if (dmSetMgmtHandle(pArray, TDMT_VND_COMPACT, vmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_VND_TRIM, vmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_VND_S3MIGRATE, vmPutMsgToWriteQueue, 0) == NULL) goto _OVER; - if (dmSetMgmtHandle(pArray, TDMT_DND_CREATE_VNODE, vmPutMsgToMgmtQueue, 0) == NULL) goto _OVER; + if (dmSetMgmtHandle(pArray, TDMT_DND_CREATE_VNODE, vmPutMsgToMultiMgmtQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_DND_DROP_VNODE, vmPutMsgToMgmtQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_DND_ALTER_VNODE_TYPE, vmPutMsgToMgmtQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_DND_CHECK_VNODE_LEARNER_CATCHUP, vmPutMsgToMgmtQueue, 0) == NULL) goto _OVER; From c60c3b238e216712f92f3b8553c4a912dc0f6465 Mon Sep 17 00:00:00 2001 From: dmchen Date: Thu, 17 Oct 2024 06:36:20 +0000 Subject: [PATCH 2/2] feat/TS-4785-redo-multi-create-db-fix-check --- source/dnode/mgmt/mgmt_vnode/src/vmHandle.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/source/dnode/mgmt/mgmt_vnode/src/vmHandle.c b/source/dnode/mgmt/mgmt_vnode/src/vmHandle.c index 834b43c380..7e950ef1be 100644 --- a/source/dnode/mgmt/mgmt_vnode/src/vmHandle.c +++ b/source/dnode/mgmt/mgmt_vnode/src/vmHandle.c @@ -415,14 +415,24 @@ int32_t vmProcessCreateVnodeReq(SVnodeMgmt *pMgmt, SRpcMsg *pMsg) { goto _OVER; } - taosThreadMutexLock(&pMgmt->createLock); + code = taosThreadMutexLock(&pMgmt->createLock); + if (code != 0) { + dError("vgId:%d, failed to lock since %s", req.vgId, tstrerror(code)); + goto _OVER; + } code = vmWriteVnodeListToFile(pMgmt); if (code != 0) { code = terrno != 0 ? terrno : code; - taosThreadMutexUnlock(&pMgmt->createLock); + int32_t ret = taosThreadMutexUnlock(&pMgmt->createLock); + if (ret != 0) { + dError("vgId:%d, failed to unlock since %s", req.vgId, tstrerror(ret)); + } goto _OVER; } - taosThreadMutexUnlock(&pMgmt->createLock); + int32_t ret = taosThreadMutexUnlock(&pMgmt->createLock); + if (ret != 0) { + dError("vgId:%d, failed to unlock since %s", req.vgId, tstrerror(ret)); + } _OVER: if (code != 0) {