diff --git a/store/tikv/region_cache.go b/store/tikv/region_cache.go index 24f1ff1e32fd3..1403373fe91cb 100644 --- a/store/tikv/region_cache.go +++ b/store/tikv/region_cache.go @@ -677,6 +677,9 @@ func (c *RegionCache) UpdateLeader(regionID RegionVerID, leaderStoreID uint64, c func (c *RegionCache) insertRegionToCache(cachedRegion *Region) { old := c.mu.sorted.ReplaceOrInsert(newBtreeItem(cachedRegion)) if old != nil { + // Don't refresh TiFlash work idx for region. Otherwise, it will always goto a invalid store which + // is under transferring regions. + cachedRegion.getStore().workTiFlashIdx = old.(*btreeItem).cachedRegion.getStore().workTiFlashIdx delete(c.mu.regions, old.(*btreeItem).cachedRegion.VerID()) } c.mu.regions[cachedRegion.VerID()] = cachedRegion