From 1a5138b3aea7ded94b15aa5e6cba5a45344f15aa Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Tue, 2 Jun 2020 15:00:31 +0800 Subject: [PATCH] fix deadlocks while free resultset --- src/client/src/tscSubquery.c | 3 ++- tests/tsim/src/simExe.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/client/src/tscSubquery.c b/src/client/src/tscSubquery.c index 99163ba327..1fdbd43408 100644 --- a/src/client/src/tscSubquery.c +++ b/src/client/src/tscSubquery.c @@ -1715,6 +1715,7 @@ static void multiVnodeInsertMerge(void* param, TAOS_RES* tres, int numOfRows) { pParentObj->res.numOfRows += numOfRows; } + taos_free_result(tres); int32_t completed = atomic_add_fetch_32(&pState->numOfCompleted, 1); if (completed < total) { return; @@ -1732,7 +1733,7 @@ static void multiVnodeInsertMerge(void* param, TAOS_RES* tres, int numOfRows) { pParentObj->fp = pParentObj->fetchFp; // all data has been sent to vnode, call user function - (*pParentObj->fp)(pParentObj->param, tres, numOfRows); + (*pParentObj->fp)(pParentObj->param, pParentObj, numOfRows); } int32_t tscHandleMultivnodeInsert(SSqlObj *pSql) { diff --git a/tests/tsim/src/simExe.c b/tests/tsim/src/simExe.c index 1be446fa08..ed193fd182 100644 --- a/tests/tsim/src/simExe.c +++ b/tests/tsim/src/simExe.c @@ -771,11 +771,11 @@ bool simExecuteNativeSqlCommand(SScript *script, char *rest, bool isSlow) { } } - taos_free_result(pSql); } else { numOfRows = taos_affected_rows(pSql); } + taos_free_result(pSql); sprintf(script->rows, "%d", numOfRows); script->linePos++; -- GitLab