You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While testing the new bootstrap generator (GoogleCloudPlatform/traffic-director-grpc-bootstrap#57) which adds the new xdstp style in client_default_listener_name_template to the config, I found that the virtual hosts lookup was failing with the following error:
2024/02/21 22:39:04 WARNING: [core] [Channel #1] ccResolverWrapper: reporting error to cc: no matching virtual host found for "xdstp://traffic-director-global.xds.googleapis.com/envoy.config.listener.v3.Listener/439293274322/default/helloworld-gke:8000"
2024/02/21 22:39:04 INFO: [core] [Channel #1] Channel switches to new LB policy "pick_first"
2024/02/21 22:39:04 INFO: [core] [pick-first-lb 0xc0002ae4b0] Received error from the name resolver: no matching virtual host found for "xdstp://traffic-director-global.xds.googleapis.com/envoy.config.listener.v3.Listener/439293274322/default/helloworld-gke:8000"
2024/02/21 22:39:04 INFO: [core] [Channel #1] Channel Connectivity change to TRANSIENT_FAILURE
2024/02/21 22:39:04 could not greet: rpc error: code = Unavailable desc = name resolver error: no matching virtual host found for "xdstp://traffic-director-global.xds.googleapis.com/envoy.config.listener.v3.Listener/439293274322/default/helloworld-gke:8000"
The issue is that while parsing RDS to lookup virtual host we are using the entire LDS resource name and not just the domain, which is the dial target provided by the user.
I found the same issue in gRPC-java. This works in the following cases: when the virtual hosts domain name is the same the LDS resource name.
The text was updated successfully, but these errors were encountered:
You should not be using the LDS resource name to match the virtual host name. You should be using the data plane authority.
If the gRPC channel is created with target URI xds://whatever/server.example.com, then the data plane authority is server.example.com, regardless of what LDS resource name is constructed via the bootstrap file.
Note that the authority used for the data plane connections (which is also used to select the VirtualHost within the xDS RouteConfiguration) will continue to be the last path component of the xds URI used to create the gRPC channel (i.e., the part following the last / character, or the entire path if the path contains no / character).
arvindbr8
changed the title
xdsresolver uses ldsResourceName instead of using the dial target
xdsresolver uses ldsResourceName instead of using data plane authority
Feb 22, 2024
While testing the new bootstrap generator (GoogleCloudPlatform/traffic-director-grpc-bootstrap#57) which adds the new xdstp style in
client_default_listener_name_template
to the config, I found that the virtual hosts lookup was failing with the following error:even though, we are getting a valid RDS response
The issue is that while parsing RDS to lookup virtual host we are using the entire LDS resource name and not just the domain, which is the dial target provided by the user.
I found the same issue in gRPC-java. This works in the following cases: when the virtual hosts domain name is the same the LDS resource name.
The text was updated successfully, but these errors were encountered: