diff --git a/source/dnode/vnode/src/tsdb/tsdbRead2.c b/source/dnode/vnode/src/tsdb/tsdbRead2.c index 880e73c5c0..9356973958 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRead2.c +++ b/source/dnode/vnode/src/tsdb/tsdbRead2.c @@ -5827,9 +5827,12 @@ int32_t tsdbTakeReadSnap2(STsdbReader* pReader, _query_reseek_func_t reseek, STs pSnap->pIMem = pTsdb->imem; pSnap->pINode = taosMemoryMalloc(sizeof(*pSnap->pINode)); if (pSnap->pINode == NULL) { - tsdbUnrefMemTable(pTsdb->mem, pSnap->pNode, true); // unref the previous refed mem code = terrno; + if (pTsdb->mem && pSnap->pNode) { + tsdbUnrefMemTable(pTsdb->mem, pSnap->pNode, true); // unref the previous refed mem + } + (void) taosThreadMutexUnlock(&pTsdb->mutex); goto _exit; }