Merge pull request #18929 from taosdata/fix/percentile_crash
fix: fix invalid retrieved buffer page causing crash
This commit is contained in:
commit
473338cf86
|
@ -364,6 +364,7 @@ int32_t tMemBucketPut(tMemBucket *pBucket, const void *data, size_t size) {
|
||||||
assert(pSlot->info.data->num >= pBucket->elemPerPage && pSlot->info.size > 0);
|
assert(pSlot->info.data->num >= pBucket->elemPerPage && pSlot->info.size > 0);
|
||||||
|
|
||||||
// keep the pointer in memory
|
// keep the pointer in memory
|
||||||
|
setBufPageDirty(pSlot->info.data, true);
|
||||||
releaseBufPage(pBucket->pBuffer, pSlot->info.data);
|
releaseBufPage(pBucket->pBuffer, pSlot->info.data);
|
||||||
pSlot->info.data = NULL;
|
pSlot->info.data = NULL;
|
||||||
}
|
}
|
||||||
|
@ -505,6 +506,7 @@ double getPercentileImpl(tMemBucket *pMemBucket, int32_t count, double fraction)
|
||||||
SFilePage *pg = getBufPage(pMemBucket->pBuffer, *pageId);
|
SFilePage *pg = getBufPage(pMemBucket->pBuffer, *pageId);
|
||||||
|
|
||||||
tMemBucketPut(pMemBucket, pg->data, (int32_t)pg->num);
|
tMemBucketPut(pMemBucket, pg->data, (int32_t)pg->num);
|
||||||
|
setBufPageDirty(pg, true);
|
||||||
releaseBufPage(pMemBucket->pBuffer, pg);
|
releaseBufPage(pMemBucket->pBuffer, pg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue