From 21a5beabb94ad3d296f10a42c4f5a59264bb6f32 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Sat, 13 Jun 2020 02:47:44 +0000 Subject: [PATCH] TD-353 --- src/tsdb/src/tsdbBuffer.c | 2 +- src/tsdb/src/tsdbMemTable.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/tsdb/src/tsdbBuffer.c b/src/tsdb/src/tsdbBuffer.c index 013bae69a0..f27af3b722 100644 --- a/src/tsdb/src/tsdbBuffer.c +++ b/src/tsdb/src/tsdbBuffer.c @@ -114,7 +114,7 @@ void tsdbCloseBufPool(STsdbRepo *pRepo) { SListNode *tsdbAllocBufBlockFromPool(STsdbRepo *pRepo) { ASSERT(pRepo != NULL && pRepo->pool != NULL); - // ASSERT pRepo is locked + ASSERT(IS_REPO_LOCKED(pRepo)); STsdbCfg * pCfg = &pRepo->config; STsdbBufPool *pBufPool = pRepo->pool; diff --git a/src/tsdb/src/tsdbMemTable.c b/src/tsdb/src/tsdbMemTable.c index c848b7644b..55fda4e116 100644 --- a/src/tsdb/src/tsdbMemTable.c +++ b/src/tsdb/src/tsdbMemTable.c @@ -170,6 +170,17 @@ static void *tsdbAllocBytes(STsdbRepo *pRepo, int bytes) { tsdbUnRefMemTable(pRepo, pIMem); } + } else { + if (tsdbLockRepo(pRepo) < 0) { + tsdbFreeMemTable(pMemTable); + return NULL; + } + + SListNode *pNode = tsdbAllocBufBlockFromPool(pRepo); + tdListAppendNode(pMemTable->bufBlockList, pNode); + pRepo->mem = pMemTable; + + if (tsdbUnlockRepo(pRepo) < 0) return NULL; } }