diff --git a/src/client/src/tscSecondaryMerge.c b/src/client/src/tscSecondaryMerge.c index 51a59005f001f7555a3ffc2e5c7e15ed111af988..2eddd4e429a65e9d6e5df618239a43fc7ec29d05 100644 --- a/src/client/src/tscSecondaryMerge.c +++ b/src/client/src/tscSecondaryMerge.c @@ -615,6 +615,7 @@ int32_t tscLocalReducerEnvCreate(SSqlObj *pSql, tExtMemBuffer ***pMemBuffer, tOr if (pSchema == NULL) { tscError("%p failed to allocate memory", pSql); pRes->code = TSDB_CODE_CLI_OUT_OF_MEMORY; + free(*pMemBuffer); return pRes->code; } @@ -642,6 +643,10 @@ int32_t tscLocalReducerEnvCreate(SSqlObj *pSql, tExtMemBuffer ***pMemBuffer, tOr if (createOrderDescriptor(pOrderDesc, pCmd, pModel) != TSDB_CODE_SUCCESS) { pRes->code = TSDB_CODE_CLI_OUT_OF_MEMORY; + for (int32_t i = 0; i < pMeterMetaInfo->pMetricMeta->numOfVnodes; ++i) { + destroyExtMemBuffer((*pMemBuffer)[i]); + } + free(*pMemBuffer); return pRes->code; } @@ -683,6 +688,7 @@ int32_t tscLocalReducerEnvCreate(SSqlObj *pSql, tExtMemBuffer ***pMemBuffer, tOr *pFinalModel = createColumnModel(pSchema, pQueryInfo->exprsInfo.numOfExprs, capacity); tfree(pSchema); + free(*pMemBuffer); return TSDB_CODE_SUCCESS; } @@ -698,7 +704,7 @@ void tscLocalReducerEnvDestroy(tExtMemBuffer **pMemBuffer, tOrderDescriptor *pDe destroyColumnModel(pFinalModel); tOrderDescDestroy(pDesc); for (int32_t i = 0; i < numOfVnodes; ++i) { - pMemBuffer[i] = destoryExtMemBuffer(pMemBuffer[i]); + pMemBuffer[i] = destroyExtMemBuffer(pMemBuffer[i]); } tfree(pMemBuffer); diff --git a/src/inc/textbuffer.h b/src/inc/textbuffer.h index b46b98ed382e207d77abdff8a8bd2f41408f5fd5..ec7a192fad4bbeea43e93c539ca02e30f531eca8 100644 --- a/src/inc/textbuffer.h +++ b/src/inc/textbuffer.h @@ -136,7 +136,7 @@ tExtMemBuffer *createExtMemBuffer(int32_t inMemSize, int32_t elemSize, SColumnMo * @param pMemBuffer * @return */ -void *destoryExtMemBuffer(tExtMemBuffer *pMemBuffer); +void *destroyExtMemBuffer(tExtMemBuffer *pMemBuffer); /** * @param pMemBuffer diff --git a/src/util/src/textbuffer.c b/src/util/src/textbuffer.c index 8ce090d335ea8105d22d2342de9d9a3e61b4592f..95e7935a62c00ebe5bec4b4043340ced5848765c 100644 --- a/src/util/src/textbuffer.c +++ b/src/util/src/textbuffer.c @@ -80,7 +80,7 @@ tExtMemBuffer* createExtMemBuffer(int32_t inMemSize, int32_t elemSize, SColumnMo return pMemBuffer; } -void* destoryExtMemBuffer(tExtMemBuffer *pMemBuffer) { +void* destroyExtMemBuffer(tExtMemBuffer *pMemBuffer) { if (pMemBuffer == NULL) { return NULL; } diff --git a/src/util/src/tpercentile.c b/src/util/src/tpercentile.c index b3c09033b4d48f5d00d2ad3deafea6d29e1be3ec..e013a2a33a1c4c62731e48ce01e299b5652b6fd6 100644 --- a/src/util/src/tpercentile.c +++ b/src/util/src/tpercentile.c @@ -32,7 +32,7 @@ tExtMemBuffer *releaseBucketsExceptFor(tMemBucket *pMemBucket, int16_t segIdx, i pBuffer = pSeg->pBuffer[j]; } else { if (pSeg->pBuffer && pSeg->pBuffer[j]) { - pSeg->pBuffer[j] = destoryExtMemBuffer(pSeg->pBuffer[j]); + pSeg->pBuffer[j] = destroyExtMemBuffer(pSeg->pBuffer[j]); } } } @@ -338,7 +338,7 @@ void tMemBucketDestroy(tMemBucket *pBucket) { for (int32_t j = 0; j < pSeg->numOfSlots; ++j) { if (pSeg->pBuffer[j] != NULL) { - pSeg->pBuffer[j] = destoryExtMemBuffer(pSeg->pBuffer[j]); + pSeg->pBuffer[j] = destroyExtMemBuffer(pSeg->pBuffer[j]); } } tfree(pSeg->pBuffer); @@ -588,7 +588,7 @@ void releaseBucket(tMemBucket *pMemBucket, int32_t segIdx, int32_t slotIdx) { return; } - pSeg->pBuffer[slotIdx] = destoryExtMemBuffer(pSeg->pBuffer[slotIdx]); + pSeg->pBuffer[slotIdx] = destroyExtMemBuffer(pSeg->pBuffer[slotIdx]); } //////////////////////////////////////////////////////////////////////////////////////////// @@ -853,7 +853,7 @@ double getPercentileImpl(tMemBucket *pMemBucket, int32_t count, double fraction) tMemBucketSegment *pSeg = &pMemBucket->pSegs[tt]; for (int32_t ttx = 0; ttx < pSeg->numOfSlots; ++ttx) { if (pSeg->pBuffer && pSeg->pBuffer[ttx]) { - pSeg->pBuffer[ttx] = destoryExtMemBuffer(pSeg->pBuffer[ttx]); + pSeg->pBuffer[ttx] = destroyExtMemBuffer(pSeg->pBuffer[ttx]); } } }