From 9256ec16a9e8164b33cb73e74f5e3d623319c0d6 Mon Sep 17 00:00:00 2001 From: Chengyuan Zhang Date: Thu, 15 Apr 2021 11:55:20 -0700 Subject: [PATCH] The cluster_resolver LB policy intentionally does not want to trigger a name resolution refresh for the resolver in Channel, so use ignoreRefreshNameResolutionCheck() to avoid false-positive warnings. --- .../main/java/io/grpc/xds/ClusterResolverLoadBalancer.java | 2 ++ .../java/io/grpc/xds/ClusterResolverLoadBalancerTest.java | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/xds/src/main/java/io/grpc/xds/ClusterResolverLoadBalancer.java b/xds/src/main/java/io/grpc/xds/ClusterResolverLoadBalancer.java index 4ee0e773a2d4..37dc4e741a87 100644 --- a/xds/src/main/java/io/grpc/xds/ClusterResolverLoadBalancer.java +++ b/xds/src/main/java/io/grpc/xds/ClusterResolverLoadBalancer.java @@ -279,8 +279,10 @@ private void handleEndpointResolutionError() { private final class RefreshableHelper extends ForwardingLoadBalancerHelper { private final Helper delegate; + @SuppressWarnings("deprecation") private RefreshableHelper(Helper delegate) { this.delegate = checkNotNull(delegate, "delegate"); + delegate.ignoreRefreshNameResolutionCheck(); } @Override diff --git a/xds/src/test/java/io/grpc/xds/ClusterResolverLoadBalancerTest.java b/xds/src/test/java/io/grpc/xds/ClusterResolverLoadBalancerTest.java index 3c2c226cd4fd..4ca3f9822be5 100644 --- a/xds/src/test/java/io/grpc/xds/ClusterResolverLoadBalancerTest.java +++ b/xds/src/test/java/io/grpc/xds/ClusterResolverLoadBalancerTest.java @@ -452,6 +452,7 @@ public void onlyLogicalDnsCluster_endpointsResolved() { assertAddressesEqual(Arrays.asList(endpoint1, endpoint2), childBalancer.addresses); } + @SuppressWarnings("deprecation") @Test public void onlyLogicalDnsCluster_handleRefreshNameResolution() { deliverConfigWithSingleLogicalDnsCluster(); @@ -461,6 +462,7 @@ public void onlyLogicalDnsCluster_handleRefreshNameResolution() { resolver.deliverEndpointAddresses(Arrays.asList(endpoint1, endpoint2)); assertThat(resolver.refreshCount).isEqualTo(0); FakeLoadBalancer childBalancer = Iterables.getOnlyElement(childBalancers); + verify(childBalancer.helper).ignoreRefreshNameResolutionCheck(); childBalancer.helper.refreshNameResolution(); assertThat(resolver.refreshCount).isEqualTo(1); } @@ -509,6 +511,7 @@ public void onlyLogicalDnsCluster_resolutionError_backoffAndRefresh() { inOrder.verifyNoMoreInteractions(); } + @SuppressWarnings("deprecation") @Test public void onlyLogicalDnsCluster_refreshNameResolutionRaceWithResolutionError() { InOrder inOrder = Mockito.inOrder(backoffPolicyProvider, backoffPolicy1, backoffPolicy2); @@ -519,6 +522,7 @@ public void onlyLogicalDnsCluster_refreshNameResolutionRaceWithResolutionError() FakeLoadBalancer childBalancer = Iterables.getOnlyElement(childBalancers); assertAddressesEqual(Collections.singletonList(endpoint), childBalancer.addresses); assertThat(resolver.refreshCount).isEqualTo(0); + verify(childBalancer.helper).ignoreRefreshNameResolutionCheck(); childBalancer.helper.refreshNameResolution(); assertThat(resolver.refreshCount).isEqualTo(1);