From 28972717207809d81971d8e5d5aa3dbd5f6a6d71 Mon Sep 17 00:00:00 2001 From: WeblWabl Date: Wed, 20 Aug 2025 14:14:31 -0500 Subject: [PATCH] feat: TagValueIterator holds RLock for too long (#26369) (#26372) (cherry picked from commit 016d77fbba6c3ed6c9aaa3a138451b72f81b3129) --- tsdb/index/tsi1/log_file.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tsdb/index/tsi1/log_file.go b/tsdb/index/tsi1/log_file.go index 00fbf631b93..c565706d05c 100644 --- a/tsdb/index/tsi1/log_file.go +++ b/tsdb/index/tsi1/log_file.go @@ -421,17 +421,19 @@ func (f *LogFile) TagValue(name, key, value []byte) TagValueElem { // TagValueIterator returns a value iterator for a tag key. func (f *LogFile) TagValueIterator(name, key []byte) TagValueIterator { f.mu.RLock() - defer f.mu.RUnlock() mm, ok := f.mms[string(name)] if !ok { + f.mu.RUnlock() return nil } tk, ok := mm.tagSet[string(key)] if !ok { + f.mu.RUnlock() return nil } + f.mu.RUnlock() return tk.TagValueIterator() }