diff --git a/tsdb/engine/tsm1/file_store.go b/tsdb/engine/tsm1/file_store.go index 133d863bf5..999910398c 100644 --- a/tsdb/engine/tsm1/file_store.go +++ b/tsdb/engine/tsm1/file_store.go @@ -311,6 +311,12 @@ func (f *FileStore) WalkKeys(seek []byte, fn func(key []byte, typ byte) error) e return nil } + // Ensure files are not unmapped while we're iterating over them. + for _, r := range f.files { + r.Ref() + defer r.Unref() + } + ki := newMergeKeyIterator(f.files, seek) f.mu.RUnlock() for ki.Next() {