fix: taosc exit issue
This commit is contained in:
parent
0c8e9046f6
commit
91375c8ca1
|
@ -104,6 +104,8 @@ typedef struct SNodeAllocator SNodeAllocator;
|
||||||
int32_t nodesInitAllocatorSet();
|
int32_t nodesInitAllocatorSet();
|
||||||
void nodesDestroyAllocatorSet();
|
void nodesDestroyAllocatorSet();
|
||||||
int32_t nodesCreateAllocator(int64_t queryId, int32_t chunkSize, int64_t* pAllocatorId);
|
int32_t nodesCreateAllocator(int64_t queryId, int32_t chunkSize, int64_t* pAllocatorId);
|
||||||
|
int32_t nodesSimAcquireAllocator(int64_t allocatorId);
|
||||||
|
int32_t nodesSimReleaseAllocator(int64_t allocatorId);
|
||||||
int32_t nodesAcquireAllocator(int64_t allocatorId);
|
int32_t nodesAcquireAllocator(int64_t allocatorId);
|
||||||
int32_t nodesReleaseAllocator(int64_t allocatorId);
|
int32_t nodesReleaseAllocator(int64_t allocatorId);
|
||||||
int64_t nodesMakeAllocatorWeakRef(int64_t allocatorId);
|
int64_t nodesMakeAllocatorWeakRef(int64_t allocatorId);
|
||||||
|
|
|
@ -89,6 +89,7 @@ static void deregisterRequest(SRequestObj *pRequest) {
|
||||||
"current:%d, app current:%d",
|
"current:%d, app current:%d",
|
||||||
pRequest->self, pTscObj->id, pRequest->requestId, duration / 1000.0, num, currentInst);
|
pRequest->self, pTscObj->id, pRequest->requestId, duration / 1000.0, num, currentInst);
|
||||||
|
|
||||||
|
if (TSDB_CODE_SUCCESS == nodesSimAcquireAllocator(pRequest->allocatorRefId)) {
|
||||||
if (pRequest->pQuery && pRequest->pQuery->pRoot) {
|
if (pRequest->pQuery && pRequest->pQuery->pRoot) {
|
||||||
if (QUERY_NODE_VNODE_MODIFY_STMT == pRequest->pQuery->pRoot->type &&
|
if (QUERY_NODE_VNODE_MODIFY_STMT == pRequest->pQuery->pRoot->type &&
|
||||||
(0 == ((SVnodeModifyOpStmt *)pRequest->pQuery->pRoot)->sqlNodeType)) {
|
(0 == ((SVnodeModifyOpStmt *)pRequest->pQuery->pRoot)->sqlNodeType)) {
|
||||||
|
@ -109,6 +110,9 @@ static void deregisterRequest(SRequestObj *pRequest) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nodesSimReleaseAllocator(pRequest->allocatorRefId);
|
||||||
|
}
|
||||||
|
|
||||||
if (QUERY_NODE_VNODE_MODIFY_STMT == pRequest->stmtType || QUERY_NODE_INSERT_STMT == pRequest->stmtType) {
|
if (QUERY_NODE_VNODE_MODIFY_STMT == pRequest->stmtType || QUERY_NODE_INSERT_STMT == pRequest->stmtType) {
|
||||||
sqlReqLog(pTscObj->id, pRequest->killed, pRequest->code, MONITORSQLTYPEINSERT);
|
sqlReqLog(pTscObj->id, pRequest->killed, pRequest->code, MONITORSQLTYPEINSERT);
|
||||||
} else if (QUERY_NODE_SELECT_STMT == pRequest->stmtType) {
|
} else if (QUERY_NODE_SELECT_STMT == pRequest->stmtType) {
|
||||||
|
@ -491,7 +495,10 @@ void doDestroyRequest(void *p) {
|
||||||
}
|
}
|
||||||
taosMemoryFree(pRequest->body.interParam);
|
taosMemoryFree(pRequest->body.interParam);
|
||||||
|
|
||||||
|
if (TSDB_CODE_SUCCESS == nodesSimAcquireAllocator(pRequest->allocatorRefId)) {
|
||||||
qDestroyQuery(pRequest->pQuery);
|
qDestroyQuery(pRequest->pQuery);
|
||||||
|
nodesSimReleaseAllocator(pRequest->allocatorRefId);
|
||||||
|
}
|
||||||
nodesDestroyAllocator(pRequest->allocatorRefId);
|
nodesDestroyAllocator(pRequest->allocatorRefId);
|
||||||
|
|
||||||
taosMemoryFreeClear(pRequest->effectiveUser);
|
taosMemoryFreeClear(pRequest->effectiveUser);
|
||||||
|
|
|
@ -240,6 +240,26 @@ int32_t nodesCreateAllocator(int64_t queryId, int32_t chunkSize, int64_t* pAlloc
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int32_t nodesSimAcquireAllocator(int64_t allocatorId) {
|
||||||
|
if (allocatorId <= 0) {
|
||||||
|
return TSDB_CODE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
SNodeAllocator* pAllocator = taosAcquireRef(g_allocatorReqRefPool, allocatorId);
|
||||||
|
if (NULL == pAllocator) {
|
||||||
|
return terrno;
|
||||||
|
}
|
||||||
|
return TSDB_CODE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
int32_t nodesSimReleaseAllocator(int64_t allocatorId) {
|
||||||
|
if (allocatorId <= 0) {
|
||||||
|
return TSDB_CODE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
return taosReleaseRef(g_allocatorReqRefPool, allocatorId);
|
||||||
|
}
|
||||||
|
|
||||||
int32_t nodesAcquireAllocator(int64_t allocatorId) {
|
int32_t nodesAcquireAllocator(int64_t allocatorId) {
|
||||||
if (allocatorId <= 0) {
|
if (allocatorId <= 0) {
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
|
|
Loading…
Reference in New Issue