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);
}
private boolean createLeaderWrapper(String leaderUrlStr) {
private synchronized boolean createLeaderWrapper(String leaderUrlStr) {
try {
URI newLeader = addrToUri(leaderUrlStr);
leaderUrlStr = uriToAddr(newLeader);

View File

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

View File

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