diff --git a/docs/root/version_history/current.rst b/docs/root/version_history/current.rst index ff3d5dc33333d..96172ce0c519a 100644 --- a/docs/root/version_history/current.rst +++ b/docs/root/version_history/current.rst @@ -35,6 +35,7 @@ Removed Config or Runtime * http: removed legacy connection close behavior and runtime guard `envoy.reloadable_features.fixed_connection_close`. * http: removed legacy HTTP/1.1 error reporting path and runtime guard `envoy.reloadable_features.early_errors_via_hcm`. * http: removed legacy sanitization path for upgrade response headers and runtime guard `envoy.reloadable_features.fix_upgrade_response`. +* router: removed `envoy.reloadable_features.consume_all_retry_headers` and legacy code path. New Features ------------ diff --git a/source/common/router/BUILD b/source/common/router/BUILD index 2920805d7c8b2..96557a1af8b46 100644 --- a/source/common/router/BUILD +++ b/source/common/router/BUILD @@ -264,7 +264,6 @@ envoy_cc_library( "//source/common/http:header_utility_lib", "//source/common/http:headers_lib", "//source/common/http:utility_lib", - "//source/common/runtime:runtime_features_lib", "@envoy_api//envoy/config/route/v3:pkg_cc_proto", ], ) diff --git a/source/common/router/retry_state_impl.cc b/source/common/router/retry_state_impl.cc index f4303a55f461e..1f62d8bc023dd 100644 --- a/source/common/router/retry_state_impl.cc +++ b/source/common/router/retry_state_impl.cc @@ -13,7 +13,6 @@ #include "common/http/codes.h" #include "common/http/headers.h" #include "common/http/utility.h" -#include "common/runtime/runtime_features.h" namespace Envoy { namespace Router { @@ -52,12 +51,10 @@ RetryStatePtr RetryStateImpl::create(const RetryPolicy& route_policy, request_headers.removeEnvoyRetryOn(); request_headers.removeEnvoyRetryGrpcOn(); request_headers.removeEnvoyMaxRetries(); - if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.consume_all_retry_headers")) { - request_headers.removeEnvoyHedgeOnPerTryTimeout(); - request_headers.removeEnvoyRetriableHeaderNames(); - request_headers.removeEnvoyRetriableStatusCodes(); - request_headers.removeEnvoyUpstreamRequestPerTryTimeoutMs(); - } + request_headers.removeEnvoyHedgeOnPerTryTimeout(); + request_headers.removeEnvoyRetriableHeaderNames(); + request_headers.removeEnvoyRetriableStatusCodes(); + request_headers.removeEnvoyUpstreamRequestPerTryTimeoutMs(); return ret; } diff --git a/source/common/runtime/runtime_features.cc b/source/common/runtime/runtime_features.cc index aec7aa601aa12..b50f2fdfe3916 100644 --- a/source/common/runtime/runtime_features.cc +++ b/source/common/runtime/runtime_features.cc @@ -62,7 +62,6 @@ constexpr const char* runtime_features[] = { "envoy.reloadable_features.allow_preconnect", "envoy.reloadable_features.allow_response_for_timeout", "envoy.reloadable_features.always_nodelay", - "envoy.reloadable_features.consume_all_retry_headers", "envoy.reloadable_features.check_ocsp_policy", "envoy.reloadable_features.disable_tls_inspector_injection", "envoy.reloadable_features.fix_wildcard_matching", diff --git a/test/common/router/retry_state_impl_test.cc b/test/common/router/retry_state_impl_test.cc index 02ca75b9ea400..05221252b26ef 100644 --- a/test/common/router/retry_state_impl_test.cc +++ b/test/common/router/retry_state_impl_test.cc @@ -1319,58 +1319,6 @@ TEST_F(RouterRetryStateImplTest, RemoveAllRetryHeaders) { EXPECT_FALSE(request_headers.has("x-envoy-hedge-on-per-try-timeout")); EXPECT_FALSE(request_headers.has("x-envoy-upstream-rq-per-try-timeout-ms")); } - - // Repeat policy is enabled case with runtime flag disabled. - { - TestScopedRuntime scoped_runtime; - Runtime::LoaderSingleton::getExisting()->mergeValues( - {{"envoy.reloadable_features.consume_all_retry_headers", "false"}}); - - Http::TestRequestHeaderMapImpl request_headers{ - {"x-envoy-retry-on", "5xx,retriable-header-names,retriable-status-codes"}, - {"x-envoy-retry-grpc-on", "resource-exhausted"}, - {"x-envoy-retriable-header-names", "X-Upstream-Pushback"}, - {"x-envoy-retriable-status-codes", "418,420"}, - {"x-envoy-max-retries", "7"}, - {"x-envoy-hedge-on-per-try-timeout", "true"}, - {"x-envoy-upstream-rq-per-try-timeout-ms", "2"}, - }; - setup(request_headers); - EXPECT_TRUE(state_->enabled()); - - EXPECT_FALSE(request_headers.has("x-envoy-retry-on")); - EXPECT_FALSE(request_headers.has("x-envoy-retry-grpc-on")); - EXPECT_FALSE(request_headers.has("x-envoy-max-retries")); - EXPECT_TRUE(request_headers.has("x-envoy-retriable-header-names")); - EXPECT_TRUE(request_headers.has("x-envoy-retriable-status-codes")); - EXPECT_TRUE(request_headers.has("x-envoy-hedge-on-per-try-timeout")); - EXPECT_TRUE(request_headers.has("x-envoy-upstream-rq-per-try-timeout-ms")); - } - - // Repeat policy is disabled case with runtime flag disabled. - { - TestScopedRuntime scoped_runtime; - Runtime::LoaderSingleton::getExisting()->mergeValues( - {{"envoy.reloadable_features.consume_all_retry_headers", "false"}}); - - Http::TestRequestHeaderMapImpl request_headers{ - {"x-envoy-retriable-header-names", "X-Upstream-Pushback"}, - {"x-envoy-retriable-status-codes", "418,420"}, - {"x-envoy-max-retries", "7"}, - {"x-envoy-hedge-on-per-try-timeout", "true"}, - {"x-envoy-upstream-rq-per-try-timeout-ms", "2"}, - }; - setup(request_headers); - EXPECT_EQ(nullptr, state_); - - EXPECT_FALSE(request_headers.has("x-envoy-retry-on")); - EXPECT_FALSE(request_headers.has("x-envoy-retry-grpc-on")); - EXPECT_FALSE(request_headers.has("x-envoy-max-retries")); - EXPECT_TRUE(request_headers.has("x-envoy-retriable-header-names")); - EXPECT_TRUE(request_headers.has("x-envoy-retriable-status-codes")); - EXPECT_TRUE(request_headers.has("x-envoy-hedge-on-per-try-timeout")); - EXPECT_TRUE(request_headers.has("x-envoy-upstream-rq-per-try-timeout-ms")); - } } } // namespace