fix(query): protect read snap with reader mutex when closing reader
This commit is contained in:
parent
fc829aec52
commit
dca720fc7d
|
@ -4019,6 +4019,7 @@ void tsdbReaderClose(STsdbReader* pReader) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tsdbAcquireReader(pReader);
|
||||||
{
|
{
|
||||||
if (pReader->innerReader[0] != NULL || pReader->innerReader[1] != NULL) {
|
if (pReader->innerReader[0] != NULL || pReader->innerReader[1] != NULL) {
|
||||||
STsdbReader* p = pReader->innerReader[0];
|
STsdbReader* p = pReader->innerReader[0];
|
||||||
|
@ -4076,10 +4077,12 @@ void tsdbReaderClose(STsdbReader* pReader) {
|
||||||
pReader->pDelIdx = NULL;
|
pReader->pDelIdx = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
qTrace("tsdb/reader: %p, untake snapshot", pReader);
|
qTrace("tsdb/reader-close: %p, untake snapshot", pReader);
|
||||||
tsdbUntakeReadSnap(pReader, pReader->pReadSnap, true);
|
tsdbUntakeReadSnap(pReader, pReader->pReadSnap, true);
|
||||||
pReader->pReadSnap = NULL;
|
pReader->pReadSnap = NULL;
|
||||||
|
|
||||||
|
tsdbReleaseReader(pReader);
|
||||||
|
|
||||||
tsdbUninitReaderLock(pReader);
|
tsdbUninitReaderLock(pReader);
|
||||||
|
|
||||||
taosMemoryFree(pReader->status.uidCheckInfo.tableUidList);
|
taosMemoryFree(pReader->status.uidCheckInfo.tableUidList);
|
||||||
|
|
Loading…
Reference in New Issue