From 77542cc461f1b78da131b5d8f9f6bf2af190f9df Mon Sep 17 00:00:00 2001 From: yihaoDeng Date: Tue, 17 Oct 2023 11:23:39 +0800 Subject: [PATCH] fix stream snap deadlock --- source/libs/stream/inc/streamBackendRocksdb.h | 2 +- source/libs/stream/src/streamMeta.c | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/source/libs/stream/inc/streamBackendRocksdb.h b/source/libs/stream/inc/streamBackendRocksdb.h index 2403bca7f6..637fbf1017 100644 --- a/source/libs/stream/inc/streamBackendRocksdb.h +++ b/source/libs/stream/inc/streamBackendRocksdb.h @@ -65,8 +65,8 @@ typedef struct { rocksdb_compactionfilterfactory_t* filterFactory; TdThreadMutex mutex; char* idstr; - int64_t refId; char* path; + int64_t refId; int64_t chkpId; SArray* chkpSaved; diff --git a/source/libs/stream/src/streamMeta.c b/source/libs/stream/src/streamMeta.c index 016f446fe9..656b115bcf 100644 --- a/source/libs/stream/src/streamMeta.c +++ b/source/libs/stream/src/streamMeta.c @@ -237,8 +237,9 @@ void* streamMetaGetBackendByTaskKey(SStreamMeta* pMeta, char* key, int64_t chkpI taosThreadMutexUnlock(&pMeta->backendMutex); return NULL; } - - *ref = taosAddRef(taskDbWrapperId, pBackend); + int64_t tref = taosAddRef(taskDbWrapperId, pBackend); + *ref = tref; + ((STaskDbWrapper*)pBackend)->refId = tref; taosHashPut(pMeta->pTaskDbUnique, key, strlen(key), &pBackend, sizeof(void*)); taosThreadMutexUnlock(&pMeta->backendMutex); @@ -824,8 +825,6 @@ int32_t streamMetaLoadAllTasks(SStreamMeta* pMeta) { taosArrayPush(pMeta->pTaskList, &pTask->id); } else { - tdbFree(pKey); - tdbFree(pVal); taosMemoryFree(pTask); continue; }