fix(tsdb): fix memory leak.
This commit is contained in:
parent
09f2858927
commit
a1f2ce389b
|
@ -703,6 +703,7 @@ int32_t tsdbFSCreateRefSnapshot(STFileSystem *fs, TFileSetArray **fsetArr) {
|
||||||
int32_t tsdbFSDestroyRefSnapshot(TFileSetArray **fsetArr) {
|
int32_t tsdbFSDestroyRefSnapshot(TFileSetArray **fsetArr) {
|
||||||
if (fsetArr[0]) {
|
if (fsetArr[0]) {
|
||||||
TARRAY2_DESTROY(fsetArr[0], tsdbTFileSetClear);
|
TARRAY2_DESTROY(fsetArr[0], tsdbTFileSetClear);
|
||||||
|
taosMemoryFreeClear(fsetArr[0]);
|
||||||
fsetArr[0] = NULL;
|
fsetArr[0] = NULL;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -4674,7 +4674,7 @@ int32_t tsdbReaderOpen2(void* pVnode, SQueryTableDataCond* pCond, void* pTableLi
|
||||||
|
|
||||||
_err:
|
_err:
|
||||||
tsdbError("failed to create data reader, code:%s %s", tstrerror(code), idstr);
|
tsdbError("failed to create data reader, code:%s %s", tstrerror(code), idstr);
|
||||||
tsdbReaderClose(*ppReader);
|
tsdbReaderClose2(*ppReader);
|
||||||
*ppReader = NULL; // reset the pointer value.
|
*ppReader = NULL; // reset the pointer value.
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
@ -4716,8 +4716,8 @@ void tsdbReaderClose2(STsdbReader* pReader) {
|
||||||
p = pReader->innerReader[1];
|
p = pReader->innerReader[1];
|
||||||
clearSharedPtr(p);
|
clearSharedPtr(p);
|
||||||
|
|
||||||
tsdbReaderClose(pReader->innerReader[0]);
|
tsdbReaderClose2(pReader->innerReader[0]);
|
||||||
tsdbReaderClose(pReader->innerReader[1]);
|
tsdbReaderClose2(pReader->innerReader[1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4758,7 +4758,7 @@ void tsdbReaderClose2(STsdbReader* pReader) {
|
||||||
}
|
}
|
||||||
|
|
||||||
qTrace("tsdb/reader-close: %p, untake snapshot", pReader);
|
qTrace("tsdb/reader-close: %p, untake snapshot", pReader);
|
||||||
tsdbUntakeReadSnap(pReader, pReader->pReadSnap, true);
|
tsdbUntakeReadSnap2(pReader, pReader->pReadSnap, true);
|
||||||
pReader->pReadSnap = NULL;
|
pReader->pReadSnap = NULL;
|
||||||
|
|
||||||
tsdbReleaseReader(pReader);
|
tsdbReleaseReader(pReader);
|
||||||
|
@ -5676,6 +5676,8 @@ void tsdbUntakeReadSnap2(STsdbReader* pReader, STsdbReadSnap* pSnap, bool proact
|
||||||
if (pSnap->pNode) taosMemoryFree(pSnap->pNode);
|
if (pSnap->pNode) taosMemoryFree(pSnap->pNode);
|
||||||
if (pSnap->pINode) taosMemoryFree(pSnap->pINode);
|
if (pSnap->pINode) taosMemoryFree(pSnap->pINode);
|
||||||
taosMemoryFree(pSnap);
|
taosMemoryFree(pSnap);
|
||||||
|
|
||||||
|
tsdbFSDestroyRefSnapshot(&pReader->pfSetArray);
|
||||||
}
|
}
|
||||||
tsdbTrace("vgId:%d, untake read snapshot", TD_VID(pTsdb->pVnode));
|
tsdbTrace("vgId:%d, untake read snapshot", TD_VID(pTsdb->pVnode));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue