[client idleness] remove experiment (#35229)

Closes #35229

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35229 from markdroth:client_idleness_experiment_cleanup 65c570d07a
PiperOrigin-RevId: 614882554
pull/36024/head
Mark D. Roth 11 months ago committed by Copybara-Service
parent 0f77a5ad9e
commit ae131c991f
  1. 1
      bazel/experiments.bzl
  2. 9
      src/core/ext/filters/channel_idle/channel_idle_filter.cc
  3. 9
      src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc
  4. 15
      src/core/lib/experiments/experiments.cc
  5. 11
      src/core/lib/experiments/experiments.h
  6. 5
      src/core/lib/experiments/experiments.yaml
  7. 2
      src/core/lib/experiments/rollouts.yaml
  8. 4
      test/core/channel/minimal_stack_is_minimal_test.cc

@ -21,7 +21,6 @@ EXPERIMENT_ENABLES = {
"call_status_override_on_cancellation": "call_status_override_on_cancellation",
"call_v3": "call_v3",
"canary_client_privacy": "canary_client_privacy",
"client_idleness": "client_idleness",
"client_privacy": "client_privacy",
"event_engine_client": "event_engine_client",
"event_engine_dns": "event_engine_dns",

@ -64,12 +64,7 @@ const NoInterceptor ChannelIdleFilter::Call::OnServerToClientMessage;
namespace {
// TODO(roth): This can go back to being a constant when the experiment
// is removed.
Duration DefaultIdleTimeout() {
if (IsClientIdlenessEnabled()) return Duration::Minutes(30);
return Duration::Infinity();
}
constexpr Duration kDefaultIdleTimeout = Duration::Minutes(30);
// If these settings change, make sure that we are not sending a GOAWAY for
// inproc transport, since a GOAWAY to inproc ends up destroying the transport.
@ -92,7 +87,7 @@ namespace {
Duration GetClientIdleTimeout(const ChannelArgs& args) {
return args.GetDurationFromIntMillis(GRPC_ARG_CLIENT_IDLE_TIMEOUT_MS)
.value_or(DefaultIdleTimeout());
.value_or(kDefaultIdleTimeout);
}
} // namespace

@ -58,12 +58,7 @@ namespace grpc_core {
namespace {
// TODO(roth): This can go back to being a constant when the experiment
// is removed.
Duration DefaultIdleTimeout() {
if (IsClientIdlenessEnabled()) return Duration::Minutes(30);
return Duration::Infinity();
}
constexpr Duration kDefaultIdleTimeout = Duration::Minutes(30);
// If these settings change, make sure that we are not sending a GOAWAY for
// inproc transport, since a GOAWAY to inproc ends up destroying the transport.
@ -86,7 +81,7 @@ namespace {
Duration GetClientIdleTimeout(const ChannelArgs& args) {
return args.GetDurationFromIntMillis(GRPC_ARG_CLIENT_IDLE_TIMEOUT_MS)
.value_or(DefaultIdleTimeout());
.value_or(kDefaultIdleTimeout);
}
} // namespace

@ -36,9 +36,6 @@ const char* const additional_constraints_call_v3 = "{}";
const char* const description_canary_client_privacy =
"If set, canary client privacy";
const char* const additional_constraints_canary_client_privacy = "{}";
const char* const description_client_idleness =
"If enabled, client channel idleness is enabled by default.";
const char* const additional_constraints_client_idleness = "{}";
const char* const description_client_privacy = "If set, client privacy";
const char* const additional_constraints_client_privacy = "{}";
const char* const description_event_engine_client =
@ -194,8 +191,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
false, true},
{"canary_client_privacy", description_canary_client_privacy,
additional_constraints_canary_client_privacy, nullptr, 0, false, false},
{"client_idleness", description_client_idleness,
additional_constraints_client_idleness, nullptr, 0, true, true},
{"client_privacy", description_client_privacy,
additional_constraints_client_privacy, nullptr, 0, false, false},
{"event_engine_client", description_event_engine_client,
@ -295,9 +290,6 @@ const char* const additional_constraints_call_v3 = "{}";
const char* const description_canary_client_privacy =
"If set, canary client privacy";
const char* const additional_constraints_canary_client_privacy = "{}";
const char* const description_client_idleness =
"If enabled, client channel idleness is enabled by default.";
const char* const additional_constraints_client_idleness = "{}";
const char* const description_client_privacy = "If set, client privacy";
const char* const additional_constraints_client_privacy = "{}";
const char* const description_event_engine_client =
@ -453,8 +445,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
false, true},
{"canary_client_privacy", description_canary_client_privacy,
additional_constraints_canary_client_privacy, nullptr, 0, false, false},
{"client_idleness", description_client_idleness,
additional_constraints_client_idleness, nullptr, 0, true, true},
{"client_privacy", description_client_privacy,
additional_constraints_client_privacy, nullptr, 0, false, false},
{"event_engine_client", description_event_engine_client,
@ -554,9 +544,6 @@ const char* const additional_constraints_call_v3 = "{}";
const char* const description_canary_client_privacy =
"If set, canary client privacy";
const char* const additional_constraints_canary_client_privacy = "{}";
const char* const description_client_idleness =
"If enabled, client channel idleness is enabled by default.";
const char* const additional_constraints_client_idleness = "{}";
const char* const description_client_privacy = "If set, client privacy";
const char* const additional_constraints_client_privacy = "{}";
const char* const description_event_engine_client =
@ -712,8 +699,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
false, true},
{"canary_client_privacy", description_canary_client_privacy,
additional_constraints_canary_client_privacy, nullptr, 0, false, false},
{"client_idleness", description_client_idleness,
additional_constraints_client_idleness, nullptr, 0, true, true},
{"client_privacy", description_client_privacy,
additional_constraints_client_privacy, nullptr, 0, false, false},
{"event_engine_client", description_event_engine_client,

@ -71,8 +71,6 @@ inline bool IsCallStatusOverrideOnCancellationEnabled() {
}
inline bool IsCallV3Enabled() { return false; }
inline bool IsCanaryClientPrivacyEnabled() { return false; }
#define GRPC_EXPERIMENT_IS_INCLUDED_CLIENT_IDLENESS
inline bool IsClientIdlenessEnabled() { return true; }
inline bool IsClientPrivacyEnabled() { return false; }
inline bool IsEventEngineClientEnabled() { return false; }
inline bool IsEventEngineDnsEnabled() { return false; }
@ -130,8 +128,6 @@ inline bool IsCallStatusOverrideOnCancellationEnabled() {
}
inline bool IsCallV3Enabled() { return false; }
inline bool IsCanaryClientPrivacyEnabled() { return false; }
#define GRPC_EXPERIMENT_IS_INCLUDED_CLIENT_IDLENESS
inline bool IsClientIdlenessEnabled() { return true; }
inline bool IsClientPrivacyEnabled() { return false; }
inline bool IsEventEngineClientEnabled() { return false; }
inline bool IsEventEngineDnsEnabled() { return false; }
@ -190,8 +186,6 @@ inline bool IsCallStatusOverrideOnCancellationEnabled() {
}
inline bool IsCallV3Enabled() { return false; }
inline bool IsCanaryClientPrivacyEnabled() { return false; }
#define GRPC_EXPERIMENT_IS_INCLUDED_CLIENT_IDLENESS
inline bool IsClientIdlenessEnabled() { return true; }
inline bool IsClientPrivacyEnabled() { return false; }
inline bool IsEventEngineClientEnabled() { return false; }
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_DNS
@ -244,7 +238,6 @@ enum ExperimentIds {
kExperimentIdCallStatusOverrideOnCancellation,
kExperimentIdCallV3,
kExperimentIdCanaryClientPrivacy,
kExperimentIdClientIdleness,
kExperimentIdClientPrivacy,
kExperimentIdEventEngineClient,
kExperimentIdEventEngineDns,
@ -296,10 +289,6 @@ inline bool IsCallV3Enabled() {
inline bool IsCanaryClientPrivacyEnabled() {
return IsExperimentEnabled(kExperimentIdCanaryClientPrivacy);
}
#define GRPC_EXPERIMENT_IS_INCLUDED_CLIENT_IDLENESS
inline bool IsClientIdlenessEnabled() {
return IsExperimentEnabled(kExperimentIdClientIdleness);
}
#define GRPC_EXPERIMENT_IS_INCLUDED_CLIENT_PRIVACY
inline bool IsClientPrivacyEnabled() {
return IsExperimentEnabled(kExperimentIdClientPrivacy);

@ -71,11 +71,6 @@
owner: ctiller@google.com
requires: [promise_based_client_call, promise_based_server_call]
test_tags: [core_end2end_test]
- name: client_idleness
description: If enabled, client channel idleness is enabled by default.
expiry: 2024/03/15
owner: roth@google.com
test_tags: []
- name: client_privacy
description:
If set, client privacy

@ -53,8 +53,6 @@
ios: broken
posix: false
windows: broken
- name: client_idleness
default: true
- name: client_privacy
default: false
- name: event_engine_client

@ -161,9 +161,7 @@ TEST(ChannelStackFilters, LooksAsExpected) {
"http-server", "compression",
"server_call_tracer", "connected"}));
EXPECT_EQ(MakeStack(nullptr, no_args, GRPC_CLIENT_CHANNEL),
grpc_core::IsClientIdlenessEnabled()
? std::vector<std::string>({"client_idle", "client-channel"})
: std::vector<std::string>({"client-channel"}));
std::vector<std::string>({"client_idle", "client-channel"}));
}
int main(int argc, char** argv) {

Loading…
Cancel
Save