diff --git a/src/dnode/src/dnodeMPeer.c b/src/dnode/src/dnodeMPeer.c index 46e7a0a7e2e03db6f5ebfc09b512a0e03ed6c881..f5b0fe26f29a3d803c7d0ec7f5ee03034f2ce595 100644 --- a/src/dnode/src/dnodeMPeer.c +++ b/src/dnode/src/dnodeMPeer.c @@ -75,7 +75,7 @@ void dnodeCleanupMnodePeer() { } } - dPrint("dnode mmgmt is closed"); + dPrint("dnode mpeer is closed"); } int32_t dnodeAllocateMnodePqueue() { @@ -93,14 +93,14 @@ int32_t dnodeAllocateMnodePqueue() { pthread_attr_setdetachstate(&thAttr, PTHREAD_CREATE_JOINABLE); if (pthread_create(&pWorker->thread, &thAttr, dnodeProcessMnodePeerQueue, pWorker) != 0) { - dError("failed to create thread to process mmgmt queue, reason:%s", strerror(errno)); + dError("failed to create thread to process mpeer queue, reason:%s", strerror(errno)); } pthread_attr_destroy(&thAttr); - dTrace("dnode mmgmt worker:%d is launched, total:%d", pWorker->workerId, tsMPeerPool.num); + dTrace("dnode mpeer worker:%d is launched, total:%d", pWorker->workerId, tsMPeerPool.num); } - dTrace("dnode mmgmt queue:%p is allocated", tsMPeerQueue); + dTrace("dnode mpeer queue:%p is allocated", tsMPeerQueue); return TSDB_CODE_SUCCESS; } @@ -150,7 +150,7 @@ static void *dnodeProcessMnodePeerQueue(void *param) { break; } - dTrace("%p, msg:%s will be processed in mpeer queue", pPeerMsg->rpcMsg.ahandle, taosMsg[pPeerMsg->rpcMsg.msgType]); + dTrace("msg:%s will be processed in mpeer queue", taosMsg[pPeerMsg->rpcMsg.msgType]); int32_t code = mnodeProcessPeerReq(pPeerMsg); dnodeSendRpcMnodePeerRsp(pPeerMsg, code); } diff --git a/src/dnode/src/dnodeMRead.c b/src/dnode/src/dnodeMRead.c index 9a977ffe837a77b2440224b9bd03a577ff987e46..af93bfd11ecd3bede81b67dbb17021c65993f53e 100644 --- a/src/dnode/src/dnodeMRead.c +++ b/src/dnode/src/dnodeMRead.c @@ -132,6 +132,11 @@ static void dnodeFreeMnodeReadMsg(SMnodeMsg *pRead) { static void dnodeSendRpcMnodeReadRsp(SMnodeMsg *pRead, int32_t code) { if (code == TSDB_CODE_ACTION_IN_PROGRESS) return; + if (code == TSDB_CODE_ACTION_NEED_REPROCESSED) { + // may be a auto create req, should put into write queue + dnodeReprocessMnodeWriteMsg(pRead); + return; + } SRpcMsg rpcRsp = { .handle = pRead->rpcMsg.handle, diff --git a/src/dnode/src/dnodeMWrite.c b/src/dnode/src/dnodeMWrite.c index b54d295d0538cd1369e713c90c972e27392ea5e6..655964fb34fa61ba41d7a1a1002e4d7b2db5bfbe 100644 --- a/src/dnode/src/dnodeMWrite.c +++ b/src/dnode/src/dnodeMWrite.c @@ -130,6 +130,10 @@ static void dnodeFreeMnodeWriteMsg(SMnodeMsg *pWrite) { void dnodeSendRpcMnodeWriteRsp(void *pRaw, int32_t code) { SMnodeMsg *pWrite = pRaw; if (code == TSDB_CODE_ACTION_IN_PROGRESS) return; + if (code == TSDB_CODE_ACTION_NEED_REPROCESSED) { + dnodeReprocessMnodeWriteMsg(pWrite); + return; + } SRpcMsg rpcRsp = { .handle = pWrite->rpcMsg.handle, diff --git a/src/mnode/src/mnodeTable.c b/src/mnode/src/mnodeTable.c index 7eb632076370d80f3aee947e3752722eeb8e17b1..1fa7b02a40b42b6d0715f693a2786c2021eb251f 100644 --- a/src/mnode/src/mnodeTable.c +++ b/src/mnode/src/mnodeTable.c @@ -741,6 +741,7 @@ static int32_t mnodeProcessTableMetaMsg(SMnodeMsg *pMsg) { mError("table:%s, failed to get table meta, table not exist", pInfo->tableId); return TSDB_CODE_INVALID_TABLE; } else { + mTrace("table:%s, failed to get table meta, start auto create table ", pInfo->tableId); return mgmtAutoCreateChildTable(pMsg); } } else { diff --git a/src/mnode/src/mnodeVgroup.c b/src/mnode/src/mnodeVgroup.c index 97c3f69719be1caa28fccf949601ed62d8fd308c..36e96dd006c817056f06224835621f36d876fec5 100644 --- a/src/mnode/src/mnodeVgroup.c +++ b/src/mnode/src/mnodeVgroup.c @@ -307,7 +307,6 @@ int32_t mnodeCreateVgroup(SMnodeMsg *pMsg, SDbObj *pDb) { if (balanceAllocVnodes(pVgroup) != 0) { mError("db:%s, no enough dnode to alloc %d vnodes to vgroup", pDb->name, pVgroup->numOfVnodes); free(pVgroup); - mnodeCleanupMsg(pMsg); return TSDB_CODE_NO_ENOUGH_DNODES; } @@ -321,9 +320,7 @@ int32_t mnodeCreateVgroup(SMnodeMsg *pMsg, SDbObj *pDb) { int32_t code = sdbInsertRow(&oper); if (code != TSDB_CODE_SUCCESS) { tfree(pVgroup); - code = TSDB_CODE_SDB_ERROR; - mnodeCleanupMsg(pMsg); - return TSDB_CODE_SDB_ERROR; + return TSDB_CODE_SDB_ERROR; } mPrint("vgId:%d, is created in mnode, db:%s replica:%d", pVgroup->vgId, pDb->name, pVgroup->numOfVnodes);