Merge pull request #20905 from taosdata/fix/TD-22941
fix(tsdb/cache): fix block index ref releasing
This commit is contained in:
commit
3d962cd950
|
@ -35,7 +35,11 @@ _err:
|
||||||
static void tsdbCloseBICache(STsdb *pTsdb) {
|
static void tsdbCloseBICache(STsdb *pTsdb) {
|
||||||
SLRUCache *pCache = pTsdb->biCache;
|
SLRUCache *pCache = pTsdb->biCache;
|
||||||
if (pCache) {
|
if (pCache) {
|
||||||
|
int32_t elems = taosLRUCacheGetElems(pCache);
|
||||||
|
tsdbTrace("vgId:%d, elems: %d", TD_VID(pTsdb->pVnode), elems);
|
||||||
taosLRUCacheEraseUnrefEntries(pCache);
|
taosLRUCacheEraseUnrefEntries(pCache);
|
||||||
|
elems = taosLRUCacheGetElems(pCache);
|
||||||
|
tsdbTrace("vgId:%d, elems: %d", TD_VID(pTsdb->pVnode), elems);
|
||||||
|
|
||||||
taosLRUCacheCleanup(pCache);
|
taosLRUCacheCleanup(pCache);
|
||||||
|
|
||||||
|
@ -819,7 +823,12 @@ static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow, bool *pIgnoreEarlie
|
||||||
* &state->blockIdx);
|
* &state->blockIdx);
|
||||||
*/
|
*/
|
||||||
state->pBlockIdx = taosArraySearch(state->aBlockIdx, state->pBlockIdxExp, tCmprBlockIdx, TD_EQ);
|
state->pBlockIdx = taosArraySearch(state->aBlockIdx, state->pBlockIdxExp, tCmprBlockIdx, TD_EQ);
|
||||||
if (!state->pBlockIdx) { /*
|
if (!state->pBlockIdx) {
|
||||||
|
tsdbBICacheRelease(state->pTsdb->biCache, state->aBlockIdxHandle);
|
||||||
|
|
||||||
|
state->aBlockIdxHandle = NULL;
|
||||||
|
state->aBlockIdx = NULL;
|
||||||
|
/*
|
||||||
tsdbDataFReaderClose(state->pDataFReader);
|
tsdbDataFReaderClose(state->pDataFReader);
|
||||||
*state->pDataFReader = NULL;
|
*state->pDataFReader = NULL;
|
||||||
resetLastBlockLoadInfo(state->pLoadInfo);*/
|
resetLastBlockLoadInfo(state->pLoadInfo);*/
|
||||||
|
@ -1936,6 +1945,7 @@ int32_t tsdbCacheGetBlockIdx(SLRUCache *pCache, SDataFReader *pFileReader, LRUHa
|
||||||
taosThreadMutexUnlock(&pTsdb->biMutex);
|
taosThreadMutexUnlock(&pTsdb->biMutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tsdbTrace("bi cache:%p, ref", pCache);
|
||||||
*handle = h;
|
*handle = h;
|
||||||
|
|
||||||
return code;
|
return code;
|
||||||
|
@ -1945,6 +1955,7 @@ int32_t tsdbBICacheRelease(SLRUCache *pCache, LRUHandle *h) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
|
|
||||||
taosLRUCacheRelease(pCache, h, false);
|
taosLRUCacheRelease(pCache, h, false);
|
||||||
|
tsdbTrace("bi cache:%p, release", pCache);
|
||||||
|
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,7 @@ sql insert into tbc values ("2021-05-11 10:12:29",36, 37, NULL, -4005)
|
||||||
sql insert into tbd values ("2021-05-11 10:12:29",NULL,NULL,NULL,NULL )
|
sql insert into tbd values ("2021-05-11 10:12:29",NULL,NULL,NULL,NULL )
|
||||||
|
|
||||||
run tsim/parser/last_cache_query.sim
|
run tsim/parser/last_cache_query.sim
|
||||||
|
sql flush database $db
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
|
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
|
Loading…
Reference in New Issue