From 41bc4649991172143f02262bfc8935a4e4fe8376 Mon Sep 17 00:00:00 2001 From: birdstorm Date: Fri, 4 Jun 2021 13:09:21 +0800 Subject: [PATCH 1/2] fix pd retry not recovered for 60s Signed-off-by: birdstorm --- src/main/java/org/tikv/common/PDClient.java | 2 +- src/main/java/org/tikv/common/operation/PDErrorHandler.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/tikv/common/PDClient.java b/src/main/java/org/tikv/common/PDClient.java index 9bbda330bad..ac4d4f39182 100644 --- a/src/main/java/org/tikv/common/PDClient.java +++ b/src/main/java/org/tikv/common/PDClient.java @@ -418,7 +418,7 @@ synchronized boolean switchLeader(List leaderURLs) { return createLeaderWrapper(leaderUrlStr); } - private boolean createLeaderWrapper(String leaderUrlStr) { + private synchronized boolean createLeaderWrapper(String leaderUrlStr) { try { URI newLeader = addrToUri(leaderUrlStr); leaderUrlStr = uriToAddr(newLeader); diff --git a/src/main/java/org/tikv/common/operation/PDErrorHandler.java b/src/main/java/org/tikv/common/operation/PDErrorHandler.java index 27441d9a0e0..7c79a3d6d84 100644 --- a/src/main/java/org/tikv/common/operation/PDErrorHandler.java +++ b/src/main/java/org/tikv/common/operation/PDErrorHandler.java @@ -73,6 +73,7 @@ public boolean handleResponseError(BackOffer backOffer, RespT resp) { @Override public boolean handleRequestError(BackOffer backOffer, Exception e) { backOffer.doBackOff(BackOffFunction.BackOffFuncType.BoPDRPC, e); + client.updateLeader(); return true; } } From 0633d20239ee63090c2c28481aacbe993b5aa48b Mon Sep 17 00:00:00 2001 From: birdstorm Date: Tue, 8 Jun 2021 14:23:00 +0800 Subject: [PATCH 2/2] fix test Signed-off-by: birdstorm --- src/test/java/org/tikv/common/PDMockServer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/tikv/common/PDMockServer.java b/src/test/java/org/tikv/common/PDMockServer.java index 81e9c64bd2d..521a286741f 100644 --- a/src/test/java/org/tikv/common/PDMockServer.java +++ b/src/test/java/org/tikv/common/PDMockServer.java @@ -43,7 +43,7 @@ public void addGetMemberResp(GetMembersResponse r) { @Override public void getMembers(GetMembersRequest request, StreamObserver resp) { try { - resp.onNext(getMembersResp.removeFirst().get()); + resp.onNext(getMembersResp.getFirst().get()); resp.onCompleted(); } catch (Exception e) { resp.onError(Status.INTERNAL.asRuntimeException());