diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index aad8d7b51..60866ef1c 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -1231,6 +1231,8 @@ func AutoFixIndex() { var autoFixLock = sync.Mutex{} func autoFixIndex() { + defer logging.Recover() + if util.IsMutexLocked(&autoFixLock) || isFullReindexing { return } diff --git a/kernel/treenode/blocktree.go b/kernel/treenode/blocktree.go index cbf59c79f..f40064ae8 100644 --- a/kernel/treenode/blocktree.go +++ b/kernel/treenode/blocktree.go @@ -117,15 +117,14 @@ func CeilBlockCount(count int) int { } func GetNotExistPaths(boxID string, paths []string) (ret []string) { - blockTreesLock.Lock() - defer blockTreesLock.Unlock() + tmp := blockTrees pathsMap := map[string]bool{} for _, path := range paths { pathsMap[path] = true } - for _, blockTree := range blockTrees { + for _, blockTree := range tmp { if blockTree.BoxID != boxID { continue }