# [Critical bug] 5.2.0 TiKV 在某些情况无法提供服务 Skip to end of metadata

## Issue

在内部测试中发现了一个 Critical Bug，该 Bug 会导致 raftstore 这一层发生死锁，进一步造成该 TiKV 无法提供服务。

问题发现于: Issue: <https://github.com/tikv/tikv/issues/10909>

### 主要现象

1. 无法调度，长期运行会导致数据分布不均匀。TiKV 节点在 PD 上呈 “Disconnect” 或者 “Dwon” 状态。

2. TiDB 监控上延迟显示非常高，有写请求落到这台 tikv 上 latency 会变长。

3. TiKV 监控 Unify Pool 面板上能看到很多 running 的 task 没有结束， TiKV 日志会刷关键日志 “[pd.rs:1519] ["pd worker send latency inspecter failed"] [err=""Full(..)""]”

### 触发条件

在同一时间在某台 TiKV 上迁入多个副本，就有概率触发

## Root Cause

该问题在 tikv/pull/10802 中引入， 原因是 TiKV apply snapshot 之后，对 commit groups 状态设置过程中持有全局的 global_replication_state 和 store_meta 的锁。 而另一个线程在 create peer 的时候同样持有这两个锁，由于持锁顺序不一样，发生死锁。

## Diagnostic Steps

N/A

## Resolution

- 影响版本

    - v5.2.0

- 修复版本
    - v5.2.1

## Workaround

关闭调度，重启有问题的 TiKV
