From 7b00bab1e495d72f8f02bb0b23cc932c5149eecd Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Fri, 25 Dec 2020 06:35:25 +0000 Subject: [PATCH] fix race condition --- src/tsdb/src/tsdbMemTable.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/tsdb/src/tsdbMemTable.c b/src/tsdb/src/tsdbMemTable.c index 2ec773f59b..87bc7b9443 100644 --- a/src/tsdb/src/tsdbMemTable.c +++ b/src/tsdb/src/tsdbMemTable.c @@ -899,7 +899,6 @@ static int tsdbUpdateTableLatestInfo(STsdbRepo *pRepo, STable *pTable, SDataRow STsdbCfg *pCfg = &pRepo->config; if (tsdbGetTableLastKeyImpl(pTable) < dataRowKey(row)) { - pTable->lastKey = dataRowKey(row); if (pCfg->cacheLastRow || pTable->lastRow != NULL) { SDataRow nrow = pTable->lastRow; if (taosTSizeof(nrow) < dataRowLen(row)) { @@ -912,14 +911,18 @@ static int tsdbUpdateTableLatestInfo(STsdbRepo *pRepo, STable *pTable, SDataRow dataRowCpy(nrow, row); TSDB_WLOCK_TABLE(pTable); + pTable->lastKey = dataRowKey(row); pTable->lastRow = nrow; TSDB_WUNLOCK_TABLE(pTable); taosTZfree(orow); } else { TSDB_WLOCK_TABLE(pTable); + pTable->lastKey = dataRowKey(row); dataRowCpy(nrow, row); TSDB_WUNLOCK_TABLE(pTable); } + } else { + pTable->lastKey = dataRowKey(row); } } -- GitLab