Skip to content

Commit 78b3972

Browse files
authored
xds: fix xdsNameResolver virtual host lookup authority, use service authority instead of ldsResourceName (#10960)
1 parent 0ffcd40 commit 78b3972

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

xds/src/main/java/io/grpc/xds/XdsNameResolver.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -696,7 +696,7 @@ private void stop() {
696696
// called in syncContext
697697
private void updateRoutes(List<VirtualHost> virtualHosts, long httpMaxStreamDurationNano,
698698
@Nullable List<NamedFilterConfig> filterConfigs) {
699-
String authority = overrideAuthority != null ? overrideAuthority : ldsResourceName;
699+
String authority = overrideAuthority != null ? overrideAuthority : encodedServiceAuthority;
700700
VirtualHost virtualHost = RoutingUtils.findVirtualHostForHostName(virtualHosts, authority);
701701
if (virtualHost == null) {
702702
String error = "Failed to find virtual host matching hostname: " + authority;

xds/src/test/java/io/grpc/xds/XdsNameResolverTest.java

+12
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,18 @@ public void resolving_ldsResourceUpdateRdsName() {
333333
RouteAction.forCluster(
334334
cluster2, Collections.emptyList(), TimeUnit.SECONDS.toNanos(20L), null),
335335
ImmutableMap.of());
336+
bootstrapInfo = BootstrapInfo.builder()
337+
.servers(ImmutableList.of(ServerInfo.create(
338+
"td.googleapis.com", InsecureChannelCredentials.create())))
339+
.clientDefaultListenerResourceNameTemplate("test-%s")
340+
.node(Node.newBuilder().build())
341+
.build();
342+
resolver = new XdsNameResolver(null, AUTHORITY, null,
343+
serviceConfigParser, syncContext, scheduler,
344+
xdsClientPoolFactory, mockRandom, FilterRegistry.getDefaultRegistry(), null);
345+
// use different ldsResourceName and service authority. The virtualhost lookup should use
346+
// service authority.
347+
expectedLdsResourceName = "test-" + expectedLdsResourceName;
336348

337349
resolver.start(mockListener);
338350
FakeXdsClient xdsClient = (FakeXdsClient) resolver.getXdsClient();

0 commit comments

Comments
 (0)