Skip to content

Commit 896395e

Browse files
committed
Save changes.
1 parent 599a0a1 commit 896395e

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

rls/src/main/java/io/grpc/rls/CachingRlsLbClient.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ final class CachingRlsLbClient {
133133
private final RefCountedChildPolicyWrapperFactory refCountedChildPolicyWrapperFactory;
134134
private final ChannelLogger logger;
135135
private final ChildPolicyWrapper fallbackChildPolicyWrapper;
136+
private ConnectivityState lastRlsServerConnectivityState;
136137

137138
static {
138139
MetricInstrumentRegistry metricInstrumentRegistry
@@ -216,6 +217,8 @@ private CachingRlsLbClient(Builder builder) {
216217
rlsChannelBuilder.disableServiceConfigLookUp();
217218
}
218219
rlsChannel = rlsChannelBuilder.build();
220+
lastRlsServerConnectivityState = rlsChannel.getState(false);
221+
rlsChannel.notifyWhenStateChanged(lastRlsServerConnectivityState, () -> rlsServerConnectionStateChanged());
219222
rlsStub = RouteLookupServiceGrpc.newStub(rlsChannel);
220223
childLbResolvedAddressFactory =
221224
checkNotNull(builder.resolvedAddressFactory, "resolvedAddressFactory");
@@ -257,6 +260,15 @@ public void accept(BatchRecorder recorder) {
257260
logger.log(ChannelLogLevel.DEBUG, "CachingRlsLbClient created");
258261
}
259262

263+
private void rlsServerConnectionStateChanged() {
264+
ConnectivityState currentState = rlsChannel.getState(false);
265+
if (lastRlsServerConnectivityState == ConnectivityState.TRANSIENT_FAILURE
266+
&& currentState == ConnectivityState.READY) {
267+
268+
}
269+
lastRlsServerConnectivityState = currentState;
270+
}
271+
260272
void init() {
261273
synchronized (lock) {
262274
refCountedChildPolicyWrapperFactory.init();

0 commit comments

Comments
 (0)