Fix pd retry not recovered for 60s (#182)

Signed-off-by: birdstorm <samuelwyf@hotmail.com>
This commit is contained in:
birdstorm 2021-06-08 15:31:51 +09:00 committed by GitHub
parent 98f0c131d0
commit f76a267f5b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 3 additions and 2 deletions

View File

@ -418,7 +418,7 @@ public class PDClient extends AbstractGRPCClient<PDBlockingStub, PDStub>
return createLeaderWrapper(leaderUrlStr); return createLeaderWrapper(leaderUrlStr);
} }
private boolean createLeaderWrapper(String leaderUrlStr) { private synchronized boolean createLeaderWrapper(String leaderUrlStr) {
try { try {
URI newLeader = addrToUri(leaderUrlStr); URI newLeader = addrToUri(leaderUrlStr);
leaderUrlStr = uriToAddr(newLeader); leaderUrlStr = uriToAddr(newLeader);

View File

@ -73,6 +73,7 @@ public class PDErrorHandler<RespT> implements ErrorHandler<RespT> {
@Override @Override
public boolean handleRequestError(BackOffer backOffer, Exception e) { public boolean handleRequestError(BackOffer backOffer, Exception e) {
backOffer.doBackOff(BackOffFunction.BackOffFuncType.BoPDRPC, e); backOffer.doBackOff(BackOffFunction.BackOffFuncType.BoPDRPC, e);
client.updateLeader();
return true; return true;
} }
} }

View File

@ -43,7 +43,7 @@ public class PDMockServer extends PDGrpc.PDImplBase {
@Override @Override
public void getMembers(GetMembersRequest request, StreamObserver<GetMembersResponse> resp) { public void getMembers(GetMembersRequest request, StreamObserver<GetMembersResponse> resp) {
try { try {
resp.onNext(getMembersResp.removeFirst().get()); resp.onNext(getMembersResp.getFirst().get());
resp.onCompleted(); resp.onCompleted();
} catch (Exception e) { } catch (Exception e) {
resp.onError(Status.INTERNAL.asRuntimeException()); resp.onError(Status.INTERNAL.asRuntimeException());