diff --git a/tsdb/db.go b/tsdb/db.go index ea8cbfff0b..001515081d 100644 --- a/tsdb/db.go +++ b/tsdb/db.go @@ -1518,7 +1518,9 @@ func (db *DB) compactBlocks() (err error) { default: } + db.mtx.RLock() uids, err := db.compactor.Compact(db.dir, plan, db.blocks) + db.mtx.RUnlock() if err != nil { return fmt.Errorf("compact %s: %w", plan, err) } @@ -1601,11 +1603,13 @@ func (db *DB) reloadBlocks() (err error) { if len(corrupted) > 0 { // Corrupted but no child loaded for it. // Close all new blocks to release the lock for windows. + db.mtx.RLock() for _, block := range loadable { if _, open := getBlock(db.blocks, block.Meta().ULID); !open { block.Close() } } + db.mtx.RUnlock() errs := tsdb_errors.NewMulti() for ulid, err := range corrupted { if err != nil {