diff --git a/src/main/java/org/tikv/common/region/AbstractRegionStoreClient.java b/src/main/java/org/tikv/common/region/AbstractRegionStoreClient.java index e34a0ff352d..5c00b4a7032 100644 --- a/src/main/java/org/tikv/common/region/AbstractRegionStoreClient.java +++ b/src/main/java/org/tikv/common/region/AbstractRegionStoreClient.java @@ -206,11 +206,14 @@ private Boolean seekLeaderStore(SlowLog slowLog) { "update leader using switchLeader logic from store[%d] to store[%d]", region.getLeader().getStoreId(), peer.getStoreId())); // update region cache - region = regionManager.updateLeader(region, peer.getStoreId()); - // switch to leader store - store = currentLeaderStore; - updateClientStub(); - return true; + TiRegion result = regionManager.updateLeader(region, peer.getStoreId()); + if (result != null) { + region = result; + // switch to leader store + store = currentLeaderStore; + updateClientStub(); + } + return false; } } else { // no leader found, some response does not return normally, there may be network partition.