From 7557d6f356a9df63ec8d6f6699506f33e1a4ef70 Mon Sep 17 00:00:00 2001 From: shenglian zhou Date: Tue, 14 Mar 2023 09:55:15 +0800 Subject: [PATCH] fix: column model is freed when data from vnode is received --- src/client/src/tscSubquery.c | 6 +++++- src/query/src/qExtbuffer.c | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/client/src/tscSubquery.c b/src/client/src/tscSubquery.c index ed9e0f7d32..a9197a33f1 100644 --- a/src/client/src/tscSubquery.c +++ b/src/client/src/tscSubquery.c @@ -3351,10 +3351,14 @@ static void tscRetrieveFromDnodeCallBack(void *param, TAOS_RES *tres, int numOfR } SColumnModel *pModelDesc = pDesc->pColumnModel; + if (pModelDesc == NULL) { + tscError("0x%"PRIx64" sub:0x%"PRIx64" column model has been freed", pParentSql->self, pSql->self); + tscAbortFurtherRetryRetrieval(trsupport, tres, TSDB_CODE_QRY_APP_ERROR); + } SColumnModel *pModelMemBuf = trsupport->pExtMemBuffer[idx]->pColumnModel; if (pModelDesc->numOfCols != pModelMemBuf->numOfCols || pModelDesc->rowSize != pModelMemBuf->rowSize) { - tscError("extBuf column model is not consistent with descriptor column model"); + tscError("0x%"PRIx64" sub:0x%"PRIx64 "extBuf column model is not consistent with descriptor column model", pParentSql->self, pSql->self); tscAbortFurtherRetryRetrieval(trsupport, tres, TSDB_CODE_QRY_APP_ERROR); return; } diff --git a/src/query/src/qExtbuffer.c b/src/query/src/qExtbuffer.c index fa0b891df0..fa376097fc 100644 --- a/src/query/src/qExtbuffer.c +++ b/src/query/src/qExtbuffer.c @@ -1254,6 +1254,7 @@ void tOrderDescDestroy(tOrderDescriptor *pDesc) { } destroyColumnModel(pDesc->pColumnModel); + pDesc->pColumnModel = NULL; tfree(pDesc); } -- GitLab