From d852c283b41ac7ef58cacee7bdab2a357535330d Mon Sep 17 00:00:00 2001 From: "Mark D. Roth" Date: Thu, 12 Dec 2024 21:08:49 +0000 Subject: [PATCH] [xDS-enabled server] fix status code when RDS resource doesn't exist --- src/core/server/xds_server_config_fetcher.cc | 4 ++-- test/cpp/end2end/xds/xds_end2end_test.cc | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/server/xds_server_config_fetcher.cc b/src/core/server/xds_server_config_fetcher.cc index b7644d1148800..d3f0ef4525e5b 100644 --- a/src/core/server/xds_server_config_fetcher.cc +++ b/src/core/server/xds_server_config_fetcher.cc @@ -899,7 +899,7 @@ void XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager:: } } state.rds_update = - absl::NotFoundError("Requested route config does not exist"); + absl::UnavailableError("Requested route config does not exist"); } // Promote the filter chain match manager object if all the referenced // resources are fetched. @@ -1342,7 +1342,7 @@ void XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager:: void XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager:: DynamicXdsServerConfigSelectorProvider::OnResourceDoesNotExist() { MutexLock lock(&mu_); - resource_ = absl::NotFoundError("Requested route config does not exist"); + resource_ = absl::UnavailableError("Requested route config does not exist"); if (watcher_ == nullptr) { return; } diff --git a/test/cpp/end2end/xds/xds_end2end_test.cc b/test/cpp/end2end/xds/xds_end2end_test.cc index a4d724e9fd592..577e6bfbb0e13 100644 --- a/test/cpp/end2end/xds/xds_end2end_test.cc +++ b/test/cpp/end2end/xds/xds_end2end_test.cc @@ -2125,7 +2125,7 @@ TEST_P(XdsServerRdsTest, NonInlineRouteConfigurationNotAvailable) { ASSERT_TRUE(backends_[0]->notifier()->WaitOnServingStatusChange( grpc_core::LocalIpAndPort(backends_[0]->port()), grpc::StatusCode::OK)); SendRpc([this]() { return CreateInsecureChannel(); }, RpcOptions(), {}, {}, - true /* test_expects_failure */, grpc::StatusCode::NOT_FOUND, + true /* test_expects_failure */, grpc::StatusCode::UNAVAILABLE, "Requested route config does not exist"); }