From 7507e767df7459a4a11a78d55987e927aaee9478 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Thu, 16 Jan 2025 00:06:47 -0800 Subject: [PATCH 01/15] [call-v3] Convert `ClientAuthFilter` (#38468) Closes #38468 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/38468 from ctiller:authy 6953c98e6950ab2910b9c6610f81b26a1b657233 PiperOrigin-RevId: 716110409 --- bazel/experiments.bzl | 4 + .../filters/http/client_authority_filter.cc | 6 +- src/core/lib/channel/promise_based_filter.h | 20 ++++ src/core/lib/experiments/experiments.cc | 15 +++ src/core/lib/experiments/experiments.h | 8 ++ src/core/lib/experiments/experiments.yaml | 5 + .../lib/security/transport/auth_filters.h | 90 +++++++++++++++- .../security/transport/client_auth_filter.cc | 102 ++++++++++++++++-- src/core/lib/surface/init.cc | 21 ++-- 9 files changed, 256 insertions(+), 15 deletions(-) diff --git a/bazel/experiments.bzl b/bazel/experiments.bzl index 2e04006c34764..79e5dcd0a1f30 100644 --- a/bazel/experiments.bzl +++ b/bazel/experiments.bzl @@ -19,6 +19,7 @@ EXPERIMENT_ENABLES = { "backoff_cap_initial_at_max": "backoff_cap_initial_at_max", "call_tracer_in_transport": "call_tracer_in_transport", + "callv3_client_auth_filter": "callv3_client_auth_filter", "chaotic_good_legacy_protocol": "chaotic_good_legacy_protocol", "disable_buffer_hint_on_high_memory_pressure": "disable_buffer_hint_on_high_memory_pressure", "event_engine_application_callbacks": "event_engine_application_callbacks", @@ -62,6 +63,7 @@ EXPERIMENTS = { }, "off": { "core_end2end_test": [ + "callv3_client_auth_filter", "chaotic_good_legacy_protocol", "event_engine_dns_non_client_channel", "local_connector_secure", @@ -128,6 +130,7 @@ EXPERIMENTS = { }, "off": { "core_end2end_test": [ + "callv3_client_auth_filter", "chaotic_good_legacy_protocol", "event_engine_dns_non_client_channel", "local_connector_secure", @@ -180,6 +183,7 @@ EXPERIMENTS = { }, "off": { "core_end2end_test": [ + "callv3_client_auth_filter", "chaotic_good_legacy_protocol", "event_engine_dns_non_client_channel", "local_connector_secure", diff --git a/src/core/ext/filters/http/client_authority_filter.cc b/src/core/ext/filters/http/client_authority_filter.cc index 5766996977173..afbc1e10c6af9 100644 --- a/src/core/ext/filters/http/client_authority_filter.cc +++ b/src/core/ext/filters/http/client_authority_filter.cc @@ -73,11 +73,13 @@ void RegisterClientAuthorityFilter(CoreConfiguration::Builder* builder) { builder->channel_init() ->RegisterFilter(GRPC_CLIENT_SUBCHANNEL) .If(NeedsClientAuthorityFilter) - .Before(); + .Before() + .Before(); builder->channel_init() ->RegisterFilter(GRPC_CLIENT_DIRECT_CHANNEL) .If(NeedsClientAuthorityFilter) - .Before(); + .Before() + .Before(); } } // namespace grpc_core diff --git a/src/core/lib/channel/promise_based_filter.h b/src/core/lib/channel/promise_based_filter.h index 09c96c4f836d5..3fd30764c308a 100644 --- a/src/core/lib/channel/promise_based_filter.h +++ b/src/core/lib/channel/promise_based_filter.h @@ -442,6 +442,26 @@ struct RunCallImpl< } }; +template +struct RunCallImpl< + Promise (Derived::Call::*)(ClientMetadataHandle md, Derived* channel), + Derived, + std::enable_if_t, + PromiseResult>>> { + static auto Run(CallArgs call_args, NextPromiseFactory next_promise_factory, + FilterCallData* call_data) { + ClientMetadataHandle md = std::move(call_args.client_initial_metadata); + return TrySeq(call_data->call.OnClientInitialMetadata(std::move(md), + call_data->channel), + [call_args = std::move(call_args), + next_promise_factory = std::move(next_promise_factory)]( + ClientMetadataHandle md) mutable { + call_args.client_initial_metadata = std::move(md); + return next_promise_factory(std::move(call_args)); + }); + } +}; + template auto RunCall(Interceptor interceptor, CallArgs call_args, NextPromiseFactory next_promise_factory, diff --git a/src/core/lib/experiments/experiments.cc b/src/core/lib/experiments/experiments.cc index 5d5ab81123442..9e826e261db32 100644 --- a/src/core/lib/experiments/experiments.cc +++ b/src/core/lib/experiments/experiments.cc @@ -29,6 +29,9 @@ const char* const additional_constraints_backoff_cap_initial_at_max = "{}"; const char* const description_call_tracer_in_transport = "Transport directly passes byte counts to CallTracer."; const char* const additional_constraints_call_tracer_in_transport = "{}"; +const char* const description_callv3_client_auth_filter = + "Use the CallV3 client auth filter."; +const char* const additional_constraints_callv3_client_auth_filter = "{}"; const char* const description_chaotic_good_legacy_protocol = "If set, use the first version of the chaotic-good protocol when that " "protocol is enabled."; @@ -152,6 +155,8 @@ const ExperimentMetadata g_experiment_metadata[] = { additional_constraints_backoff_cap_initial_at_max, nullptr, 0, true, true}, {"call_tracer_in_transport", description_call_tracer_in_transport, additional_constraints_call_tracer_in_transport, nullptr, 0, true, true}, + {"callv3_client_auth_filter", description_callv3_client_auth_filter, + additional_constraints_callv3_client_auth_filter, nullptr, 0, false, true}, {"chaotic_good_legacy_protocol", description_chaotic_good_legacy_protocol, additional_constraints_chaotic_good_legacy_protocol, nullptr, 0, false, true}, @@ -240,6 +245,9 @@ const char* const additional_constraints_backoff_cap_initial_at_max = "{}"; const char* const description_call_tracer_in_transport = "Transport directly passes byte counts to CallTracer."; const char* const additional_constraints_call_tracer_in_transport = "{}"; +const char* const description_callv3_client_auth_filter = + "Use the CallV3 client auth filter."; +const char* const additional_constraints_callv3_client_auth_filter = "{}"; const char* const description_chaotic_good_legacy_protocol = "If set, use the first version of the chaotic-good protocol when that " "protocol is enabled."; @@ -363,6 +371,8 @@ const ExperimentMetadata g_experiment_metadata[] = { additional_constraints_backoff_cap_initial_at_max, nullptr, 0, true, true}, {"call_tracer_in_transport", description_call_tracer_in_transport, additional_constraints_call_tracer_in_transport, nullptr, 0, true, true}, + {"callv3_client_auth_filter", description_callv3_client_auth_filter, + additional_constraints_callv3_client_auth_filter, nullptr, 0, false, true}, {"chaotic_good_legacy_protocol", description_chaotic_good_legacy_protocol, additional_constraints_chaotic_good_legacy_protocol, nullptr, 0, false, true}, @@ -451,6 +461,9 @@ const char* const additional_constraints_backoff_cap_initial_at_max = "{}"; const char* const description_call_tracer_in_transport = "Transport directly passes byte counts to CallTracer."; const char* const additional_constraints_call_tracer_in_transport = "{}"; +const char* const description_callv3_client_auth_filter = + "Use the CallV3 client auth filter."; +const char* const additional_constraints_callv3_client_auth_filter = "{}"; const char* const description_chaotic_good_legacy_protocol = "If set, use the first version of the chaotic-good protocol when that " "protocol is enabled."; @@ -574,6 +587,8 @@ const ExperimentMetadata g_experiment_metadata[] = { additional_constraints_backoff_cap_initial_at_max, nullptr, 0, true, true}, {"call_tracer_in_transport", description_call_tracer_in_transport, additional_constraints_call_tracer_in_transport, nullptr, 0, true, true}, + {"callv3_client_auth_filter", description_callv3_client_auth_filter, + additional_constraints_callv3_client_auth_filter, nullptr, 0, false, true}, {"chaotic_good_legacy_protocol", description_chaotic_good_legacy_protocol, additional_constraints_chaotic_good_legacy_protocol, nullptr, 0, false, true}, diff --git a/src/core/lib/experiments/experiments.h b/src/core/lib/experiments/experiments.h index 3eb5f17ca73be..7201c37c13363 100644 --- a/src/core/lib/experiments/experiments.h +++ b/src/core/lib/experiments/experiments.h @@ -61,6 +61,7 @@ namespace grpc_core { inline bool IsBackoffCapInitialAtMaxEnabled() { return true; } #define GRPC_EXPERIMENT_IS_INCLUDED_CALL_TRACER_IN_TRANSPORT inline bool IsCallTracerInTransportEnabled() { return true; } +inline bool IsCallv3ClientAuthFilterEnabled() { return false; } inline bool IsChaoticGoodLegacyProtocolEnabled() { return false; } inline bool IsDisableBufferHintOnHighMemoryPressureEnabled() { return false; } #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_APPLICATION_CALLBACKS @@ -102,6 +103,7 @@ inline bool IsServerListenerEnabled() { return false; } inline bool IsBackoffCapInitialAtMaxEnabled() { return true; } #define GRPC_EXPERIMENT_IS_INCLUDED_CALL_TRACER_IN_TRANSPORT inline bool IsCallTracerInTransportEnabled() { return true; } +inline bool IsCallv3ClientAuthFilterEnabled() { return false; } inline bool IsChaoticGoodLegacyProtocolEnabled() { return false; } inline bool IsDisableBufferHintOnHighMemoryPressureEnabled() { return false; } #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_APPLICATION_CALLBACKS @@ -146,6 +148,7 @@ inline bool IsServerListenerEnabled() { return false; } inline bool IsBackoffCapInitialAtMaxEnabled() { return true; } #define GRPC_EXPERIMENT_IS_INCLUDED_CALL_TRACER_IN_TRANSPORT inline bool IsCallTracerInTransportEnabled() { return true; } +inline bool IsCallv3ClientAuthFilterEnabled() { return false; } inline bool IsChaoticGoodLegacyProtocolEnabled() { return false; } inline bool IsDisableBufferHintOnHighMemoryPressureEnabled() { return false; } #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_APPLICATION_CALLBACKS @@ -190,6 +193,7 @@ inline bool IsServerListenerEnabled() { return false; } enum ExperimentIds { kExperimentIdBackoffCapInitialAtMax, kExperimentIdCallTracerInTransport, + kExperimentIdCallv3ClientAuthFilter, kExperimentIdChaoticGoodLegacyProtocol, kExperimentIdDisableBufferHintOnHighMemoryPressure, kExperimentIdEventEngineApplicationCallbacks, @@ -228,6 +232,10 @@ inline bool IsBackoffCapInitialAtMaxEnabled() { inline bool IsCallTracerInTransportEnabled() { return IsExperimentEnabled(); } +#define GRPC_EXPERIMENT_IS_INCLUDED_CALLV3_CLIENT_AUTH_FILTER +inline bool IsCallv3ClientAuthFilterEnabled() { + return IsExperimentEnabled(); +} #define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_LEGACY_PROTOCOL inline bool IsChaoticGoodLegacyProtocolEnabled() { return IsExperimentEnabled(); diff --git a/src/core/lib/experiments/experiments.yaml b/src/core/lib/experiments/experiments.yaml index 250712ef0aca3..e31f8becc1e6c 100644 --- a/src/core/lib/experiments/experiments.yaml +++ b/src/core/lib/experiments/experiments.yaml @@ -50,6 +50,11 @@ expiry: 2025/02/01 owner: roth@google.com test_tags: [] +- name: callv3_client_auth_filter + description: Use the CallV3 client auth filter. + expiry: 2025/06/01 + owner: ctiller@google.com + test_tags: [core_end2end_test] - name: chaotic_good_legacy_protocol description: If set, use the first version of the chaotic-good protocol when that protocol is enabled. expiry: 2025/01/15 diff --git a/src/core/lib/security/transport/auth_filters.h b/src/core/lib/security/transport/auth_filters.h index cd5179c45bfa4..79e98346f14d8 100644 --- a/src/core/lib/security/transport/auth_filters.h +++ b/src/core/lib/security/transport/auth_filters.h @@ -29,6 +29,7 @@ #include "src/core/lib/channel/channel_fwd.h" #include "src/core/lib/channel/channel_stack.h" #include "src/core/lib/channel/promise_based_filter.h" +#include "src/core/lib/channel/status_util.h" #include "src/core/lib/promise/arena_promise.h" #include "src/core/lib/security/credentials/credentials.h" #include "src/core/lib/security/security_connector/security_connector.h" @@ -38,7 +39,7 @@ namespace grpc_core { // Handles calling out to credentials to fill in metadata per call. -class ClientAuthFilter final : public ChannelFilter { +class ClientAuthFilter final : public ImplementChannelFilter { public: static const grpc_channel_filter kFilter; @@ -51,6 +52,93 @@ class ClientAuthFilter final : public ChannelFilter { static absl::StatusOr> Create( const ChannelArgs& args, ChannelFilter::Args); + private: + // These methods are early in the declaration order as auto return type is + // needed by Call. + auto GetMetadataFromCreds(RefCountedPtr creds, + ClientMetadataHandle md) { + return Map(creds->GetRequestMetadata(std::move(md), &args_), + [](absl::StatusOr new_metadata) mutable { + if (!new_metadata.ok()) { + return absl::StatusOr( + MaybeRewriteIllegalStatusCode(new_metadata.status(), + "call credentials")); + } + return new_metadata; + }); + } + + auto GetCallCredsMetadata(ClientMetadataHandle md) { + auto creds = GetCallCreds(); + return If( + creds.ok(), + [this, &creds, md = std::move(md)]() mutable { + return If( + *creds != nullptr, + [this, &creds, &md]() { + return GetMetadataFromCreds(std::move(*creds), std::move(md)); + }, + [&md]() { + return Immediate( + absl::StatusOr(std::move(md))); + }); + }, + [&creds]() { + return Immediate( + absl::StatusOr(creds.status())); + }); + } + + public: + class Call { + public: + auto OnClientInitialMetadata(ClientMetadataHandle md, + ClientAuthFilter* filter) { + filter->InstallContext(); + auto* host = md->get_pointer(HttpAuthorityMetadata()); + return WithResult>(If( + host == nullptr, + [&md]() mutable -> absl::StatusOr { + return std::move(md); + }, + [filter, host, &md]() mutable { + return TrySeq( + filter->args_.security_connector->CheckCallHost( + host->as_string_view(), filter->args_.auth_context.get()), + [filter, md = std::move(md)]() mutable { + return filter->GetCallCredsMetadata(std::move(md)); + }); + })); + } + static const inline NoInterceptor OnServerInitialMetadata; + static const inline NoInterceptor OnClientToServerMessage; + static const inline NoInterceptor OnClientToServerHalfClose; + static const inline NoInterceptor OnServerToClientMessage; + static const inline NoInterceptor OnServerTrailingMetadata; + static const inline NoInterceptor OnFinalize; + }; + + private: + void InstallContext(); + absl::StatusOr> GetCallCreds(); + + // Contains refs to security connector and auth context. + grpc_call_credentials::GetRequestMetadataArgs args_; +}; + +class LegacyClientAuthFilter final : public ChannelFilter { + public: + static const grpc_channel_filter kFilter; + + static absl::string_view TypeName() { return "client-auth-filter"; } + + LegacyClientAuthFilter( + RefCountedPtr security_connector, + RefCountedPtr auth_context); + + static absl::StatusOr> Create( + const ChannelArgs& args, ChannelFilter::Args); + // Construct a promise for one call. ArenaPromise MakeCallPromise( CallArgs call_args, NextPromiseFactory next_promise_factory) override; diff --git a/src/core/lib/security/transport/client_auth_filter.cc b/src/core/lib/security/transport/client_auth_filter.cc index 557f6b144503d..15d7417fbf085 100644 --- a/src/core/lib/security/transport/client_auth_filter.cc +++ b/src/core/lib/security/transport/client_auth_filter.cc @@ -100,13 +100,103 @@ bool grpc_check_security_level(grpc_security_level channel_level, namespace grpc_core { +// ClientAuthFilter + ClientAuthFilter::ClientAuthFilter( RefCountedPtr security_connector, RefCountedPtr auth_context) : args_{std::move(security_connector), std::move(auth_context)} {} -ArenaPromise> ClientAuthFilter::GetCallCredsMetadata( - CallArgs call_args) { +absl::StatusOr> +ClientAuthFilter::GetCallCreds() { + auto* ctx = GetContext(); + grpc_call_credentials* channel_call_creds = + args_.security_connector->mutable_request_metadata_creds(); + const bool call_creds_has_md = (ctx != nullptr) && (ctx->creds != nullptr); + + if (channel_call_creds == nullptr && !call_creds_has_md) { + // Skip sending metadata altogether. + return nullptr; + } + + RefCountedPtr creds; + if (channel_call_creds != nullptr && call_creds_has_md) { + creds = RefCountedPtr( + grpc_composite_call_credentials_create(channel_call_creds, + ctx->creds.get(), nullptr)); + if (creds == nullptr) { + return absl::UnauthenticatedError( + "Incompatible credentials set on channel and call."); + } + } else if (call_creds_has_md) { + creds = ctx->creds->Ref(); + } else { + creds = channel_call_creds->Ref(); + } + + // Check security level of call credential and channel, and do not send + // metadata if the check fails. + grpc_auth_property_iterator it = grpc_auth_context_find_properties_by_name( + args_.auth_context.get(), GRPC_TRANSPORT_SECURITY_LEVEL_PROPERTY_NAME); + const grpc_auth_property* prop = grpc_auth_property_iterator_next(&it); + if (prop == nullptr) { + return absl::UnauthenticatedError( + "Established channel does not have an auth " + "property representing a security level."); + } + const grpc_security_level call_cred_security_level = + creds->min_security_level(); + const bool is_security_level_ok = grpc_check_security_level( + convert_security_level_string_to_enum(prop->value), + call_cred_security_level); + if (!is_security_level_ok) { + return absl::UnauthenticatedError( + "Established channel does not have a sufficient security level to " + "transfer call credential."); + } + + return std::move(creds); +} + +void ClientAuthFilter::InstallContext() { + auto* sec_ctx = MaybeGetContext(); + if (sec_ctx == nullptr) { + sec_ctx = grpc_client_security_context_create(GetContext(), + /*creds=*/nullptr); + SetContext(sec_ctx); + } + sec_ctx->auth_context = args_.auth_context; +} + +absl::StatusOr> ClientAuthFilter::Create( + const ChannelArgs& args, ChannelFilter::Args) { + auto* sc = args.GetObject(); + if (sc == nullptr) { + return absl::InvalidArgumentError( + "Security connector missing from client auth filter args"); + } + auto* auth_context = args.GetObject(); + if (auth_context == nullptr) { + return absl::InvalidArgumentError( + "Auth context missing from client auth filter args"); + } + return std::make_unique( + sc->RefAsSubclass(), + auth_context->Ref()); +} + +const grpc_channel_filter ClientAuthFilter::kFilter = + MakePromiseBasedFilter(); + +// LegacyClientAuthFilter + +LegacyClientAuthFilter::LegacyClientAuthFilter( + RefCountedPtr security_connector, + RefCountedPtr auth_context) + : args_{std::move(security_connector), std::move(auth_context)} {} + +ArenaPromise> +LegacyClientAuthFilter::GetCallCredsMetadata(CallArgs call_args) { auto* ctx = GetContext(); grpc_call_credentials* channel_call_creds = args_.security_connector->mutable_request_metadata_creds(); @@ -172,7 +262,7 @@ ArenaPromise> ClientAuthFilter::GetCallCredsMetadata( }); } -ArenaPromise ClientAuthFilter::MakeCallPromise( +ArenaPromise LegacyClientAuthFilter::MakeCallPromise( CallArgs call_args, NextPromiseFactory next_promise_factory) { auto* sec_ctx = MaybeGetContext(); if (sec_ctx == nullptr) { @@ -196,8 +286,8 @@ ArenaPromise ClientAuthFilter::MakeCallPromise( next_promise_factory); } -absl::StatusOr> ClientAuthFilter::Create( - const ChannelArgs& args, ChannelFilter::Args) { +absl::StatusOr> +LegacyClientAuthFilter::Create(const ChannelArgs& args, ChannelFilter::Args) { auto* sc = args.GetObject(); if (sc == nullptr) { return absl::InvalidArgumentError( @@ -213,7 +303,7 @@ absl::StatusOr> ClientAuthFilter::Create( auth_context->Ref()); } -const grpc_channel_filter ClientAuthFilter::kFilter = +const grpc_channel_filter LegacyClientAuthFilter::kFilter = MakePromiseBasedFilter(); } // namespace grpc_core diff --git a/src/core/lib/surface/init.cc b/src/core/lib/surface/init.cc index dbe8f9adbeb96..9f3bd74786b69 100644 --- a/src/core/lib/surface/init.cc +++ b/src/core/lib/surface/init.cc @@ -72,12 +72,21 @@ static bool g_shutting_down ABSL_GUARDED_BY(g_init_mu) = false; namespace grpc_core { void RegisterSecurityFilters(CoreConfiguration::Builder* builder) { - builder->channel_init() - ->RegisterV2Filter(GRPC_CLIENT_SUBCHANNEL) - .IfHasChannelArg(GRPC_ARG_SECURITY_CONNECTOR); - builder->channel_init() - ->RegisterV2Filter(GRPC_CLIENT_DIRECT_CHANNEL) - .IfHasChannelArg(GRPC_ARG_SECURITY_CONNECTOR); + if (IsCallv3ClientAuthFilterEnabled()) { + builder->channel_init() + ->RegisterFilter(GRPC_CLIENT_SUBCHANNEL) + .IfHasChannelArg(GRPC_ARG_SECURITY_CONNECTOR); + builder->channel_init() + ->RegisterFilter(GRPC_CLIENT_DIRECT_CHANNEL) + .IfHasChannelArg(GRPC_ARG_SECURITY_CONNECTOR); + } else { + builder->channel_init() + ->RegisterV2Filter(GRPC_CLIENT_SUBCHANNEL) + .IfHasChannelArg(GRPC_ARG_SECURITY_CONNECTOR); + builder->channel_init() + ->RegisterV2Filter(GRPC_CLIENT_DIRECT_CHANNEL) + .IfHasChannelArg(GRPC_ARG_SECURITY_CONNECTOR); + } builder->channel_init() ->RegisterFilter(GRPC_SERVER_CHANNEL) .IfHasChannelArg(GRPC_SERVER_CREDENTIALS_ARG); From 852ecf7176c904374c2d80d035bad00ff4c28d67 Mon Sep 17 00:00:00 2001 From: gRPC Team Bot Date: Thu, 16 Jan 2025 01:40:35 -0800 Subject: [PATCH 02/15] Make code forward-compatible with returning string_view in protobuf descriptor API. PiperOrigin-RevId: 716135514 --- src/compiler/node_plugin.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/compiler/node_plugin.cc b/src/compiler/node_plugin.cc index 9334024e41399..f36f08c2beb48 100644 --- a/src/compiler/node_plugin.cc +++ b/src/compiler/node_plugin.cc @@ -19,6 +19,7 @@ // Generates Node gRPC service interface out of Protobuf IDL. #include +#include #include "src/compiler/config.h" #include "src/compiler/node_generator.h" @@ -66,7 +67,7 @@ class NodeGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { } // Get output file name - std::string file_name = GetJSServiceFilename(file->name()); + std::string file_name = GetJSServiceFilename(std::string(file->name())); std::unique_ptr output( context->Open(file_name)); From 97b5b3fc520beaf3797f5371bd79f3524fe4c425 Mon Sep 17 00:00:00 2001 From: Vignesh Babu Date: Thu, 16 Jan 2025 09:38:03 -0800 Subject: [PATCH 03/15] [KeepAlive] Add a new experiment to allow extending keep alive timers instead of rapid cancellation followed by a reschedule (#38380) This should help save some GCU. The keepalive timers are currently cancelled and re-schedule upon the each new socket read. Closes #38380 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/38380 from Vignesh2208:keepalive-batch 6aa22b9e9fb6213735d491d7236d8ea89023dd71 PiperOrigin-RevId: 716268629 --- bazel/experiments.bzl | 1 + .../chttp2/transport/chttp2_transport.cc | 52 +++++++++++++++---- .../ext/transport/chttp2/transport/internal.h | 3 ++ src/core/lib/experiments/experiments.cc | 21 ++++++++ src/core/lib/experiments/experiments.h | 8 +++ src/core/lib/experiments/experiments.yaml | 7 +++ src/core/lib/experiments/rollouts.yaml | 2 + 7 files changed, 84 insertions(+), 10 deletions(-) diff --git a/bazel/experiments.bzl b/bazel/experiments.bzl index 79e5dcd0a1f30..5021b557e85ac 100644 --- a/bazel/experiments.bzl +++ b/bazel/experiments.bzl @@ -29,6 +29,7 @@ EXPERIMENT_ENABLES = { "event_engine_dns_non_client_channel": "event_engine_dns_non_client_channel", "event_engine_listener": "event_engine_listener", "free_large_allocator": "free_large_allocator", + "keep_alive_ping_timer_batch": "keep_alive_ping_timer_batch", "local_connector_secure": "local_connector_secure", "max_pings_wo_data_throttle": "max_pings_wo_data_throttle", "monitoring_experiment": "monitoring_experiment", diff --git a/src/core/ext/transport/chttp2/transport/chttp2_transport.cc b/src/core/ext/transport/chttp2/transport/chttp2_transport.cc index ca9483fe6766f..a48dc6ff248e3 100644 --- a/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +++ b/src/core/ext/transport/chttp2/transport/chttp2_transport.cc @@ -224,6 +224,7 @@ static void send_goaway(grpc_chttp2_transport* t, grpc_error_handle error, namespace { +using EventEngine = ::grpc_event_engine::experimental::EventEngine; using TaskHandle = ::grpc_event_engine::experimental::EventEngine::TaskHandle; grpc_core::CallTracerAnnotationInterface* CallTracerIfSampled( @@ -692,6 +693,8 @@ grpc_chttp2_transport::grpc_chttp2_transport( read_channel_args(this, channel_args, is_client); + next_adjusted_keepalive_timestamp = grpc_core::Timestamp::InfPast(); + // Initially allow *UP TO* MAX_CONCURRENT_STREAMS incoming before we start // blanket cancelling them. num_incoming_streams_before_settings_ack = @@ -3032,17 +3035,27 @@ static void init_keepalive_ping_locked( CHECK(t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_WAITING); CHECK(t->keepalive_ping_timer_handle != TaskHandle::kInvalid); t->keepalive_ping_timer_handle = TaskHandle::kInvalid; + grpc_core::Timestamp now = grpc_core::Timestamp::Now(); + grpc_core::Timestamp adjusted_keepalive_timestamp = std::exchange( + t->next_adjusted_keepalive_timestamp, grpc_core::Timestamp::InfPast()); + bool delay_callback = grpc_core::IsKeepAlivePingTimerBatchEnabled() && + adjusted_keepalive_timestamp > now; if (t->destroying || !t->closed_with_error.ok()) { t->keepalive_state = GRPC_CHTTP2_KEEPALIVE_STATE_DYING; } else { - if (t->keepalive_permit_without_calls || !t->stream_map.empty()) { + if (!delay_callback && + (t->keepalive_permit_without_calls || !t->stream_map.empty())) { t->keepalive_state = GRPC_CHTTP2_KEEPALIVE_STATE_PINGING; send_keepalive_ping_locked(t); grpc_chttp2_initiate_write(t.get(), GRPC_CHTTP2_INITIATE_WRITE_KEEPALIVE_PING); } else { + grpc_core::Duration extend = grpc_core::Duration::Zero(); + if (delay_callback) { + extend = adjusted_keepalive_timestamp - now; + } t->keepalive_ping_timer_handle = - t->event_engine->RunAfter(t->keepalive_time, [t] { + t->event_engine->RunAfter(t->keepalive_time + extend, [t] { grpc_core::ApplicationCallbackExecCtx callback_exec_ctx; grpc_core::ExecCtx exec_ctx; init_keepalive_ping(t); @@ -3083,9 +3096,34 @@ static void finish_keepalive_ping_locked( } } +// Returns true if the timer was successfully extended. The provided callback +// is used only if the timer was not previously scheduled with slack. +static bool ExtendScheduledTimer(grpc_chttp2_transport* t, TaskHandle& handle, + grpc_core::Duration duration, + absl::AnyInvocable cb) { + if (handle == TaskHandle::kInvalid) { + return false; + } + if (grpc_core::IsKeepAlivePingTimerBatchEnabled()) { + t->next_adjusted_keepalive_timestamp = + grpc_core::Timestamp::Now() + duration; + return true; + } + if (t->event_engine->Cancel(handle)) { + handle = t->event_engine->RunAfter(duration, std::move(cb)); + return true; + } + return false; +} + static void maybe_reset_keepalive_ping_timer_locked(grpc_chttp2_transport* t) { - if (t->keepalive_ping_timer_handle != TaskHandle::kInvalid && - t->event_engine->Cancel(t->keepalive_ping_timer_handle)) { + if (ExtendScheduledTimer( + t, t->keepalive_ping_timer_handle, t->keepalive_time, + [t = t->Ref()]() mutable { + grpc_core::ApplicationCallbackExecCtx callback_exec_ctx; + grpc_core::ExecCtx exec_ctx; + init_keepalive_ping(std::move(t)); + })) { // Cancel succeeds, resets the keepalive ping timer. Note that we don't // need to Ref or Unref here since we still hold the Ref. if (GRPC_TRACE_FLAG_ENABLED(http) || @@ -3093,12 +3131,6 @@ static void maybe_reset_keepalive_ping_timer_locked(grpc_chttp2_transport* t) { LOG(INFO) << t->peer_string.as_string_view() << ": Keepalive ping cancelled. Resetting timer."; } - t->keepalive_ping_timer_handle = - t->event_engine->RunAfter(t->keepalive_time, [t = t->Ref()]() mutable { - grpc_core::ApplicationCallbackExecCtx callback_exec_ctx; - grpc_core::ExecCtx exec_ctx; - init_keepalive_ping(std::move(t)); - }); } } diff --git a/src/core/ext/transport/chttp2/transport/internal.h b/src/core/ext/transport/chttp2/transport/internal.h index 2486d2cb8d00e..fd1cf9ca1cd04 100644 --- a/src/core/ext/transport/chttp2/transport/internal.h +++ b/src/core/ext/transport/chttp2/transport/internal.h @@ -475,6 +475,9 @@ struct grpc_chttp2_transport final : public grpc_core::FilterStackTransport, ; /// time duration in between pings grpc_core::Duration keepalive_time; + /// Tracks any adjustments to the absolute timestamp of the next keepalive + /// timer callback execution. + grpc_core::Timestamp next_adjusted_keepalive_timestamp; /// grace period to wait for data after sending a ping before keepalives /// timeout grpc_core::Duration keepalive_timeout; diff --git a/src/core/lib/experiments/experiments.cc b/src/core/lib/experiments/experiments.cc index 9e826e261db32..19b416d122daf 100644 --- a/src/core/lib/experiments/experiments.cc +++ b/src/core/lib/experiments/experiments.cc @@ -69,6 +69,10 @@ const char* const additional_constraints_event_engine_listener = "{}"; const char* const description_free_large_allocator = "If set, return all free bytes from a \042big\042 allocator"; const char* const additional_constraints_free_large_allocator = "{}"; +const char* const description_keep_alive_ping_timer_batch = + "Avoid explicitly cancelling the keepalive timer. Instead adjust the " + "callback to re-schedule itself to the next ping interval."; +const char* const additional_constraints_keep_alive_ping_timer_batch = "{}"; const char* const description_local_connector_secure = "Local security connector uses TSI_SECURITY_NONE for LOCAL_TCP " "connections."; @@ -183,6 +187,9 @@ const ExperimentMetadata g_experiment_metadata[] = { additional_constraints_event_engine_listener, nullptr, 0, false, true}, {"free_large_allocator", description_free_large_allocator, additional_constraints_free_large_allocator, nullptr, 0, false, true}, + {"keep_alive_ping_timer_batch", description_keep_alive_ping_timer_batch, + additional_constraints_keep_alive_ping_timer_batch, nullptr, 0, false, + true}, {"local_connector_secure", description_local_connector_secure, additional_constraints_local_connector_secure, nullptr, 0, false, true}, {"max_pings_wo_data_throttle", description_max_pings_wo_data_throttle, @@ -285,6 +292,10 @@ const char* const additional_constraints_event_engine_listener = "{}"; const char* const description_free_large_allocator = "If set, return all free bytes from a \042big\042 allocator"; const char* const additional_constraints_free_large_allocator = "{}"; +const char* const description_keep_alive_ping_timer_batch = + "Avoid explicitly cancelling the keepalive timer. Instead adjust the " + "callback to re-schedule itself to the next ping interval."; +const char* const additional_constraints_keep_alive_ping_timer_batch = "{}"; const char* const description_local_connector_secure = "Local security connector uses TSI_SECURITY_NONE for LOCAL_TCP " "connections."; @@ -399,6 +410,9 @@ const ExperimentMetadata g_experiment_metadata[] = { additional_constraints_event_engine_listener, nullptr, 0, true, true}, {"free_large_allocator", description_free_large_allocator, additional_constraints_free_large_allocator, nullptr, 0, false, true}, + {"keep_alive_ping_timer_batch", description_keep_alive_ping_timer_batch, + additional_constraints_keep_alive_ping_timer_batch, nullptr, 0, false, + true}, {"local_connector_secure", description_local_connector_secure, additional_constraints_local_connector_secure, nullptr, 0, false, true}, {"max_pings_wo_data_throttle", description_max_pings_wo_data_throttle, @@ -501,6 +515,10 @@ const char* const additional_constraints_event_engine_listener = "{}"; const char* const description_free_large_allocator = "If set, return all free bytes from a \042big\042 allocator"; const char* const additional_constraints_free_large_allocator = "{}"; +const char* const description_keep_alive_ping_timer_batch = + "Avoid explicitly cancelling the keepalive timer. Instead adjust the " + "callback to re-schedule itself to the next ping interval."; +const char* const additional_constraints_keep_alive_ping_timer_batch = "{}"; const char* const description_local_connector_secure = "Local security connector uses TSI_SECURITY_NONE for LOCAL_TCP " "connections."; @@ -615,6 +633,9 @@ const ExperimentMetadata g_experiment_metadata[] = { additional_constraints_event_engine_listener, nullptr, 0, true, true}, {"free_large_allocator", description_free_large_allocator, additional_constraints_free_large_allocator, nullptr, 0, false, true}, + {"keep_alive_ping_timer_batch", description_keep_alive_ping_timer_batch, + additional_constraints_keep_alive_ping_timer_batch, nullptr, 0, false, + true}, {"local_connector_secure", description_local_connector_secure, additional_constraints_local_connector_secure, nullptr, 0, false, true}, {"max_pings_wo_data_throttle", description_max_pings_wo_data_throttle, diff --git a/src/core/lib/experiments/experiments.h b/src/core/lib/experiments/experiments.h index 7201c37c13363..01adcf1990f61 100644 --- a/src/core/lib/experiments/experiments.h +++ b/src/core/lib/experiments/experiments.h @@ -73,6 +73,7 @@ inline bool IsEventEngineDnsEnabled() { return false; } inline bool IsEventEngineDnsNonClientChannelEnabled() { return false; } inline bool IsEventEngineListenerEnabled() { return false; } inline bool IsFreeLargeAllocatorEnabled() { return false; } +inline bool IsKeepAlivePingTimerBatchEnabled() { return false; } inline bool IsLocalConnectorSecureEnabled() { return false; } #define GRPC_EXPERIMENT_IS_INCLUDED_MAX_PINGS_WO_DATA_THROTTLE inline bool IsMaxPingsWoDataThrottleEnabled() { return true; } @@ -118,6 +119,7 @@ inline bool IsEventEngineDnsNonClientChannelEnabled() { return false; } #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_LISTENER inline bool IsEventEngineListenerEnabled() { return true; } inline bool IsFreeLargeAllocatorEnabled() { return false; } +inline bool IsKeepAlivePingTimerBatchEnabled() { return false; } inline bool IsLocalConnectorSecureEnabled() { return false; } #define GRPC_EXPERIMENT_IS_INCLUDED_MAX_PINGS_WO_DATA_THROTTLE inline bool IsMaxPingsWoDataThrottleEnabled() { return true; } @@ -163,6 +165,7 @@ inline bool IsEventEngineDnsNonClientChannelEnabled() { return false; } #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_LISTENER inline bool IsEventEngineListenerEnabled() { return true; } inline bool IsFreeLargeAllocatorEnabled() { return false; } +inline bool IsKeepAlivePingTimerBatchEnabled() { return false; } inline bool IsLocalConnectorSecureEnabled() { return false; } #define GRPC_EXPERIMENT_IS_INCLUDED_MAX_PINGS_WO_DATA_THROTTLE inline bool IsMaxPingsWoDataThrottleEnabled() { return true; } @@ -203,6 +206,7 @@ enum ExperimentIds { kExperimentIdEventEngineDnsNonClientChannel, kExperimentIdEventEngineListener, kExperimentIdFreeLargeAllocator, + kExperimentIdKeepAlivePingTimerBatch, kExperimentIdLocalConnectorSecure, kExperimentIdMaxPingsWoDataThrottle, kExperimentIdMonitoringExperiment, @@ -273,6 +277,10 @@ inline bool IsEventEngineListenerEnabled() { inline bool IsFreeLargeAllocatorEnabled() { return IsExperimentEnabled(); } +#define GRPC_EXPERIMENT_IS_INCLUDED_KEEP_ALIVE_PING_TIMER_BATCH +inline bool IsKeepAlivePingTimerBatchEnabled() { + return IsExperimentEnabled(); +} #define GRPC_EXPERIMENT_IS_INCLUDED_LOCAL_CONNECTOR_SECURE inline bool IsLocalConnectorSecureEnabled() { return IsExperimentEnabled(); diff --git a/src/core/lib/experiments/experiments.yaml b/src/core/lib/experiments/experiments.yaml index e31f8becc1e6c..b53d41a248eca 100644 --- a/src/core/lib/experiments/experiments.yaml +++ b/src/core/lib/experiments/experiments.yaml @@ -108,6 +108,13 @@ expiry: 2025/03/31 owner: alishananda@google.com test_tags: [resource_quota_test] +- name: keep_alive_ping_timer_batch + description: + Avoid explicitly cancelling the keepalive timer. Instead adjust the callback to re-schedule + itself to the next ping interval. + expiry: 2025/03/01 + owner: vigneshbabu@google.com + test_tags: [] - name: local_connector_secure description: Local security connector uses TSI_SECURITY_NONE for LOCAL_TCP connections. expiry: 2025/01/30 diff --git a/src/core/lib/experiments/rollouts.yaml b/src/core/lib/experiments/rollouts.yaml index a55a3c1330787..480511bfee398 100644 --- a/src/core/lib/experiments/rollouts.yaml +++ b/src/core/lib/experiments/rollouts.yaml @@ -81,6 +81,8 @@ windows: true - name: free_large_allocator default: false +- name: keep_alive_ping_timer_batch + default: false - name: local_connector_secure default: false - name: max_pings_wo_data_throttle From 36858211c2ffa392d769c3074b4d8b6cdaf5ca0e Mon Sep 17 00:00:00 2001 From: Pawan Bhardwaj Date: Thu, 16 Jan 2025 10:02:07 -0800 Subject: [PATCH 04/15] [CI] Add cpp examples sanity test (#38440) Added basic sanity for cpp examples test. Closes : #21814 Closes #38440 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/38440 from pawbhard:example-add 446f94158112c44847d0e7d097f17712c618fbff PiperOrigin-RevId: 716276911 --- ...ty_tests.sh => grpc_examples_tests_cpp.sh} | 9 +- .../grpc_examples_tests_cpp_in_docker.sh | 176 ++++++++++++++++++ 2 files changed, 182 insertions(+), 3 deletions(-) rename tools/internal_ci/linux/{grpc_examples_sanity_tests.sh => grpc_examples_tests_cpp.sh} (69%) create mode 100755 tools/internal_ci/linux/grpc_examples_tests_cpp_in_docker.sh diff --git a/tools/internal_ci/linux/grpc_examples_sanity_tests.sh b/tools/internal_ci/linux/grpc_examples_tests_cpp.sh similarity index 69% rename from tools/internal_ci/linux/grpc_examples_sanity_tests.sh rename to tools/internal_ci/linux/grpc_examples_tests_cpp.sh index a0cc0c3a53a8e..fd25a8a4464a7 100755 --- a/tools/internal_ci/linux/grpc_examples_sanity_tests.sh +++ b/tools/internal_ci/linux/grpc_examples_tests_cpp.sh @@ -15,9 +15,12 @@ set -ex -# Enter the gRPC repo root + +# change to grpc repo root cd $(dirname $0)/../../.. -#source tools/internal_ci/helper_scripts/prepare_build_linux_rc +source tools/internal_ci/helper_scripts/prepare_build_linux_rc -echo "Will be performing sanity checks for examples" +export DOCKERFILE_DIR=tools/dockerfile/test/bazel +export DOCKER_RUN_SCRIPT=tools/internal_ci/linux/grpc_examples_tests_cpp_in_docker.sh +exec tools/run_tests/dockerize/build_and_run_docker.sh diff --git a/tools/internal_ci/linux/grpc_examples_tests_cpp_in_docker.sh b/tools/internal_ci/linux/grpc_examples_tests_cpp_in_docker.sh new file mode 100755 index 0000000000000..b965e296c33c9 --- /dev/null +++ b/tools/internal_ci/linux/grpc_examples_tests_cpp_in_docker.sh @@ -0,0 +1,176 @@ +#!/usr/bin/env bash +# Copyright 2025 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -x +set +e + +# Enter the gRPC repo root +cd $(dirname $0)/../../.. + +echo "Current dir ${PWD}" + +cd "examples/cpp" || exit 1 + +SERVER_PID= + +clean () { + echo "CLeaning server ${SERVER_PID}" + if [[ -n $SERVER_PID ]]; then + kill -9 $SERVER_PID || true + fi + SERVER_PID= +} + +fail () { + echo "$(tput setaf 1) $1 $(tput sgr 0)" + if [[ -n $SERVER_PID ]] ; then + kill -9 $SERVER_PID || true + fi + SERVER_PID= + exit 1 +} + +pass () { + echo "$(tput setaf 2) $1 $(tput sgr 0)" +} + +# "server", "client" suffix will be added in loop +EXAMPLES=( + "helloworld:greeter_callback_" + "helloworld:greeter_async_" + "helloworld:greeter_" + "auth:ssl_" + "cancellation:" + "compression:compression_" + "deadline:" + "error_details:greeter_" + "error_handling:greeter_" + "flow_control:server_flow_control_" + "flow_control:client_flow_control_" + "generic_api:greeter_" + "health:health_" + "interceptors:keyvaluestore_" + "keepalive:greeter_callback_" + "load_balancing:lb_" + "metadata:metadata_" + "multiplex:multiplex_" + "retry:" + "route_guide:route_guide_callback_" +) + +declare -A SERVER_ARGS=( + ["default"]="" +) + +declare -A CLIENT_ARGS=( + ["default"]="" +) + +declare -A EXPECTED_SERVER_OUTPUT=( + ["default"]="Server listening" + ["unix_abstract_sockets:"]="" +) + +declare -A EXPECTED_CLIENT_OUTPUT=( + ["default"]="Greeter received: Hello world" + ["cancellation:"]="Count 9 : Count 9 Ack" + ["compression:compression_"]="Greeter received: Hello world world world" + ["deadline:"]="\[Exceeds propagated deadline\] wanted = 4, got = 4" + ["error_details:greeter_"]="Quota: subject=name: World description=Limit one greeting per person" + ["error_handling:greeter_"]="Ok. ReplyMessage=Hello World" + ["flow_control:client_flow_control_"]="Done" + ["flow_control:server_flow_control_"]="Done reading" + ["generic_api:greeter_"]="Ok. ReplyMessage=Hello gRPC" + ["health:health_"]="After second call: status: SERVING" + ["interceptors:keyvaluestore_"]="key4 found in map" + ["metadata:metadata_"]="Client received trailing metadata from server: trailing metadata value" + ["multiplex:multiplex_"]="Found feature: Feature: latitude: 50, longitude: 100" + ["route_guide:route_guide_callback_"]="Got message First message at 0, 0" + ["unix_abstract_sockets:"]="Received: arst" +) + +for example in "${EXAMPLES[@]}"; do + echo "$(tput setaf 4) testing: ${example} $(tput sgr 0)" + + # Build server + if ! bazel build ${example}server; then + fail "failed to build server" + else + pass "successfully built server" + fi + + # Start server + SERVER_LOG="$(mktemp)" + server_args=${SERVER_ARGS[$example]:-${SERVER_ARGS["default"]}} + bazel run ${example}server -- $server_args &> $SERVER_LOG & + SERVER_PID=$! + echo "Server Pid : ${SERVER_PID}" + + sleep 5 + + # Build client + if ! bazel build ${example}client; then + fail "failed to build client" + else + pass "successfully built client" + fi + + # Start client + CLIENT_LOG="$(mktemp)" + client_args=${CLIENT_ARGS[$example]:-${CLIENT_ARGS["default"]}} + if ! timeout 120 bazel run ${example}client -- $client_args &> $CLIENT_LOG; then + fail "client failed to communicate with server + got server log: + $(cat $SERVER_LOG) + ------------------ + got client log: + $(cat $CLIENT_LOG) + " + else + pass "client successfully communicated with server" + fi + + # Check server log for expected output if expecting an + # output + if [ -n "${EXPECTED_SERVER_OUTPUT[$example]}" ]; then + if ! grep -q "${EXPECTED_SERVER_OUTPUT[$example]}" $SERVER_LOG; then + fail "server log missing output: ${EXPECTED_SERVER_OUTPUT[$example]} + got server log: + $(cat $SERVER_LOG) + --------------------- + got client log: + $(cat $CLIENT_LOG) + " + else + pass "server log contains expected output: ${EXPECTED_SERVER_OUTPUT[$example]}" + fi + fi + + # Check client log for expected output if expecting an + # output + if [ -n "${EXPECTED_CLIENT_OUTPUT[$example]}" ]; then + if ! grep -q "${EXPECTED_CLIENT_OUTPUT[$example]}" $CLIENT_LOG; then + fail "client log missing output: ${EXPECTED_CLIENT_OUTPUT[$example]} + got server log: + $(cat $SERVER_LOG) + got client log: + $(cat $CLIENT_LOG) + " + else + pass "client log contains expected output: ${EXPECTED_CLIENT_OUTPUT[$example]}" + fi + fi + clean +done From ff850bae8eaca689f2395d3dcc62d2e2cbd87354 Mon Sep 17 00:00:00 2001 From: Hannah Shi Date: Thu, 16 Jan 2025 10:46:02 -0800 Subject: [PATCH 05/15] [ObjC] fix protoc link in !ProtoCompiler.podspec (#38376) Protobuf release url doesn't contain the `3.` prefix in the versions anymore. Also change to use universal binary. dependency for https://github.com/grpc/grpc/issues/36801 Closes #38376 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/38376 from HannahShiSFB:build-universal-protoc-plugin 9b3bb79c010af572cd2b46850be2547677bb0b4d PiperOrigin-RevId: 716294221 --- src/objective-c/!ProtoCompiler.podspec | 4 ++-- templates/src/objective-c/!ProtoCompiler.podspec.template | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/objective-c/!ProtoCompiler.podspec b/src/objective-c/!ProtoCompiler.podspec index 7cbef699326bf..f10f2e8e0c832 100644 --- a/src/objective-c/!ProtoCompiler.podspec +++ b/src/objective-c/!ProtoCompiler.podspec @@ -97,9 +97,9 @@ Pod::Spec.new do |s| s.authors = { 'The Protocol Buffers contributors' => 'protobuf@googlegroups.com' } repo = 'google/protobuf' - file = "protoc-#{v}-osx-x86_64.zip" + file = "protoc-#{v.delete_prefix("3.")}-osx-universal_binary.zip" s.source = { - :http => "https://github.com/#{repo}/releases/download/v#{v}/#{file}", + :http => "https://github.com/#{repo}/releases/download/v#{v.delete_prefix("3.")}/#{file}", # TODO(jcanizales): Add sha1 or sha256 # :sha1 => '??', } diff --git a/templates/src/objective-c/!ProtoCompiler.podspec.template b/templates/src/objective-c/!ProtoCompiler.podspec.template index 3a7d84baf98f4..47b6bea47e2e7 100644 --- a/templates/src/objective-c/!ProtoCompiler.podspec.template +++ b/templates/src/objective-c/!ProtoCompiler.podspec.template @@ -99,9 +99,9 @@ s.authors = { 'The Protocol Buffers contributors' => 'protobuf@googlegroups.com' } repo = 'google/protobuf' - file = "protoc-#{v}-osx-x86_64.zip" + file = "protoc-#{v.delete_prefix("3.")}-osx-universal_binary.zip" s.source = { - :http => "https://github.com/#{repo}/releases/download/v#{v}/#{file}", + :http => "https://github.com/#{repo}/releases/download/v#{v.delete_prefix("3.")}/#{file}", # TODO(jcanizales): Add sha1 or sha256 # :sha1 => '??', } From 65b39e568888c625b399062f01730668be5d1831 Mon Sep 17 00:00:00 2001 From: "Mark D. Roth" Date: Thu, 16 Jan 2025 12:17:07 -0800 Subject: [PATCH 06/15] [release] add 1.69.0 to interop matrix (#38466) Not adding PHP, which will probably require #38463 to be merged and back-ported. Closes #38466 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/38466 from markdroth:interop_update c0faf8301bde3e8bfbcd5f256b5372d103ea991e PiperOrigin-RevId: 716331673 --- tools/interop_matrix/client_matrix.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/interop_matrix/client_matrix.py b/tools/interop_matrix/client_matrix.py index b12d7be0d6cf0..94f8e8b62cc50 100644 --- a/tools/interop_matrix/client_matrix.py +++ b/tools/interop_matrix/client_matrix.py @@ -137,6 +137,7 @@ def __init__(self, patch=[], runtimes=[], testcases_file=None): ("v1.65.0", ReleaseInfo()), ("v1.66.0", ReleaseInfo()), ("v1.67.0", ReleaseInfo()), + ("v1.69.0", ReleaseInfo()), ] ), "go": OrderedDict( @@ -828,6 +829,12 @@ def __init__(self, patch=[], runtimes=[], testcases_file=None): runtimes=["python"], testcases_file="python__master" ), ), + ( + "v1.69.0", + ReleaseInfo( + runtimes=["python"], testcases_file="python__master" + ), + ), ] ), "node": OrderedDict( @@ -929,6 +936,7 @@ def __init__(self, patch=[], runtimes=[], testcases_file=None): ("v1.65.0", ReleaseInfo()), ("v1.66.0", ReleaseInfo()), ("v1.67.0", ReleaseInfo()), + ("v1.69.0", ReleaseInfo()), ] ), "php": OrderedDict( From 8da755805b5b74afe9952e4b564bfb16dec15dc7 Mon Sep 17 00:00:00 2001 From: Esun Kim Date: Thu, 16 Jan 2025 12:44:22 -0800 Subject: [PATCH 07/15] [CI] Used rlocation to find binaries such as protoc (#38479) Our test script broke with Bazel 8 because it changed where it puts executables. The Bazel team suggested using `rlocation` to fix this (like https://github.com/bazelbuild/bazel/commit/b09335b86e03732d6da2fe40a7ac07af48480771). This should fix our C# and Objective-C codegen tests. Partial commit of #38254 Closes #38479 PiperOrigin-RevId: 716341395 --- src/objective-c/tests/BUILD | 2 ++ .../tests/PluginTest/plugin_option_test.sh | 21 ++++++++--- .../tests/PluginTest/plugin_test.sh | 19 ++++++++-- test/csharp/codegen/BUILD | 3 ++ .../csharp_codegen_base_namespace_test.sh | 23 +++++++++--- .../codegen/csharp_codegen_deprecated_test.sh | 35 +++++++++++++------ .../codegen/csharp_codegen_simple_test.sh | 19 ++++++++-- 7 files changed, 96 insertions(+), 26 deletions(-) diff --git a/src/objective-c/tests/BUILD b/src/objective-c/tests/BUILD index 60ce0b24dfbb0..681b5cda7d1d9 100644 --- a/src/objective-c/tests/BUILD +++ b/src/objective-c/tests/BUILD @@ -399,6 +399,7 @@ grpc_sh_test( srcs = ["PluginTest/plugin_test.sh"], data = [ "//src/compiler:grpc_objective_c_plugin", + "@bazel_tools//tools/bash/runfiles", "@com_google_protobuf//:protoc", ] + glob(["PluginTest/*.proto"]), uses_polling = False, @@ -409,6 +410,7 @@ grpc_sh_test( srcs = ["PluginTest/plugin_option_test.sh"], data = [ "//src/compiler:grpc_objective_c_plugin", + "@bazel_tools//tools/bash/runfiles", "@com_google_protobuf//:protoc", "@com_google_protobuf//:well_known_type_protos", ] + glob(["RemoteTestClient/*.proto"]), diff --git a/src/objective-c/tests/PluginTest/plugin_option_test.sh b/src/objective-c/tests/PluginTest/plugin_option_test.sh index 721226e0eecdf..574aa0c469713 100755 --- a/src/objective-c/tests/PluginTest/plugin_option_test.sh +++ b/src/objective-c/tests/PluginTest/plugin_option_test.sh @@ -16,12 +16,25 @@ # Run this script via bazel test # It expects that protoc and grpc_objective_c_plugin have already been built. +# shellcheck disable=SC1090 + set -ev +# --- begin runfiles.bash initialization v3 --- +# Copy-pasted from the Bazel Bash runfiles library v3. +set -uo pipefail; set +e; f=bazel_tools/tools/bash/runfiles/runfiles.bash +source "${RUNFILES_DIR:-/dev/null}/$f" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "${RUNFILES_MANIFEST_FILE:-/dev/null}" | cut -f2- -d' ')" 2>/dev/null || \ + source "$0.runfiles/$f" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "$0.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "$0.exe.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \ + { echo>&2 "ERROR: cannot find $f"; exit 1; }; f=; set -e +# --- end runfiles.bash initialization v3 --- + # protoc and grpc_objective_c_plugin binaries are supplied as "data" in bazel -PROTOC=./external/com_google_protobuf/protoc -PLUGIN=./src/compiler/grpc_objective_c_plugin -WELL_KNOWN_PROTOS_PATH=external/com_google_protobuf/src +PROTOC=$(rlocation com_google_protobuf/protoc) +PLUGIN=$(rlocation com_github_grpc_grpc/src/compiler/grpc_objective_c_plugin) +WELL_KNOWN_PROTOS_PATH=$(rlocation com_google_protobuf/src) RUNTIME_IMPORT_PREFIX=prefix/dir/ PROTO_OUT=./proto_out @@ -29,7 +42,7 @@ rm -rf ${PROTO_OUT} mkdir -p ${PROTO_OUT} $PROTOC \ - --plugin=protoc-gen-grpc=$PLUGIN \ + --plugin=protoc-gen-grpc="$PLUGIN" \ --objc_out=${PROTO_OUT} \ --grpc_out=grpc_local_import_prefix=$RUNTIME_IMPORT_PREFIX,runtime_import_prefix=$RUNTIME_IMPORT_PREFIX:${PROTO_OUT} \ -I . \ diff --git a/src/objective-c/tests/PluginTest/plugin_test.sh b/src/objective-c/tests/PluginTest/plugin_test.sh index a49ddb988cac6..94d6f5d1f0328 100755 --- a/src/objective-c/tests/PluginTest/plugin_test.sh +++ b/src/objective-c/tests/PluginTest/plugin_test.sh @@ -16,18 +16,31 @@ # Run this script via bazel test # It expects that protoc and grpc_objective_c_plugin have already been built. +# shellcheck disable=SC1090 + set -ev +# --- begin runfiles.bash initialization v3 --- +# Copy-pasted from the Bazel Bash runfiles library v3. +set -uo pipefail; set +e; f=bazel_tools/tools/bash/runfiles/runfiles.bash +source "${RUNFILES_DIR:-/dev/null}/$f" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "${RUNFILES_MANIFEST_FILE:-/dev/null}" | cut -f2- -d' ')" 2>/dev/null || \ + source "$0.runfiles/$f" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "$0.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "$0.exe.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \ + { echo>&2 "ERROR: cannot find $f"; exit 1; }; f=; set -e +# --- end runfiles.bash initialization v3 --- + # protoc and grpc_objective_c_plugin binaries are supplied as "data" in bazel -PROTOC=./external/com_google_protobuf/protoc -PLUGIN=./src/compiler/grpc_objective_c_plugin +PROTOC=$(rlocation com_google_protobuf/protoc) +PLUGIN=$(rlocation com_github_grpc_grpc/src/compiler/grpc_objective_c_plugin) PROTO_OUT=./proto_out rm -rf ${PROTO_OUT} mkdir -p ${PROTO_OUT} $PROTOC \ - --plugin=protoc-gen-grpc=$PLUGIN \ + --plugin=protoc-gen-grpc="$PLUGIN" \ --objc_out=${PROTO_OUT} \ --grpc_out=${PROTO_OUT} \ -I src/objective-c/tests/PluginTest \ diff --git a/test/csharp/codegen/BUILD b/test/csharp/codegen/BUILD index 44ff93f77455b..0e301731fac6d 100644 --- a/test/csharp/codegen/BUILD +++ b/test/csharp/codegen/BUILD @@ -24,6 +24,7 @@ grpc_sh_test( "simple/expected/HelloworldGrpc.cs", "simple/proto/helloworld.proto", "//src/compiler:grpc_csharp_plugin", + "@bazel_tools//tools/bash/runfiles", "@com_google_protobuf//:protoc", ], tags = [ @@ -45,6 +46,7 @@ grpc_sh_test( "deprecated/proto/depnothing.proto", "deprecated/proto/depservice.proto", "//src/compiler:grpc_csharp_plugin", + "@bazel_tools//tools/bash/runfiles", "@com_google_protobuf//:protoc", ], tags = [ @@ -64,6 +66,7 @@ grpc_sh_test( data = [ "basenamespace/proto/namespacetest.proto", "//src/compiler:grpc_csharp_plugin", + "@bazel_tools//tools/bash/runfiles", "@com_google_protobuf//:protoc", ], tags = [ diff --git a/test/csharp/codegen/csharp_codegen_base_namespace_test.sh b/test/csharp/codegen/csharp_codegen_base_namespace_test.sh index e86a7beea9c1e..d527c7bfab9a5 100755 --- a/test/csharp/codegen/csharp_codegen_base_namespace_test.sh +++ b/test/csharp/codegen/csharp_codegen_base_namespace_test.sh @@ -18,13 +18,26 @@ # Simple test - compare generated output to expected files +# shellcheck disable=SC1090 + set -x TESTNAME=basenamespace +# --- begin runfiles.bash initialization v3 --- +# Copy-pasted from the Bazel Bash runfiles library v3. +set -uo pipefail; set +e; f=bazel_tools/tools/bash/runfiles/runfiles.bash +source "${RUNFILES_DIR:-/dev/null}/$f" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "${RUNFILES_MANIFEST_FILE:-/dev/null}" | cut -f2- -d' ')" 2>/dev/null || \ + source "$0.runfiles/$f" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "$0.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "$0.exe.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \ + { echo>&2 "ERROR: cannot find $f"; exit 1; }; f=; set -e +# --- end runfiles.bash initialization v3 --- + # protoc and grpc_csharp_plugin binaries are supplied as "data" in bazel -PROTOC=./external/com_google_protobuf/protoc -PLUGIN=./src/compiler/grpc_csharp_plugin +PROTOC=$(rlocation com_google_protobuf/protoc) +PLUGIN=$(rlocation com_github_grpc_grpc/src/compiler/grpc_csharp_plugin) # where to find the test data DATA_DIR=./test/csharp/codegen/${TESTNAME} @@ -36,7 +49,7 @@ mkdir -p ${PROTO_OUT} # run protoc and the plugin specifying the base_namespace options $PROTOC \ - --plugin=protoc-gen-grpc-csharp=$PLUGIN \ + --plugin=protoc-gen-grpc-csharp="$PLUGIN" \ --csharp_out=${PROTO_OUT} \ --grpc-csharp_out=${PROTO_OUT} \ --csharp_opt=base_namespace=Example \ @@ -73,7 +86,7 @@ rm -rf ${PROTO_OUT} mkdir -p ${PROTO_OUT} $PROTOC \ - --plugin=protoc-gen-grpc-csharp=$PLUGIN \ + --plugin=protoc-gen-grpc-csharp="$PLUGIN" \ --csharp_out=${PROTO_OUT} \ --grpc-csharp_out=${PROTO_OUT} \ --csharp_opt=base_namespace= \ @@ -109,7 +122,7 @@ rm -rf ${PROTO_OUT} mkdir -p ${PROTO_OUT} $PROTOC \ - --plugin=protoc-gen-grpc-csharp=$PLUGIN \ + --plugin=protoc-gen-grpc-csharp="$PLUGIN" \ --csharp_out=${PROTO_OUT} \ --grpc-csharp_out=${PROTO_OUT} \ -I ${DATA_DIR}/proto \ diff --git a/test/csharp/codegen/csharp_codegen_deprecated_test.sh b/test/csharp/codegen/csharp_codegen_deprecated_test.sh index a2b23b028c572..21c5c7274d507 100755 --- a/test/csharp/codegen/csharp_codegen_deprecated_test.sh +++ b/test/csharp/codegen/csharp_codegen_deprecated_test.sh @@ -18,13 +18,26 @@ # Simple test - compare generated output to expected files +# shellcheck disable=SC1090 + set -x TESTNAME=deprecated +# --- begin runfiles.bash initialization v3 --- +# Copy-pasted from the Bazel Bash runfiles library v3. +set -uo pipefail; set +e; f=bazel_tools/tools/bash/runfiles/runfiles.bash +source "${RUNFILES_DIR:-/dev/null}/$f" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "${RUNFILES_MANIFEST_FILE:-/dev/null}" | cut -f2- -d' ')" 2>/dev/null || \ + source "$0.runfiles/$f" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "$0.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "$0.exe.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \ + { echo>&2 "ERROR: cannot find $f"; exit 1; }; f=; set -e +# --- end runfiles.bash initialization v3 --- + # protoc and grpc_csharp_plugin binaries are supplied as "data" in bazel -PROTOC=./external/com_google_protobuf/protoc -PLUGIN=./src/compiler/grpc_csharp_plugin +PROTOC=$(rlocation com_google_protobuf/protoc) +PLUGIN=$(rlocation com_github_grpc_grpc/src/compiler/grpc_csharp_plugin) # where to find the test data DATA_DIR=./test/csharp/codegen/${TESTNAME} @@ -36,7 +49,7 @@ mkdir -p ${PROTO_OUT} # run protoc and the plugin $PROTOC \ - --plugin=protoc-gen-grpc=$PLUGIN \ + --plugin=protoc-gen-grpc="$PLUGIN" \ --csharp_out=${PROTO_OUT} \ --grpc_out=${PROTO_OUT} \ -I ${DATA_DIR}/proto \ @@ -53,7 +66,7 @@ ls -l ./proto_out # codegen changes are made. # For depnothing.proto there should zero "ObsoleteAttribute" found -nmatches=$(grep -c ObsoleteAttribute ${PROTO_OUT}/DepnothingGrpc.cs) +nmatches=$(grep -c ObsoleteAttribute ${PROTO_OUT}/DepnothingGrpc.cs || true) if [ "$nmatches" -ne 0 ] then echo >&2 "Unexpected ObsoleteAttribute in DepnothingGrpc.cs" @@ -62,7 +75,7 @@ fi # For depservice.proto need to check ObsoleteAttribute added to three classes. # First check ObsoleteAttribute exists in output -nmatches=$(grep -c ObsoleteAttribute ${PROTO_OUT}/DepserviceGrpc.cs) +nmatches=$(grep -c ObsoleteAttribute ${PROTO_OUT}/DepserviceGrpc.cs || true) if [ "$nmatches" -eq 0 ] then echo >&2 "Missing ObsoleteAttribute in DepserviceGrpc.cs" @@ -70,24 +83,24 @@ then fi # capture context after ObsoleteAttribute for further checking -CTX=$(grep -A 2 ObsoleteAttribute ${PROTO_OUT}/DepserviceGrpc.cs) +CTX=$(grep -A 2 ObsoleteAttribute ${PROTO_OUT}/DepserviceGrpc.cs || true) # Check ObsoleteAttribute before class GreeterServiceLevelDep -nmatches=$(echo "$CTX" | grep -c "class GreeterServiceLevelDep$" ) +nmatches=$(echo "$CTX" | grep -c "class GreeterServiceLevelDep$" || true) if [ "$nmatches" -ne 1 ] then echo >&2 "Missing ObsoleteAttribute on class GreeterServiceLevelDep" exit 1 fi # Check ObsoleteAttribute before class GreeterServiceLevelDepBase -nmatches=$(echo "$CTX" | grep -c "class GreeterServiceLevelDepBase$" ) +nmatches=$(echo "$CTX" | grep -c "class GreeterServiceLevelDepBase$" || true) if [ "$nmatches" -ne 1 ] then echo >&2 "Missing ObsoleteAttribute on class GreeterServiceLevelDepBase" exit 1 fi # Check ObsoleteAttribute before class GreeterServiceLevelDepClient -nmatches=$(echo "$CTX" | grep -c "class GreeterServiceLevelDepClient" ) +nmatches=$(echo "$CTX" | grep -c "class GreeterServiceLevelDepClient" || true) if [ "$nmatches" -ne 1 ] then echo >&2 "Missing ObsoleteAttribute on class GreeterServiceLevelDepClient" @@ -96,14 +109,14 @@ fi # For depmethod.proto need to check ObsoleteAttribute added in five places for SayHello method. # Check ObsoleteAttribute exists in output -nmatches=$(grep -c ObsoleteAttribute ${PROTO_OUT}/DepmethodGrpc.cs) +nmatches=$(grep -c ObsoleteAttribute ${PROTO_OUT}/DepmethodGrpc.cs || true) if [ "$nmatches" -eq 0 ] then echo >&2 "Missing ObsoleteAttribute in DepmethodGrpc.cs" exit 1 fi # Check ObsoleteAttribute before SayHello methods -nmatches=$(grep -A 2 ObsoleteAttribute ${PROTO_OUT}/DepmethodGrpc.cs | grep -c SayHello) +nmatches=$(grep -A 2 ObsoleteAttribute ${PROTO_OUT}/DepmethodGrpc.cs | grep -c SayHello || true) if [ "$nmatches" -ne 5 ] then echo >&2 "Missing ObsoleteAttribute on SayHello method" diff --git a/test/csharp/codegen/csharp_codegen_simple_test.sh b/test/csharp/codegen/csharp_codegen_simple_test.sh index 67a69df830aae..a784ef3fb007e 100755 --- a/test/csharp/codegen/csharp_codegen_simple_test.sh +++ b/test/csharp/codegen/csharp_codegen_simple_test.sh @@ -18,13 +18,26 @@ # Simple test - compare generated output to expected files +# shellcheck disable=SC1090 + set -x TESTNAME=simple +# --- begin runfiles.bash initialization v3 --- +# Copy-pasted from the Bazel Bash runfiles library v3. +set -uo pipefail; set +e; f=bazel_tools/tools/bash/runfiles/runfiles.bash +source "${RUNFILES_DIR:-/dev/null}/$f" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "${RUNFILES_MANIFEST_FILE:-/dev/null}" | cut -f2- -d' ')" 2>/dev/null || \ + source "$0.runfiles/$f" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "$0.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "$0.exe.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \ + { echo>&2 "ERROR: cannot find $f"; exit 1; }; f=; set -e +# --- end runfiles.bash initialization v3 --- + # protoc and grpc_csharp_plugin binaries are supplied as "data" in bazel -PROTOC=./external/com_google_protobuf/protoc -PLUGIN=./src/compiler/grpc_csharp_plugin +PROTOC=$(rlocation com_google_protobuf/protoc) +PLUGIN=$(rlocation com_github_grpc_grpc/src/compiler/grpc_csharp_plugin) # where to find the test data DATA_DIR=./test/csharp/codegen/${TESTNAME} @@ -36,7 +49,7 @@ mkdir -p ${PROTO_OUT} # run protoc and the plugin $PROTOC \ - --plugin=protoc-gen-grpc=$PLUGIN \ + --plugin=protoc-gen-grpc="$PLUGIN" \ --csharp_out=${PROTO_OUT} \ --grpc_out=${PROTO_OUT} \ -I ${DATA_DIR}/proto \ From 7a46e0b906fc44c55328d1c7a65bfa3a426b1721 Mon Sep 17 00:00:00 2001 From: Esun Kim Date: Thu, 16 Jan 2025 12:44:54 -0800 Subject: [PATCH 08/15] [CI] Updated bazel-db to the latest for clang-tidy (#38476) Updated bazel-db to the latest for upcoming Bazel 8 upgrade. Partial commit of https://github.com/grpc/grpc/pull/38254 Closes #38476 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/38476 from veblush:b8-clang-tidy 2cb4c809b9d4c488fee4e2d6df3c112e8b5924e4 PiperOrigin-RevId: 716341571 --- bazel/grpc_deps.bzl | 8 ++++---- tools/distrib/gen_compilation_database.py | 4 +--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/bazel/grpc_deps.bzl b/bazel/grpc_deps.bzl index edcdfcc8e2b9b..dcb1a7161df7d 100644 --- a/bazel/grpc_deps.bzl +++ b/bazel/grpc_deps.bzl @@ -180,11 +180,11 @@ def grpc_deps(): if "bazel_compdb" not in native.existing_rules(): http_archive( name = "bazel_compdb", - sha256 = "bcecfd622c4ef272fd4ba42726a52e140b961c4eac23025f18b346c968a8cfb4", - strip_prefix = "bazel-compilation-database-0.4.5", + sha256 = "79502264d1a3a4b6309d4dae8c822e7349bcfe33e84f3c6d1affb2a40d11a31d", + strip_prefix = "bazel-compilation-database-d198303a4319092ab31895c4b98d64174ebe8872", urls = [ - "https://storage.googleapis.com/grpc-bazel-mirror/github.com/grailbio/bazel-compilation-database/archive/0.4.5.tar.gz", - "https://github.com/grailbio/bazel-compilation-database/archive/0.4.5.tar.gz", + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/grailbio/bazel-compilation-database/archive/d198303a4319092ab31895c4b98d64174ebe8872.tar.gz", + "https://github.com/grailbio/bazel-compilation-database/archive/d198303a4319092ab31895c4b98d64174ebe8872.tar.gz", ], ) diff --git a/tools/distrib/gen_compilation_database.py b/tools/distrib/gen_compilation_database.py index b54de134a6770..3e2f12631ce52 100755 --- a/tools/distrib/gen_compilation_database.py +++ b/tools/distrib/gen_compilation_database.py @@ -61,9 +61,7 @@ def generateCompilationDatabase(args): for compdb_file in Path(execroot).glob("**/*.compile_commands.json"): compdb.extend( json.loads( - "[" - + compdb_file.read_text().replace("__EXEC_ROOT__", execroot) - + "]" + compdb_file.read_text().replace("__EXEC_ROOT__", execroot) ) ) From df542f95d5dcfc8eb098a065608d92199d1cc81d Mon Sep 17 00:00:00 2001 From: Esun Kim Date: Thu, 16 Jan 2025 13:21:57 -0800 Subject: [PATCH 09/15] [CI] Excluded non C++ example tests from strict Bazel test (#38478) Example tests in languages other than C++ (e.g., Python) can be skipped during C++ warning checks. Partial commit of #38254 --- tools/bazelify_tests/test/strict_tests.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/bazelify_tests/test/strict_tests.bzl b/tools/bazelify_tests/test/strict_tests.bzl index 086d591313b30..ff1643f76c032 100644 --- a/tools/bazelify_tests/test/strict_tests.bzl +++ b/tools/bazelify_tests/test/strict_tests.bzl @@ -31,7 +31,7 @@ def generate_strict_tests(name = ""): strict_warning_jobs = [] for source in [ - ":all //src/core/... //src/compiler/... //examples/...", + ":all //src/core/... //src/compiler/... //examples/cpp/...", "//test/... -//test/core/... -//test/cpp/...", "//test/core/end2end/...", "//test/core/... -//test/core/end2end/...", From 27c38059adfb7c3d9ee5bbd9654e1f60929e2f06 Mon Sep 17 00:00:00 2001 From: Esun Kim Date: Thu, 16 Jan 2025 13:22:20 -0800 Subject: [PATCH 10/15] [CI] Disabled bazel distribtest_python (#38477) This change doesn't change anything for now but it's necessary to keep distribtest_python disabled on Bazel 8+ while we wait for a fix to #35391. Partial commit of https://github.com/grpc/grpc/pull/38254 --- tools/bazelify_tests/test/bazel_distribtests.bzl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/bazelify_tests/test/bazel_distribtests.bzl b/tools/bazelify_tests/test/bazel_distribtests.bzl index 96b3e8ac7b385..9f35a57b3cb60 100644 --- a/tools/bazelify_tests/test/bazel_distribtests.bzl +++ b/tools/bazelify_tests/test/bazel_distribtests.bzl @@ -35,8 +35,8 @@ def generate_bazel_distribtests(name): for bazel_version in SUPPORTED_BAZEL_VERSIONS: for shard_name in _TEST_SHARDS: - # TODO(https://github.com/grpc/grpc/issues/35391): Fix bazel 7 + distribtest_python test - if bazel_version.startswith("7") and shard_name == "distribtest_python": + # TODO(https://github.com/grpc/grpc/issues/35391): Fix bazel 7 or later + distribtest_python test + if shard_name == "distribtest_python": continue test_name = "bazel_distribtest_%s_%s" % (bazel_version, shard_name) grpc_run_bazel_distribtest_test( From 4b2fbd834c840f460ef20b94c0fd636ea3e7ffa2 Mon Sep 17 00:00:00 2001 From: Esun Kim Date: Thu, 16 Jan 2025 13:21:55 -0800 Subject: [PATCH 11/15] [CI] Updated Buildtools to 8.0.0 (#38446) - Updated Buildtools to 8.0.0 - Replaced `native.cc_proto_library` with the ones from `com_google_protobuf`. (Automatically fixed by the buildifier) Closes #38446 PiperOrigin-RevId: 716355135 --- bazel/cc_grpc_library.bzl | 4 ++-- bazel/grpc_build_system.bzl | 3 ++- examples/protos/BUILD | 1 + test/distrib/bazel/cpp/protos/BUILD | 1 + test/distrib/bazel/python_second_test_repo/proto/BUILD | 2 ++ tools/distrib/buildifier_format_code.sh | 2 +- tools/distrib/buildozer.sh | 2 +- tools/distrib/python/grpcio_tools/grpc_tools/test/BUILD.bazel | 1 + 8 files changed, 11 insertions(+), 5 deletions(-) diff --git a/bazel/cc_grpc_library.bzl b/bazel/cc_grpc_library.bzl index dea1a3b11202d..f70eea209b68d 100644 --- a/bazel/cc_grpc_library.bzl +++ b/bazel/cc_grpc_library.bzl @@ -13,6 +13,7 @@ # limitations under the License. """Generates and compiles C++ grpc stubs from proto_library rules.""" +load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library") load("@rules_proto//proto:defs.bzl", "proto_library") load("//bazel:generate_cc.bzl", "generate_cc") load("//bazel:protobuf.bzl", "well_known_proto_libs") @@ -84,8 +85,7 @@ def cc_grpc_library( deps = proto_deps, **kwargs ) - - native.cc_proto_library( + cc_proto_library( name = cc_proto_target, deps = [":" + proto_target], **kwargs diff --git a/bazel/grpc_build_system.bzl b/bazel/grpc_build_system.bzl index da1adbe34a49d..36fc71a295680 100644 --- a/bazel/grpc_build_system.bzl +++ b/bazel/grpc_build_system.bzl @@ -29,6 +29,7 @@ Contains macros used throughout the repo. load("@build_bazel_rules_apple//apple:ios.bzl", "ios_unit_test") load("@build_bazel_rules_apple//apple/testing/default_runner:ios_test_runner.bzl", "ios_test_runner") +load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library") load("@com_google_protobuf//bazel:upb_proto_library.bzl", "upb_proto_library", "upb_proto_reflection_library") load("@rules_proto//proto:defs.bzl", "proto_library") load("//bazel:cc_grpc_library.bzl", "cc_grpc_library") @@ -256,7 +257,7 @@ def grpc_internal_proto_library( ) def grpc_cc_proto_library(name, deps = [], visibility = None): - native.cc_proto_library(name = name, deps = deps, visibility = visibility) + cc_proto_library(name = name, deps = deps, visibility = visibility) # DO NOT USE -- callers should instead be changed to use separate # grpc_internal_proto_library(), grpc_cc_proto_library(), and diff --git a/examples/protos/BUILD b/examples/protos/BUILD index 929cad93a6edf..d9c8ae120c317 100644 --- a/examples/protos/BUILD +++ b/examples/protos/BUILD @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library") load("@rules_proto//proto:defs.bzl", "proto_library") load("//bazel:cc_grpc_library.bzl", "cc_grpc_library") load("//bazel:grpc_build_system.bzl", "grpc_proto_library") diff --git a/test/distrib/bazel/cpp/protos/BUILD b/test/distrib/bazel/cpp/protos/BUILD index 936758a4ebc66..b2822fddd0e43 100644 --- a/test/distrib/bazel/cpp/protos/BUILD +++ b/test/distrib/bazel/cpp/protos/BUILD @@ -13,6 +13,7 @@ # limitations under the License. load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library") +load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library") load("@rules_proto//proto:defs.bzl", "proto_library") licenses(["notice"]) diff --git a/test/distrib/bazel/python_second_test_repo/proto/BUILD b/test/distrib/bazel/python_second_test_repo/proto/BUILD index 3a0ff8e4e8f14..6e0553450f2b7 100644 --- a/test/distrib/bazel/python_second_test_repo/proto/BUILD +++ b/test/distrib/bazel/python_second_test_repo/proto/BUILD @@ -14,6 +14,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library") + proto_library( name = "my_proto", srcs = ["my.proto"], diff --git a/tools/distrib/buildifier_format_code.sh b/tools/distrib/buildifier_format_code.sh index b0b95d80ebf65..f8572dc2dc421 100755 --- a/tools/distrib/buildifier_format_code.sh +++ b/tools/distrib/buildifier_format_code.sh @@ -15,7 +15,7 @@ set -e -BUILDIFIER_VERSION="7.3.1" +BUILDIFIER_VERSION="8.0.0" TEMP_BUILDIFIER_PATH="/tmp/buildifier" EXTRA_BUILDIFIER_FLAGS="$*" diff --git a/tools/distrib/buildozer.sh b/tools/distrib/buildozer.sh index ffcea5d3697c3..fa274ef85938f 100755 --- a/tools/distrib/buildozer.sh +++ b/tools/distrib/buildozer.sh @@ -15,7 +15,7 @@ set -e -BUILDOZER_VERSION="7.3.1" +BUILDOZER_VERSION="8.0.0" TEMP_BUILDOZER_PATH="/tmp/buildozer-for-grpc" MAX_DOWNLOAD_RETRY=5 diff --git a/tools/distrib/python/grpcio_tools/grpc_tools/test/BUILD.bazel b/tools/distrib/python/grpcio_tools/grpc_tools/test/BUILD.bazel index 303c1b75d5300..bd8df9802ed18 100644 --- a/tools/distrib/python/grpcio_tools/grpc_tools/test/BUILD.bazel +++ b/tools/distrib/python/grpcio_tools/grpc_tools/test/BUILD.bazel @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library") load("@rules_python//python:defs.bzl", "py_test") load("//bazel:python_rules.bzl", "py_proto_library") From 11bfbb8420b159a835697af19c49439dc9e45e98 Mon Sep 17 00:00:00 2001 From: AJ Heller Date: Thu, 16 Jan 2025 15:04:36 -0800 Subject: [PATCH 12/15] [EventEngine] Add SetDefaultEventEngine API (and friends) (#38316) Closes #38316 PiperOrigin-RevId: 716392744 --- CMakeLists.txt | 87 +++++----- Package.swift | 1 + build_autogenerated.yaml | 38 +++-- examples/cpp/default_event_engine/.gitignore | 8 + examples/cpp/default_event_engine/BUILD | 50 ++++++ examples/cpp/default_event_engine/README.md | 10 ++ .../greeter_callback_client.cc | 113 +++++++++++++ .../greeter_callback_server.cc | 87 ++++++++++ .../wrapping_event_engine.h | 88 ++++++++++ gRPC-C++.podspec | 2 + gRPC-Core.podspec | 2 + grpc.gemspec | 1 + include/grpc/event_engine/event_engine.h | 49 +++++- package.xml | 1 + src/core/BUILD | 12 ++ .../lib/event_engine/default_event_engine.cc | 89 +++++++---- .../lib/event_engine/default_event_engine.h | 51 +++--- src/core/util/wait_for_single_owner.h | 62 +++++++ src/core/xds/grpc/xds_client_grpc.cc | 2 +- test/core/call/yodel/yodel_test.cc | 4 +- test/core/channelz/channelz_test.cc | 2 +- test/core/end2end/end2end_test_fuzzer.cc | 16 +- test/core/end2end/end2end_tests.h | 5 +- test/core/end2end/fuzzers/connector_fuzzer.cc | 18 +-- test/core/end2end/fuzzers/fuzzing_common.cc | 19 +-- test/core/end2end/fuzzers/fuzzing_common.h | 1 + test/core/event_engine/BUILD | 18 +-- .../default_engine_methods_test.cc | 151 ++++++++++++------ .../event_engine/event_engine_test_utils.cc | 26 --- .../event_engine/event_engine_test_utils.h | 14 -- test/core/event_engine/factory_test.cc | 32 +++- .../event_engine/posix/posix_endpoint_test.cc | 5 +- .../posix/posix_event_engine_connect_test.cc | 5 +- test/core/event_engine/smoke_test.cc | 50 ------ .../resolver_fuzzer.cc | 11 +- test/core/filters/filter_test.cc | 18 +-- test/core/load_balancing/lb_policy_test_lib.h | 3 +- test/core/security/credentials_test.cc | 7 +- .../security/grpc_tls_crl_provider_test.cc | 4 +- test/core/util/BUILD | 12 ++ test/core/util/wait_for_single_owner_test.cc | 44 +++++ test/core/util/work_serializer_test.cc | 2 +- test/core/xds/xds_client_fuzzer.cc | 4 +- test/core/xds/xds_client_test.cc | 4 +- test/cpp/end2end/channelz_service_test.cc | 3 +- test/cpp/end2end/rls_end2end_test.cc | 3 +- test/cpp/performance/writes_per_rpc_test.cc | 12 +- tools/doxygen/Doxyfile.c++.internal | 1 + tools/doxygen/Doxyfile.core.internal | 1 + tools/run_tests/generated/tests.json | 58 +++---- 50 files changed, 926 insertions(+), 380 deletions(-) create mode 100644 examples/cpp/default_event_engine/.gitignore create mode 100644 examples/cpp/default_event_engine/BUILD create mode 100644 examples/cpp/default_event_engine/README.md create mode 100644 examples/cpp/default_event_engine/greeter_callback_client.cc create mode 100644 examples/cpp/default_event_engine/greeter_callback_server.cc create mode 100644 examples/cpp/default_event_engine/wrapping_event_engine.h create mode 100644 src/core/util/wait_for_single_owner.h delete mode 100644 test/core/event_engine/smoke_test.cc create mode 100644 test/core/util/wait_for_single_owner_test.cc diff --git a/CMakeLists.txt b/CMakeLists.txt index 6c02ce000967a..13e9d8817ca19 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1791,7 +1791,6 @@ if(gRPC_BUILD_TESTS) add_dependencies(buildtests_cxx single_set_ptr_test) add_dependencies(buildtests_cxx sleep_test) add_dependencies(buildtests_cxx slice_string_helpers_test) - add_dependencies(buildtests_cxx smoke_test) add_dependencies(buildtests_cxx sockaddr_resolver_test) add_dependencies(buildtests_cxx sockaddr_utils_test) if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) @@ -1904,6 +1903,7 @@ if(gRPC_BUILD_TESTS) add_dependencies(buildtests_cxx validation_errors_test) add_dependencies(buildtests_cxx varint_test) add_dependencies(buildtests_cxx wait_for_callback_test) + add_dependencies(buildtests_cxx wait_for_single_owner_test) if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_dependencies(buildtests_cxx wakeup_fd_posix_test) endif() @@ -32203,48 +32203,6 @@ target_link_libraries(slice_string_helpers_test ) -endif() -if(gRPC_BUILD_TESTS) - -add_executable(smoke_test - test/core/event_engine/smoke_test.cc -) -if(WIN32 AND MSVC) - if(BUILD_SHARED_LIBS) - target_compile_definitions(smoke_test - PRIVATE - "GPR_DLL_IMPORTS" - "GRPC_DLL_IMPORTS" - ) - endif() -endif() -target_compile_features(smoke_test PUBLIC cxx_std_17) -target_include_directories(smoke_test - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/include - ${_gRPC_ADDRESS_SORTING_INCLUDE_DIR} - ${_gRPC_RE2_INCLUDE_DIR} - ${_gRPC_SSL_INCLUDE_DIR} - ${_gRPC_UPB_GENERATED_DIR} - ${_gRPC_UPB_GRPC_GENERATED_DIR} - ${_gRPC_UPB_INCLUDE_DIR} - ${_gRPC_XXHASH_INCLUDE_DIR} - ${_gRPC_ZLIB_INCLUDE_DIR} - third_party/googletest/googletest/include - third_party/googletest/googletest - third_party/googletest/googlemock/include - third_party/googletest/googlemock - ${_gRPC_PROTO_GENS_DIR} -) - -target_link_libraries(smoke_test - ${_gRPC_ALLTARGETS_LIBRARIES} - gtest - grpc_test_util_unsecure -) - - endif() if(gRPC_BUILD_TESTS) @@ -36328,6 +36286,49 @@ target_link_libraries(wait_for_callback_test ) +endif() +if(gRPC_BUILD_TESTS) + +add_executable(wait_for_single_owner_test + src/core/util/time.cc + test/core/util/wait_for_single_owner_test.cc +) +if(WIN32 AND MSVC) + if(BUILD_SHARED_LIBS) + target_compile_definitions(wait_for_single_owner_test + PRIVATE + "GPR_DLL_IMPORTS" + ) + endif() +endif() +target_compile_features(wait_for_single_owner_test PUBLIC cxx_std_17) +target_include_directories(wait_for_single_owner_test + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${_gRPC_ADDRESS_SORTING_INCLUDE_DIR} + ${_gRPC_RE2_INCLUDE_DIR} + ${_gRPC_SSL_INCLUDE_DIR} + ${_gRPC_UPB_GENERATED_DIR} + ${_gRPC_UPB_GRPC_GENERATED_DIR} + ${_gRPC_UPB_INCLUDE_DIR} + ${_gRPC_XXHASH_INCLUDE_DIR} + ${_gRPC_ZLIB_INCLUDE_DIR} + third_party/googletest/googletest/include + third_party/googletest/googletest + third_party/googletest/googlemock/include + third_party/googletest/googlemock + ${_gRPC_PROTO_GENS_DIR} +) + +target_link_libraries(wait_for_single_owner_test + ${_gRPC_ALLTARGETS_LIBRARIES} + gtest + absl::statusor + gpr +) + + endif() if(gRPC_BUILD_TESTS) if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) diff --git a/Package.swift b/Package.swift index 40845afeff601..426217dd6d194 100644 --- a/Package.swift +++ b/Package.swift @@ -1975,6 +1975,7 @@ let package = Package( "src/core/util/uuid_v4.h", "src/core/util/validation_errors.cc", "src/core/util/validation_errors.h", + "src/core/util/wait_for_single_owner.h", "src/core/util/windows/cpu.cc", "src/core/util/windows/directory_reader.cc", "src/core/util/windows/env.cc", diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml index f0e18264b93ed..75279eb8c5954 100644 --- a/build_autogenerated.yaml +++ b/build_autogenerated.yaml @@ -1233,6 +1233,7 @@ libs: - src/core/util/uri.h - src/core/util/uuid_v4.h - src/core/util/validation_errors.h + - src/core/util/wait_for_single_owner.h - src/core/util/work_serializer.h - src/core/util/xxhash_inline.h - src/core/xds/grpc/certificate_provider_store.h @@ -2755,6 +2756,7 @@ libs: - src/core/util/uri.h - src/core/util/uuid_v4.h - src/core/util/validation_errors.h + - src/core/util/wait_for_single_owner.h - src/core/util/work_serializer.h - third_party/upb/upb/generated_code_support.h src: @@ -4790,6 +4792,7 @@ libs: - src/core/util/unique_type_name.h - src/core/util/uri.h - src/core/util/validation_errors.h + - src/core/util/wait_for_single_owner.h - src/core/util/work_serializer.h - third_party/upb/upb/generated_code_support.h src: @@ -7153,6 +7156,7 @@ targets: - src/core/util/unique_type_name.h - src/core/util/uri.h - src/core/util/validation_errors.h + - src/core/util/wait_for_single_owner.h - src/core/util/work_serializer.h - third_party/upb/upb/generated_code_support.h src: @@ -9438,6 +9442,7 @@ targets: - gtest - absl/status:statusor - gpr + uses_polling: false - name: completion_queue_threading_test gtest: true build: test @@ -9865,12 +9870,14 @@ targets: gtest: true build: test language: c++ - headers: [] + headers: + - test/core/event_engine/mock_event_engine.h src: - test/core/event_engine/default_engine_methods_test.cc deps: - gtest - grpc_test_util + uses_polling: false - name: default_host_test gtest: true build: test @@ -10671,12 +10678,14 @@ targets: build: test language: c++ headers: + - test/core/event_engine/mock_event_engine.h - test/core/event_engine/util/aborting_event_engine.h src: - test/core/event_engine/factory_test.cc deps: - gtest - grpc_test_util_unsecure + uses_polling: false - name: fake_resolver_test gtest: true build: test @@ -21699,16 +21708,6 @@ targets: - absl/status:statusor - gpr uses_polling: false -- name: smoke_test - gtest: true - build: test - language: c++ - headers: [] - src: - - test/core/event_engine/smoke_test.cc - deps: - - gtest - - grpc_test_util_unsecure - name: sockaddr_resolver_test gtest: true build: test @@ -22509,6 +22508,7 @@ targets: - absl/status:statusor - absl/utility:utility - gpr + uses_polling: false - name: test_core_iomgr_timer_heap_test gtest: true build: test @@ -22863,6 +22863,7 @@ targets: - gtest - grpc - grpc_test_util_unsecure + uses_polling: false - name: thread_quota_test gtest: true build: test @@ -23567,6 +23568,21 @@ targets: - absl/status:statusor - gpr uses_polling: false +- name: wait_for_single_owner_test + gtest: true + build: test + language: c++ + headers: + - src/core/util/time.h + - src/core/util/wait_for_single_owner.h + src: + - src/core/util/time.cc + - test/core/util/wait_for_single_owner_test.cc + deps: + - gtest + - absl/status:statusor + - gpr + uses_polling: false - name: wakeup_fd_posix_test gtest: true build: test diff --git a/examples/cpp/default_event_engine/.gitignore b/examples/cpp/default_event_engine/.gitignore new file mode 100644 index 0000000000000..039149b025739 --- /dev/null +++ b/examples/cpp/default_event_engine/.gitignore @@ -0,0 +1,8 @@ +*.o +*.pb.cc +*.pb.h +greeter_client +greeter_server +greeter_async_client +greeter_async_client2 +greeter_async_server diff --git a/examples/cpp/default_event_engine/BUILD b/examples/cpp/default_event_engine/BUILD new file mode 100644 index 0000000000000..0cde9bf3035da --- /dev/null +++ b/examples/cpp/default_event_engine/BUILD @@ -0,0 +1,50 @@ +# Copyright 2020 the gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +licenses(["notice"]) + +cc_binary( + name = "greeter_callback_client", + srcs = ["greeter_callback_client.cc"], + defines = ["BAZEL_BUILD"], + deps = [ + "wrapping_event_engine", + "//:grpc++", + "//examples/protos:helloworld_cc_grpc", + "@com_google_absl//absl/flags:flag", + "@com_google_absl//absl/flags:parse", + ], +) + +cc_binary( + name = "greeter_callback_server", + srcs = ["greeter_callback_server.cc"], + defines = ["BAZEL_BUILD"], + deps = [ + "//:grpc++", + "//:grpc++_reflection", + "//examples/protos:helloworld_cc_grpc", + "@com_google_absl//absl/flags:flag", + "@com_google_absl//absl/flags:parse", + "@com_google_absl//absl/strings:str_format", + ], +) + +cc_library( + name = "wrapping_event_engine", + hdrs = ["wrapping_event_engine.h"], + deps = [ + "//:grpc++", + ], +) diff --git a/examples/cpp/default_event_engine/README.md b/examples/cpp/default_event_engine/README.md new file mode 100644 index 0000000000000..ac55d5c0699b3 --- /dev/null +++ b/examples/cpp/default_event_engine/README.md @@ -0,0 +1,10 @@ +# gRPC C++ Hello World Example with a custom EventEngine + +You can find a complete set of instructions for building gRPC and running the +Hello World app in the [C++ Quick Start][]. + +This example illustrates how to provide gRPC with a custom [EventEngine][]. +By providing gRPC with an application-owned EventEngine, applications can customize most aspects how gRPC performs I/O, asynchronous callback execution, timer execution, and DNS resolution. + +[C++ Quick Start]: https://grpc.io/docs/languages/cpp/quickstart +[EventEngine]: https://github.com/grpc/grpc/blob/master/include/grpc/event_engine/event_engine.h \ No newline at end of file diff --git a/examples/cpp/default_event_engine/greeter_callback_client.cc b/examples/cpp/default_event_engine/greeter_callback_client.cc new file mode 100644 index 0000000000000..002a1694768c8 --- /dev/null +++ b/examples/cpp/default_event_engine/greeter_callback_client.cc @@ -0,0 +1,113 @@ +/* + * + * Copyright 2021 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include + +#include +#include +#include +#include +#include + +#include "absl/flags/flag.h" +#include "absl/flags/parse.h" +#include "absl/log/log.h" +#include "wrapping_event_engine.h" + +#ifdef BAZEL_BUILD +#include "examples/protos/helloworld.grpc.pb.h" +#else +#include "helloworld.grpc.pb.h" +#endif + +ABSL_FLAG(std::string, target, "localhost:50051", "Server address"); + +using grpc::Channel; +using grpc::ClientContext; +using grpc::Status; +using helloworld::Greeter; +using helloworld::HelloReply; +using helloworld::HelloRequest; + +namespace my_application { + +class GreeterClient { + public: + GreeterClient(std::shared_ptr channel) + : stub_(Greeter::NewStub(channel)) {} + + std::string SayHello(const std::string& user) { + HelloRequest request; + request.set_name(user); + HelloReply reply; + ClientContext context; + std::mutex mu; + std::condition_variable cv; + bool done = false; + Status status; + stub_->async()->SayHello(&context, &request, &reply, + [&mu, &cv, &done, &status](Status s) { + status = std::move(s); + std::lock_guard lock(mu); + done = true; + cv.notify_one(); + }); + std::unique_lock lock(mu); + while (!done) { + cv.wait(lock); + } + if (status.ok()) { + return reply.message(); + } + std::cout << status.error_code() << ": " << status.error_message() + << std::endl; + return "RPC failed"; + } + + private: + std::unique_ptr stub_; +}; + +} // namespace my_application + +int main(int argc, char** argv) { + absl::ParseCommandLine(argc, argv); + // Create some EventEngine of your choosing, likely your own. + auto custom_engine = std::make_shared(); + // Provide this engine to gRPC. Now there are 2 refs to this engine: one here, + // and one owned by gRPC. + grpc_event_engine::experimental::SetDefaultEventEngine(custom_engine); + // This scope ensures that gRPC objects are destroyed before trying to shut + // down the EventEngine. + { + std::string target_str = absl::GetFlag(FLAGS_target); + my_application::GreeterClient greeter( + grpc::CreateChannel(target_str, grpc::InsecureChannelCredentials())); + std::string user("EventEngine"); + std::string reply = greeter.SayHello(user); + std::cout << "Greeter received: " << reply << std::endl; + } + LOG(INFO) << "My EventEngine ran " << custom_engine->get_run_count() + << " closures"; + // Release the application's ownership of the EventEngine. Now gRPC solely + // owns the engine. + custom_engine.reset(); + // Block until gRPC is done using the engine, and the engine is destroyed. + grpc_event_engine::experimental::ShutdownDefaultEventEngine(); + return 0; +} diff --git a/examples/cpp/default_event_engine/greeter_callback_server.cc b/examples/cpp/default_event_engine/greeter_callback_server.cc new file mode 100644 index 0000000000000..d8363c8d49323 --- /dev/null +++ b/examples/cpp/default_event_engine/greeter_callback_server.cc @@ -0,0 +1,87 @@ +/* + * + * Copyright 2021 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include +#include +#include + +#include +#include +#include + +#include "absl/flags/flag.h" +#include "absl/flags/parse.h" +#include "absl/strings/str_format.h" + +#ifdef BAZEL_BUILD +#include "examples/protos/helloworld.grpc.pb.h" +#else +#include "helloworld.grpc.pb.h" +#endif + +ABSL_FLAG(uint16_t, port, 50051, "Server port for the service"); + +using grpc::CallbackServerContext; +using grpc::Server; +using grpc::ServerBuilder; +using grpc::ServerUnaryReactor; +using grpc::Status; +using helloworld::Greeter; +using helloworld::HelloReply; +using helloworld::HelloRequest; + +// Logic and data behind the server's behavior. +class GreeterServiceImpl final : public Greeter::CallbackService { + ServerUnaryReactor* SayHello(CallbackServerContext* context, + const HelloRequest* request, + HelloReply* reply) override { + std::string prefix("Hello "); + reply->set_message(prefix + request->name()); + + ServerUnaryReactor* reactor = context->DefaultReactor(); + reactor->Finish(Status::OK); + return reactor; + } +}; + +void RunServer(uint16_t port) { + std::string server_address = absl::StrFormat("0.0.0.0:%d", port); + GreeterServiceImpl service; + + grpc::EnableDefaultHealthCheckService(true); + grpc::reflection::InitProtoReflectionServerBuilderPlugin(); + ServerBuilder builder; + // Listen on the given address without any authentication mechanism. + builder.AddListeningPort(server_address, grpc::InsecureServerCredentials()); + // Register "service" as the instance through which we'll communicate with + // clients. In this case it corresponds to an *synchronous* service. + builder.RegisterService(&service); + // Finally assemble the server. + std::unique_ptr server(builder.BuildAndStart()); + std::cout << "Server listening on " << server_address << std::endl; + + // Wait for the server to shutdown. Note that some other thread must be + // responsible for shutting down the server for this call to ever return. + server->Wait(); +} + +int main(int argc, char** argv) { + absl::ParseCommandLine(argc, argv); + RunServer(absl::GetFlag(FLAGS_port)); + return 0; +} diff --git a/examples/cpp/default_event_engine/wrapping_event_engine.h b/examples/cpp/default_event_engine/wrapping_event_engine.h new file mode 100644 index 0000000000000..e79dc3dcab623 --- /dev/null +++ b/examples/cpp/default_event_engine/wrapping_event_engine.h @@ -0,0 +1,88 @@ +// Copyright 2024 gRPC authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include + +namespace my_application { + +// A custom EventEngine that keeps track of how many times the `Run` methods +// were invoked, and delegates all calls to a gRPC internal EventEngine instance +// owned by this object. +class WrappingEventEngine + : public grpc_event_engine::experimental::EventEngine { + public: + WrappingEventEngine() + : wrapped_engine_(grpc_event_engine::experimental::CreateEventEngine()) {} + ~WrappingEventEngine() override = default; + + void Run(Closure* closure) override { + run_count_++; + wrapped_engine_->Run(closure); + } + + void Run(absl::AnyInvocable closure) override { + run_count_++; + wrapped_engine_->Run(std::move(closure)); + } + + int get_run_count() { return run_count_.load(); } + + // Passthrough methods + absl::StatusOr> CreateListener( + Listener::AcceptCallback on_accept, + absl::AnyInvocable on_shutdown, + const grpc_event_engine::experimental::EndpointConfig& config, + std::unique_ptr + memory_allocator_factory) override { + return wrapped_engine_->CreateListener(std::move(on_accept), + std::move(on_shutdown), config, + std::move(memory_allocator_factory)); + } + ConnectionHandle Connect( + OnConnectCallback on_connect, const ResolvedAddress& addr, + const grpc_event_engine::experimental::EndpointConfig& args, + grpc_event_engine::experimental::MemoryAllocator memory_allocator, + Duration timeout) override { + return wrapped_engine_->Connect(std::move(on_connect), addr, args, + std::move(memory_allocator), timeout); + } + bool CancelConnect(ConnectionHandle handle) override { + return wrapped_engine_->CancelConnect(handle); + } + + bool IsWorkerThread() override { return wrapped_engine_->IsWorkerThread(); } + + absl::StatusOr> GetDNSResolver( + const DNSResolver::ResolverOptions& options) override { + return wrapped_engine_->GetDNSResolver(options); + } + + TaskHandle RunAfter(Duration when, Closure* closure) override { + return wrapped_engine_->RunAfter(when, closure); + } + + TaskHandle RunAfter(Duration when, + absl::AnyInvocable closure) override { + return wrapped_engine_->RunAfter(when, std::move(closure)); + } + bool Cancel(TaskHandle handle) override { + return wrapped_engine_->Cancel(handle); + } + + private: + std::shared_ptr wrapped_engine_; + std::atomic run_count_{0}; +}; + +} // namespace my_application \ No newline at end of file diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec index 9008e35a13efc..efa36d49cc939 100644 --- a/gRPC-C++.podspec +++ b/gRPC-C++.podspec @@ -1308,6 +1308,7 @@ Pod::Spec.new do |s| 'src/core/util/useful.h', 'src/core/util/uuid_v4.h', 'src/core/util/validation_errors.h', + 'src/core/util/wait_for_single_owner.h', 'src/core/util/work_serializer.h', 'src/core/util/xxhash_inline.h', 'src/core/xds/grpc/certificate_provider_store.h', @@ -2604,6 +2605,7 @@ Pod::Spec.new do |s| 'src/core/util/useful.h', 'src/core/util/uuid_v4.h', 'src/core/util/validation_errors.h', + 'src/core/util/wait_for_single_owner.h', 'src/core/util/work_serializer.h', 'src/core/util/xxhash_inline.h', 'src/core/xds/grpc/certificate_provider_store.h', diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec index 72b5851469986..8a762fbd0eb89 100644 --- a/gRPC-Core.podspec +++ b/gRPC-Core.podspec @@ -2091,6 +2091,7 @@ Pod::Spec.new do |s| 'src/core/util/uuid_v4.h', 'src/core/util/validation_errors.cc', 'src/core/util/validation_errors.h', + 'src/core/util/wait_for_single_owner.h', 'src/core/util/windows/cpu.cc', 'src/core/util/windows/directory_reader.cc', 'src/core/util/windows/env.cc', @@ -3459,6 +3460,7 @@ Pod::Spec.new do |s| 'src/core/util/useful.h', 'src/core/util/uuid_v4.h', 'src/core/util/validation_errors.h', + 'src/core/util/wait_for_single_owner.h', 'src/core/util/work_serializer.h', 'src/core/util/xxhash_inline.h', 'src/core/xds/grpc/certificate_provider_store.h', diff --git a/grpc.gemspec b/grpc.gemspec index 7aea3e00a1f71..254a37f6a3d78 100644 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -1977,6 +1977,7 @@ Gem::Specification.new do |s| s.files += %w( src/core/util/uuid_v4.h ) s.files += %w( src/core/util/validation_errors.cc ) s.files += %w( src/core/util/validation_errors.h ) + s.files += %w( src/core/util/wait_for_single_owner.h ) s.files += %w( src/core/util/windows/cpu.cc ) s.files += %w( src/core/util/windows/directory_reader.cc ) s.files += %w( src/core/util/windows/env.cc ) diff --git a/include/grpc/event_engine/event_engine.h b/include/grpc/event_engine/event_engine.h index 6c329590fc805..36485af1f6b17 100644 --- a/include/grpc/event_engine/event_engine.h +++ b/include/grpc/event_engine/event_engine.h @@ -28,6 +28,7 @@ #include "absl/status/statusor.h" // TODO(vigneshbabu): Define the Endpoint::Write metrics collection system +// TODO(hork): remove all references to the factory methods. namespace grpc_event_engine { namespace experimental { @@ -471,7 +472,7 @@ class EventEngine : public std::enable_shared_from_this, virtual bool Cancel(TaskHandle handle) = 0; }; -/// Replace gRPC's default EventEngine factory. +/// [DEPRECATED] Replace gRPC's default EventEngine factory. /// /// Applications may call \a SetEventEngineFactory at any time to replace the /// default factory used within gRPC. EventEngines will be created when @@ -480,18 +481,56 @@ class EventEngine : public std::enable_shared_from_this, /// To be certain that none of the gRPC-provided built-in EventEngines are /// created, applications must set a custom EventEngine factory method *before* /// grpc is initialized. +// TODO(hork): delete once all known users have migrated away void SetEventEngineFactory( - absl::AnyInvocable()> factory); + absl::AnyInvocable()> factory); -/// Reset gRPC's EventEngine factory to the built-in default. +/// [DEPRECATED] Reset gRPC's EventEngine factory to the built-in default. /// /// Applications that have called \a SetEventEngineFactory can remove their /// custom factory using this method. The built-in EventEngine factories will be /// used going forward. This has no affect on any EventEngines that were created /// using the previous factories. +// +// TODO(hork): delete once all known users have migrated away void EventEngineFactoryReset(); -/// Create an EventEngine using the default factory. -std::unique_ptr CreateEventEngine(); + +/// Create a new EventEngine instance. +std::shared_ptr CreateEventEngine(); + +/// Set the default EventEngine instance, which will be used throughout gRPC +/// +/// gRPC will hold a ref to this engine until either +/// \a ShutdownDefaultEventEngine() is called or \a SetDefaultEventEngine() is +/// called again with a different value. Passing a value of nullptr will cause +/// gRPC to drop the ref it was holding without setting it to a new one. +/// +/// Earlier calls to \a GetDefaultEventEngine will still hold a ref to the +/// previous default engine instance, if any. +void SetDefaultEventEngine(std::shared_ptr engine); + +/// Returns the default EventEngine instance. +/// +/// Note that if SetDefaultEventEngine() has not been called, then the default +/// EventEngine may be created and destroyed as needed, meaning that multiple +/// calls to GetDefaultEventEngine() over a process's lifetime may return +/// different instances. Callers are expected to call GetDefaultEventEngine() +/// once and hold the returned reference for as long as they need the +/// EventEngine instance. +std::shared_ptr GetDefaultEventEngine(); + +/// Resets gRPC to use one of the default internal EventEngines for all *new* +/// \a GetDefaultEventEngine requests and blocks until all refs on the active +/// default engine have been released (destroying that engine). +/// +/// If you called \a SetDefaultEventEngine, you must call either +/// \a ShutdownDefaultEventEngine or \a SetDefaultEventEngine(nullptr) at the +/// end of your program. If you don't, the engine will never be destroyed. +/// +/// If you want to reset the default engine to one of gRPC's internal versions +/// without waiting for all references to be released on the current default +/// engine, call \a SetDefaultEventEngine(nullptr) instead. +void ShutdownDefaultEventEngine(); bool operator==(const EventEngine::TaskHandle& lhs, const EventEngine::TaskHandle& rhs); diff --git a/package.xml b/package.xml index ae53a75c33bd1..211a1dc276fc9 100644 --- a/package.xml +++ b/package.xml @@ -1959,6 +1959,7 @@ + diff --git a/src/core/BUILD b/src/core/BUILD index 8d9c495eab938..b6b6686faa70a 100644 --- a/src/core/BUILD +++ b/src/core/BUILD @@ -2888,8 +2888,10 @@ grpc_cc_library( deps = [ "channel_args", "default_event_engine_factory", + "match", "no_destruct", "thready_event_engine", + "wait_for_single_owner", "//:config", "//:debug_location", "//:event_engine_base_hdrs", @@ -9042,6 +9044,16 @@ grpc_cc_library( ], ) +grpc_cc_library( + name = "wait_for_single_owner", + hdrs = ["util/wait_for_single_owner.h"], + external_deps = ["absl/log"], + deps = [ + "time", + "//:gpr", + ], +) + ### UPB Targets grpc_upb_proto_library( diff --git a/src/core/lib/event_engine/default_event_engine.cc b/src/core/lib/event_engine/default_event_engine.cc index 2cc6bc98fca24..10d17647c3038 100644 --- a/src/core/lib/event_engine/default_event_engine.cc +++ b/src/core/lib/event_engine/default_event_engine.cc @@ -17,17 +17,20 @@ #include #include +#include #include #include +#include #include "absl/functional/any_invocable.h" #include "src/core/config/core_configuration.h" #include "src/core/lib/channel/channel_args.h" -#include "src/core/lib/debug/trace.h" #include "src/core/lib/event_engine/default_event_engine_factory.h" #include "src/core/util/debug_location.h" +#include "src/core/util/match.h" #include "src/core/util/no_destruct.h" #include "src/core/util/sync.h" +#include "src/core/util/wait_for_single_owner.h" #ifdef GRPC_MAXIMIZE_THREADYNESS #include "src/core/lib/event_engine/thready_event_engine/thready_event_engine.h" // IWYU pragma: keep @@ -36,59 +39,87 @@ namespace grpc_event_engine::experimental { namespace { -std::atomic()>*> +// TODO(hork): delete the factory once all known users have migrated away +std::atomic()>*> g_event_engine_factory{nullptr}; grpc_core::NoDestruct g_mu; -grpc_core::NoDestruct> g_event_engine; +// Defaults to a null weak_ptr<>. If it contains a shared_ptr<>, will always be +// non-null. +grpc_core::NoDestruct< + std::variant, std::shared_ptr>> + g_default_event_engine ABSL_GUARDED_BY(*g_mu); + +// Returns nullptr if no engine is set. +std::shared_ptr InternalGetDefaultEventEngineIfAny() + ABSL_EXCLUSIVE_LOCKS_REQUIRED(*g_mu) { + return grpc_core::MatchMutable( + g_default_event_engine.get(), + [&](std::shared_ptr* event_engine) { return *event_engine; }, + [&](std::weak_ptr* weak_ee) { return weak_ee->lock(); }); +} + } // namespace void SetEventEngineFactory( - absl::AnyInvocable()> factory) { + absl::AnyInvocable()> factory) { delete g_event_engine_factory.exchange( - new absl::AnyInvocable()>( + new absl::AnyInvocable()>( std::move(factory))); - // Forget any previous EventEngines + // Forget any previous factory-created EventEngines grpc_core::MutexLock lock(&*g_mu); - g_event_engine->reset(); + g_default_event_engine->emplace>(); } void EventEngineFactoryReset() { + grpc_core::MutexLock lock(&*g_mu); delete g_event_engine_factory.exchange(nullptr); - g_event_engine->reset(); + g_default_event_engine->emplace>(); } -std::unique_ptr CreateEventEngineInner() { +std::shared_ptr CreateEventEngine() { + std::shared_ptr engine; if (auto* factory = g_event_engine_factory.load()) { - return (*factory)(); + engine = (*factory)(); + } else { + engine = DefaultEventEngineFactory(); } - return DefaultEventEngineFactory(); -} - -std::unique_ptr CreateEventEngine() { #ifdef GRPC_MAXIMIZE_THREADYNESS - return std::make_unique(CreateEventEngineInner()); -#else - return CreateEventEngineInner(); + return std::make_shared(std::move(engine)); #endif + return engine; } -std::shared_ptr GetDefaultEventEngine( - grpc_core::SourceLocation location) { +void SetDefaultEventEngine(std::shared_ptr engine) { grpc_core::MutexLock lock(&*g_mu); - if (std::shared_ptr engine = g_event_engine->lock()) { - GRPC_TRACE_LOG(event_engine, INFO) - << "Returning existing EventEngine::" << engine.get() - << ". use_count:" << engine.use_count() << ". Called from " << location; - return engine; + if (engine == nullptr) { + // If it's being set to null, switch back to a weak_ptr. + g_default_event_engine->emplace>(); + } else { + *g_default_event_engine = std::move(engine); } - std::shared_ptr engine{CreateEventEngine()}; - GRPC_TRACE_LOG(event_engine, INFO) - << "Created DefaultEventEngine::" << engine.get() << ". Called from " - << location; - *g_event_engine = engine; +} + +std::shared_ptr GetDefaultEventEngine() { + grpc_core::MutexLock lock(&*g_mu); + auto engine = InternalGetDefaultEventEngineIfAny(); + if (engine != nullptr) return engine; + engine = CreateEventEngine(); + g_default_event_engine->emplace>(engine); return engine; } +void ShutdownDefaultEventEngine() { + std::shared_ptr tmp_engine; + { + grpc_core::MutexLock lock(&*g_mu); + tmp_engine = InternalGetDefaultEventEngineIfAny(); + g_default_event_engine->emplace>(); + } + if (tmp_engine != nullptr) { + grpc_core::WaitForSingleOwner(std::move(tmp_engine)); + } +} + namespace { grpc_core::ChannelArgs EnsureEventEngineInChannelArgs( grpc_core::ChannelArgs args) { diff --git a/src/core/lib/event_engine/default_event_engine.h b/src/core/lib/event_engine/default_event_engine.h index fa99f726727b7..0c8d29a09098e 100644 --- a/src/core/lib/event_engine/default_event_engine.h +++ b/src/core/lib/event_engine/default_event_engine.h @@ -25,40 +25,33 @@ namespace grpc_event_engine::experimental { -/// Access the shared global EventEngine instance. -/// -/// GetDefaultEventEngine is a lazy thing: either a shared global EventEngine -/// instance exists and will be returned, or that shared global instance will be -/// created and returned. The returned shared_ptr's life is -/// determined by the shared_ptr, and therefore EventEngines may be created and -/// destroyed multiple times through the life of your gRPC process, there is no -/// guarantee of one persistent global instance like in iomgr. -/// -/// Why would we do this? To begin with, users may provide their own EventEngine -/// instances on channel or server creation; if they do that, there is some -/// chance that a default EventEngine instance will not have to be created, and -/// applications will not have to pay the (probably small) price of -/// instantiating an engine they do not own. The other major consideration is -/// that gRPC shutdown is likely going away. Without a well-defined point at -/// which a persistent global EventEngine instance can safely be shut down, we -/// risk undefined behavior and various documented breakages if the engine is -/// not shut down cleanly before the process exits. Therefore, allowing the -/// EventEngine lifetimes to be determined by the scopes in which they are -/// needed is a fine solution. -/// -/// If you're writing code that needs an EventEngine, prefer 1) getting the -/// EventEngine from somewhere it is already cached - preconditioned -/// ChannelArgs, or the channel stack for example - or 2) if not otherwise -/// available, call \a GetDefaultEventEngine and save that shared_ptr to ensure -/// the Engine's lifetime is at least as long as you need it to be. -std::shared_ptr GetDefaultEventEngine( - grpc_core::SourceLocation location = grpc_core::SourceLocation()); - /// On ingress, ensure that an EventEngine exists in channel args via /// preconditioning. void RegisterEventEngineChannelArgPreconditioning( grpc_core::CoreConfiguration::Builder* builder); +/// Register a default EventEngine that is reset and destroyed when this object +/// is destroyed. +/// +/// Usage: +/// +/// { +/// DefaultEventEngineScope engine_holder(std::make_shared()); +/// // returns the instance of MyEngine +/// auto engine = GetDefaultEventEngine(); +/// } +/// // returns some default internal instance. The previous instance has been +/// // destroyed. +/// auto engine = GetDefaultEventEngine(); +/// +class DefaultEventEngineScope { + public: + explicit DefaultEventEngineScope(std::shared_ptr engine) { + SetDefaultEventEngine(std::move(engine)); + } + ~DefaultEventEngineScope() { ShutdownDefaultEventEngine(); } +}; + } // namespace grpc_event_engine::experimental #endif // GRPC_SRC_CORE_LIB_EVENT_ENGINE_DEFAULT_EVENT_ENGINE_H diff --git a/src/core/util/wait_for_single_owner.h b/src/core/util/wait_for_single_owner.h new file mode 100644 index 0000000000000..2b201a94f6996 --- /dev/null +++ b/src/core/util/wait_for_single_owner.h @@ -0,0 +1,62 @@ +// Copyright 2024 The gRPC Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef GRPC_SRC_CORE_UTIL_WAIT_FOR_SINGLE_OWNER_H +#define GRPC_SRC_CORE_UTIL_WAIT_FOR_SINGLE_OWNER_H + +#include + +#include "absl/log/log.h" +#include "src/core/util/crash.h" +#include "src/core/util/time.h" + +namespace grpc_core { + +// Waits until the use_count of the shared_ptr has reached 1 and returns, +// destroying the object. +// +// Callers must first give up their ref, or this method will block forever. +// Usage: WaitForSingleOwner(std::move(obj)) +template +void WaitForSingleOwner(std::shared_ptr obj) { + WaitForSingleOwnerWithTimeout(std::move(obj), Duration::Hours(24)); +} + +// Waits until the use_count of the shared_ptr has reached 1 and returns, +// destroying the object. +// +// This version will CRASH after the given timeout. +// Usage: WaitForSingleOwnerWithTimeout(std::move(obj), Duration::Seconds(30)); +template +void WaitForSingleOwnerWithTimeout(std::shared_ptr obj, Duration timeout) { + auto start = Timestamp::Now(); + while (obj.use_count() > 1) { + auto elapsed = Timestamp::Now() - start; + auto remaining = timeout - elapsed; + if (remaining < Duration::Zero()) { + Crash("Timed out waiting for a single shared_ptr owner"); + } + // To avoid log spam, wait a few seconds to begin logging the wait time. + if (elapsed >= Duration::Seconds(2)) { + LOG_EVERY_N_SEC(INFO, 2) + << "obj.use_count() = " << obj.use_count() << " timeout_remaining = " + << absl::FormatDuration(absl::Milliseconds(remaining.millis())); + } + absl::SleepFor(absl::Milliseconds(100)); + } +} + +} // namespace grpc_core + +#endif // GRPC_SRC_CORE_UTIL_WAIT_FOR_SINGLE_OWNER_H diff --git a/src/core/xds/grpc/xds_client_grpc.cc b/src/core/xds/grpc/xds_client_grpc.cc index 64a781437107d..5171a6d454c13 100644 --- a/src/core/xds/grpc/xds_client_grpc.cc +++ b/src/core/xds/grpc/xds_client_grpc.cc @@ -37,10 +37,10 @@ #include "absl/strings/str_cat.h" #include "absl/strings/string_view.h" #include "envoy/service/status/v3/csds.upb.h" +#include "src/core/config/core_configuration.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/debug/trace.h" #include "src/core/lib/event_engine/channel_args_endpoint_config.h" -#include "src/core/lib/event_engine/default_event_engine.h" #include "src/core/lib/iomgr/error.h" #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/slice/slice.h" diff --git a/test/core/call/yodel/yodel_test.cc b/test/core/call/yodel/yodel_test.cc index 2664144661a1a..feb1966f5d550 100644 --- a/test/core/call/yodel/yodel_test.cc +++ b/test/core/call/yodel/yodel_test.cc @@ -21,6 +21,7 @@ #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/timer_manager.h" #include "src/core/lib/resource_quota/resource_quota.h" +#include "src/core/util/wait_for_single_owner.h" #include "test/core/event_engine/event_engine_test_utils.h" #include "test/core/test_util/build.h" @@ -176,8 +177,7 @@ void YodelTest::RunTest() { Shutdown(); state_->event_engine->TickUntilIdle(); state_->event_engine->UnsetGlobalHooks(); - grpc_event_engine::experimental::WaitForSingleOwner( - std::move(state_->event_engine)); + WaitForSingleOwner(std::move(state_->event_engine)); grpc_shutdown_blocking(); if (!grpc_wait_until_shutdown(10)) { LOG(FATAL) << "Timeout in waiting for gRPC shutdown"; diff --git a/test/core/channelz/channelz_test.cc b/test/core/channelz/channelz_test.cc index b3c54e16dc17e..69751ea25e984 100644 --- a/test/core/channelz/channelz_test.cc +++ b/test/core/channelz/channelz_test.cc @@ -47,12 +47,12 @@ #include "src/core/util/json/json_reader.h" #include "src/core/util/notification.h" #include "src/core/util/useful.h" +#include "src/core/util/wait_for_single_owner.h" #include "test/core/event_engine/event_engine_test_utils.h" #include "test/core/test_util/test_config.h" #include "test/cpp/util/channel_trace_proto_helper.h" using grpc_event_engine::experimental::GetDefaultEventEngine; -using grpc_event_engine::experimental::WaitForSingleOwner; namespace grpc_core { namespace channelz { diff --git a/test/core/end2end/end2end_test_fuzzer.cc b/test/core/end2end/end2end_test_fuzzer.cc index 20052ca331bd8..7779b97feb966 100644 --- a/test/core/end2end/end2end_test_fuzzer.cc +++ b/test/core/end2end/end2end_test_fuzzer.cc @@ -41,8 +41,8 @@ #include "test/core/test_util/fuzz_config_vars.h" #include "test/core/test_util/test_config.h" +using ::grpc_event_engine::experimental::DefaultEventEngineScope; using ::grpc_event_engine::experimental::FuzzingEventEngine; -using ::grpc_event_engine::experimental::GetDefaultEventEngine; bool squelch = true; @@ -97,16 +97,12 @@ void RunEnd2endFuzzer(const core_end2end_test_fuzzer::Msg& msg) { overrides.default_ssl_roots_file_path = CA_CERT_PATH; ConfigVars::SetOverrides(overrides); TestOnlyReloadExperimentsFromConfigVariables(); - grpc_event_engine::experimental::SetEventEngineFactory( - [actions = msg.event_engine_actions()]() { - FuzzingEventEngine::Options options; - options.max_delay_run_after = std::chrono::milliseconds(500); - options.max_delay_write = std::chrono::microseconds(5); - return std::make_unique(options, actions); - }); + FuzzingEventEngine::Options options; + options.max_delay_run_after = std::chrono::milliseconds(500); + options.max_delay_write = std::chrono::microseconds(5); auto engine = - std::dynamic_pointer_cast(GetDefaultEventEngine()); - + std::make_shared(options, msg.event_engine_actions()); + DefaultEventEngineScope engine_scope(engine); if (!squelch) { fprintf(stderr, "RUN TEST: %s\n", tests[test_id].name.c_str()); } diff --git a/test/core/end2end/end2end_tests.h b/test/core/end2end/end2end_tests.h index 27abadea8f5d4..ee824030e4e00 100644 --- a/test/core/end2end/end2end_tests.h +++ b/test/core/end2end/end2end_tests.h @@ -55,6 +55,7 @@ #include "src/core/util/bitset.h" #include "src/core/util/debug_location.h" #include "src/core/util/time.h" +#include "src/core/util/wait_for_single_owner.h" #include "test/core/call/batch_builder.h" #include "test/core/end2end/cq_verifier.h" #include "test/core/event_engine/event_engine_test_utils.h" @@ -575,9 +576,9 @@ class CoreEnd2endTest : public ::testing::Test { grpc_event_engine::experimental::EventEngine::Duration) const> step_fn_ = nullptr; absl::AnyInvocable&&)> + std::shared_ptr)> quiesce_event_engine_ = - grpc_event_engine::experimental::WaitForSingleOwner; + WaitForSingleOwner; }; // Define names for additional test suites. diff --git a/test/core/end2end/fuzzers/connector_fuzzer.cc b/test/core/end2end/fuzzers/connector_fuzzer.cc index 319e822cd03b6..224daaec18421 100644 --- a/test/core/end2end/fuzzers/connector_fuzzer.cc +++ b/test/core/end2end/fuzzers/connector_fuzzer.cc @@ -14,6 +14,8 @@ #include "test/core/end2end/fuzzers/connector_fuzzer.h" +#include + #include "src/core/lib/address_utils/parse_address.h" #include "src/core/lib/event_engine/channel_args_endpoint_config.h" #include "src/core/lib/event_engine/default_event_engine.h" @@ -32,9 +34,7 @@ bool leak_check = true; using ::grpc_event_engine::experimental::ChannelArgsEndpointConfig; using ::grpc_event_engine::experimental::EventEngine; using ::grpc_event_engine::experimental::FuzzingEventEngine; -using ::grpc_event_engine::experimental::GetDefaultEventEngine; using ::grpc_event_engine::experimental::MockEndpointController; -using ::grpc_event_engine::experimental::SetEventEngineFactory; using ::grpc_event_engine::experimental::URIToResolvedAddress; namespace grpc_core { @@ -48,17 +48,12 @@ class ConnectorFuzzer { make_security_connector, absl::FunctionRef()> make_connector) : make_security_connector_(make_security_connector), - engine_([actions = msg.event_engine_actions()]() { - SetEventEngineFactory([actions]() -> std::unique_ptr { - return std::make_unique( - FuzzingEventEngine::Options(), actions); - }); - return std::dynamic_pointer_cast( - GetDefaultEventEngine()); - }()), + engine_(std::make_shared( + FuzzingEventEngine::Options(), msg.event_engine_actions())), mock_endpoint_controller_(MockEndpointController::Create(engine_)), connector_(make_connector()) { CHECK(engine_); + grpc_event_engine::experimental::SetDefaultEventEngine(engine_); for (const auto& input : msg.network_input()) { network_inputs_.push(input); } @@ -121,6 +116,9 @@ class ConnectorFuzzer { engine_->TickUntilIdle(); grpc_shutdown_blocking(); engine_->UnsetGlobalHooks(); + // The engine ref must be released for ShutdownDefaultEventEngine to finish. + engine_.reset(); + grpc_event_engine::experimental::ShutdownDefaultEventEngine(); } void Run() { diff --git a/test/core/end2end/fuzzers/fuzzing_common.cc b/test/core/end2end/fuzzers/fuzzing_common.cc index c198785aad2c8..b14478f37631d 100644 --- a/test/core/end2end/fuzzers/fuzzing_common.cc +++ b/test/core/end2end/fuzzers/fuzzing_common.cc @@ -343,20 +343,12 @@ Validator* ValidateConnectivityWatch(gpr_timespec deadline, int* counter) { } // namespace using ::grpc_event_engine::experimental::FuzzingEventEngine; -using ::grpc_event_engine::experimental::GetDefaultEventEngine; -using ::grpc_event_engine::experimental::SetEventEngineFactory; BasicFuzzer::BasicFuzzer(const fuzzing_event_engine::Actions& actions) - : engine_([actions]() { - SetEventEngineFactory( - [actions]() -> std::unique_ptr< - grpc_event_engine::experimental::EventEngine> { - return std::make_unique( - FuzzingEventEngine::Options(), actions); - }); - return std::dynamic_pointer_cast( - GetDefaultEventEngine()); - }()) { + : engine_(std::make_shared( + FuzzingEventEngine::Options(), actions)) { + CHECK(engine_); + grpc_event_engine::experimental::SetDefaultEventEngine(engine_); grpc_timer_manager_set_start_threaded(false); grpc_init(); { @@ -379,6 +371,9 @@ BasicFuzzer::~BasicFuzzer() { grpc_shutdown_blocking(); engine_->UnsetGlobalHooks(); + // The engine ref must be released for ShutdownDefaultEventEngine to finish. + engine_.reset(); + grpc_event_engine::experimental::ShutdownDefaultEventEngine(); } void BasicFuzzer::Tick() { diff --git a/test/core/end2end/fuzzers/fuzzing_common.h b/test/core/end2end/fuzzers/fuzzing_common.h index 5f287fae66bdd..afcae0c5e7d73 100644 --- a/test/core/end2end/fuzzers/fuzzing_common.h +++ b/test/core/end2end/fuzzers/fuzzing_common.h @@ -31,6 +31,7 @@ #include "absl/log/check.h" #include "absl/types/span.h" +#include "src/core/lib/event_engine/default_event_engine.h" #include "src/core/lib/resource_quota/resource_quota.h" #include "src/core/util/ref_counted_ptr.h" #include "src/core/util/time.h" diff --git a/test/core/event_engine/BUILD b/test/core/event_engine/BUILD index 79fdf690850a3..3a0e128fe3429 100644 --- a/test/core/event_engine/BUILD +++ b/test/core/event_engine/BUILD @@ -28,6 +28,7 @@ grpc_cc_test( "absl/functional:any_invocable", "gtest", ], + uses_polling = False, deps = [ "//:gpr_platform", "//src/core:common_event_engine_closures", @@ -58,6 +59,7 @@ grpc_cc_test( "absl/time", "gtest", ], + uses_polling = False, deps = [ "//:gpr", "//:grpc", @@ -93,7 +95,9 @@ grpc_cc_test( "absl/time", "gtest", ], + uses_polling = False, deps = [ + "mock_event_engine", "//:event_engine_base_hdrs", "//:gpr", "//src/core:default_event_engine", @@ -101,23 +105,14 @@ grpc_cc_test( ], ) -grpc_cc_test( - name = "smoke_test", - srcs = ["smoke_test.cc"], - external_deps = ["gtest"], - deps = [ - "//:event_engine_base_hdrs", - "//:gpr_platform", - "//test/core/test_util:grpc_test_util_unsecure", - ], -) - grpc_cc_test( name = "factory_test", srcs = ["factory_test.cc"], external_deps = ["gtest"], + uses_polling = False, deps = [ "aborting_event_engine", + "mock_event_engine", "//:event_engine_base_hdrs", "//:gpr_platform", "//src/core:default_event_engine", @@ -132,6 +127,7 @@ grpc_cc_test( "absl/log:check", "gtest", ], + uses_polling = False, deps = [ "//:gpr", "//:gpr_platform", diff --git a/test/core/event_engine/default_engine_methods_test.cc b/test/core/event_engine/default_engine_methods_test.cc index 04a415c1d9dfa..b01a878be5d7e 100644 --- a/test/core/event_engine/default_engine_methods_test.cc +++ b/test/core/event_engine/default_engine_methods_test.cc @@ -29,83 +29,134 @@ #include "absl/time/time.h" #include "gtest/gtest.h" #include "src/core/lib/event_engine/default_event_engine.h" +#include "src/core/util/notification.h" +#include "test/core/event_engine/mock_event_engine.h" #include "test/core/test_util/test_config.h" namespace { -using ::grpc_event_engine::experimental::EventEngine; using ::grpc_event_engine::experimental::GetDefaultEventEngine; class DefaultEngineTest : public testing::Test { protected: - // Does nothing, fills space that a nullptr could not - class FakeEventEngine : public EventEngine { + class CountingEngine + : public grpc_event_engine::experimental::MockEventEngine { public: - FakeEventEngine() = default; - ~FakeEventEngine() override = default; - absl::StatusOr> CreateListener( - Listener::AcceptCallback /* on_accept */, - absl::AnyInvocable /* on_shutdown */, - const grpc_event_engine::experimental::EndpointConfig& /* config */, - std::unique_ptr< - grpc_event_engine::experimental:: - MemoryAllocatorFactory> /* memory_allocator_factory */) - override { - return absl::UnimplementedError("test"); + struct EngineOpCounts { + EngineOpCounts() : constructed(0), destroyed(0), ran(0), ran_after(0) {}; + int constructed; + int destroyed; + int ran; + int ran_after; }; - ConnectionHandle Connect( - OnConnectCallback /* on_connect */, const ResolvedAddress& /* addr */, - const grpc_event_engine::experimental::EndpointConfig& /* args */, - grpc_event_engine::experimental::MemoryAllocator /* memory_allocator */, - Duration /* timeout */) override { - return {-1, -1}; - }; - bool CancelConnect(ConnectionHandle /* handle */) override { - return false; - }; - bool IsWorkerThread() override { return false; }; - absl::StatusOr> GetDNSResolver( - const DNSResolver::ResolverOptions& /* options */) override { - return nullptr; + explicit CountingEngine(EngineOpCounts& counter) : counter_(counter) { + ++counter_.constructed; + } + ~CountingEngine() override { ++counter_.destroyed; } + void Run(Closure* /* closure */) override { ++counter_.ran; }; + void Run(absl::AnyInvocable /* closure */) override { + ++counter_.ran; }; - void Run(Closure* /* closure */) override {}; - void Run(absl::AnyInvocable /* closure */) override{}; TaskHandle RunAfter(Duration /* when */, Closure* /* closure */) override { + ++counter_.ran_after; return {-1, -1}; } TaskHandle RunAfter(Duration /* when */, absl::AnyInvocable /* closure */) override { + ++counter_.ran_after; return {-1, -1}; } - bool Cancel(TaskHandle /* handle */) override { return false; }; + + private: + EngineOpCounts& counter_; }; }; -TEST_F(DefaultEngineTest, SharedPtrGlobalEventEngineLifetimesAreValid) { - int create_count = 0; - grpc_event_engine::experimental::SetEventEngineFactory([&create_count] { - ++create_count; - return std::make_unique(); +TEST_F(DefaultEngineTest, ScopedEngineLifetime) { + DefaultEngineTest::CountingEngine::EngineOpCounts op_counts; + { + auto engine = + std::make_shared(op_counts); + grpc_event_engine::experimental::DefaultEventEngineScope engine_scope( + std::move(engine)); + ASSERT_EQ(op_counts.constructed, 1); + ASSERT_EQ(op_counts.ran, 0); + { + auto ee2 = GetDefaultEventEngine(); + ASSERT_EQ(op_counts.constructed, 1); + ee2->Run([]() {}); + // Ensure that ee2 is the CountingEngine + ASSERT_EQ(op_counts.ran, 1); + } + // Destroying the ee2 should not destroy the shared engine. + ASSERT_EQ(op_counts.destroyed, 0); + } + // When the DefaultEventEngineScope goes out of scope, the engine is + // destroyed. + ASSERT_EQ(op_counts.destroyed, 1); + // Getting a new EE will not return the destroyed CountingEngine. It should + // create a default internal engine, and Run should work. + auto ee3 = GetDefaultEventEngine(); + grpc_core::Notification notification; + ee3->Run([¬ification]() { notification.Notify(); }); + notification.WaitForNotification(); + ASSERT_EQ(op_counts.constructed, 1); + ASSERT_EQ(op_counts.destroyed, 1); + ASSERT_EQ(op_counts.ran, 1); +} + +TEST_F(DefaultEngineTest, ProvidedDefaultEngineHasPrecedenceOverFactory) { + DefaultEngineTest::CountingEngine::EngineOpCounts ee1_op_counts; + DefaultEngineTest::CountingEngine::EngineOpCounts ee2_op_counts; + grpc_event_engine::experimental::SetEventEngineFactory([&ee2_op_counts]() { + return std::make_shared(ee2_op_counts); }); - std::shared_ptr ee2; + ASSERT_EQ(ee2_op_counts.constructed, 0); + // Ensure the factory is used + { + auto tmp_engine = GetDefaultEventEngine(); + ASSERT_EQ(ee2_op_counts.constructed, 1); + } + ASSERT_EQ(ee2_op_counts.destroyed, 1); + // Set a custom engine, and ensure it takes precedent over the factory { - std::shared_ptr ee1 = GetDefaultEventEngine(); - ASSERT_EQ(1, create_count); - ee2 = GetDefaultEventEngine(); - ASSERT_EQ(1, create_count); - ASSERT_EQ(ee2.use_count(), 2); + grpc_event_engine::experimental::DefaultEventEngineScope engine_scope( + std::make_shared(ee1_op_counts)); + auto tmp_engine = GetDefaultEventEngine(); + ASSERT_EQ(ee2_op_counts.constructed, 1) + << "The factory should not have been used to create a default engine"; + ASSERT_EQ(ee1_op_counts.constructed, 1); } - // Ensure the first shared_ptr did not delete the global - ASSERT_TRUE(ee2.unique()); - ASSERT_FALSE(ee2->IsWorkerThread()); // useful for ASAN - // destroy the global engine via the last shared_ptr, and create a new one. - ee2.reset(); - ee2 = GetDefaultEventEngine(); - ASSERT_EQ(2, create_count); - ASSERT_TRUE(ee2.unique()); + // The default engine will have been unset. + auto tmp_engine = GetDefaultEventEngine(); + ASSERT_EQ(ee2_op_counts.constructed, 2); grpc_event_engine::experimental::EventEngineFactoryReset(); } +TEST_F(DefaultEngineTest, ProvidedDefaultEngineResetsExistingInternalEngine) { + auto internal_engine = GetDefaultEventEngine(); + DefaultEngineTest::CountingEngine::EngineOpCounts op_counts; + { + grpc_event_engine::experimental::DefaultEventEngineScope engine_scope( + std::make_shared(op_counts)); + auto user_engine = GetDefaultEventEngine(); + ASSERT_GE(internal_engine.use_count(), 1); + ASSERT_EQ(op_counts.constructed, 1); + } + ASSERT_EQ(op_counts.destroyed, 1); + // The next default engine should not match either previous engine + auto third_engine = GetDefaultEventEngine(); + ASSERT_NE(third_engine.get(), internal_engine.get()); + // Sanity check that both engines work + grpc_core::Notification ran1, ran2; + internal_engine->Run([&ran1]() { ran1.Notify(); }); + third_engine->Run([&ran2]() { ran2.Notify(); }); + ran1.WaitForNotification(); + ran2.WaitForNotification(); + ASSERT_EQ(op_counts.constructed, 1); + ASSERT_EQ(op_counts.destroyed, 1); +} + TEST_F(DefaultEngineTest, StressTestSharedPtr) { constexpr int thread_count = 13; constexpr absl::Duration spin_time = absl::Seconds(3); diff --git a/test/core/event_engine/event_engine_test_utils.cc b/test/core/event_engine/event_engine_test_utils.cc index c2a02d4dad50f..868f2ac2f5498 100644 --- a/test/core/event_engine/event_engine_test_utils.cc +++ b/test/core/event_engine/event_engine_test_utils.cc @@ -77,32 +77,6 @@ std::string GetNextSendMessage() { return tmp_s; } -void WaitForSingleOwner(std::shared_ptr engine) { - WaitForSingleOwnerWithTimeout(std::move(engine), std::chrono::hours{24}); -} - -void WaitForSingleOwnerWithTimeout(std::shared_ptr engine, - EventEngine::Duration timeout) { - int n = 0; - auto start = std::chrono::system_clock::now(); - while (engine.use_count() > 1) { - ++n; - if (n % 100 == 0) { - LOG(INFO) << "Checking for leaks..."; - AsanAssertNoLeaks(); - } - auto remaining = timeout - (std::chrono::system_clock::now() - start); - if (remaining < std::chrono::seconds{0}) { - grpc_core::Crash("Timed out waiting for a single EventEngine owner"); - } - LOG_EVERY_N_SEC(INFO, 2) - << "engine.use_count() = " << engine.use_count() - << " timeout_remaining = " - << absl::FormatDuration(absl::Nanoseconds(remaining.count())); - absl::SleepFor(absl::Milliseconds(100)); - } -} - void AppendStringToSliceBuffer(SliceBuffer* buf, absl::string_view data) { buf->Append(Slice::FromCopiedString(data)); } diff --git a/test/core/event_engine/event_engine_test_utils.h b/test/core/event_engine/event_engine_test_utils.h index f044bf6c09f30..27294fd5cbf65 100644 --- a/test/core/event_engine/event_engine_test_utils.h +++ b/test/core/event_engine/event_engine_test_utils.h @@ -45,20 +45,6 @@ std::string ExtractSliceBufferIntoString(SliceBuffer* buf); // Returns a random message with bounded length. std::string GetNextSendMessage(); -// Waits until the use_count of the EventEngine shared_ptr has reached 1 -// and returns. -// Callers must give up their ref, or this method will block forever. -// Usage: WaitForSingleOwner(std::move(engine)) -void WaitForSingleOwner(std::shared_ptr engine); - -// Waits until the use_count of the EventEngine shared_ptr has reached 1 -// and returns. -// Callers must give up their ref, or this method will block forever. -// This version will CRASH after the given timeout -// Usage: WaitForSingleOwner(std::move(engine), 30s) -void WaitForSingleOwnerWithTimeout(std::shared_ptr engine, - EventEngine::Duration timeout); - // A helper method to exchange data between two endpoints. It is assumed // that both endpoints are connected. The data (specified as a string) is // written by the sender_endpoint and read by the receiver_endpoint. It diff --git a/test/core/event_engine/factory_test.cc b/test/core/event_engine/factory_test.cc index b8239dce4fe7d..8b118b686c754 100644 --- a/test/core/event_engine/factory_test.cc +++ b/test/core/event_engine/factory_test.cc @@ -20,6 +20,7 @@ #include "gtest/gtest.h" #include "src/core/lib/event_engine/default_event_engine.h" +#include "test/core/event_engine/mock_event_engine.h" #include "test/core/event_engine/util/aborting_event_engine.h" #include "test/core/test_util/test_config.h" @@ -28,6 +29,7 @@ using ::grpc_event_engine::experimental::AbortingEventEngine; using ::grpc_event_engine::experimental::EventEngine; using ::grpc_event_engine::experimental::EventEngineFactoryReset; using ::grpc_event_engine::experimental::GetDefaultEventEngine; +using ::grpc_event_engine::experimental::MockEventEngine; using ::grpc_event_engine::experimental::SetEventEngineFactory; class EventEngineFactoryTest : public testing::Test { @@ -51,10 +53,10 @@ TEST_F(EventEngineFactoryTest, CustomFactoryIsUsed) { TEST_F(EventEngineFactoryTest, FactoryResetWorks) { int counter{0}; - SetEventEngineFactory([&counter]() -> std::unique_ptr { + SetEventEngineFactory([&counter]() { // this factory should only be used twice; EXPECT_LE(++counter, 2); - return std::make_unique(); + return std::make_shared(); }); auto custom_ee = GetDefaultEventEngine(); ASSERT_EQ(counter, 1); @@ -65,6 +67,32 @@ TEST_F(EventEngineFactoryTest, FactoryResetWorks) { auto default_ee = GetDefaultEventEngine(); ASSERT_NE(custom_ee, default_ee); } + +TEST_F(EventEngineFactoryTest, SharedPtrGlobalEventEngineLifetimesAreValid) { + int create_count = 0; + grpc_event_engine::experimental::SetEventEngineFactory([&create_count] { + ++create_count; + return std::make_shared(); + }); + std::shared_ptr ee2; + ASSERT_EQ(0, create_count); + { + std::shared_ptr ee1 = GetDefaultEventEngine(); + ASSERT_EQ(1, create_count); + ee2 = GetDefaultEventEngine(); + ASSERT_EQ(1, create_count); + // 3 instances: ee1, ee2, and the ee owned by the factory + ASSERT_EQ(ee2.use_count(), 2); + } + // Ensure the first shared_ptr did not delete the global + ASSERT_TRUE(ee2.unique()); + // destroy the global engine via the last shared_ptr, and create a new one. + ee2.reset(); + ee2 = GetDefaultEventEngine(); + ASSERT_EQ(2, create_count); + ASSERT_TRUE(ee2.unique()); +} + } // namespace int main(int argc, char** argv) { diff --git a/test/core/event_engine/posix/posix_endpoint_test.cc b/test/core/event_engine/posix/posix_endpoint_test.cc index 64f6daeb93ad5..a21d783fd0a30 100644 --- a/test/core/event_engine/posix/posix_endpoint_test.cc +++ b/test/core/event_engine/posix/posix_endpoint_test.cc @@ -48,6 +48,7 @@ #include "src/core/util/dual_ref_counted.h" #include "src/core/util/notification.h" #include "src/core/util/ref_counted_ptr.h" +#include "src/core/util/wait_for_single_owner.h" #include "test/core/event_engine/event_engine_test_utils.h" #include "test/core/event_engine/posix/posix_engine_test_utils.h" #include "test/core/event_engine/test_suite/posix/oracle_event_engine_posix.h" @@ -211,8 +212,8 @@ class PosixEndpointTest : public ::testing::TestWithParam { if (poller_ != nullptr) { poller_->Shutdown(); } - WaitForSingleOwner(std::move(posix_ee_)); - WaitForSingleOwner(std::move(oracle_ee_)); + grpc_core::WaitForSingleOwner(std::move(posix_ee_)); + grpc_core::WaitForSingleOwner(std::move(oracle_ee_)); } public: diff --git a/test/core/event_engine/posix/posix_event_engine_connect_test.cc b/test/core/event_engine/posix/posix_event_engine_connect_test.cc index 19f2819c51eef..e3b055c4fa745 100644 --- a/test/core/event_engine/posix/posix_event_engine_connect_test.cc +++ b/test/core/event_engine/posix/posix_event_engine_connect_test.cc @@ -45,6 +45,7 @@ #include "src/core/lib/resource_quota/resource_quota.h" #include "src/core/util/crash.h" #include "src/core/util/notification.h" +#include "src/core/util/wait_for_single_owner.h" #include "test/core/event_engine/event_engine_test_utils.h" #include "test/core/test_util/port.h" #include "test/core/test_util/test_config.h" @@ -166,7 +167,7 @@ TEST(PosixEventEngineTest, IndefiniteConnectTimeoutOrRstTest) { for (auto sock : sockets) { close(sock); } - WaitForSingleOwner(std::move(posix_ee)); + grpc_core::WaitForSingleOwner(std::move(posix_ee)); } TEST(PosixEventEngineTest, IndefiniteConnectCancellationTest) { @@ -196,7 +197,7 @@ TEST(PosixEventEngineTest, IndefiniteConnectCancellationTest) { for (auto sock : sockets) { close(sock); } - WaitForSingleOwner(std::move(posix_ee)); + grpc_core::WaitForSingleOwner(std::move(posix_ee)); } } // namespace experimental diff --git a/test/core/event_engine/smoke_test.cc b/test/core/event_engine/smoke_test.cc deleted file mode 100644 index 0a53992b15ef2..0000000000000 --- a/test/core/event_engine/smoke_test.cc +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2022 The gRPC Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -#include -#include -#include - -#include - -#include "gmock/gmock.h" -#include "gtest/gtest.h" -#include "test/core/test_util/test_config.h" - -namespace { - -using ::testing::MockFunction; - -class EventEngineSmokeTest : public testing::Test {}; - -TEST_F(EventEngineSmokeTest, SetEventEngineFactoryLinks) { - // See https://github.com/grpc/grpc/pull/28707 - testing::MockFunction< - std::unique_ptr()> - factory; - EXPECT_CALL(factory, Call()).Times(1); - grpc_event_engine::experimental::SetEventEngineFactory( - factory.AsStdFunction()); - EXPECT_EQ(nullptr, grpc_event_engine::experimental::CreateEventEngine()); -} - -} // namespace - -int main(int argc, char** argv) { - testing::InitGoogleTest(&argc, argv); - grpc::testing::TestEnvironment env(&argc, argv); - grpc_init(); - auto result = RUN_ALL_TESTS(); - grpc_shutdown(); - return result; -} diff --git a/test/core/ext/filters/event_engine_client_channel_resolver/resolver_fuzzer.cc b/test/core/ext/filters/event_engine_client_channel_resolver/resolver_fuzzer.cc index 0191e71008924..e29640b6d6c1b 100644 --- a/test/core/ext/filters/event_engine_client_channel_resolver/resolver_fuzzer.cc +++ b/test/core/ext/filters/event_engine_client_channel_resolver/resolver_fuzzer.cc @@ -55,7 +55,6 @@ namespace { using event_engine_client_channel_resolver::ExecutionStep; using event_engine_client_channel_resolver::TXTRecordType; using grpc_core::EventEngineClientChannelDNSResolverFactory; -using grpc_event_engine::experimental::EventEngine; using grpc_event_engine::experimental::FuzzingEventEngine; using grpc_event_engine::experimental::URIToResolvedAddress; @@ -261,12 +260,9 @@ DEFINE_PROTO_FUZZER(const event_engine_client_channel_resolver::Msg& msg) { bool done_resolving = false; grpc_core::ApplyFuzzConfigVars(msg.config_vars()); grpc_core::TestOnlyReloadExperimentsFromConfigVariables(); - grpc_event_engine::experimental::SetEventEngineFactory([msg, - &done_resolving]() { - return std::make_unique(msg, &done_resolving); - }); - auto engine = std::static_pointer_cast( - grpc_event_engine::experimental::GetDefaultEventEngine()); + auto engine = + std::make_shared(msg, &done_resolving); + grpc_event_engine::experimental::SetDefaultEventEngine(engine); { // scoped to ensure the resolver is orphaned when done resolving. auto work_serializer = std::make_shared(engine); @@ -286,6 +282,7 @@ DEFINE_PROTO_FUZZER(const event_engine_client_channel_resolver::Msg& msg) { engine->Tick(); } } + grpc_event_engine::experimental::SetDefaultEventEngine(nullptr); // If orphaned early, callbacks may still need to run, which may keep the // resolver alive. while (engine.use_count() > 1) engine->Tick(); diff --git a/test/core/filters/filter_test.cc b/test/core/filters/filter_test.cc index ffe338401d0c3..2b302de3bbdd1 100644 --- a/test/core/filters/filter_test.cc +++ b/test/core/filters/filter_test.cc @@ -41,7 +41,6 @@ #include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h" using grpc_event_engine::experimental::FuzzingEventEngine; -using grpc_event_engine::experimental::GetDefaultEventEngine; namespace grpc_core { @@ -409,15 +408,12 @@ void FilterTestBase::Call::FinishNextFilter(ServerMetadataHandle md) { // FilterTestBase FilterTestBase::FilterTestBase() { - grpc_event_engine::experimental::SetEventEngineFactory([]() { - FuzzingEventEngine::Options options; - options.max_delay_run_after = std::chrono::milliseconds(500); - options.max_delay_write = std::chrono::milliseconds(50); - return std::make_unique( - options, fuzzing_event_engine::Actions()); - }); - event_engine_ = - std::dynamic_pointer_cast(GetDefaultEventEngine()); + FuzzingEventEngine::Options options; + options.max_delay_run_after = std::chrono::milliseconds(500); + options.max_delay_write = std::chrono::milliseconds(50); + event_engine_ = std::make_shared( + options, fuzzing_event_engine::Actions()); + grpc_event_engine::experimental::SetDefaultEventEngine(event_engine_); grpc_timer_manager_set_start_threaded(false); grpc_init(); } @@ -425,6 +421,8 @@ FilterTestBase::FilterTestBase() { FilterTestBase::~FilterTestBase() { grpc_shutdown(); event_engine_->UnsetGlobalHooks(); + event_engine_.reset(); + grpc_event_engine::experimental::ShutdownDefaultEventEngine(); } void FilterTestBase::Step() { diff --git a/test/core/load_balancing/lb_policy_test_lib.h b/test/core/load_balancing/lb_policy_test_lib.h index 58ed5cf4d7632..cfb25acf56b3d 100644 --- a/test/core/load_balancing/lb_policy_test_lib.h +++ b/test/core/load_balancing/lb_policy_test_lib.h @@ -84,6 +84,7 @@ #include "src/core/util/time.h" #include "src/core/util/unique_type_name.h" #include "src/core/util/uri.h" +#include "src/core/util/wait_for_single_owner.h" #include "src/core/util/work_serializer.h" #include "test/core/event_engine/event_engine_test_utils.h" #include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h" @@ -746,7 +747,7 @@ class LoadBalancingPolicyTest : public ::testing::Test { lb_policy_.reset(); } fuzzing_ee_->TickUntilIdle(); - grpc_event_engine::experimental::WaitForSingleOwner(std::move(fuzzing_ee_)); + WaitForSingleOwner(std::move(fuzzing_ee_)); grpc_shutdown_blocking(); } diff --git a/test/core/security/credentials_test.cc b/test/core/security/credentials_test.cc index 27be78e35d643..05aa18e761df5 100644 --- a/test/core/security/credentials_test.cc +++ b/test/core/security/credentials_test.cc @@ -72,6 +72,7 @@ #include "src/core/util/tmpfile.h" #include "src/core/util/unique_type_name.h" #include "src/core/util/uri.h" +#include "src/core/util/wait_for_single_owner.h" #include "test/core/event_engine/event_engine_test_utils.h" #include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h" #include "test/core/test_util/test_config.h" @@ -2469,8 +2470,7 @@ class TokenFetcherCredentialsTest : public ::testing::Test { event_engine_->TickUntilIdle(); event_engine_->UnsetGlobalHooks(); creds_.reset(); - grpc_event_engine::experimental::WaitForSingleOwner( - std::move(event_engine_)); + WaitForSingleOwner(std::move(event_engine_)); grpc_shutdown_blocking(); } @@ -2820,8 +2820,7 @@ class ExternalAccountCredentialsTest : public ::testing::Test { event_engine_->FuzzingDone(); event_engine_->TickUntilIdle(); event_engine_->UnsetGlobalHooks(); - grpc_event_engine::experimental::WaitForSingleOwner( - std::move(event_engine_)); + WaitForSingleOwner(std::move(event_engine_)); grpc_shutdown_blocking(); } diff --git a/test/core/security/grpc_tls_crl_provider_test.cc b/test/core/security/grpc_tls_crl_provider_test.cc index 6331283effbce..764d7c19355a6 100644 --- a/test/core/security/grpc_tls_crl_provider_test.cc +++ b/test/core/security/grpc_tls_crl_provider_test.cc @@ -35,6 +35,7 @@ #include "absl/strings/string_view.h" #include "src/core/lib/event_engine/default_event_engine.h" #include "src/core/lib/iomgr/timer_manager.h" +#include "src/core/util/wait_for_single_owner.h" #include "test/core/event_engine/event_engine_test_utils.h" #include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h" #include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h" @@ -127,8 +128,7 @@ class DirectoryReloaderCrlProviderTest : public CrlProviderTest { event_engine_->FuzzingDone(); exec_ctx.Flush(); event_engine_->TickUntilIdle(); - grpc_event_engine::experimental::WaitForSingleOwner( - std::move(event_engine_)); + WaitForSingleOwner(std::move(event_engine_)); grpc_shutdown_blocking(); event_engine_.reset(); } diff --git a/test/core/util/BUILD b/test/core/util/BUILD index e1154cf4c4baf..13ffb23621f40 100644 --- a/test/core/util/BUILD +++ b/test/core/util/BUILD @@ -795,6 +795,18 @@ grpc_cc_test( ], ) +grpc_cc_test( + name = "wait_for_single_owner_test", + srcs = ["wait_for_single_owner_test.cc"], + external_deps = ["gtest"], + language = "C++", + uses_event_engine = False, + uses_polling = False, + deps = [ + "//src/core:wait_for_single_owner", + ], +) + grpc_fuzz_test( name = "tdigest_fuzztest", srcs = ["tdigest_fuzztest.cc"], diff --git a/test/core/util/wait_for_single_owner_test.cc b/test/core/util/wait_for_single_owner_test.cc new file mode 100644 index 0000000000000..ba765643adabd --- /dev/null +++ b/test/core/util/wait_for_single_owner_test.cc @@ -0,0 +1,44 @@ +// Copyright 2024 gRPC authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "src/core/util/wait_for_single_owner.h" + +#include +#include + +#include "gtest/gtest.h" + +TEST(WaitForSingleOwner, Finishes) { + auto i = std::make_shared(3); + grpc_core::WaitForSingleOwner(std::move(i)); +} + +TEST(WaitForSingleOwner, DoesNotFinishWithAHeldInstance) { + auto i = std::make_shared(3); + auto timeout = grpc_core::Duration::Seconds(1); + auto start = grpc_core::Timestamp::Now(); + std::thread t{[i, &timeout]() { + // Keeps i alive for a short fixed time + absl::SleepFor(absl::Milliseconds(timeout.millis())); + }}; + grpc_core::WaitForSingleOwner(std::move(i)); + auto duration = grpc_core::Timestamp::Now() - start; + ASSERT_GE(duration, timeout); + t.join(); +} + +int main(int argc, char** argv) { + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/test/core/util/work_serializer_test.cc b/test/core/util/work_serializer_test.cc index e32a83bf31d7c..49e3880bd9615 100644 --- a/test/core/util/work_serializer_test.cc +++ b/test/core/util/work_serializer_test.cc @@ -41,11 +41,11 @@ #include "src/core/telemetry/stats_data.h" #include "src/core/util/notification.h" #include "src/core/util/thd.h" +#include "src/core/util/wait_for_single_owner.h" #include "test/core/event_engine/event_engine_test_utils.h" #include "test/core/test_util/test_config.h" using grpc_event_engine::experimental::GetDefaultEventEngine; -using grpc_event_engine::experimental::WaitForSingleOwner; namespace grpc_core { namespace { diff --git a/test/core/xds/xds_client_fuzzer.cc b/test/core/xds/xds_client_fuzzer.cc index bfc61efab233b..bfa7cdadfa17c 100644 --- a/test/core/xds/xds_client_fuzzer.cc +++ b/test/core/xds/xds_client_fuzzer.cc @@ -33,6 +33,7 @@ #include "src/core/lib/iomgr/timer_manager.h" #include "src/core/util/orphanable.h" #include "src/core/util/ref_counted_ptr.h" +#include "src/core/util/wait_for_single_owner.h" #include "src/core/xds/grpc/xds_bootstrap_grpc.h" #include "src/core/xds/grpc/xds_cluster.h" #include "src/core/xds/grpc/xds_cluster_parser.h" @@ -84,8 +85,7 @@ class Fuzzer { event_engine_->FuzzingDone(); event_engine_->TickUntilIdle(); event_engine_->UnsetGlobalHooks(); - grpc_event_engine::experimental::WaitForSingleOwner( - std::move(event_engine_)); + WaitForSingleOwner(std::move(event_engine_)); grpc_shutdown_blocking(); } diff --git a/test/core/xds/xds_client_test.cc b/test/core/xds/xds_client_test.cc index 26fc25d8401b3..5fb0444f6e12f 100644 --- a/test/core/xds/xds_client_test.cc +++ b/test/core/xds/xds_client_test.cc @@ -52,6 +52,7 @@ #include "src/core/util/json/json_writer.h" #include "src/core/util/match.h" #include "src/core/util/sync.h" +#include "src/core/util/wait_for_single_owner.h" #include "src/core/xds/xds_client/xds_bootstrap.h" #include "src/core/xds/xds_client/xds_resource_type_impl.h" #include "test/core/event_engine/event_engine_test_utils.h" @@ -773,8 +774,7 @@ class XdsClientTest : public ::testing::Test { event_engine_->FuzzingDone(); event_engine_->TickUntilIdle(); event_engine_->UnsetGlobalHooks(); - grpc_event_engine::experimental::WaitForSingleOwner( - std::move(event_engine_)); + WaitForSingleOwner(std::move(event_engine_)); grpc_shutdown_blocking(); } diff --git a/test/cpp/end2end/channelz_service_test.cc b/test/cpp/end2end/channelz_service_test.cc index 62839f425f42a..9f4ed3a172967 100644 --- a/test/cpp/end2end/channelz_service_test.cc +++ b/test/cpp/end2end/channelz_service_test.cc @@ -38,6 +38,7 @@ #include "src/core/lib/security/security_connector/ssl_utils.h" #include "src/core/lib/slice/slice_internal.h" #include "src/core/util/env.h" +#include "src/core/util/wait_for_single_owner.h" #include "src/cpp/client/secure_credentials.h" #include "src/proto/grpc/channelz/channelz.grpc.pb.h" #include "src/proto/grpc/testing/echo.grpc.pb.h" @@ -218,7 +219,7 @@ class ChannelzServerTest : public ::testing::TestWithParam { // Ensure all pending callbacks are handled before finishing the test // to ensure hygiene between test cases. // (requires any grpc-object-holding values be cleared out first). - grpc_event_engine::experimental::WaitForSingleOwner( + grpc_core::WaitForSingleOwner( grpc_event_engine::experimental::GetDefaultEventEngine()); } diff --git a/test/cpp/end2end/rls_end2end_test.cc b/test/cpp/end2end/rls_end2end_test.cc index f1afa0e9acb36..0a711be69006d 100644 --- a/test/cpp/end2end/rls_end2end_test.cc +++ b/test/cpp/end2end/rls_end2end_test.cc @@ -53,6 +53,7 @@ #include "src/core/util/host_port.h" #include "src/core/util/time.h" #include "src/core/util/uri.h" +#include "src/core/util/wait_for_single_owner.h" #include "src/cpp/server/secure_server_credentials.h" #include "src/proto/grpc/lookup/v1/rls.grpc.pb.h" #include "src/proto/grpc/lookup/v1/rls.pb.h" @@ -175,7 +176,7 @@ class RlsEnd2endTest : public ::testing::Test { static void TearDownTestSuite() { grpc_shutdown_blocking(); - WaitForSingleOwner( + grpc_core::WaitForSingleOwner( grpc_event_engine::experimental::GetDefaultEventEngine()); grpc_core::CoreConfiguration::Reset(); } diff --git a/test/cpp/performance/writes_per_rpc_test.cc b/test/cpp/performance/writes_per_rpc_test.cc index b8370366bdbb5..3fe557dc17663 100644 --- a/test/cpp/performance/writes_per_rpc_test.cc +++ b/test/cpp/performance/writes_per_rpc_test.cc @@ -290,14 +290,10 @@ TEST(WritesPerRpcTest, UnaryPingPong) { } // namespace grpc int main(int argc, char** argv) { - grpc_event_engine::experimental::SetEventEngineFactory( - []() -> std::unique_ptr { - return std::make_unique< - grpc_event_engine::experimental::ThreadedFuzzingEventEngine>( - std::chrono::milliseconds(1)); - }); - // avoids a race around gpr_now_impl - auto engine = grpc_event_engine::experimental::GetDefaultEventEngine(); + grpc_event_engine::experimental::DefaultEventEngineScope engine_scope( + std::make_shared< + grpc_event_engine::experimental::ThreadedFuzzingEventEngine>( + std::chrono::milliseconds(1))); ::testing::InitGoogleTest(&argc, argv); grpc::testing::TestEnvironment env(&argc, argv); grpc_init(); diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal index db53f1a1b492f..a351f4d3a28dc 100644 --- a/tools/doxygen/Doxyfile.c++.internal +++ b/tools/doxygen/Doxyfile.c++.internal @@ -2942,6 +2942,7 @@ src/core/util/uuid_v4.cc \ src/core/util/uuid_v4.h \ src/core/util/validation_errors.cc \ src/core/util/validation_errors.h \ +src/core/util/wait_for_single_owner.h \ src/core/util/windows/cpu.cc \ src/core/util/windows/directory_reader.cc \ src/core/util/windows/env.cc \ diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal index 3ff07be6aad63..bfcffeee6048b 100644 --- a/tools/doxygen/Doxyfile.core.internal +++ b/tools/doxygen/Doxyfile.core.internal @@ -2758,6 +2758,7 @@ src/core/util/uuid_v4.cc \ src/core/util/uuid_v4.h \ src/core/util/validation_errors.cc \ src/core/util/validation_errors.h \ +src/core/util/wait_for_single_owner.h \ src/core/util/windows/cpu.cc \ src/core/util/windows/directory_reader.cc \ src/core/util/windows/env.cc \ diff --git a/tools/run_tests/generated/tests.json b/tools/run_tests/generated/tests.json index 5b6d18c3256ae..f7fae4f60340c 100644 --- a/tools/run_tests/generated/tests.json +++ b/tools/run_tests/generated/tests.json @@ -2377,7 +2377,7 @@ "posix", "windows" ], - "uses_polling": true + "uses_polling": false }, { "args": [], @@ -2803,7 +2803,7 @@ "posix", "windows" ], - "uses_polling": true + "uses_polling": false }, { "args": [], @@ -3493,7 +3493,7 @@ "posix", "windows" ], - "uses_polling": true + "uses_polling": false }, { "args": [], @@ -9829,30 +9829,6 @@ ], "uses_polling": false }, - { - "args": [], - "benchmark": false, - "ci_platforms": [ - "linux", - "mac", - "posix", - "windows" - ], - "cpu_cost": 1.0, - "exclude_configs": [], - "exclude_iomgrs": [], - "flaky": false, - "gtest": true, - "language": "c++", - "name": "smoke_test", - "platforms": [ - "linux", - "mac", - "posix", - "windows" - ], - "uses_polling": true - }, { "args": [], "benchmark": false, @@ -10695,7 +10671,7 @@ "posix", "windows" ], - "uses_polling": true + "uses_polling": false }, { "args": [], @@ -11075,7 +11051,7 @@ "posix", "windows" ], - "uses_polling": true + "uses_polling": false }, { "args": [], @@ -11767,6 +11743,30 @@ ], "uses_polling": false }, + { + "args": [], + "benchmark": false, + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "cpu_cost": 1.0, + "exclude_configs": [], + "exclude_iomgrs": [], + "flaky": false, + "gtest": true, + "language": "c++", + "name": "wait_for_single_owner_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "uses_polling": false + }, { "args": [], "benchmark": false, From 7c4883db25dd2870066de2e268ad3776652065cd Mon Sep 17 00:00:00 2001 From: Esun Kim Date: Thu, 16 Jan 2025 15:44:35 -0800 Subject: [PATCH 13/15] [Bazel] Disable use_fast_cpp_protos=true (#38482) Bazel build option `use_fast_cpp_protos=true` was added by https://github.com/grpc/grpc/pull/21480 to presumably make the python test run faster. This option is not working with Bazel 8 anymore and the Protobuf team is deprecating this (Using C++ implementation) in favor of upb one (which is not ready for Bazel yet) so let's not use this option. Partial commit of https://github.com/grpc/grpc/pull/38254 Closes #38482 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/38482 from veblush:b8-no-use_fast_cpp_protos 25c8fbd752f7d8cf6fb82a163b1a611df53d40e6 PiperOrigin-RevId: 716405945 --- tools/bazel.rc | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/bazel.rc b/tools/bazel.rc index 5f943788a6289..87e2d8058a9d9 100644 --- a/tools/bazel.rc +++ b/tools/bazel.rc @@ -30,7 +30,6 @@ build --client_env=CC=clang build --copt=-DGRPC_BAZEL_BUILD build --host_copt=-DGRPC_BAZEL_BUILD build --action_env=GRPC_BAZEL_RUNTIME=1 -build --define=use_fast_cpp_protos=true build:opt --compilation_mode=opt build:opt --copt=-Wframe-larger-than=16384 From 4d71ea1b8aba09a8887095963a4a968328a4d68f Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Thu, 16 Jan 2025 16:04:54 -0800 Subject: [PATCH 14/15] [chaotic-good] Remove legacy protocol (#38461) Cleanup: this should no longer be used. Closes #38461 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/38461 from ctiller:no-more-legacy e413f19fb22c9547d1b4c9c348ee49e58b609c48 PiperOrigin-RevId: 716412168 --- CMakeLists.txt | 637 -------- bazel/experiments.bzl | 4 - build_autogenerated.yaml | 1365 ----------------- src/core/BUILD | 347 ----- .../client/chaotic_good_connector.cc | 4 - .../server/chaotic_good_server.cc | 4 - .../chaotic_good_transport.h | 142 -- .../client/chaotic_good_connector.cc | 410 ----- .../client/chaotic_good_connector.h | 108 -- .../chaotic_good_legacy/client_transport.cc | 389 ----- .../chaotic_good_legacy/client_transport.h | 118 -- .../transport/chaotic_good_legacy/frame.cc | 417 ----- .../ext/transport/chaotic_good_legacy/frame.h | 194 --- .../chaotic_good_legacy/frame_header.cc | 86 -- .../chaotic_good_legacy/frame_header.h | 80 - .../server/chaotic_good_server.cc | 513 ------- .../server/chaotic_good_server.h | 173 --- .../chaotic_good_legacy/server_transport.cc | 527 ------- .../chaotic_good_legacy/server_transport.h | 158 -- .../chaotic_good_legacy/settings_metadata.cc | 79 - .../chaotic_good_legacy/settings_metadata.h | 46 - src/core/lib/experiments/experiments.cc | 21 - src/core/lib/experiments/experiments.h | 8 - src/core/lib/experiments/experiments.yaml | 5 - test/core/transport/chaotic_good_legacy/BUILD | 251 --- .../chaotic_good_server_test.cc | 156 -- .../client_transport_error_test.cc | 407 ----- .../client_transport_test.cc | 280 ---- .../chaotic_good_legacy/frame_fuzzer.cc | 136 -- .../chaotic_good_legacy/frame_fuzzer.proto | 23 - ...se-minimized-frame_fuzzer-4558239670272000 | 1 - .../frame_fuzzer_corpus/empty | 1 - .../testcase-5162634043785216 | 2 - .../frame_header_fuzzer.cc | 33 - .../frame_header_fuzzer_corpus/0 | 1 - .../chaotic_good_legacy/frame_header_test.cc | 102 -- .../chaotic_good_legacy/frame_test.cc | 73 - .../mock_promise_endpoint.cc | 89 -- .../mock_promise_endpoint.h | 90 -- .../server_transport_test.cc | 199 --- .../chaotic_good_legacy/transport_test.cc | 60 - .../chaotic_good_legacy/transport_test.h | 83 - 42 files changed, 7822 deletions(-) delete mode 100644 src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h delete mode 100644 src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc delete mode 100644 src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h delete mode 100644 src/core/ext/transport/chaotic_good_legacy/client_transport.cc delete mode 100644 src/core/ext/transport/chaotic_good_legacy/client_transport.h delete mode 100644 src/core/ext/transport/chaotic_good_legacy/frame.cc delete mode 100644 src/core/ext/transport/chaotic_good_legacy/frame.h delete mode 100644 src/core/ext/transport/chaotic_good_legacy/frame_header.cc delete mode 100644 src/core/ext/transport/chaotic_good_legacy/frame_header.h delete mode 100644 src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc delete mode 100644 src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h delete mode 100644 src/core/ext/transport/chaotic_good_legacy/server_transport.cc delete mode 100644 src/core/ext/transport/chaotic_good_legacy/server_transport.h delete mode 100644 src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc delete mode 100644 src/core/ext/transport/chaotic_good_legacy/settings_metadata.h delete mode 100644 test/core/transport/chaotic_good_legacy/BUILD delete mode 100644 test/core/transport/chaotic_good_legacy/chaotic_good_server_test.cc delete mode 100644 test/core/transport/chaotic_good_legacy/client_transport_error_test.cc delete mode 100644 test/core/transport/chaotic_good_legacy/client_transport_test.cc delete mode 100644 test/core/transport/chaotic_good_legacy/frame_fuzzer.cc delete mode 100644 test/core/transport/chaotic_good_legacy/frame_fuzzer.proto delete mode 100644 test/core/transport/chaotic_good_legacy/frame_fuzzer_corpus/clusterfuzz-testcase-minimized-frame_fuzzer-4558239670272000 delete mode 100644 test/core/transport/chaotic_good_legacy/frame_fuzzer_corpus/empty delete mode 100644 test/core/transport/chaotic_good_legacy/frame_fuzzer_corpus/testcase-5162634043785216 delete mode 100644 test/core/transport/chaotic_good_legacy/frame_header_fuzzer.cc delete mode 100644 test/core/transport/chaotic_good_legacy/frame_header_fuzzer_corpus/0 delete mode 100644 test/core/transport/chaotic_good_legacy/frame_header_test.cc delete mode 100644 test/core/transport/chaotic_good_legacy/frame_test.cc delete mode 100644 test/core/transport/chaotic_good_legacy/mock_promise_endpoint.cc delete mode 100644 test/core/transport/chaotic_good_legacy/mock_promise_endpoint.h delete mode 100644 test/core/transport/chaotic_good_legacy/server_transport_test.cc delete mode 100644 test/core/transport/chaotic_good_legacy/transport_test.cc delete mode 100644 test/core/transport/chaotic_good_legacy/transport_test.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 13e9d8817ca19..7ba9f95788e15 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8477,13 +8477,6 @@ add_executable(bad_ping_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -8966,13 +8959,6 @@ add_executable(binary_metadata_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -9313,13 +9299,6 @@ add_executable(call_creds_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -9527,13 +9506,6 @@ add_executable(call_host_override_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -10046,13 +10018,6 @@ add_executable(cancel_after_accept_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -10122,13 +10087,6 @@ add_executable(cancel_after_client_done_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -10198,13 +10156,6 @@ add_executable(cancel_after_invoke_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -10274,13 +10225,6 @@ add_executable(cancel_after_round_trip_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -10397,13 +10341,6 @@ add_executable(cancel_before_invoke_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -10550,13 +10487,6 @@ add_executable(cancel_in_a_vacuum_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -10626,13 +10556,6 @@ add_executable(cancel_with_status_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -12651,13 +12574,6 @@ add_executable(client_streaming_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -13003,13 +12919,6 @@ add_executable(compressed_payload_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -13405,13 +13314,6 @@ add_executable(connectivity_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -13879,13 +13781,6 @@ add_executable(default_host_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -14116,13 +14011,6 @@ add_executable(disappearing_server_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -14485,13 +14373,6 @@ add_executable(empty_batch_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -15638,13 +15519,6 @@ add_executable(filter_causes_close_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -15714,13 +15588,6 @@ add_executable(filter_init_fails_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -15840,13 +15707,6 @@ add_executable(filtered_metadata_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -16794,13 +16654,6 @@ add_executable(graceful_server_shutdown_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -17189,13 +17042,6 @@ add_executable(grpc_authz_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -18642,13 +18488,6 @@ add_executable(high_initial_seqno_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -18964,13 +18803,6 @@ add_executable(hpack_size_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -19241,13 +19073,6 @@ add_executable(http2_stats_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -20212,13 +20037,6 @@ add_executable(invoke_large_request_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -20616,13 +20434,6 @@ add_executable(keepalive_timeout_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -20735,13 +20546,6 @@ add_executable(large_metadata_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -21515,13 +21319,6 @@ add_executable(max_concurrent_streams_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -21591,13 +21388,6 @@ add_executable(max_connection_age_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -21667,13 +21457,6 @@ add_executable(max_connection_idle_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -21743,13 +21526,6 @@ add_executable(max_message_length_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -22494,13 +22270,6 @@ add_executable(negative_deadline_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -22602,13 +22371,6 @@ add_executable(no_logging_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -22678,13 +22440,6 @@ add_executable(no_op_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -23720,13 +23475,6 @@ add_executable(payload_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -24100,13 +23848,6 @@ add_executable(ping_pong_streaming_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -24227,13 +23968,6 @@ add_executable(ping_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -25769,13 +25503,6 @@ add_executable(proxy_auth_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -26374,13 +26101,6 @@ add_executable(registered_call_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -26594,13 +26314,6 @@ add_executable(request_with_flags_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -26670,13 +26383,6 @@ add_executable(request_with_payload_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -27033,13 +26739,6 @@ add_executable(resource_quota_server_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -27151,13 +26850,6 @@ add_executable(retry_cancel_after_first_attempt_starts_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -27227,13 +26919,6 @@ add_executable(retry_cancel_during_delay_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -27303,13 +26988,6 @@ add_executable(retry_cancel_with_multiple_send_batches_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -27379,13 +27057,6 @@ add_executable(retry_cancellation_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -27455,13 +27126,6 @@ add_executable(retry_disabled_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -27531,13 +27195,6 @@ add_executable(retry_exceeds_buffer_size_in_delay_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -27607,13 +27264,6 @@ add_executable(retry_exceeds_buffer_size_in_initial_batch_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -27683,13 +27333,6 @@ add_executable(retry_exceeds_buffer_size_in_subsequent_batch_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -27812,13 +27455,6 @@ add_executable(retry_lb_drop_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -27888,13 +27524,6 @@ add_executable(retry_lb_fail_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -27964,13 +27593,6 @@ add_executable(retry_non_retriable_status_before_trailers_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -28040,13 +27662,6 @@ add_executable(retry_non_retriable_status_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -28116,13 +27731,6 @@ add_executable(retry_per_attempt_recv_timeout_on_last_attempt_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -28192,13 +27800,6 @@ add_executable(retry_per_attempt_recv_timeout_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -28268,13 +27869,6 @@ add_executable(retry_recv_initial_metadata_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -28344,13 +27938,6 @@ add_executable(retry_recv_message_replay_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -28420,13 +28007,6 @@ add_executable(retry_recv_message_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -28496,13 +28076,6 @@ add_executable(retry_recv_trailing_metadata_error_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -28572,13 +28145,6 @@ add_executable(retry_send_initial_metadata_refs_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -28648,13 +28214,6 @@ add_executable(retry_send_op_fails_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -28724,13 +28283,6 @@ add_executable(retry_send_recv_batch_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -28800,13 +28352,6 @@ add_executable(retry_server_pushback_delay_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -28876,13 +28421,6 @@ add_executable(retry_server_pushback_disabled_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -28994,13 +28532,6 @@ add_executable(retry_streaming_after_commit_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -29070,13 +28601,6 @@ add_executable(retry_streaming_succeeds_before_replay_finished_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -29146,13 +28670,6 @@ add_executable(retry_streaming_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -29222,13 +28739,6 @@ add_executable(retry_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -29340,13 +28850,6 @@ add_executable(retry_throttled_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -29416,13 +28919,6 @@ add_executable(retry_too_many_attempts_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -29492,13 +28988,6 @@ add_executable(retry_transparent_goaway_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -29568,13 +29057,6 @@ add_executable(retry_transparent_max_concurrent_streams_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -29644,13 +29126,6 @@ add_executable(retry_transparent_not_sent_on_wire_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -29720,13 +29195,6 @@ add_executable(retry_unref_before_finish_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -29796,13 +29264,6 @@ add_executable(retry_unref_before_recv_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -30964,13 +30425,6 @@ add_executable(server_finishes_request_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -31293,13 +30747,6 @@ add_executable(server_streaming_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -31584,13 +31031,6 @@ add_executable(shutdown_finishes_calls_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -31660,13 +31100,6 @@ add_executable(shutdown_finishes_tags_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -31815,13 +31248,6 @@ add_executable(simple_delayed_request_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -31891,13 +31317,6 @@ add_executable(simple_metadata_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -32011,13 +31430,6 @@ add_executable(simple_request_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -32910,13 +32322,6 @@ add_executable(streaming_error_response_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -33754,13 +33159,6 @@ add_executable(test_core_end2end_channelz_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -34410,13 +33808,6 @@ add_executable(test_cpp_ext_chaotic_good_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc src/cpp/ext/chaotic_good.cc test/cpp/ext/chaotic_good_test.cc @@ -34998,13 +34389,6 @@ add_executable(timeout_before_request_call_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -35635,13 +35019,6 @@ add_executable(trailing_metadata_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -36661,13 +36038,6 @@ add_executable(write_buffering_at_end_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc @@ -36737,13 +36107,6 @@ add_executable(write_buffering_test src/core/ext/transport/chaotic_good/frame_header.cc src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc src/core/ext/transport/chaotic_good/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - src/core/ext/transport/chaotic_good_legacy/frame.cc - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc src/core/lib/transport/promise_endpoint.cc test/core/call/batch_builder.cc test/core/end2end/cq_verifier.cc diff --git a/bazel/experiments.bzl b/bazel/experiments.bzl index 5021b557e85ac..ad0a7b45f647f 100644 --- a/bazel/experiments.bzl +++ b/bazel/experiments.bzl @@ -20,7 +20,6 @@ EXPERIMENT_ENABLES = { "backoff_cap_initial_at_max": "backoff_cap_initial_at_max", "call_tracer_in_transport": "call_tracer_in_transport", "callv3_client_auth_filter": "callv3_client_auth_filter", - "chaotic_good_legacy_protocol": "chaotic_good_legacy_protocol", "disable_buffer_hint_on_high_memory_pressure": "disable_buffer_hint_on_high_memory_pressure", "event_engine_application_callbacks": "event_engine_application_callbacks", "event_engine_callback_cq": "event_engine_application_callbacks,event_engine_callback_cq", @@ -65,7 +64,6 @@ EXPERIMENTS = { "off": { "core_end2end_test": [ "callv3_client_auth_filter", - "chaotic_good_legacy_protocol", "event_engine_dns_non_client_channel", "local_connector_secure", "posix_ee_skip_grpc_init", @@ -132,7 +130,6 @@ EXPERIMENTS = { "off": { "core_end2end_test": [ "callv3_client_auth_filter", - "chaotic_good_legacy_protocol", "event_engine_dns_non_client_channel", "local_connector_secure", "posix_ee_skip_grpc_init", @@ -185,7 +182,6 @@ EXPERIMENTS = { "off": { "core_end2end_test": [ "callv3_client_auth_filter", - "chaotic_good_legacy_protocol", "event_engine_dns_non_client_channel", "local_connector_secure", "posix_ee_skip_grpc_init", diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml index 75279eb8c5954..fcf047ea6b98f 100644 --- a/build_autogenerated.yaml +++ b/build_autogenerated.yaml @@ -5958,14 +5958,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -6004,13 +5996,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -6211,14 +6196,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -6257,13 +6234,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -6430,14 +6400,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -6476,13 +6438,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -6687,14 +6642,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -6733,13 +6680,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -7433,14 +7373,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -7479,13 +7411,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -7523,14 +7448,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -7569,13 +7486,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -7614,14 +7524,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -7660,13 +7562,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -7704,14 +7599,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -7750,13 +7637,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -7811,14 +7691,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -7857,13 +7729,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -8005,14 +7870,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -8051,13 +7908,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -8096,14 +7946,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -8142,13 +7984,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -9269,14 +9104,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -9315,13 +9142,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -9471,14 +9291,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -9517,13 +9329,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -9690,14 +9495,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -9736,13 +9533,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -9896,14 +9686,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -9942,13 +9724,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -10027,14 +9802,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -10073,13 +9840,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -10205,14 +9965,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -10251,13 +10003,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -10770,14 +10515,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -10816,13 +10553,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -10860,14 +10590,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -10906,13 +10628,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -10968,14 +10683,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -11014,13 +10721,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -11544,14 +11244,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -11590,13 +11282,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -11770,14 +11455,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -11816,13 +11493,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -12368,14 +12038,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -12414,13 +12076,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -12589,14 +12244,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -12635,13 +12282,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -12775,14 +12415,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -12821,13 +12453,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -13306,14 +12931,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -13352,13 +12969,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -13541,14 +13151,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -13587,13 +13189,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -13643,14 +13238,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -13689,13 +13276,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -14131,14 +13711,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -14177,13 +13749,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -14221,14 +13786,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -14267,13 +13824,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -14311,14 +13861,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -14357,13 +13899,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -14401,14 +13936,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -14447,13 +13974,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -14740,14 +14260,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -14786,13 +14298,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -14842,14 +14347,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -14888,13 +14385,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -14932,14 +14422,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -14978,13 +14460,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -15369,14 +14844,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -15415,13 +14882,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -15633,14 +15093,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -15679,13 +15131,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -15753,14 +15198,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -15799,13 +15236,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -16344,14 +15774,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -16390,13 +15812,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -16632,14 +16047,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -16678,13 +16085,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -16905,14 +16305,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -16951,13 +16343,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -16995,14 +16380,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -17041,13 +16418,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -17237,14 +16607,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -17283,13 +16645,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -17338,14 +16693,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -17384,13 +16731,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -17428,14 +16768,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -17474,13 +16806,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -17518,14 +16843,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -17564,13 +16881,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -17608,14 +16918,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -17654,13 +16956,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -17698,14 +16993,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -17744,13 +17031,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -17788,14 +17068,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -17834,13 +17106,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -17878,14 +17143,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -17924,13 +17181,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -17968,14 +17218,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -18014,13 +17256,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -18081,14 +17316,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -18127,13 +17354,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -18171,14 +17391,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -18217,13 +17429,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -18261,14 +17466,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -18307,13 +17504,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -18351,14 +17541,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -18397,13 +17579,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -18441,14 +17616,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -18487,13 +17654,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -18531,14 +17691,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -18577,13 +17729,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -18621,14 +17766,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -18667,13 +17804,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -18711,14 +17841,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -18757,13 +17879,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -18801,14 +17916,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -18847,13 +17954,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -18891,14 +17991,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -18937,13 +18029,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -18981,14 +18066,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -19027,13 +18104,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -19071,14 +18141,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -19117,13 +18179,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -19161,14 +18216,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -19207,13 +18254,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -19251,14 +18291,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -19297,13 +18329,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -19341,14 +18366,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -19387,13 +18404,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -19442,14 +18452,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -19488,13 +18490,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -19532,14 +18527,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -19578,13 +18565,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -19622,14 +18602,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -19668,13 +18640,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -19712,14 +18677,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -19758,13 +18715,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -19813,14 +18763,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -19859,13 +18801,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -19903,14 +18838,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -19949,13 +18876,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -19993,14 +18913,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -20039,13 +18951,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -20083,14 +18988,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -20129,13 +19026,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -20173,14 +19063,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -20219,13 +19101,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -20263,14 +19138,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -20309,13 +19176,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -20353,14 +19213,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -20399,13 +19251,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -20847,14 +19692,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -20893,13 +19730,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -21031,14 +19861,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -21077,13 +19899,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -21191,14 +20006,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -21237,13 +20044,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -21281,14 +20081,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -21327,13 +20119,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -21390,14 +20175,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -21436,13 +20213,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -21480,14 +20250,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -21526,13 +20288,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -21584,14 +20339,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -21630,13 +20377,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -21961,14 +20701,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -22007,13 +20739,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -22377,14 +21102,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -22423,13 +21140,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -22751,14 +21461,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -22781,13 +21483,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - src/cpp/ext/chaotic_good.cc - test/cpp/ext/chaotic_good_test.cc @@ -22977,14 +21672,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -23023,13 +21710,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -23260,14 +21940,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -23306,13 +21978,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -23713,14 +22378,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -23759,13 +22416,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc @@ -23803,14 +22453,6 @@ targets: - src/core/ext/transport/chaotic_good/pending_connection.h - src/core/ext/transport/chaotic_good/server/chaotic_good_server.h - src/core/ext/transport/chaotic_good/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h - - src/core/ext/transport/chaotic_good_legacy/client_transport.h - - src/core/ext/transport/chaotic_good_legacy/frame.h - - src/core/ext/transport/chaotic_good_legacy/frame_header.h - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h - - src/core/ext/transport/chaotic_good_legacy/server_transport.h - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.h - src/core/lib/promise/detail/promise_variant.h - src/core/lib/promise/event_engine_wakeup_scheduler.h - src/core/lib/promise/inter_activity_latch.h @@ -23849,13 +22491,6 @@ targets: - src/core/ext/transport/chaotic_good/frame_header.cc - src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc - src/core/ext/transport/chaotic_good/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc - - src/core/ext/transport/chaotic_good_legacy/client_transport.cc - - src/core/ext/transport/chaotic_good_legacy/frame.cc - - src/core/ext/transport/chaotic_good_legacy/frame_header.cc - - src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc - - src/core/ext/transport/chaotic_good_legacy/server_transport.cc - - src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc - src/core/lib/transport/promise_endpoint.cc - test/core/call/batch_builder.cc - test/core/end2end/cq_verifier.cc diff --git a/src/core/BUILD b/src/core/BUILD index b6b6686faa70a..7cbc205ea7102 100644 --- a/src/core/BUILD +++ b/src/core/BUILD @@ -7830,77 +7830,6 @@ grpc_cc_library( ], ) -grpc_cc_library( - name = "chaotic_good_legacy_frame", - srcs = [ - "ext/transport/chaotic_good_legacy/frame.cc", - ], - hdrs = [ - "ext/transport/chaotic_good_legacy/frame.h", - ], - external_deps = [ - "absl/log:check", - "absl/random:bit_gen_ref", - "absl/status", - "absl/status:statusor", - ], - deps = [ - "arena", - "bitset", - "chaotic_good_legacy_frame_header", - "context", - "match", - "metadata_batch", - "no_destruct", - "slice", - "slice_buffer", - "status_helper", - "//:gpr", - "//:gpr_platform", - "//:grpc_base", - "//:hpack_encoder", - "//:hpack_parser", - ], -) - -grpc_cc_library( - name = "chaotic_good_legacy_settings_metadata", - srcs = [ - "ext/transport/chaotic_good_legacy/settings_metadata.cc", - ], - hdrs = [ - "ext/transport/chaotic_good_legacy/settings_metadata.h", - ], - external_deps = [ - "absl/status", - ], - deps = [ - "arena", - "metadata_batch", - "//:gpr", - ], -) - -grpc_cc_library( - name = "chaotic_good_legacy_frame_header", - srcs = [ - "ext/transport/chaotic_good_legacy/frame_header.cc", - ], - hdrs = [ - "ext/transport/chaotic_good_legacy/frame_header.h", - ], - external_deps = [ - "absl/status", - "absl/status:statusor", - "absl/strings", - ], - deps = [ - "bitset", - "//:gpr", - "//:gpr_platform", - ], -) - grpc_cc_library( name = "gcp_metadata_query", srcs = [ @@ -8285,146 +8214,6 @@ grpc_cc_library( ], ) -grpc_cc_library( - name = "chaotic_good_legacy_transport", - hdrs = [ - "ext/transport/chaotic_good_legacy/chaotic_good_transport.h", - ], - external_deps = [ - "absl/log:log", - "absl/random", - ], - language = "c++", - deps = [ - "chaotic_good_legacy_frame", - "chaotic_good_legacy_frame_header", - "event_engine_tcp_socket_utils", - "grpc_promise_endpoint", - "if", - "try_join", - "try_seq", - "//:gpr_platform", - "//:grpc_trace", - "//:hpack_encoder", - "//:promise", - ], -) - -grpc_cc_library( - name = "chaotic_good_legacy_client_transport", - srcs = [ - "ext/transport/chaotic_good_legacy/client_transport.cc", - ], - hdrs = [ - "ext/transport/chaotic_good_legacy/client_transport.h", - ], - external_deps = [ - "absl/base:core_headers", - "absl/container:flat_hash_map", - "absl/log:check", - "absl/log", - "absl/random", - "absl/random:bit_gen_ref", - "absl/status", - "absl/status:statusor", - ], - language = "c++", - deps = [ - "activity", - "arena", - "chaotic_good_legacy_frame", - "chaotic_good_legacy_frame_header", - "chaotic_good_legacy_transport", - "context", - "event_engine_context", - "event_engine_extensions", - "event_engine_query_extensions", - "for_each", - "grpc_promise_endpoint", - "if", - "inter_activity_pipe", - "loop", - "map", - "memory_quota", - "metadata_batch", - "mpsc", - "pipe", - "poll", - "resource_quota", - "slice", - "slice_buffer", - "try_join", - "try_seq", - "//:exec_ctx", - "//:gpr", - "//:gpr_platform", - "//:grpc_base", - "//:hpack_encoder", - "//:hpack_parser", - "//:ref_counted_ptr", - ], -) - -grpc_cc_library( - name = "chaotic_good_legacy_server_transport", - srcs = [ - "ext/transport/chaotic_good_legacy/server_transport.cc", - ], - hdrs = [ - "ext/transport/chaotic_good_legacy/server_transport.h", - ], - external_deps = [ - "absl/base:core_headers", - "absl/container:flat_hash_map", - "absl/functional:any_invocable", - "absl/log:check", - "absl/log:log", - "absl/random", - "absl/random:bit_gen_ref", - "absl/status", - "absl/status:statusor", - "absl/cleanup", - ], - language = "c++", - deps = [ - "1999", - "activity", - "arena", - "chaotic_good_legacy_frame", - "chaotic_good_legacy_frame_header", - "chaotic_good_legacy_transport", - "context", - "default_event_engine", - "event_engine_context", - "event_engine_wakeup_scheduler", - "for_each", - "grpc_promise_endpoint", - "if", - "inter_activity_latch", - "inter_activity_pipe", - "loop", - "memory_quota", - "metadata_batch", - "mpsc", - "pipe", - "poll", - "resource_quota", - "seq", - "slice", - "slice_buffer", - "switch", - "try_join", - "try_seq", - "//:exec_ctx", - "//:gpr", - "//:gpr_platform", - "//:grpc_base", - "//:hpack_encoder", - "//:hpack_parser", - "//:ref_counted_ptr", - ], -) - grpc_cc_library( name = "call_final_info", srcs = [ @@ -8769,7 +8558,6 @@ grpc_cc_library( "chaotic_good_config", "chaotic_good_frame", "chaotic_good_frame_header", - "chaotic_good_legacy_server", "chaotic_good_pending_connection", "chaotic_good_server_transport", "chaotic_good_transport", @@ -8813,73 +8601,6 @@ grpc_cc_library( ], ) -grpc_cc_library( - name = "chaotic_good_legacy_server", - srcs = [ - "ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc", - ], - hdrs = [ - "ext/transport/chaotic_good_legacy/server/chaotic_good_server.h", - ], - external_deps = [ - "absl/container:flat_hash_map", - "absl/log:check", - "absl/log:log", - "absl/random", - "absl/random:bit_gen_ref", - "absl/status", - "absl/status:statusor", - ], - language = "c++", - deps = [ - "activity", - "arena", - "channel_args", - "channel_args_endpoint_config", - "chaotic_good_legacy_frame", - "chaotic_good_legacy_frame_header", - "chaotic_good_legacy_server_transport", - "chaotic_good_legacy_settings_metadata", - "closure", - "context", - "error", - "error_utils", - "event_engine_common", - "event_engine_context", - "event_engine_extensions", - "event_engine_query_extensions", - "event_engine_tcp_socket_utils", - "event_engine_wakeup_scheduler", - "grpc_promise_endpoint", - "if", - "inter_activity_latch", - "iomgr_fwd", - "latch", - "memory_quota", - "metadata", - "metadata_batch", - "race", - "resource_quota", - "sleep", - "slice", - "slice_buffer", - "status_helper", - "time", - "try_seq", - "//:channelz", - "//:gpr", - "//:gpr_platform", - "//:grpc_base", - "//:handshaker", - "//:hpack_encoder", - "//:hpack_parser", - "//:iomgr", - "//:orphanable", - "//:ref_counted_ptr", - "//:server", - ], -) - grpc_cc_library( name = "chaotic_good_connector", srcs = [ @@ -8908,7 +8629,6 @@ grpc_cc_library( "chaotic_good_frame", "chaotic_good_frame_cc_proto", "chaotic_good_frame_header", - "chaotic_good_legacy_connector", "chaotic_good_transport", "closure", "context", @@ -8949,73 +8669,6 @@ grpc_cc_library( ], ) -grpc_cc_library( - name = "chaotic_good_legacy_connector", - srcs = [ - "ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc", - ], - hdrs = [ - "ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h", - ], - external_deps = [ - "absl/log:check", - "absl/log:log", - "absl/random", - "absl/random:bit_gen_ref", - "absl/status", - "absl/status:statusor", - ], - language = "c++", - deps = [ - "activity", - "arena", - "channel_args", - "channel_args_endpoint_config", - "chaotic_good_legacy_client_transport", - "chaotic_good_legacy_frame", - "chaotic_good_legacy_frame_header", - "chaotic_good_legacy_settings_metadata", - "closure", - "context", - "error", - "error_utils", - "event_engine_context", - "event_engine_extensions", - "event_engine_query_extensions", - "event_engine_tcp_socket_utils", - "event_engine_wakeup_scheduler", - "grpc_promise_endpoint", - "inter_activity_latch", - "latch", - "memory_quota", - "no_destruct", - "notification", - "race", - "resource_quota", - "sleep", - "slice", - "slice_buffer", - "subchannel_connector", - "time", - "try_seq", - "wait_for_callback", - "//:channel", - "//:channel_create", - "//:config", - "//:debug_location", - "//:exec_ctx", - "//:gpr", - "//:gpr_platform", - "//:grpc_base", - "//:grpc_client_channel", - "//:handshaker", - "//:hpack_encoder", - "//:hpack_parser", - "//:iomgr", - "//:ref_counted_ptr", - ], -) - grpc_cc_library( name = "metrics", srcs = [ diff --git a/src/core/ext/transport/chaotic_good/client/chaotic_good_connector.cc b/src/core/ext/transport/chaotic_good/client/chaotic_good_connector.cc index 1eeb1f2f487e1..cb3faaae28068 100644 --- a/src/core/ext/transport/chaotic_good/client/chaotic_good_connector.cc +++ b/src/core/ext/transport/chaotic_good/client/chaotic_good_connector.cc @@ -33,7 +33,6 @@ #include "src/core/ext/transport/chaotic_good/client_transport.h" #include "src/core/ext/transport/chaotic_good/frame.h" #include "src/core/ext/transport/chaotic_good/frame_header.h" -#include "src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h" #include "src/core/handshaker/handshaker.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/event_engine/channel_args_endpoint_config.h" @@ -300,9 +299,6 @@ class ChaoticGoodChannelFactory final : public ClientChannelFactory { grpc_channel* grpc_chaotic_good_channel_create(const char* target, const grpc_channel_args* args) { - if (grpc_core::IsChaoticGoodLegacyProtocolEnabled()) { - return grpc_chaotic_good_legacy_channel_create(target, args); - } grpc_core::ExecCtx exec_ctx; GRPC_TRACE_LOG(api, INFO) << "grpc_chaotic_good_channel_create(target=" << target diff --git a/src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc b/src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc index 4682cb260e45d..9653016ac6589 100644 --- a/src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc +++ b/src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc @@ -34,7 +34,6 @@ #include "src/core/ext/transport/chaotic_good/frame.h" #include "src/core/ext/transport/chaotic_good/frame_header.h" #include "src/core/ext/transport/chaotic_good/server_transport.h" -#include "src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h" #include "src/core/handshaker/handshaker.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/event_engine/channel_args_endpoint_config.h" @@ -480,9 +479,6 @@ void ChaoticGoodServerListener::Orphan() { int grpc_server_add_chaotic_good_port(grpc_server* server, const char* addr) { using grpc_event_engine::experimental::EventEngine; - if (grpc_core::IsChaoticGoodLegacyProtocolEnabled()) { - return grpc_server_add_chaotic_good_legacy_port(server, addr); - } grpc_core::ExecCtx exec_ctx; auto* const core_server = grpc_core::Server::FromC(server); const std::string parsed_addr = grpc_core::URI::PercentDecode(addr); diff --git a/src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h b/src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h deleted file mode 100644 index e15855a5598a5..0000000000000 --- a/src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h +++ /dev/null @@ -1,142 +0,0 @@ -// Copyright 2023 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_CHAOTIC_GOOD_TRANSPORT_H -#define GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_CHAOTIC_GOOD_TRANSPORT_H - -#include - -#include -#include - -#include "absl/log/log.h" -#include "absl/random/random.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame_header.h" -#include "src/core/ext/transport/chttp2/transport/hpack_encoder.h" -#include "src/core/lib/debug/trace.h" -#include "src/core/lib/event_engine/tcp_socket_utils.h" -#include "src/core/lib/promise/if.h" -#include "src/core/lib/promise/promise.h" -#include "src/core/lib/promise/try_join.h" -#include "src/core/lib/promise/try_seq.h" -#include "src/core/lib/transport/promise_endpoint.h" - -namespace grpc_core { -namespace chaotic_good_legacy { - -class ChaoticGoodTransport : public RefCounted { - public: - ChaoticGoodTransport(PromiseEndpoint control_endpoint, - PromiseEndpoint data_endpoint, HPackParser hpack_parser, - HPackCompressor hpack_encoder) - : control_endpoint_(std::move(control_endpoint)), - data_endpoint_(std::move(data_endpoint)), - encoder_(std::move(hpack_encoder)), - parser_(std::move(hpack_parser)) { - // Enable RxMemoryAlignment and RPC receive coalescing after the transport - // setup is complete. At this point all the settings frames should have - // been read. - data_endpoint_.EnforceRxMemoryAlignmentAndCoalescing(); - } - - auto WriteFrame(const FrameInterface& frame) { - bool saw_encoding_errors = false; - auto buffers = frame.Serialize(&encoder_, saw_encoding_errors); - // ignore encoding errors: they will be logged separately already - GRPC_TRACE_LOG(chaotic_good, INFO) - << "CHAOTIC_GOOD: WriteFrame to:" - << ResolvedAddressToString(control_endpoint_.GetPeerAddress()) - .value_or("<>") - << " " << frame.ToString(); - return TryJoin( - control_endpoint_.Write(std::move(buffers.control)), - data_endpoint_.Write(std::move(buffers.data))); - } - - // Read frame header and payloads for control and data portions of one frame. - // Resolves to StatusOr>. - auto ReadFrameBytes() { - return TrySeq( - control_endpoint_.ReadSlice(FrameHeader::kFrameHeaderSize), - [this](Slice read_buffer) { - auto frame_header = - FrameHeader::Parse(reinterpret_cast( - GRPC_SLICE_START_PTR(read_buffer.c_slice()))); - GRPC_TRACE_LOG(chaotic_good, INFO) - << "CHAOTIC_GOOD: ReadHeader from:" - << ResolvedAddressToString(control_endpoint_.GetPeerAddress()) - .value_or("<>") - << " " - << (frame_header.ok() ? frame_header->ToString() - : frame_header.status().ToString()); - // Read header and trailers from control endpoint. - // Read message padding and message from data endpoint. - return If( - frame_header.ok(), - [this, &frame_header] { - const uint32_t message_padding = frame_header->message_padding; - const uint32_t message_length = frame_header->message_length; - return Map( - TryJoin( - control_endpoint_.Read(frame_header->GetFrameLength()), - data_endpoint_.Read(message_length + message_padding)), - [frame_header = *frame_header, message_padding]( - absl::StatusOr> - buffers) - -> absl::StatusOr> { - if (!buffers.ok()) return buffers.status(); - SliceBuffer data_read = std::move(std::get<1>(*buffers)); - if (message_padding > 0) { - data_read.RemoveLastNBytesNoInline(message_padding); - } - return std::tuple( - frame_header, - BufferPair{std::move(std::get<0>(*buffers)), - std::move(data_read)}); - }); - }, - [&frame_header]() { - return - [status = frame_header.status()]() mutable - -> absl::StatusOr> { - return std::move(status); - }; - }); - }); - } - - absl::Status DeserializeFrame(FrameHeader header, BufferPair buffers, - Arena* arena, FrameInterface& frame, - FrameLimits limits) { - auto s = frame.Deserialize(&parser_, header, bitgen_, arena, - std::move(buffers), limits); - GRPC_TRACE_LOG(chaotic_good, INFO) - << "CHAOTIC_GOOD: DeserializeFrame " - << (s.ok() ? frame.ToString() : s.ToString()); - return s; - } - - private: - PromiseEndpoint control_endpoint_; - PromiseEndpoint data_endpoint_; - HPackCompressor encoder_; - HPackParser parser_; - absl::BitGen bitgen_; -}; - -} // namespace chaotic_good_legacy -} // namespace grpc_core - -#endif // GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_CHAOTIC_GOOD_TRANSPORT_H diff --git a/src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc b/src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc deleted file mode 100644 index 1d4325d449390..0000000000000 --- a/src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.cc +++ /dev/null @@ -1,410 +0,0 @@ -// Copyright 2024 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h" - -#include -#include - -#include -#include -#include - -#include "absl/log/check.h" -#include "absl/log/log.h" -#include "absl/random/bit_gen_ref.h" -#include "absl/status/status.h" -#include "absl/status/statusor.h" -#include "src/core/client_channel/client_channel_factory.h" -#include "src/core/client_channel/client_channel_filter.h" -#include "src/core/config/core_configuration.h" -#include "src/core/ext/transport/chaotic_good_legacy/client_transport.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame_header.h" -#include "src/core/ext/transport/chaotic_good_legacy/settings_metadata.h" -#include "src/core/handshaker/handshaker.h" -#include "src/core/lib/channel/channel_args.h" -#include "src/core/lib/event_engine/channel_args_endpoint_config.h" -#include "src/core/lib/event_engine/event_engine_context.h" -#include "src/core/lib/event_engine/extensions/chaotic_good_extension.h" -#include "src/core/lib/event_engine/query_extensions.h" -#include "src/core/lib/event_engine/tcp_socket_utils.h" -#include "src/core/lib/iomgr/closure.h" -#include "src/core/lib/iomgr/error.h" -#include "src/core/lib/iomgr/event_engine_shims/endpoint.h" -#include "src/core/lib/iomgr/exec_ctx.h" -#include "src/core/lib/promise/activity.h" -#include "src/core/lib/promise/context.h" -#include "src/core/lib/promise/event_engine_wakeup_scheduler.h" -#include "src/core/lib/promise/latch.h" -#include "src/core/lib/promise/race.h" -#include "src/core/lib/promise/sleep.h" -#include "src/core/lib/promise/try_seq.h" -#include "src/core/lib/promise/wait_for_callback.h" -#include "src/core/lib/resource_quota/arena.h" -#include "src/core/lib/resource_quota/resource_quota.h" -#include "src/core/lib/slice/slice.h" -#include "src/core/lib/slice/slice_buffer.h" -#include "src/core/lib/surface/channel.h" -#include "src/core/lib/surface/channel_create.h" -#include "src/core/lib/transport/error_utils.h" -#include "src/core/lib/transport/promise_endpoint.h" -#include "src/core/util/debug_location.h" -#include "src/core/util/no_destruct.h" -#include "src/core/util/ref_counted_ptr.h" -#include "src/core/util/time.h" - -namespace grpc_core { -namespace chaotic_good_legacy { -using grpc_event_engine::experimental::EventEngine; -namespace { -const int32_t kDataAlignmentBytes = 64; -const int32_t kTimeoutSecs = 120; -} // namespace - -ChaoticGoodConnector::ChaoticGoodConnector( - std::shared_ptr event_engine) - : event_engine_(std::move(event_engine)), - handshake_mgr_(MakeRefCounted()) { - arena_->SetContext( - event_engine_.get()); -} - -ChaoticGoodConnector::~ChaoticGoodConnector() { - CHECK_EQ(notify_, nullptr); - if (connect_activity_ != nullptr) { - connect_activity_.reset(); - } -} - -auto ChaoticGoodConnector::DataEndpointReadSettingsFrame( - RefCountedPtr self) { - return TrySeq( - self->data_endpoint_.ReadSlice(FrameHeader::kFrameHeaderSize), - [self](Slice slice) mutable { - // Read setting frame; - // Parse frame header - auto frame_header_ = - FrameHeader::Parse(reinterpret_cast( - GRPC_SLICE_START_PTR(slice.c_slice()))); - return If( - frame_header_.ok(), - [frame_header_ = *frame_header_, self]() { - auto frame_header_length = frame_header_.GetFrameLength(); - return TrySeq(self->data_endpoint_.Read(frame_header_length), - []() { return absl::OkStatus(); }); - }, - [status = frame_header_.status()]() { return status; }); - }); -} - -auto ChaoticGoodConnector::DataEndpointWriteSettingsFrame( - RefCountedPtr self) { - // Serialize setting frame. - SettingsFrame frame; - // frame.header set connectiion_type: control - frame.headers = SettingsMetadata{SettingsMetadata::ConnectionType::kData, - self->connection_id_, kDataAlignmentBytes} - .ToMetadataBatch(); - bool saw_encoding_errors = false; - auto write_buffer = - frame.Serialize(&self->hpack_compressor_, saw_encoding_errors); - // ignore encoding errors: they will be logged separately already - return self->data_endpoint_.Write(std::move(write_buffer.control)); -} - -auto ChaoticGoodConnector::WaitForDataEndpointSetup( - RefCountedPtr self) { - // Data endpoint on_connect callback. - grpc_event_engine::experimental::EventEngine::OnConnectCallback - on_data_endpoint_connect = - [self](absl::StatusOr> - endpoint) mutable { - ExecCtx exec_ctx; - if (!endpoint.ok() || self->handshake_mgr_ == nullptr) { - MutexLock lock(&self->mu_); - if (self->notify_ != nullptr) { - ExecCtx::Run(DEBUG_LOCATION, - std::exchange(self->notify_, nullptr), - GRPC_ERROR_CREATE("connect endpoint failed")); - } - return; - } - auto* chaotic_good_ext = - grpc_event_engine::experimental::QueryExtension< - grpc_event_engine::experimental::ChaoticGoodExtension>( - endpoint.value().get()); - if (chaotic_good_ext != nullptr) { - chaotic_good_ext->EnableStatsCollection( - /*is_control_channel=*/false); - } - self->data_endpoint_ = - PromiseEndpoint(std::move(endpoint.value()), SliceBuffer()); - self->data_endpoint_ready_.Set(); - }; - self->event_engine_->Connect( - std::move(on_data_endpoint_connect), *self->resolved_addr_, - grpc_event_engine::experimental::ChannelArgsEndpointConfig( - self->args_.channel_args), - ResourceQuota::Default()->memory_quota()->CreateMemoryAllocator( - "data_endpoint_connection"), - std::chrono::seconds(kTimeoutSecs)); - - return TrySeq(Race( - TrySeq(self->data_endpoint_ready_.Wait(), - [self]() mutable { - return TrySeq(DataEndpointWriteSettingsFrame(self), - DataEndpointReadSettingsFrame(self), - []() -> absl::Status { return absl::OkStatus(); }); - }), - TrySeq(Sleep(Timestamp::Now() + Duration::Seconds(kTimeoutSecs)), - []() -> absl::Status { - return absl::DeadlineExceededError( - "Data endpoint connect deadline exceeded."); - }))); -} - -auto ChaoticGoodConnector::ControlEndpointReadSettingsFrame( - RefCountedPtr self) { - return TrySeq( - self->control_endpoint_.ReadSlice(FrameHeader::kFrameHeaderSize), - [self](Slice slice) { - // Parse frame header - auto frame_header = FrameHeader::Parse(reinterpret_cast( - GRPC_SLICE_START_PTR(slice.c_slice()))); - return If( - frame_header.ok(), - TrySeq( - self->control_endpoint_.Read(frame_header->GetFrameLength()), - [frame_header = *frame_header, self](SliceBuffer buffer) { - // Deserialize setting frame. - SettingsFrame frame; - BufferPair buffer_pair{std::move(buffer), SliceBuffer()}; - auto status = frame.Deserialize( - &self->hpack_parser_, frame_header, - absl::BitGenRef(self->bitgen_), GetContext(), - std::move(buffer_pair), FrameLimits{}); - if (!status.ok()) return status; - if (frame.headers == nullptr) { - return absl::UnavailableError("no settings headers"); - } - auto settings_metadata = - SettingsMetadata::FromMetadataBatch(*frame.headers); - if (!settings_metadata.ok()) { - return settings_metadata.status(); - } - if (!settings_metadata->connection_id.has_value()) { - return absl::UnavailableError( - "no connection id in settings frame"); - } - self->connection_id_ = *settings_metadata->connection_id; - return absl::OkStatus(); - }, - WaitForDataEndpointSetup(self)), - [status = frame_header.status()]() { return status; }); - }); -} - -auto ChaoticGoodConnector::ControlEndpointWriteSettingsFrame( - RefCountedPtr self) { - // Serialize setting frame. - SettingsFrame frame; - // frame.header set connectiion_type: control - frame.headers = SettingsMetadata{SettingsMetadata::ConnectionType::kControl, - std::nullopt, std::nullopt} - .ToMetadataBatch(); - bool saw_encoding_errors = false; - auto write_buffer = - frame.Serialize(&self->hpack_compressor_, saw_encoding_errors); - // ignore encoding errors: they will be logged separately already - return self->control_endpoint_.Write(std::move(write_buffer.control)); -} - -void ChaoticGoodConnector::Connect(const Args& args, Result* result, - grpc_closure* notify) { - { - MutexLock lock(&mu_); - result_ = result; - if (is_shutdown_) { - CHECK_EQ(notify_, nullptr); - ExecCtx::Run(DEBUG_LOCATION, notify, - GRPC_ERROR_CREATE("connector shutdown")); - return; - } - notify_ = notify; - } - args_ = args; - resolved_addr_ = EventEngine::ResolvedAddress( - reinterpret_cast(args_.address->addr), - args_.address->len); - CHECK_NE(resolved_addr_.value().address(), nullptr); - grpc_event_engine::experimental::EventEngine::OnConnectCallback on_connect = - [self = RefAsSubclass()]( - absl::StatusOr> - endpoint) mutable { - ExecCtx exec_ctx; - if (!endpoint.ok() || self->handshake_mgr_ == nullptr) { - MutexLock lock(&self->mu_); - if (self->notify_ != nullptr) { - auto endpoint_status = endpoint.status(); - auto error = GRPC_ERROR_CREATE_REFERENCING( - "connect endpoint failed", &endpoint_status, 1); - ExecCtx::Run(DEBUG_LOCATION, std::exchange(self->notify_, nullptr), - error); - } - return; - } - auto* chaotic_good_ext = - grpc_event_engine::experimental::QueryExtension< - grpc_event_engine::experimental::ChaoticGoodExtension>( - endpoint->get()); - if (chaotic_good_ext != nullptr) { - chaotic_good_ext->EnableStatsCollection(/*is_control_channel=*/true); - chaotic_good_ext->UseMemoryQuota( - ResourceQuota::Default()->memory_quota()); - } - auto* p = self.get(); - p->handshake_mgr_->DoHandshake( - OrphanablePtr( - grpc_event_engine_endpoint_create(std::move(*endpoint))), - p->args_.channel_args, p->args_.deadline, nullptr /* acceptor */, - [self = std::move(self)](absl::StatusOr result) { - self->OnHandshakeDone(std::move(result)); - }); - }; - event_engine_->Connect( - std::move(on_connect), *resolved_addr_, - grpc_event_engine::experimental::ChannelArgsEndpointConfig( - args_.channel_args), - ResourceQuota::Default()->memory_quota()->CreateMemoryAllocator( - "data_endpoint_connection"), - std::chrono::seconds(kTimeoutSecs)); -} - -void ChaoticGoodConnector::OnHandshakeDone( - absl::StatusOr result) { - // Start receiving setting frames; - { - MutexLock lock(&mu_); - if (!result.ok() || is_shutdown_) { - absl::Status error = result.status(); - if (result.ok()) { - error = GRPC_ERROR_CREATE("connector shutdown"); - } - result_->Reset(); - ExecCtx::Run(DEBUG_LOCATION, std::exchange(notify_, nullptr), error); - return; - } - } - if ((*result)->endpoint != nullptr) { - CHECK(grpc_event_engine::experimental::grpc_is_event_engine_endpoint( - (*result)->endpoint.get())); - control_endpoint_ = - PromiseEndpoint(grpc_event_engine::experimental:: - grpc_take_wrapped_event_engine_endpoint( - (*result)->endpoint.release()), - SliceBuffer()); - auto activity = MakeActivity( - [self = RefAsSubclass()] { - return TrySeq(ControlEndpointWriteSettingsFrame(self), - ControlEndpointReadSettingsFrame(self), - []() { return absl::OkStatus(); }); - }, - EventEngineWakeupScheduler(event_engine_), - [self = RefAsSubclass()](absl::Status status) { - GRPC_TRACE_LOG(chaotic_good, INFO) - << "ChaoticGoodConnector::OnHandshakeDone: " << status; - MutexLock lock(&self->mu_); - if (status.ok()) { - self->result_->transport = new ChaoticGoodClientTransport( - std::move(self->control_endpoint_), - std::move(self->data_endpoint_), self->args_.channel_args, - self->event_engine_, std::move(self->hpack_parser_), - std::move(self->hpack_compressor_)); - self->result_->channel_args = self->args_.channel_args; - ExecCtx::Run(DEBUG_LOCATION, std::exchange(self->notify_, nullptr), - status); - } else if (self->notify_ != nullptr) { - ExecCtx::Run(DEBUG_LOCATION, std::exchange(self->notify_, nullptr), - status); - } - }, - arena_); - MutexLock lock(&mu_); - if (!is_shutdown_) { - connect_activity_ = std::move(activity); - } - } else { - // Handshaking succeeded but there is no endpoint. - MutexLock lock(&mu_); - result_->Reset(); - auto error = GRPC_ERROR_CREATE("handshake complete with empty endpoint."); - ExecCtx::Run( - DEBUG_LOCATION, std::exchange(notify_, nullptr), - absl::InternalError("handshake complete with empty endpoint.")); - } -} - -namespace { - -class ChaoticGoodChannelFactory final : public ClientChannelFactory { - public: - RefCountedPtr CreateSubchannel( - const grpc_resolved_address& address, const ChannelArgs& args) override { - return Subchannel::Create( - MakeOrphanable( - args.GetObjectRef()), - address, args); - } -}; - -} // namespace -} // namespace chaotic_good_legacy -} // namespace grpc_core - -grpc_channel* grpc_chaotic_good_legacy_channel_create( - const char* target, const grpc_channel_args* args) { - grpc_core::ExecCtx exec_ctx; - GRPC_TRACE_LOG(api, INFO) - << "grpc_chaotic_good_channel_create(target=" << target - << ", args=" << (void*)args << ")"; - grpc_channel* channel = nullptr; - grpc_error_handle error; - // Create channel. - auto r = grpc_core::ChannelCreate( - target, - grpc_core::CoreConfiguration::Get() - .channel_args_preconditioning() - .PreconditionChannelArgs(args) - .SetObject( - grpc_core::NoDestructSingleton< - grpc_core::chaotic_good_legacy::ChaoticGoodChannelFactory>:: - Get()) - .Set(GRPC_ARG_USE_V3_STACK, true), - GRPC_CLIENT_CHANNEL, nullptr); - if (r.ok()) { - return r->release()->c_ptr(); - } - LOG(ERROR) << "Failed to create chaotic good client channel: " << r.status(); - error = absl_status_to_grpc_error(r.status()); - intptr_t integer; - grpc_status_code status = GRPC_STATUS_INTERNAL; - if (grpc_error_get_int(error, grpc_core::StatusIntProperty::kRpcStatus, - &integer)) { - status = static_cast(integer); - } - channel = grpc_lame_client_channel_create( - target, status, "Failed to create chaotic good client channel"); - return channel; -} diff --git a/src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h b/src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h deleted file mode 100644 index a6218b57fcda7..0000000000000 --- a/src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright 2024 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_CLIENT_CHAOTIC_GOOD_CONNECTOR_H -#define GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_CLIENT_CHAOTIC_GOOD_CONNECTOR_H - -#include -#include - -#include -#include -#include - -#include "absl/random/random.h" -#include "absl/status/statusor.h" -#include "src/core/client_channel/connector.h" -#include "src/core/ext/transport/chttp2/transport/hpack_encoder.h" -#include "src/core/ext/transport/chttp2/transport/hpack_parser.h" -#include "src/core/handshaker/handshaker.h" -#include "src/core/lib/channel/channel_args.h" -#include "src/core/lib/event_engine/channel_args_endpoint_config.h" -#include "src/core/lib/iomgr/closure.h" -#include "src/core/lib/iomgr/endpoint.h" -#include "src/core/lib/iomgr/error.h" -#include "src/core/lib/iomgr/exec_ctx.h" -#include "src/core/lib/promise/activity.h" -#include "src/core/lib/promise/inter_activity_latch.h" -#include "src/core/lib/promise/wait_for_callback.h" -#include "src/core/lib/resource_quota/arena.h" -#include "src/core/lib/resource_quota/memory_quota.h" -#include "src/core/lib/resource_quota/resource_quota.h" -#include "src/core/lib/transport/promise_endpoint.h" -#include "src/core/util/notification.h" -#include "src/core/util/ref_counted_ptr.h" -#include "src/core/util/sync.h" - -namespace grpc_core { -namespace chaotic_good_legacy { -class ChaoticGoodConnector : public SubchannelConnector { - public: - explicit ChaoticGoodConnector( - std::shared_ptr - event_engine); - ~ChaoticGoodConnector() override; - void Connect(const Args& args, Result* result, grpc_closure* notify) override; - void Shutdown(grpc_error_handle error) override { - ActivityPtr connect_activity; - MutexLock lock(&mu_); - if (is_shutdown_) return; - is_shutdown_ = true; - if (handshake_mgr_ != nullptr) { - handshake_mgr_->Shutdown(error); - } - connect_activity = std::move(connect_activity_); - }; - - private: - static auto DataEndpointReadSettingsFrame( - RefCountedPtr self); - static auto DataEndpointWriteSettingsFrame( - RefCountedPtr self); - static auto ControlEndpointReadSettingsFrame( - RefCountedPtr self); - static auto ControlEndpointWriteSettingsFrame( - RefCountedPtr self); - static auto WaitForDataEndpointSetup( - RefCountedPtr self); - void OnHandshakeDone(absl::StatusOr result); - - RefCountedPtr arena_ = SimpleArenaAllocator()->MakeArena(); - Mutex mu_; - Args args_; - Result* result_ ABSL_GUARDED_BY(mu_); - grpc_closure* notify_ ABSL_GUARDED_BY(mu_) = nullptr; - bool is_shutdown_ ABSL_GUARDED_BY(mu_) = false; - absl::StatusOr - resolved_addr_; - - PromiseEndpoint control_endpoint_; - PromiseEndpoint data_endpoint_; - ActivityPtr connect_activity_ ABSL_GUARDED_BY(mu_); - const std::shared_ptr - event_engine_; - RefCountedPtr handshake_mgr_; - HPackCompressor hpack_compressor_; - HPackParser hpack_parser_; - absl::BitGen bitgen_; - InterActivityLatch data_endpoint_ready_; - std::string connection_id_; -}; -} // namespace chaotic_good_legacy -} // namespace grpc_core - -grpc_channel* grpc_chaotic_good_legacy_channel_create( - const char* target, const grpc_channel_args* args); - -#endif // GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_CLIENT_CHAOTIC_GOOD_CONNECTOR_H diff --git a/src/core/ext/transport/chaotic_good_legacy/client_transport.cc b/src/core/ext/transport/chaotic_good_legacy/client_transport.cc deleted file mode 100644 index 4cc716d04070e..0000000000000 --- a/src/core/ext/transport/chaotic_good_legacy/client_transport.cc +++ /dev/null @@ -1,389 +0,0 @@ -// Copyright 2022 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "src/core/ext/transport/chaotic_good_legacy/client_transport.h" - -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "absl/log/check.h" -#include "absl/log/log.h" -#include "absl/random/bit_gen_ref.h" -#include "absl/random/random.h" -#include "absl/status/status.h" -#include "absl/status/statusor.h" -#include "src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame_header.h" -#include "src/core/ext/transport/chttp2/transport/hpack_encoder.h" -#include "src/core/lib/event_engine/event_engine_context.h" -#include "src/core/lib/event_engine/extensions/tcp_trace.h" -#include "src/core/lib/event_engine/query_extensions.h" -#include "src/core/lib/iomgr/exec_ctx.h" -#include "src/core/lib/promise/loop.h" -#include "src/core/lib/promise/map.h" -#include "src/core/lib/promise/try_seq.h" -#include "src/core/lib/resource_quota/arena.h" -#include "src/core/lib/resource_quota/resource_quota.h" -#include "src/core/lib/slice/slice_buffer.h" -#include "src/core/lib/transport/promise_endpoint.h" -#include "src/core/util/ref_counted_ptr.h" - -namespace grpc_core { -namespace chaotic_good_legacy { - -void ChaoticGoodClientTransport::Orphan() { - AbortWithError(); - RefCountedPtr party; - { - MutexLock lock(&mu_); - party = std::move(party_); - } - party.reset(); - Unref(); -} - -auto ChaoticGoodClientTransport::TransportWriteLoop( - RefCountedPtr transport) { - return Loop([this, transport = std::move(transport)] { - return TrySeq( - // Get next outgoing frame. - outgoing_frames_.Next(), - // Serialize and write it out. - [transport = transport.get()](ClientFrame client_frame) { - return transport->WriteFrame(GetFrameInterface(client_frame)); - }, - []() -> LoopCtl { - // The write failures will be caught in TrySeq and exit loop. - // Therefore, only need to return Continue() in the last lambda - // function. - return Continue(); - }); - }); -} - -std::optional ChaoticGoodClientTransport::LookupStream( - uint32_t stream_id) { - MutexLock lock(&mu_); - auto it = stream_map_.find(stream_id); - if (it == stream_map_.end()) { - return std::nullopt; - } - return it->second; -} - -auto ChaoticGoodClientTransport::PushFrameIntoCall(ServerFragmentFrame frame, - CallHandler call_handler) { - const bool has_headers = frame.headers != nullptr; - auto push = TrySeq( - If( - has_headers, - [call_handler, headers = std::move(frame.headers)]() mutable { - return call_handler.PushServerInitialMetadata(std::move(headers)); - }, - []() -> StatusFlag { return Success{}; }), - [call_handler, message = std::move(frame.message)]() mutable { - return If( - message.has_value(), - [&call_handler, &message]() mutable { - return call_handler.PushMessage(std::move(message->message)); - }, - []() -> StatusFlag { return Success{}; }); - }, - [call_handler, - trailers = std::move(frame.trailers)]() mutable -> StatusFlag { - if (trailers != nullptr) { - call_handler.PushServerTrailingMetadata(std::move(trailers)); - } - return Success{}; - }); - // Wrap the actual sequence with something that owns the call handler so that - // its lifetime extends until the push completes. - return GRPC_LATENT_SEE_PROMISE( - "PushFrameIntoCall", - ([call_handler, push = std::move(push)]() mutable { return push(); })); -} - -auto ChaoticGoodClientTransport::TransportReadLoop( - RefCountedPtr transport) { - return Loop([this, transport = std::move(transport)] { - return TrySeq( - transport->ReadFrameBytes(), - [](std::tuple frame_bytes) - -> absl::StatusOr> { - const auto& frame_header = std::get<0>(frame_bytes); - if (frame_header.type != FrameType::kFragment) { - return absl::InternalError( - absl::StrCat("Expected fragment frame, got ", - static_cast(frame_header.type))); - } - return frame_bytes; - }, - [this, transport = transport.get()]( - std::tuple frame_bytes) { - const auto& frame_header = std::get<0>(frame_bytes); - auto& buffers = std::get<1>(frame_bytes); - std::optional call_handler = - LookupStream(frame_header.stream_id); - ServerFragmentFrame frame; - absl::Status deserialize_status; - const FrameLimits frame_limits{1024 * 1024 * 1024, - aligned_bytes_ - 1}; - if (call_handler.has_value()) { - deserialize_status = transport->DeserializeFrame( - frame_header, std::move(buffers), call_handler->arena(), frame, - frame_limits); - } else { - // Stream not found, skip the frame. - deserialize_status = transport->DeserializeFrame( - frame_header, std::move(buffers), - SimpleArenaAllocator()->MakeArena().get(), frame, frame_limits); - } - return If( - deserialize_status.ok() && call_handler.has_value(), - [this, &frame, &call_handler]() { - return call_handler->SpawnWaitable( - "push-frame", [this, call_handler = *call_handler, - frame = std::move(frame)]() mutable { - return Map(call_handler.CancelIfFails(PushFrameIntoCall( - std::move(frame), call_handler)), - [](StatusFlag) { return absl::OkStatus(); }); - }); - }, - [&deserialize_status]() { - // Stream not found, nothing to do. - return [deserialize_status = - std::move(deserialize_status)]() mutable { - return std::move(deserialize_status); - }; - }); - }, - []() -> LoopCtl { return Continue{}; }); - }); -} - -auto ChaoticGoodClientTransport::OnTransportActivityDone( - absl::string_view what) { - return [self = RefAsSubclass(), - what](absl::Status status) { - GRPC_TRACE_LOG(chaotic_good, INFO) - << "CHAOTIC_GOOD: Client transport " << self.get() << " closed (via " - << what << "): " << status; - self->AbortWithError(); - }; -} - -ChaoticGoodClientTransport::ChaoticGoodClientTransport( - PromiseEndpoint control_endpoint, PromiseEndpoint data_endpoint, - const ChannelArgs& args, - std::shared_ptr event_engine, - HPackParser hpack_parser, HPackCompressor hpack_encoder) - : allocator_(args.GetObject() - ->memory_quota() - ->CreateMemoryAllocator("chaotic-good")), - outgoing_frames_(4) { - // Set up TCP tracer if enabled. - if (args.GetBool(GRPC_ARG_TCP_TRACING_ENABLED).value_or(false)) { - auto* epte = grpc_event_engine::experimental::QueryExtension< - grpc_event_engine::experimental::TcpTraceExtension>( - data_endpoint.GetEventEngineEndpoint().get()); - if (epte != nullptr) { - epte->InitializeAndReturnTcpTracer(); - } - } - auto transport = MakeRefCounted( - std::move(control_endpoint), std::move(data_endpoint), - std::move(hpack_parser), std::move(hpack_encoder)); - auto party_arena = SimpleArenaAllocator(0)->MakeArena(); - party_arena->SetContext( - event_engine.get()); - party_ = Party::Make(std::move(party_arena)); - party_->Spawn("client-chaotic-writer", - GRPC_LATENT_SEE_PROMISE("ClientTransportWriteLoop", - TransportWriteLoop(transport)), - OnTransportActivityDone("write_loop")); - party_->Spawn( - "client-chaotic-reader", - GRPC_LATENT_SEE_PROMISE("ClientTransportReadLoop", - TransportReadLoop(std::move(transport))), - OnTransportActivityDone("read_loop")); -} - -ChaoticGoodClientTransport::~ChaoticGoodClientTransport() { party_.reset(); } - -void ChaoticGoodClientTransport::AbortWithError() { - // Mark transport as unavailable when the endpoint write/read failed. - // Close all the available pipes. - outgoing_frames_.MarkClosed(); - ReleasableMutexLock lock(&mu_); - StreamMap stream_map = std::move(stream_map_); - stream_map_.clear(); - state_tracker_.SetState(GRPC_CHANNEL_SHUTDOWN, - absl::UnavailableError("transport closed"), - "transport closed"); - lock.Release(); - for (const auto& pair : stream_map) { - auto call_handler = pair.second; - call_handler.SpawnInfallible("cancel", [call_handler]() mutable { - call_handler.PushServerTrailingMetadata(ServerMetadataFromStatus( - absl::UnavailableError("Transport closed."))); - }); - } -} - -uint32_t ChaoticGoodClientTransport::MakeStream(CallHandler call_handler) { - MutexLock lock(&mu_); - const uint32_t stream_id = next_stream_id_++; - const bool on_done_added = - call_handler.OnDone([self = RefAsSubclass(), - stream_id](bool cancelled) { - if (cancelled) { - self->outgoing_frames_.MakeSender().UnbufferedImmediateSend( - CancelFrame{stream_id}); - } - MutexLock lock(&self->mu_); - self->stream_map_.erase(stream_id); - }); - if (!on_done_added) return 0; - stream_map_.emplace(stream_id, call_handler); - return stream_id; -} - -namespace { -absl::Status BooleanSuccessToTransportError(bool success) { - return success ? absl::OkStatus() - : absl::UnavailableError("Transport closed."); -} -} // namespace - -auto ChaoticGoodClientTransport::CallOutboundLoop(uint32_t stream_id, - CallHandler call_handler) { - auto send_fragment = [stream_id, - outgoing_frames = outgoing_frames_.MakeSender()]( - ClientFragmentFrame frame) mutable { - frame.stream_id = stream_id; - return Map(outgoing_frames.Send(std::move(frame)), - BooleanSuccessToTransportError); - }; - auto send_fragment_acked = [stream_id, - outgoing_frames = outgoing_frames_.MakeSender()]( - ClientFragmentFrame frame) mutable { - frame.stream_id = stream_id; - return Map(outgoing_frames.SendAcked(std::move(frame)), - BooleanSuccessToTransportError); - }; - return GRPC_LATENT_SEE_PROMISE( - "CallOutboundLoop", - TrySeq( - // Wait for initial metadata then send it out. - call_handler.PullClientInitialMetadata(), - [send_fragment](ClientMetadataHandle md) mutable { - GRPC_TRACE_LOG(chaotic_good, INFO) - << "CHAOTIC_GOOD: Sending initial metadata: " - << md->DebugString(); - ClientFragmentFrame frame; - frame.headers = std::move(md); - return send_fragment(std::move(frame)); - }, - // Continuously send client frame with client to server messages. - ForEach(MessagesFrom(call_handler), - [send_fragment_acked, aligned_bytes = aligned_bytes_]( - MessageHandle message) mutable { - ClientFragmentFrame frame; - // Construct frame header (flags, header_length and - // trailer_length will be added in serialization). - const uint32_t message_length = - message->payload()->Length(); - const uint32_t padding = - message_length % aligned_bytes == 0 - ? 0 - : aligned_bytes - message_length % aligned_bytes; - CHECK_EQ((message_length + padding) % aligned_bytes, 0u); - frame.message = FragmentMessage(std::move(message), padding, - message_length); - return send_fragment_acked(std::move(frame)); - }), - [send_fragment]() mutable { - ClientFragmentFrame frame; - frame.end_of_stream = true; - return send_fragment(std::move(frame)); - })); -} - -void ChaoticGoodClientTransport::StartCall(CallHandler call_handler) { - // At this point, the connection is set up. - // Start sending data frames. - call_handler.SpawnGuarded( - "outbound_loop", [self = RefAsSubclass(), - call_handler]() mutable { - const uint32_t stream_id = self->MakeStream(call_handler); - return If( - stream_id != 0, - [stream_id, call_handler = std::move(call_handler), - self = std::move(self)]() { - return Map( - self->CallOutboundLoop(stream_id, call_handler), - [stream_id, sender = self->outgoing_frames_.MakeSender()]( - absl::Status result) mutable { - GRPC_TRACE_LOG(chaotic_good, INFO) - << "CHAOTIC_GOOD: Call " << stream_id - << " finished with " << result.ToString(); - if (!result.ok()) { - GRPC_TRACE_LOG(chaotic_good, INFO) - << "CHAOTIC_GOOD: Send cancel"; - if (!sender.UnbufferedImmediateSend( - CancelFrame{stream_id})) { - GRPC_TRACE_LOG(chaotic_good, INFO) - << "CHAOTIC_GOOD: Send cancel failed"; - } - } - return result; - }); - }, - []() { return absl::OkStatus(); }); - }); -} - -void ChaoticGoodClientTransport::PerformOp(grpc_transport_op* op) { - MutexLock lock(&mu_); - bool did_stuff = false; - if (op->start_connectivity_watch != nullptr) { - state_tracker_.AddWatcher(op->start_connectivity_watch_state, - std::move(op->start_connectivity_watch)); - did_stuff = true; - } - if (op->stop_connectivity_watch != nullptr) { - state_tracker_.RemoveWatcher(op->stop_connectivity_watch); - did_stuff = true; - } - if (op->set_accept_stream) { - Crash("set_accept_stream not supported on clients"); - } - if (!did_stuff) { - Crash(absl::StrCat("unimplemented transport perform op: ", - grpc_transport_op_string(op))); - } - ExecCtx::Run(DEBUG_LOCATION, op->on_consumed, absl::OkStatus()); -} - -} // namespace chaotic_good_legacy -} // namespace grpc_core diff --git a/src/core/ext/transport/chaotic_good_legacy/client_transport.h b/src/core/ext/transport/chaotic_good_legacy/client_transport.h deleted file mode 100644 index 100f9f0e4ef96..0000000000000 --- a/src/core/ext/transport/chaotic_good_legacy/client_transport.h +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright 2022 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_CLIENT_TRANSPORT_H -#define GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_CLIENT_TRANSPORT_H - -#include -#include -#include -#include -#include -#include - -#include -#include // IWYU pragma: keep -#include -#include -#include -#include -#include -#include -#include - -#include "absl/base/thread_annotations.h" -#include "absl/container/flat_hash_map.h" -#include "absl/random/random.h" -#include "absl/status/status.h" -#include "src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame_header.h" -#include "src/core/ext/transport/chttp2/transport/hpack_encoder.h" -#include "src/core/ext/transport/chttp2/transport/hpack_parser.h" -#include "src/core/lib/promise/activity.h" -#include "src/core/lib/promise/context.h" -#include "src/core/lib/promise/for_each.h" -#include "src/core/lib/promise/if.h" -#include "src/core/lib/promise/inter_activity_pipe.h" -#include "src/core/lib/promise/loop.h" -#include "src/core/lib/promise/mpsc.h" -#include "src/core/lib/promise/pipe.h" -#include "src/core/lib/promise/poll.h" -#include "src/core/lib/promise/try_join.h" -#include "src/core/lib/promise/try_seq.h" -#include "src/core/lib/resource_quota/arena.h" -#include "src/core/lib/resource_quota/memory_quota.h" -#include "src/core/lib/slice/slice_buffer.h" -#include "src/core/lib/transport/metadata_batch.h" // IWYU pragma: keep -#include "src/core/lib/transport/promise_endpoint.h" -#include "src/core/lib/transport/transport.h" -#include "src/core/util/sync.h" - -namespace grpc_core { -namespace chaotic_good_legacy { - -class ChaoticGoodClientTransport final : public ClientTransport { - public: - ChaoticGoodClientTransport( - PromiseEndpoint control_endpoint, PromiseEndpoint data_endpoint, - const ChannelArgs& channel_args, - std::shared_ptr - event_engine, - HPackParser hpack_parser, HPackCompressor hpack_encoder); - ~ChaoticGoodClientTransport() override; - - FilterStackTransport* filter_stack_transport() override { return nullptr; } - ClientTransport* client_transport() override { return this; } - ServerTransport* server_transport() override { return nullptr; } - absl::string_view GetTransportName() const override { return "chaotic_good"; } - void SetPollset(grpc_stream*, grpc_pollset*) override {} - void SetPollsetSet(grpc_stream*, grpc_pollset_set*) override {} - void PerformOp(grpc_transport_op*) override; - void Orphan() override; - - void StartCall(CallHandler call_handler) override; - void AbortWithError(); - - private: - using StreamMap = absl::flat_hash_map; - - uint32_t MakeStream(CallHandler call_handler); - std::optional LookupStream(uint32_t stream_id); - auto CallOutboundLoop(uint32_t stream_id, CallHandler call_handler); - auto OnTransportActivityDone(absl::string_view what); - auto TransportWriteLoop(RefCountedPtr transport); - auto TransportReadLoop(RefCountedPtr transport); - // Push one frame into a call - auto PushFrameIntoCall(ServerFragmentFrame frame, CallHandler call_handler); - - grpc_event_engine::experimental::MemoryAllocator allocator_; - // Max buffer is set to 4, so that for stream writes each time it will queue - // at most 2 frames. - MpscReceiver outgoing_frames_; - // Assigned aligned bytes from setting frame. - size_t aligned_bytes_ = 64; - Mutex mu_; - uint32_t next_stream_id_ ABSL_GUARDED_BY(mu_) = 1; - // Map of stream incoming server frames, key is stream_id. - StreamMap stream_map_ ABSL_GUARDED_BY(mu_); - RefCountedPtr party_; - ConnectivityStateTracker state_tracker_ ABSL_GUARDED_BY(mu_){ - "chaotic_good_client", GRPC_CHANNEL_READY}; -}; - -} // namespace chaotic_good_legacy -} // namespace grpc_core - -#endif // GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_CLIENT_TRANSPORT_H diff --git a/src/core/ext/transport/chaotic_good_legacy/frame.cc b/src/core/ext/transport/chaotic_good_legacy/frame.cc deleted file mode 100644 index e1086589134f7..0000000000000 --- a/src/core/ext/transport/chaotic_good_legacy/frame.cc +++ /dev/null @@ -1,417 +0,0 @@ -// Copyright 2022 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "src/core/ext/transport/chaotic_good_legacy/frame.h" - -#include -#include -#include - -#include -#include -#include - -#include "absl/log/check.h" -#include "absl/status/status.h" -#include "absl/status/statusor.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame_header.h" -#include "src/core/lib/promise/context.h" -#include "src/core/lib/resource_quota/arena.h" -#include "src/core/lib/slice/slice.h" -#include "src/core/lib/slice/slice_buffer.h" -#include "src/core/util/bitset.h" -#include "src/core/util/no_destruct.h" -#include "src/core/util/status_helper.h" - -namespace grpc_core { -namespace chaotic_good_legacy { - -namespace { -const uint8_t kZeros[64] = {}; -} - -namespace { -const NoDestruct kZeroSlice{[] { - // Frame header size is fixed to 24 bytes. - auto slice = GRPC_SLICE_MALLOC(FrameHeader::kFrameHeaderSize); - memset(GRPC_SLICE_START_PTR(slice), 0, FrameHeader::kFrameHeaderSize); - return slice; -}()}; - -class FrameSerializer { - public: - explicit FrameSerializer(FrameType frame_type, uint32_t stream_id) { - output_.control.AppendIndexed(kZeroSlice->Copy()); - header_.type = frame_type; - header_.stream_id = stream_id; - header_.flags.SetAll(false); - } - - // If called, must be called before AddTrailers, Finish. - SliceBuffer& AddHeaders() { - header_.flags.set(0); - return output_.control; - } - - void AddMessage(const FragmentMessage& msg) { - header_.flags.set(1); - header_.message_length = msg.length; - header_.message_padding = msg.padding; - output_.data = msg.message->payload()->Copy(); - if (msg.padding != 0) { - output_.data.Append(Slice::FromStaticBuffer(kZeros, msg.padding)); - } - } - - // If called, must be called before Finish. - SliceBuffer& AddTrailers() { - header_.flags.set(2); - header_.header_length = - output_.control.Length() - FrameHeader::kFrameHeaderSize; - return output_.control; - } - - BufferPair Finish() { - // Calculate frame header_length or trailer_length if available. - if (header_.flags.is_set(2)) { - // Header length is already known in AddTrailers(). - header_.trailer_length = output_.control.Length() - - header_.header_length - - FrameHeader::kFrameHeaderSize; - } else { - if (header_.flags.is_set(0)) { - // Calculate frame header length in Finish() since AddTrailers() isn't - // called. - header_.header_length = - output_.control.Length() - FrameHeader::kFrameHeaderSize; - } - } - header_.Serialize( - GRPC_SLICE_START_PTR(output_.control.c_slice_buffer()->slices[0])); - return std::move(output_); - } - - private: - FrameHeader header_; - BufferPair output_; -}; - -class FrameDeserializer { - public: - FrameDeserializer(const FrameHeader& header, BufferPair& input) - : header_(header), input_(input) {} - const FrameHeader& header() const { return header_; } - // If called, must be called before ReceiveTrailers, Finish. - absl::StatusOr ReceiveHeaders() { - return Take(header_.header_length); - } - // If called, must be called before Finish. - absl::StatusOr ReceiveTrailers() { - return Take(header_.trailer_length); - } - - // Return message length to get payload size in data plane. - uint32_t GetMessageLength() const { return header_.message_length; } - // Return message padding to get padding size in data plane. - uint32_t GetMessagePadding() const { return header_.message_padding; } - - absl::Status Finish() { return absl::OkStatus(); } - - private: - absl::StatusOr Take(uint32_t length) { - if (length == 0) return SliceBuffer{}; - if (input_.control.Length() < length) { - return absl::InvalidArgumentError( - "Frame too short (insufficient payload)"); - } - SliceBuffer out; - input_.control.MoveFirstNBytesIntoSliceBuffer(length, out); - return std::move(out); - } - FrameHeader header_; - BufferPair& input_; -}; - -template -absl::StatusOr> ReadMetadata( - HPackParser* parser, absl::StatusOr maybe_slices, - uint32_t stream_id, bool is_header, bool is_client, absl::BitGenRef bitsrc, - Arena* arena) { - if (!maybe_slices.ok()) return maybe_slices.status(); - auto& slices = *maybe_slices; - CHECK_NE(arena, nullptr); - Arena::PoolPtr metadata = Arena::MakePooledForOverwrite(); - parser->BeginFrame( - metadata.get(), std::numeric_limits::max(), - std::numeric_limits::max(), - is_header ? HPackParser::Boundary::EndOfHeaders - : HPackParser::Boundary::EndOfStream, - HPackParser::Priority::None, - HPackParser::LogInfo{stream_id, - is_header ? HPackParser::LogInfo::Type::kHeaders - : HPackParser::LogInfo::Type::kTrailers, - is_client}); - for (size_t i = 0; i < slices.Count(); i++) { - GRPC_RETURN_IF_ERROR(parser->Parse(slices.c_slice_at(i), - i == slices.Count() - 1, bitsrc, - /*call_tracer=*/nullptr)); - } - parser->FinishFrame(); - return std::move(metadata); -} -} // namespace - -absl::Status FrameLimits::ValidateMessage(const FrameHeader& header) { - if (header.message_length > max_message_size) { - return absl::InvalidArgumentError( - absl::StrCat("Message length ", header.message_length, - " exceeds maximum allowed ", max_message_size)); - } - if (header.message_padding > max_padding) { - return absl::InvalidArgumentError( - absl::StrCat("Message padding ", header.message_padding, - " exceeds maximum allowed ", max_padding)); - } - return absl::OkStatus(); -} - -absl::Status SettingsFrame::Deserialize(HPackParser* parser, - const FrameHeader& header, - absl::BitGenRef bitsrc, Arena* arena, - BufferPair buffers, FrameLimits) { - if (header.type != FrameType::kSettings) { - return absl::InvalidArgumentError("Expected settings frame"); - } - if (header.flags.is_set(1) || header.flags.is_set(2)) { - return absl::InvalidArgumentError("Unexpected flags"); - } - if (buffers.data.Length() != 0) { - return absl::InvalidArgumentError("Unexpected data"); - } - FrameDeserializer deserializer(header, buffers); - if (header.flags.is_set(0)) { - auto r = ReadMetadata(parser, deserializer.ReceiveHeaders(), - header.stream_id, true, true, bitsrc, - arena); - if (!r.ok()) return r.status(); - if (r.value() != nullptr) { - headers = std::move(r.value()); - } - } else if (header.header_length != 0) { - return absl::InvalidArgumentError(absl::StrCat( - "Unexpected non-zero header length", header.header_length)); - } - return deserializer.Finish(); -} - -BufferPair SettingsFrame::Serialize(HPackCompressor* encoder, - bool& saw_encoding_errors) const { - FrameSerializer serializer(FrameType::kSettings, 0); - if (headers.get() != nullptr) { - saw_encoding_errors |= - !encoder->EncodeRawHeaders(*headers.get(), serializer.AddHeaders()); - } - return serializer.Finish(); -} - -std::string SettingsFrame::ToString() const { return "SettingsFrame{}"; } - -absl::Status ClientFragmentFrame::Deserialize(HPackParser* parser, - const FrameHeader& header, - absl::BitGenRef bitsrc, - Arena* arena, BufferPair buffers, - FrameLimits limits) { - if (header.stream_id == 0) { - return absl::InvalidArgumentError("Expected non-zero stream id"); - } - stream_id = header.stream_id; - if (header.type != FrameType::kFragment) { - return absl::InvalidArgumentError("Expected fragment frame"); - } - FrameDeserializer deserializer(header, buffers); - if (header.flags.is_set(0)) { - auto r = ReadMetadata(parser, deserializer.ReceiveHeaders(), - header.stream_id, true, true, bitsrc, - arena); - if (!r.ok()) return r.status(); - if (r.value() != nullptr) { - headers = std::move(r.value()); - } - } else if (header.header_length != 0) { - return absl::InvalidArgumentError(absl::StrCat( - "Unexpected non-zero header length", header.header_length)); - } - if (header.flags.is_set(1)) { - auto r = limits.ValidateMessage(header); - if (!r.ok()) return r; - message = - FragmentMessage{Arena::MakePooled(std::move(buffers.data), 0), - header.message_padding, header.message_length}; - } else if (buffers.data.Length() != 0) { - return absl::InvalidArgumentError(absl::StrCat( - "Unexpected non-zero message length ", buffers.data.Length())); - } - if (header.flags.is_set(2)) { - if (header.trailer_length != 0) { - return absl::InvalidArgumentError( - absl::StrCat("Unexpected trailer length ", header.trailer_length)); - } - end_of_stream = true; - } else { - end_of_stream = false; - } - return deserializer.Finish(); -} - -BufferPair ClientFragmentFrame::Serialize(HPackCompressor* encoder, - bool& saw_encoding_errors) const { - CHECK_NE(stream_id, 0u); - FrameSerializer serializer(FrameType::kFragment, stream_id); - if (headers.get() != nullptr) { - saw_encoding_errors |= - !encoder->EncodeRawHeaders(*headers.get(), serializer.AddHeaders()); - } - if (message.has_value()) { - serializer.AddMessage(message.value()); - } - if (end_of_stream) { - serializer.AddTrailers(); - } - return serializer.Finish(); -} - -std::string FragmentMessage::ToString() const { - std::string out = - absl::StrCat("FragmentMessage{length=", length, ", padding=", padding); - if (message.get() != nullptr) { - absl::StrAppend(&out, ", message=", message->DebugString().c_str()); - } - absl::StrAppend(&out, "}"); - return out; -} - -std::string ClientFragmentFrame::ToString() const { - return absl::StrCat( - "ClientFragmentFrame{stream_id=", stream_id, ", headers=", - headers.get() != nullptr ? headers->DebugString().c_str() : "nullptr", - ", message=", message.has_value() ? message->ToString().c_str() : "none", - ", end_of_stream=", end_of_stream, "}"); -} - -absl::Status ServerFragmentFrame::Deserialize(HPackParser* parser, - const FrameHeader& header, - absl::BitGenRef bitsrc, - Arena* arena, BufferPair buffers, - FrameLimits limits) { - if (header.stream_id == 0) { - return absl::InvalidArgumentError("Expected non-zero stream id"); - } - stream_id = header.stream_id; - FrameDeserializer deserializer(header, buffers); - if (header.flags.is_set(0)) { - auto r = ReadMetadata(parser, deserializer.ReceiveHeaders(), - header.stream_id, true, false, bitsrc, - arena); - if (!r.ok()) return r.status(); - if (r.value() != nullptr) { - headers = std::move(r.value()); - } - } else if (header.header_length != 0) { - return absl::InvalidArgumentError(absl::StrCat( - "Unexpected non-zero header length", header.header_length)); - } - if (header.flags.is_set(1)) { - auto r = limits.ValidateMessage(header); - if (!r.ok()) return r; - message.emplace(Arena::MakePooled(std::move(buffers.data), 0), - header.message_padding, header.message_length); - } else if (buffers.data.Length() != 0) { - return absl::InvalidArgumentError(absl::StrCat( - "Unexpected non-zero message length", buffers.data.Length())); - } - if (header.flags.is_set(2)) { - auto r = ReadMetadata( - parser, deserializer.ReceiveTrailers(), header.stream_id, false, false, - bitsrc, arena); - if (!r.ok()) return r.status(); - if (r.value() != nullptr) { - trailers = std::move(r.value()); - } - } else if (header.trailer_length != 0) { - return absl::InvalidArgumentError(absl::StrCat( - "Unexpected non-zero trailer length", header.trailer_length)); - } - return deserializer.Finish(); -} - -BufferPair ServerFragmentFrame::Serialize(HPackCompressor* encoder, - bool& saw_encoding_errors) const { - CHECK_NE(stream_id, 0u); - FrameSerializer serializer(FrameType::kFragment, stream_id); - if (headers.get() != nullptr) { - saw_encoding_errors |= - !encoder->EncodeRawHeaders(*headers.get(), serializer.AddHeaders()); - } - if (message.has_value()) { - serializer.AddMessage(message.value()); - } - if (trailers.get() != nullptr) { - saw_encoding_errors |= - !encoder->EncodeRawHeaders(*trailers.get(), serializer.AddTrailers()); - } - return serializer.Finish(); -} - -std::string ServerFragmentFrame::ToString() const { - return absl::StrCat( - "ServerFragmentFrame{stream_id=", stream_id, ", headers=", - headers.get() != nullptr ? headers->DebugString().c_str() : "nullptr", - ", message=", message.has_value() ? message->ToString().c_str() : "none", - ", trailers=", - trailers.get() != nullptr ? trailers->DebugString().c_str() : "nullptr", - "}"); -} - -absl::Status CancelFrame::Deserialize(HPackParser*, const FrameHeader& header, - absl::BitGenRef, Arena*, - BufferPair buffers, FrameLimits) { - if (header.type != FrameType::kCancel) { - return absl::InvalidArgumentError("Expected cancel frame"); - } - if (header.flags.any()) { - return absl::InvalidArgumentError("Unexpected flags"); - } - if (header.stream_id == 0) { - return absl::InvalidArgumentError("Expected non-zero stream id"); - } - if (buffers.data.Length() != 0) { - return absl::InvalidArgumentError("Unexpected data"); - } - FrameDeserializer deserializer(header, buffers); - stream_id = header.stream_id; - return deserializer.Finish(); -} - -BufferPair CancelFrame::Serialize(HPackCompressor*, bool&) const { - CHECK_NE(stream_id, 0u); - FrameSerializer serializer(FrameType::kCancel, stream_id); - return serializer.Finish(); -} - -std::string CancelFrame::ToString() const { - return absl::StrCat("CancelFrame{stream_id=", stream_id, "}"); -} - -} // namespace chaotic_good_legacy -} // namespace grpc_core diff --git a/src/core/ext/transport/chaotic_good_legacy/frame.h b/src/core/ext/transport/chaotic_good_legacy/frame.h deleted file mode 100644 index 44040572e208c..0000000000000 --- a/src/core/ext/transport/chaotic_good_legacy/frame.h +++ /dev/null @@ -1,194 +0,0 @@ -// Copyright 2022 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_FRAME_H -#define GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_FRAME_H - -#include - -#include -#include -#include -#include - -#include "absl/random/bit_gen_ref.h" -#include "absl/status/status.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame_header.h" -#include "src/core/ext/transport/chttp2/transport/hpack_encoder.h" -#include "src/core/ext/transport/chttp2/transport/hpack_parser.h" -#include "src/core/lib/resource_quota/arena.h" -#include "src/core/lib/slice/slice_buffer.h" -#include "src/core/lib/transport/metadata_batch.h" -#include "src/core/lib/transport/transport.h" -#include "src/core/util/match.h" - -namespace grpc_core { -namespace chaotic_good_legacy { - -struct BufferPair { - SliceBuffer control; - SliceBuffer data; -}; - -struct FrameLimits { - size_t max_message_size = 1024 * 1024 * 1024; - size_t max_padding = 63; - - absl::Status ValidateMessage(const FrameHeader& header); -}; - -class FrameInterface { - public: - virtual absl::Status Deserialize(HPackParser* parser, - const FrameHeader& header, - absl::BitGenRef bitsrc, Arena* arena, - BufferPair buffers, FrameLimits limits) = 0; - virtual BufferPair Serialize(HPackCompressor* encoder, - bool& saw_encoding_errors) const = 0; - virtual std::string ToString() const = 0; - - template - friend void AbslStringify(Sink& sink, const FrameInterface& frame) { - sink.Append(frame.ToString()); - } - - protected: - static bool EqVal(const grpc_metadata_batch& a, - const grpc_metadata_batch& b) { - return a.DebugString() == b.DebugString(); - } - template - static bool EqHdl(const Arena::PoolPtr& a, const Arena::PoolPtr& b) { - if (a == nullptr && b == nullptr) return true; - if (a == nullptr || b == nullptr) return false; - return EqVal(*a, *b); - } - ~FrameInterface() = default; -}; - -inline std::ostream& operator<<(std::ostream& os, const FrameInterface& frame) { - return os << frame.ToString(); -} - -struct SettingsFrame final : public FrameInterface { - absl::Status Deserialize(HPackParser* parser, const FrameHeader& header, - absl::BitGenRef bitsrc, Arena* arena, - BufferPair buffers, FrameLimits limits) override; - BufferPair Serialize(HPackCompressor* encoder, - bool& saw_encoding_errors) const override; - ClientMetadataHandle headers; - std::string ToString() const override; - - bool operator==(const SettingsFrame&) const { return true; } -}; - -struct FragmentMessage { - FragmentMessage(MessageHandle message, uint32_t padding, uint32_t length) - : message(std::move(message)), padding(padding), length(length) {} - - MessageHandle message; - uint32_t padding; - uint32_t length; - - std::string ToString() const; - - static bool EqVal(const Message& a, const Message& b) { - return a.payload()->JoinIntoString() == b.payload()->JoinIntoString() && - a.flags() == b.flags(); - } - - bool operator==(const FragmentMessage& other) const { - if (length != other.length) return false; - if (message == nullptr && other.message == nullptr) return true; - if (message == nullptr || other.message == nullptr) return false; - return EqVal(*message, *other.message); - } -}; - -struct ClientFragmentFrame final : public FrameInterface { - absl::Status Deserialize(HPackParser* parser, const FrameHeader& header, - absl::BitGenRef bitsrc, Arena* arena, - BufferPair buffers, FrameLimits limits) override; - BufferPair Serialize(HPackCompressor* encoder, - bool& saw_encoding_errors) const override; - std::string ToString() const override; - - uint32_t stream_id; - ClientMetadataHandle headers; - std::optional message; - bool end_of_stream = false; - - bool operator==(const ClientFragmentFrame& other) const { - return stream_id == other.stream_id && EqHdl(headers, other.headers) && - message == other.message && end_of_stream == other.end_of_stream; - } -}; - -struct ServerFragmentFrame final : public FrameInterface { - absl::Status Deserialize(HPackParser* parser, const FrameHeader& header, - absl::BitGenRef bitsrc, Arena* arena, - BufferPair buffers, FrameLimits limits) override; - BufferPair Serialize(HPackCompressor* encoder, - bool& saw_encoding_errors) const override; - std::string ToString() const override; - - uint32_t stream_id; - ServerMetadataHandle headers; - std::optional message; - ServerMetadataHandle trailers; - - bool operator==(const ServerFragmentFrame& other) const { - return stream_id == other.stream_id && EqHdl(headers, other.headers) && - message == other.message && EqHdl(trailers, other.trailers); - } -}; - -struct CancelFrame final : public FrameInterface { - CancelFrame() = default; - explicit CancelFrame(uint32_t stream_id) : stream_id(stream_id) {} - - absl::Status Deserialize(HPackParser* parser, const FrameHeader& header, - absl::BitGenRef bitsrc, Arena* arena, - BufferPair buffers, FrameLimits limits) override; - BufferPair Serialize(HPackCompressor* encoder, - bool& saw_encoding_errors) const override; - std::string ToString() const override; - - uint32_t stream_id; - - bool operator==(const CancelFrame& other) const { - return stream_id == other.stream_id; - } -}; - -using ClientFrame = std::variant; -using ServerFrame = std::variant; - -inline FrameInterface& GetFrameInterface(ClientFrame& frame) { - return MatchMutable( - &frame, - [](ClientFragmentFrame* frame) -> FrameInterface& { return *frame; }, - [](CancelFrame* frame) -> FrameInterface& { return *frame; }); -} - -inline FrameInterface& GetFrameInterface(ServerFrame& frame) { - return MatchMutable( - &frame, - [](ServerFragmentFrame* frame) -> FrameInterface& { return *frame; }); -} - -} // namespace chaotic_good_legacy -} // namespace grpc_core - -#endif // GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_FRAME_H diff --git a/src/core/ext/transport/chaotic_good_legacy/frame_header.cc b/src/core/ext/transport/chaotic_good_legacy/frame_header.cc deleted file mode 100644 index 03f43b949b6da..0000000000000 --- a/src/core/ext/transport/chaotic_good_legacy/frame_header.cc +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2022 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "src/core/ext/transport/chaotic_good_legacy/frame_header.h" - -#include - -#include - -#include "absl/status/status.h" -#include "absl/strings/str_cat.h" - -namespace grpc_core { -namespace chaotic_good_legacy { - -namespace { -void WriteLittleEndianUint32(uint32_t value, uint8_t* data) { - data[0] = static_cast(value); - data[1] = static_cast(value >> 8); - data[2] = static_cast(value >> 16); - data[3] = static_cast(value >> 24); -} - -uint32_t ReadLittleEndianUint32(const uint8_t* data) { - return static_cast(data[0]) | - (static_cast(data[1]) << 8) | - (static_cast(data[2]) << 16) | - (static_cast(data[3]) << 24); -} -} // namespace - -// Serializes a frame header into a buffer of 24 bytes. -void FrameHeader::Serialize(uint8_t* data) const { - WriteLittleEndianUint32( - static_cast(type) | (flags.ToInt() << 8), data); - WriteLittleEndianUint32(stream_id, data + 4); - WriteLittleEndianUint32(header_length, data + 8); - WriteLittleEndianUint32(message_length, data + 12); - WriteLittleEndianUint32(message_padding, data + 16); - WriteLittleEndianUint32(trailer_length, data + 20); -} - -// Parses a frame header from a buffer of 24 bytes. All 24 bytes are consumed. -absl::StatusOr FrameHeader::Parse(const uint8_t* data) { - FrameHeader header; - const uint32_t type_and_flags = ReadLittleEndianUint32(data); - header.type = static_cast(type_and_flags & 0xff); - const uint32_t flags = type_and_flags >> 8; - if (flags > 7) return absl::InvalidArgumentError("Invalid flags"); - header.flags = BitSet<3>::FromInt(flags); - header.stream_id = ReadLittleEndianUint32(data + 4); - header.header_length = ReadLittleEndianUint32(data + 8); - header.message_length = ReadLittleEndianUint32(data + 12); - header.message_padding = ReadLittleEndianUint32(data + 16); - header.trailer_length = ReadLittleEndianUint32(data + 20); - return header; -} - -uint32_t FrameHeader::GetFrameLength() const { - // In chaotic-good transport design, message and message padding are sent - // through different channel. So not included in the frame length calculation. - uint32_t frame_length = header_length + trailer_length; - return frame_length; -} - -std::string FrameHeader::ToString() const { - return absl::StrFormat( - "[type=0x%02x, flags=0x%02x, stream_id=%d, header_length=%d, " - "message_length=%d, message_padding=%d, trailer_length=%d]", - static_cast(type), flags.ToInt(), stream_id, - header_length, message_length, message_padding, trailer_length); -} - -} // namespace chaotic_good_legacy -} // namespace grpc_core diff --git a/src/core/ext/transport/chaotic_good_legacy/frame_header.h b/src/core/ext/transport/chaotic_good_legacy/frame_header.h deleted file mode 100644 index b9e1929dc7ef2..0000000000000 --- a/src/core/ext/transport/chaotic_good_legacy/frame_header.h +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2022 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_FRAME_HEADER_H -#define GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_FRAME_HEADER_H - -#include -#include - -#include - -#include "absl/status/statusor.h" -#include "src/core/util/bitset.h" - -namespace grpc_core { -namespace chaotic_good_legacy { - -enum class FrameType : uint8_t { - kSettings = 0x00, - kFragment = 0x80, - kCancel = 0x81, -}; - -inline std::ostream& operator<<(std::ostream& out, FrameType type) { - switch (type) { - case FrameType::kSettings: - return out << "Settings"; - case FrameType::kFragment: - return out << "Fragment"; - case FrameType::kCancel: - return out << "Cancel"; - default: - return out << "Unknown[" << static_cast(type) << "]"; - } -} - -struct FrameHeader { - FrameType type = FrameType::kCancel; - BitSet<3> flags; - uint32_t stream_id = 0; - uint32_t header_length = 0; - uint32_t message_length = 0; - uint32_t message_padding = 0; - uint32_t trailer_length = 0; - - // Parses a frame header from a buffer of 24 bytes. All 24 bytes are consumed. - static absl::StatusOr Parse(const uint8_t* data); - // Serializes a frame header into a buffer of 24 bytes. - void Serialize(uint8_t* data) const; - // Compute frame sizes from the header. - uint32_t GetFrameLength() const; - // Report contents as a string - std::string ToString() const; - - bool operator==(const FrameHeader& h) const { - return type == h.type && flags == h.flags && stream_id == h.stream_id && - header_length == h.header_length && - message_length == h.message_length && - message_padding == h.message_padding && - trailer_length == h.trailer_length; - } - // Frame header size is fixed to 24 bytes. - static constexpr size_t kFrameHeaderSize = 24; -}; - -} // namespace chaotic_good_legacy -} // namespace grpc_core - -#endif // GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_FRAME_HEADER_H diff --git a/src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc b/src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc deleted file mode 100644 index f9ba17f34f0ea..0000000000000 --- a/src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.cc +++ /dev/null @@ -1,513 +0,0 @@ -// Copyright 2024 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h" - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "absl/log/check.h" -#include "absl/log/log.h" -#include "absl/random/bit_gen_ref.h" -#include "absl/status/status.h" -#include "absl/status/statusor.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame_header.h" -#include "src/core/ext/transport/chaotic_good_legacy/server_transport.h" -#include "src/core/ext/transport/chaotic_good_legacy/settings_metadata.h" -#include "src/core/handshaker/handshaker.h" -#include "src/core/lib/channel/channel_args.h" -#include "src/core/lib/event_engine/channel_args_endpoint_config.h" -#include "src/core/lib/event_engine/event_engine_context.h" -#include "src/core/lib/event_engine/extensions/chaotic_good_extension.h" -#include "src/core/lib/event_engine/query_extensions.h" -#include "src/core/lib/event_engine/resolved_address_internal.h" -#include "src/core/lib/event_engine/tcp_socket_utils.h" -#include "src/core/lib/iomgr/error.h" -#include "src/core/lib/iomgr/event_engine_shims/endpoint.h" -#include "src/core/lib/promise/activity.h" -#include "src/core/lib/promise/context.h" -#include "src/core/lib/promise/event_engine_wakeup_scheduler.h" -#include "src/core/lib/promise/if.h" -#include "src/core/lib/promise/latch.h" -#include "src/core/lib/promise/race.h" -#include "src/core/lib/promise/sleep.h" -#include "src/core/lib/promise/try_seq.h" -#include "src/core/lib/resource_quota/arena.h" -#include "src/core/lib/resource_quota/resource_quota.h" -#include "src/core/lib/slice/slice.h" -#include "src/core/lib/slice/slice_buffer.h" -#include "src/core/lib/transport/error_utils.h" -#include "src/core/lib/transport/metadata.h" -#include "src/core/lib/transport/metadata_batch.h" -#include "src/core/lib/transport/promise_endpoint.h" -#include "src/core/server/server.h" -#include "src/core/util/orphanable.h" -#include "src/core/util/ref_counted_ptr.h" -#include "src/core/util/status_helper.h" -#include "src/core/util/sync.h" -#include "src/core/util/time.h" - -namespace grpc_core { -namespace chaotic_good_legacy { - -namespace { -const Duration kConnectionDeadline = Duration::Seconds(120); -} // namespace - -using grpc_event_engine::experimental::EventEngine; -ChaoticGoodServerListener::ChaoticGoodServerListener( - Server* server, const ChannelArgs& args, - absl::AnyInvocable connection_id_generator) - : server_(server), - args_(args), - event_engine_( - args.GetObjectRef()), - connection_id_generator_(std::move(connection_id_generator)) {} - -ChaoticGoodServerListener::~ChaoticGoodServerListener() { - if (on_destroy_done_ != nullptr) { - event_engine_->Run([on_destroy_done = on_destroy_done_]() { - ExecCtx exec_ctx; - ExecCtx::Run(DEBUG_LOCATION, on_destroy_done, absl::OkStatus()); - }); - } -} - -absl::StatusOr ChaoticGoodServerListener::Bind( - grpc_event_engine::experimental::EventEngine::ResolvedAddress addr) { - if (GRPC_TRACE_FLAG_ENABLED(chaotic_good)) { - auto str = grpc_event_engine::experimental::ResolvedAddressToString(addr); - LOG(INFO) << "CHAOTIC_GOOD: Listen on " - << (str.ok() ? str->c_str() : str.status().ToString()); - } - EventEngine::Listener::AcceptCallback accept_cb = - [self = RefAsSubclass()]( - std::unique_ptr ep, MemoryAllocator) { - ExecCtx exec_ctx; - MutexLock lock(&self->mu_); - if (self->shutdown_) return; - self->connection_list_.emplace( - MakeOrphanable(self, std::move(ep))); - }; - auto shutdown_cb = [](absl::Status status) { - if (!status.ok()) { - LOG(ERROR) << "Server accept connection failed: " << status; - } - }; - CHECK_NE(event_engine_, nullptr); - auto ee_listener = event_engine_->CreateListener( - std::move(accept_cb), std::move(shutdown_cb), - grpc_event_engine::experimental::ChannelArgsEndpointConfig(args_), - std::make_unique("chaotic_good_server_listener")); - if (!ee_listener.ok()) { - LOG(ERROR) << "Bind failed: " << ee_listener.status().ToString(); - return ee_listener.status(); - } - ee_listener_ = std::move(ee_listener.value()); - auto port_num = ee_listener_->Bind(addr); - if (!port_num.ok()) { - return port_num.status(); - } - return port_num; -} - -absl::Status ChaoticGoodServerListener::StartListening() { - CHECK(ee_listener_ != nullptr); - auto status = ee_listener_->Start(); - if (!status.ok()) { - LOG(ERROR) << "Start listening failed: " << status; - } else { - GRPC_TRACE_LOG(chaotic_good, INFO) << "CHAOTIC_GOOD: Started listening"; - } - return status; -} - -ChaoticGoodServerListener::ActiveConnection::ActiveConnection( - RefCountedPtr listener, - std::unique_ptr endpoint) - : listener_(std::move(listener)) { - arena_->SetContext( - listener_->event_engine_.get()); - handshaking_state_ = MakeRefCounted(Ref()); - handshaking_state_->Start(std::move(endpoint)); -} - -ChaoticGoodServerListener::ActiveConnection::~ActiveConnection() { - if (receive_settings_activity_ != nullptr) receive_settings_activity_.reset(); -} - -void ChaoticGoodServerListener::ActiveConnection::Orphan() { - GRPC_TRACE_LOG(chaotic_good, INFO) << "ActiveConnection::Orphan() " << this; - if (handshaking_state_ != nullptr) { - handshaking_state_->Shutdown(); - handshaking_state_.reset(); - } - ActivityPtr activity; - { - MutexLock lock(&mu_); - orphaned_ = true; - activity = std::move(receive_settings_activity_); - } - activity.reset(); - Unref(); -} - -void ChaoticGoodServerListener::ActiveConnection::NewConnectionID() { - bool has_new_id = false; - MutexLock lock(&listener_->mu_); - while (!has_new_id) { - connection_id_ = listener_->connection_id_generator_(); - if (!listener_->connectivity_map_.contains(connection_id_)) { - has_new_id = true; - } - } - listener_->connectivity_map_.emplace( - connection_id_, std::make_shared>()); -} - -void ChaoticGoodServerListener::ActiveConnection::Done() { - // Can easily be holding various locks here: bounce through EE to ensure no - // deadlocks. - listener_->event_engine_->Run([self = Ref()]() { - ExecCtx exec_ctx; - OrphanablePtr con; - MutexLock lock(&self->listener_->mu_); - auto v = self->listener_->connection_list_.extract(self.get()); - if (!v.empty()) con = std::move(v.value()); - }); -} - -ChaoticGoodServerListener::ActiveConnection::HandshakingState::HandshakingState( - RefCountedPtr connection) - : connection_(std::move(connection)), - handshake_mgr_(MakeRefCounted()) {} - -void ChaoticGoodServerListener::ActiveConnection::HandshakingState::Start( - std::unique_ptr endpoint) { - handshake_mgr_->DoHandshake( - OrphanablePtr( - grpc_event_engine_endpoint_create(std::move(endpoint))), - connection_->args(), GetConnectionDeadline(), nullptr, - [self = Ref()](absl::StatusOr result) { - self->OnHandshakeDone(std::move(result)); - }); -} - -auto ChaoticGoodServerListener::ActiveConnection::HandshakingState:: - EndpointReadSettingsFrame(RefCountedPtr self) { - return TrySeq( - self->connection_->endpoint_.ReadSlice(FrameHeader::kFrameHeaderSize), - [self](Slice slice) { - // Parse frame header - auto frame_header = FrameHeader::Parse(reinterpret_cast( - GRPC_SLICE_START_PTR(slice.c_slice()))); - return If( - frame_header.ok(), - [self, &frame_header]() { - return TrySeq( - self->connection_->endpoint_.Read( - frame_header->GetFrameLength()), - [frame_header = *frame_header, - self](SliceBuffer buffer) -> absl::StatusOr { - // Read Setting frame. - SettingsFrame frame; - // Deserialize frame from read buffer. - BufferPair buffer_pair{std::move(buffer), SliceBuffer()}; - auto status = frame.Deserialize( - &self->connection_->hpack_parser_, frame_header, - absl::BitGenRef(self->connection_->bitgen_), - GetContext(), std::move(buffer_pair), - FrameLimits{}); - if (!status.ok()) return status; - if (frame.headers == nullptr) { - return absl::UnavailableError("no settings headers"); - } - auto settings_metadata = - SettingsMetadata::FromMetadataBatch(*frame.headers); - if (!settings_metadata.ok()) { - return settings_metadata.status(); - } - const bool is_control_endpoint = - settings_metadata->connection_type == - SettingsMetadata::ConnectionType::kControl; - if (!is_control_endpoint) { - if (!settings_metadata->connection_id.has_value()) { - return absl::UnavailableError( - "no connection id in data endpoint settings frame"); - } - if (!settings_metadata->alignment.has_value()) { - return absl::UnavailableError( - "no alignment in data endpoint settings frame"); - } - // Get connection-id and data-alignment for data endpoint. - self->connection_->connection_id_ = - *settings_metadata->connection_id; - self->connection_->data_alignment_ = - *settings_metadata->alignment; - } - return is_control_endpoint; - }); - }, - [&frame_header]() { - return [r = frame_header.status()]() -> absl::StatusOr { - return r; - }; - }); - }); -} - -auto ChaoticGoodServerListener::ActiveConnection::HandshakingState:: - WaitForDataEndpointSetup(RefCountedPtr self) { - return Race( - TrySeq( - []() { - // TODO(ladynana): find a way to resolve SeqState to actual - // value. - return absl::OkStatus(); - }, - [self]() { - MutexLock lock(&self->connection_->listener_->mu_); - auto latch = self->connection_->listener_->connectivity_map_ - .find(self->connection_->connection_id_) - ->second; - return latch->Wait(); - }, - [self](PromiseEndpoint ret) -> absl::Status { - MutexLock lock(&self->connection_->listener_->mu_); - GRPC_TRACE_LOG(chaotic_good, INFO) - << self->connection_.get() - << " Data endpoint setup done: shutdown=" - << (self->connection_->listener_->shutdown_ ? "true" : "false"); - if (self->connection_->listener_->shutdown_) { - return absl::UnavailableError("Server shutdown"); - } - return self->connection_->listener_->server_->SetupTransport( - new ChaoticGoodServerTransport( - self->connection_->args(), - std::move(self->connection_->endpoint_), std::move(ret), - self->connection_->listener_->event_engine_, - std::move(self->connection_->hpack_parser_), - std::move(self->connection_->hpack_compressor_)), - nullptr, self->connection_->args(), nullptr); - }), - // Set timeout for waiting data endpoint connect. - TrySeq( - // []() { - Sleep(Timestamp::Now() + kConnectionDeadline), - [self]() mutable -> absl::Status { - MutexLock lock(&self->connection_->listener_->mu_); - // Delete connection id from map when timeout; - self->connection_->listener_->connectivity_map_.erase( - self->connection_->connection_id_); - return absl::DeadlineExceededError("Deadline exceeded."); - })); -} - -auto ChaoticGoodServerListener::ActiveConnection::HandshakingState:: - ControlEndpointWriteSettingsFrame(RefCountedPtr self) { - self->connection_->NewConnectionID(); - SettingsFrame frame; - frame.headers = - SettingsMetadata{std::nullopt, self->connection_->connection_id_, - std::nullopt} - .ToMetadataBatch(); - bool saw_encoding_errors = false; - auto write_buffer = frame.Serialize(&self->connection_->hpack_compressor_, - saw_encoding_errors); - // ignore encoding errors: they will be logged separately already - return TrySeq( - self->connection_->endpoint_.Write(std::move(write_buffer.control)), - WaitForDataEndpointSetup(self)); -} - -auto ChaoticGoodServerListener::ActiveConnection::HandshakingState:: - DataEndpointWriteSettingsFrame(RefCountedPtr self) { - // Send data endpoint setting frame - SettingsFrame frame; - frame.headers = - SettingsMetadata{std::nullopt, self->connection_->connection_id_, - self->connection_->data_alignment_} - .ToMetadataBatch(); - bool saw_encoding_errors = false; - auto write_buffer = frame.Serialize(&self->connection_->hpack_compressor_, - saw_encoding_errors); - // ignore encoding errors: they will be logged separately already - return TrySeq( - self->connection_->endpoint_.Write(std::move(write_buffer.control)), - [self]() mutable { - MutexLock lock(&self->connection_->listener_->mu_); - // Set endpoint to latch - auto it = self->connection_->listener_->connectivity_map_.find( - self->connection_->connection_id_); - if (it == self->connection_->listener_->connectivity_map_.end()) { - return absl::InternalError( - absl::StrCat("Connection not in map: ", - absl::CEscape(self->connection_->connection_id_))); - } - it->second->Set(std::move(self->connection_->endpoint_)); - return absl::OkStatus(); - }); -} - -auto ChaoticGoodServerListener::ActiveConnection::HandshakingState:: - EndpointWriteSettingsFrame(RefCountedPtr self, - bool is_control_endpoint) { - return If( - is_control_endpoint, - [&self] { return ControlEndpointWriteSettingsFrame(self); }, - [&self] { return DataEndpointWriteSettingsFrame(self); }); -} - -void ChaoticGoodServerListener::ActiveConnection::HandshakingState:: - OnHandshakeDone(absl::StatusOr result) { - if (!result.ok()) { - LOG_EVERY_N_SEC(ERROR, 5) << "Handshake failed: ", result.status(); - connection_->Done(); - return; - } - CHECK_NE(*result, nullptr); - if ((*result)->endpoint == nullptr) { - LOG_EVERY_N_SEC(ERROR, 5) - << "Server handshake done but has empty endpoint."; - connection_->Done(); - return; - } - CHECK(grpc_event_engine::experimental::grpc_is_event_engine_endpoint( - (*result)->endpoint.get())); - auto ee_endpoint = - grpc_event_engine::experimental::grpc_take_wrapped_event_engine_endpoint( - (*result)->endpoint.release()); - auto* chaotic_good_ext = grpc_event_engine::experimental::QueryExtension< - grpc_event_engine::experimental::ChaoticGoodExtension>(ee_endpoint.get()); - connection_->endpoint_ = - PromiseEndpoint(std::move(ee_endpoint), SliceBuffer()); - auto activity = MakeActivity( - [self = Ref(), chaotic_good_ext]() { - return TrySeq( - Race(EndpointReadSettingsFrame(self), - TrySeq(Sleep(Timestamp::Now() + kConnectionDeadline), - []() -> absl::StatusOr { - return absl::DeadlineExceededError( - "Waiting for initial settings frame"); - })), - [self, chaotic_good_ext](bool is_control_endpoint) { - if (chaotic_good_ext != nullptr) { - chaotic_good_ext->EnableStatsCollection(is_control_endpoint); - if (is_control_endpoint) { - // Control endpoint should use the default memory quota - chaotic_good_ext->UseMemoryQuota( - ResourceQuota::Default()->memory_quota()); - } - } - return EndpointWriteSettingsFrame(self, is_control_endpoint); - }); - }, - EventEngineWakeupScheduler(connection_->listener_->event_engine_), - [self = Ref()](absl::Status status) { - if (!status.ok()) { - GRPC_TRACE_LOG(chaotic_good, ERROR) - << "Server setting frame handling failed: " << status; - } - self->connection_->Done(); - }, - connection_->arena_.get()); - MutexLock lock(&connection_->mu_); - if (connection_->orphaned_) return; - connection_->receive_settings_activity_ = std::move(activity); -} - -Timestamp ChaoticGoodServerListener::ActiveConnection::HandshakingState:: - GetConnectionDeadline() { - return Timestamp::Now() + - connection_->args() - .GetDurationFromIntMillis(GRPC_ARG_SERVER_HANDSHAKE_TIMEOUT_MS) - .value_or(kConnectionDeadline); -} - -void ChaoticGoodServerListener::Orphan() { - GRPC_TRACE_LOG(chaotic_good, INFO) << "ChaoticGoodServerListener::Orphan()"; - { - absl::flat_hash_set> connection_list; - MutexLock lock(&mu_); - connection_list = std::move(connection_list_); - connection_list_.clear(); - shutdown_ = true; - } - ee_listener_.reset(); - Unref(); -}; - -} // namespace chaotic_good_legacy -} // namespace grpc_core - -int grpc_server_add_chaotic_good_legacy_port(grpc_server* server, - const char* addr) { - grpc_core::ExecCtx exec_ctx; - auto* const core_server = grpc_core::Server::FromC(server); - const std::string parsed_addr = grpc_core::URI::PercentDecode(addr); - const auto resolved_or = grpc_core::GetDNSResolver()->LookupHostnameBlocking( - parsed_addr, absl::StrCat(0xd20)); - if (!resolved_or.ok()) { - LOG(ERROR) << "Failed to resolve " << addr << ": " - << resolved_or.status().ToString(); - return 0; - } - int port_num = 0; - std::vector> error_list; - for (const auto& resolved_addr : resolved_or.value()) { - auto listener = grpc_core::MakeOrphanable< - grpc_core::chaotic_good_legacy::ChaoticGoodServerListener>( - core_server, core_server->channel_args()); - const auto ee_addr = - grpc_event_engine::experimental::CreateResolvedAddress(resolved_addr); - std::string addr_str = - *grpc_event_engine::experimental::ResolvedAddressToString(ee_addr); - GRPC_TRACE_LOG(chaotic_good, INFO) << "BIND: " << addr_str; - auto bind_result = listener->Bind(ee_addr); - if (!bind_result.ok()) { - error_list.push_back( - std::make_pair(std::move(addr_str), bind_result.status())); - continue; - } - if (port_num == 0) { - port_num = bind_result.value(); - } else { - CHECK(port_num == bind_result.value()); - } - core_server->AddListener(std::move(listener)); - } - if (error_list.size() == resolved_or->size()) { - LOG(ERROR) << "Failed to bind any address for " << addr; - for (const auto& error : error_list) { - LOG(ERROR) << " " << error.first << ": " << error.second; - } - } else if (!error_list.empty()) { - LOG(INFO) << "Failed to bind some addresses for " << addr; - for (const auto& error : error_list) { - GRPC_TRACE_LOG(chaotic_good, INFO) - << "Binding Failed: " << error.first << ": " << error.second; - } - } - return port_num; -} diff --git a/src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h b/src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h deleted file mode 100644 index 270a176019326..0000000000000 --- a/src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h +++ /dev/null @@ -1,173 +0,0 @@ -// Copyright 2022 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_SERVER_CHAOTIC_GOOD_SERVER_H -#define GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_SERVER_CHAOTIC_GOOD_SERVER_H - -#include -#include - -#include -#include -#include -#include -#include - -#include "absl/container/flat_hash_map.h" -#include "absl/random/random.h" -#include "absl/status/status.h" -#include "absl/status/statusor.h" -#include "src/core/channelz/channelz.h" -#include "src/core/ext/transport/chttp2/transport/hpack_encoder.h" -#include "src/core/ext/transport/chttp2/transport/hpack_parser.h" -#include "src/core/handshaker/handshaker.h" -#include "src/core/lib/channel/channel_args.h" -#include "src/core/lib/iomgr/closure.h" -#include "src/core/lib/iomgr/error.h" -#include "src/core/lib/iomgr/iomgr_fwd.h" -#include "src/core/lib/promise/activity.h" -#include "src/core/lib/promise/inter_activity_latch.h" -#include "src/core/lib/resource_quota/memory_quota.h" -#include "src/core/lib/resource_quota/resource_quota.h" -#include "src/core/lib/slice/slice.h" -#include "src/core/lib/transport/promise_endpoint.h" -#include "src/core/server/server.h" -#include "src/core/util/sync.h" -#include "src/core/util/time.h" - -namespace grpc_core { -namespace chaotic_good_legacy { -class ChaoticGoodServerListener final : public Server::ListenerInterface { - public: - static absl::AnyInvocable DefaultConnectionIDGenerator() { - return [bitgen = absl::BitGen()]() mutable { - return absl::StrCat(absl::Hex(absl::Uniform(bitgen))); - }; - } - - ChaoticGoodServerListener( - Server* server, const ChannelArgs& args, - absl::AnyInvocable connection_id_generator = - DefaultConnectionIDGenerator()); - ~ChaoticGoodServerListener() override; - // Bind address to EventEngine listener. - absl::StatusOr Bind( - grpc_event_engine::experimental::EventEngine::ResolvedAddress addr); - absl::Status StartListening(); - const ChannelArgs& args() const { return args_; } - void Orphan() override; - - class ActiveConnection : public InternallyRefCounted { - public: - ActiveConnection( - RefCountedPtr listener, - std::unique_ptr - endpoint); - ~ActiveConnection() override; - const ChannelArgs& args() const { return listener_->args(); } - - void Orphan() override; - - class HandshakingState : public RefCounted { - public: - explicit HandshakingState(RefCountedPtr connection); - ~HandshakingState() override {}; - void Start(std::unique_ptr< - grpc_event_engine::experimental::EventEngine::Endpoint> - endpoint); - - void Shutdown() { - handshake_mgr_->Shutdown(absl::CancelledError("Shutdown")); - } - - private: - static auto EndpointReadSettingsFrame( - RefCountedPtr self); - static auto EndpointWriteSettingsFrame( - RefCountedPtr self, bool is_control_endpoint); - static auto WaitForDataEndpointSetup( - RefCountedPtr self); - static auto ControlEndpointWriteSettingsFrame( - RefCountedPtr self); - static auto DataEndpointWriteSettingsFrame( - RefCountedPtr self); - - void OnHandshakeDone(absl::StatusOr result); - Timestamp GetConnectionDeadline(); - const RefCountedPtr connection_; - const RefCountedPtr handshake_mgr_; - }; - - private: - void Done(); - void NewConnectionID(); - RefCountedPtr arena_ = SimpleArenaAllocator()->MakeArena(); - const RefCountedPtr listener_; - RefCountedPtr handshaking_state_; - Mutex mu_; - ActivityPtr receive_settings_activity_ ABSL_GUARDED_BY(mu_); - bool orphaned_ ABSL_GUARDED_BY(mu_) = false; - PromiseEndpoint endpoint_; - HPackCompressor hpack_compressor_; - HPackParser hpack_parser_; - absl::BitGen bitgen_; - std::string connection_id_; - int32_t data_alignment_; - }; - - void Start() override { StartListening().IgnoreError(); }; - - channelz::ListenSocketNode* channelz_listen_socket_node() const override { - return nullptr; - } - - void SetServerListenerState(RefCountedPtr) override {} - - const grpc_resolved_address* resolved_address() const override { - // chaotic good doesn't use the new ListenerState interface yet. - Crash("Unimplemented"); - return nullptr; - } - - void SetOnDestroyDone(grpc_closure* closure) override { - MutexLock lock(&mu_); - on_destroy_done_ = closure; - }; - - private: - Server* const server_; - ChannelArgs args_; - std::shared_ptr event_engine_; - std::unique_ptr - ee_listener_; - Mutex mu_; - bool shutdown_ ABSL_GUARDED_BY(mu_) = false; - // Map of connection id to endpoints connectivity. - absl::flat_hash_map>> - connectivity_map_ ABSL_GUARDED_BY(mu_); - absl::flat_hash_set> connection_list_ - ABSL_GUARDED_BY(mu_); - absl::AnyInvocable connection_id_generator_ - ABSL_GUARDED_BY(mu_); - grpc_closure* on_destroy_done_ ABSL_GUARDED_BY(mu_) = nullptr; -}; - -} // namespace chaotic_good_legacy -} // namespace grpc_core - -int grpc_server_add_chaotic_good_legacy_port(grpc_server* server, - const char* addr); - -#endif // GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_SERVER_CHAOTIC_GOOD_SERVER_H diff --git a/src/core/ext/transport/chaotic_good_legacy/server_transport.cc b/src/core/ext/transport/chaotic_good_legacy/server_transport.cc deleted file mode 100644 index 99dc9944c6ea3..0000000000000 --- a/src/core/ext/transport/chaotic_good_legacy/server_transport.cc +++ /dev/null @@ -1,527 +0,0 @@ -// Copyright 2022 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "src/core/ext/transport/chaotic_good_legacy/server_transport.h" - -#include -#include -#include -#include - -#include -#include -#include - -#include "absl/cleanup/cleanup.h" -#include "absl/log/check.h" -#include "absl/log/log.h" -#include "absl/random/bit_gen_ref.h" -#include "absl/random/random.h" -#include "absl/status/status.h" -#include "absl/status/statusor.h" -#include "src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame_header.h" -#include "src/core/ext/transport/chttp2/transport/hpack_encoder.h" -#include "src/core/lib/event_engine/event_engine_context.h" -#include "src/core/lib/iomgr/exec_ctx.h" -#include "src/core/lib/promise/activity.h" -#include "src/core/lib/promise/event_engine_wakeup_scheduler.h" -#include "src/core/lib/promise/for_each.h" -#include "src/core/lib/promise/loop.h" -#include "src/core/lib/promise/switch.h" -#include "src/core/lib/promise/try_seq.h" -#include "src/core/lib/resource_quota/arena.h" -#include "src/core/lib/resource_quota/resource_quota.h" -#include "src/core/lib/slice/slice.h" -#include "src/core/lib/slice/slice_buffer.h" -#include "src/core/lib/transport/promise_endpoint.h" -#include "src/core/util/ref_counted_ptr.h" - -namespace grpc_core { -namespace chaotic_good_legacy { - -auto ChaoticGoodServerTransport::TransportWriteLoop( - RefCountedPtr transport) { - return Loop([this, transport = std::move(transport)] { - return TrySeq( - // Get next outgoing frame. - outgoing_frames_.Next(), - // Serialize and write it out. - [transport = transport.get()](ServerFrame client_frame) { - return transport->WriteFrame(GetFrameInterface(client_frame)); - }, - []() -> LoopCtl { - // The write failures will be caught in TrySeq and exit loop. - // Therefore, only need to return Continue() in the last lambda - // function. - return Continue(); - }); - }); -} - -auto ChaoticGoodServerTransport::PushFragmentIntoCall( - CallInitiator call_initiator, ClientFragmentFrame frame) { - DCHECK(frame.headers == nullptr); - GRPC_TRACE_LOG(chaotic_good, INFO) - << "CHAOTIC_GOOD: PushFragmentIntoCall: frame=" << frame.ToString(); - return Seq(If( - frame.message.has_value(), - [&call_initiator, &frame]() mutable { - return call_initiator.PushMessage( - std::move(frame.message->message)); - }, - []() -> StatusFlag { return Success{}; }), - [call_initiator, end_of_stream = frame.end_of_stream]( - StatusFlag status) mutable -> StatusFlag { - if (!status.ok() && GRPC_TRACE_FLAG_ENABLED(chaotic_good)) { - LOG(INFO) << "CHAOTIC_GOOD: Failed PushFragmentIntoCall"; - } - if (end_of_stream || !status.ok()) { - call_initiator.FinishSends(); - // Note that we cannot remove from the stream map yet, as we - // may yet receive a cancellation. - } - return Success{}; - }); -} - -auto ChaoticGoodServerTransport::MaybePushFragmentIntoCall( - std::optional call_initiator, absl::Status error, - ClientFragmentFrame frame) { - return If( - call_initiator.has_value() && error.ok(), - [this, &call_initiator, &frame]() { - return Map( - call_initiator->SpawnWaitable( - "push-fragment", - [call_initiator, frame = std::move(frame), this]() mutable { - return call_initiator->CancelIfFails( - PushFragmentIntoCall(*call_initiator, std::move(frame))); - }), - [](StatusFlag status) { return StatusCast(status); }); - }, - [&error, &frame]() { - // EOF frames may arrive after the call_initiator's OnDone callback - // has been invoked. In that case, the call_initiator would have - // already been removed from the stream_map and hence the EOF frame - // cannot be pushed into the call. No need to log such frames. - if (!frame.end_of_stream) { - LOG(INFO) << "CHAOTIC_GOOD: Cannot pass frame to stream. Error:" - << error.ToString() << " Frame:" << frame.ToString(); - } - return Immediate(std::move(error)); - }); -} - -namespace { -auto BooleanSuccessToTransportErrorCapturingInitiator(CallInitiator initiator) { - return [initiator = std::move(initiator)](bool success) { - return success ? absl::OkStatus() - : absl::UnavailableError("Transport closed."); - }; -} -} // namespace - -auto ChaoticGoodServerTransport::SendFragment( - ServerFragmentFrame frame, MpscSender outgoing_frames, - CallInitiator call_initiator) { - GRPC_TRACE_LOG(chaotic_good, INFO) - << "CHAOTIC_GOOD: SendFragment: frame=" << frame.ToString(); - // Capture the call_initiator to ensure the underlying call spine is alive - // until the outgoing_frames.Send promise completes. - return Map(outgoing_frames.Send(std::move(frame)), - BooleanSuccessToTransportErrorCapturingInitiator( - std::move(call_initiator))); -} - -auto ChaoticGoodServerTransport::SendFragmentAcked( - ServerFragmentFrame frame, MpscSender outgoing_frames, - CallInitiator call_initiator) { - GRPC_TRACE_LOG(chaotic_good, INFO) - << "CHAOTIC_GOOD: SendFragmentAcked: frame=" << frame.ToString(); - // Capture the call_initiator to ensure the underlying call spine is alive - // until the outgoing_frames.Send promise completes. - return Map(outgoing_frames.SendAcked(std::move(frame)), - BooleanSuccessToTransportErrorCapturingInitiator( - std::move(call_initiator))); -} - -auto ChaoticGoodServerTransport::SendCallBody( - uint32_t stream_id, MpscSender outgoing_frames, - CallInitiator call_initiator) { - // Continuously send client frame with client to server - // messages. - return ForEach( - MessagesFrom(call_initiator), - // Capture the call_initator to ensure the underlying call - // spine is alive until the SendFragment promise completes. - [stream_id, outgoing_frames, call_initiator, - aligned_bytes = aligned_bytes_](MessageHandle message) mutable { - ServerFragmentFrame frame; - // Construct frame header (flags, header_length - // and trailer_length will be added in - // serialization). - const uint32_t message_length = message->payload()->Length(); - const uint32_t padding = - message_length % aligned_bytes == 0 - ? 0 - : aligned_bytes - (message_length % aligned_bytes); - CHECK_EQ((message_length + padding) % aligned_bytes, 0u); - frame.message = - FragmentMessage(std::move(message), padding, message_length); - frame.stream_id = stream_id; - return SendFragmentAcked(std::move(frame), outgoing_frames, - call_initiator); - }); -} - -auto ChaoticGoodServerTransport::SendCallInitialMetadataAndBody( - uint32_t stream_id, MpscSender outgoing_frames, - CallInitiator call_initiator) { - return TrySeq( - // Wait for initial metadata then send it out. - call_initiator.PullServerInitialMetadata(), - [stream_id, outgoing_frames, call_initiator, - this](std::optional md) mutable { - GRPC_TRACE_LOG(chaotic_good, INFO) - << "CHAOTIC_GOOD: SendCallInitialMetadataAndBody: md=" - << (md.has_value() ? (*md)->DebugString() : "null"); - return If( - md.has_value(), - [&md, stream_id, &outgoing_frames, &call_initiator, this]() { - ServerFragmentFrame frame; - frame.headers = std::move(*md); - frame.stream_id = stream_id; - return TrySeq( - SendFragment(std::move(frame), outgoing_frames, - call_initiator), - SendCallBody(stream_id, outgoing_frames, call_initiator)); - }, - []() { return absl::OkStatus(); }); - }); -} - -auto ChaoticGoodServerTransport::CallOutboundLoop( - uint32_t stream_id, CallInitiator call_initiator) { - auto outgoing_frames = outgoing_frames_.MakeSender(); - return GRPC_LATENT_SEE_PROMISE( - "CallOutboundLoop", - Seq(Map(SendCallInitialMetadataAndBody(stream_id, outgoing_frames, - call_initiator), - [stream_id](absl::Status main_body_result) { - GRPC_TRACE_VLOG(chaotic_good, 2) - << "CHAOTIC_GOOD: CallOutboundLoop: stream_id=" << stream_id - << " main_body_result=" << main_body_result; - }), - call_initiator.PullServerTrailingMetadata(), - // Capture the call_initator to ensure the underlying call_spine - // is alive until the SendFragment promise completes. - [stream_id, outgoing_frames, - call_initiator](ServerMetadataHandle md) mutable { - ServerFragmentFrame frame; - frame.trailers = std::move(md); - frame.stream_id = stream_id; - return SendFragment(std::move(frame), outgoing_frames, - call_initiator); - })); -} - -auto ChaoticGoodServerTransport::DeserializeAndPushFragmentToNewCall( - FrameHeader frame_header, BufferPair buffers, - ChaoticGoodTransport& transport) { - ClientFragmentFrame fragment_frame; - RefCountedPtr arena(call_arena_allocator_->MakeArena()); - arena->SetContext( - event_engine_.get()); - absl::Status status = transport.DeserializeFrame( - frame_header, std::move(buffers), arena.get(), fragment_frame, - FrameLimits{1024 * 1024 * 1024, aligned_bytes_ - 1}); - std::optional call_initiator; - if (status.ok()) { - auto call = - MakeCallPair(std::move(fragment_frame.headers), std::move(arena)); - call_initiator.emplace(std::move(call.initiator)); - auto add_result = NewStream(frame_header.stream_id, *call_initiator); - if (add_result.ok()) { - call_initiator->SpawnGuarded( - "server-write", [this, stream_id = frame_header.stream_id, - call_initiator = *call_initiator, - call_handler = std::move(call.handler)]() mutable { - call_destination_->StartCall(std::move(call_handler)); - return CallOutboundLoop(stream_id, call_initiator); - }); - } else { - call_initiator.reset(); - status = add_result; - } - } - return MaybePushFragmentIntoCall(std::move(call_initiator), std::move(status), - std::move(fragment_frame)); -} - -auto ChaoticGoodServerTransport::DeserializeAndPushFragmentToExistingCall( - FrameHeader frame_header, BufferPair buffers, - ChaoticGoodTransport& transport) { - std::optional call_initiator = - LookupStream(frame_header.stream_id); - Arena* arena = nullptr; - if (call_initiator.has_value()) arena = call_initiator->arena(); - ClientFragmentFrame fragment_frame; - absl::Status status = transport.DeserializeFrame( - frame_header, std::move(buffers), arena, fragment_frame, - FrameLimits{1024 * 1024 * 1024, aligned_bytes_ - 1}); - return MaybePushFragmentIntoCall(std::move(call_initiator), std::move(status), - std::move(fragment_frame)); -} - -auto ChaoticGoodServerTransport::ReadOneFrame(ChaoticGoodTransport& transport) { - return GRPC_LATENT_SEE_PROMISE( - "ReadOneFrame", - TrySeq( - transport.ReadFrameBytes(), - [this, transport = &transport]( - std::tuple frame_bytes) { - const auto& frame_header = std::get<0>(frame_bytes); - auto& buffers = std::get<1>(frame_bytes); - return Switch( - frame_header.type, - Case([]() -> absl::Status { - return absl::InternalError("Unexpected settings frame"); - }), - Case( - [this, &frame_header, &buffers, transport]() { - return If( - frame_header.flags.is_set(0), - [this, &frame_header, &buffers, transport]() { - return DeserializeAndPushFragmentToNewCall( - frame_header, std::move(buffers), *transport); - }, - [this, &frame_header, &buffers, transport]() { - return DeserializeAndPushFragmentToExistingCall( - frame_header, std::move(buffers), *transport); - }); - }), - Case([this, &frame_header]() { - std::optional call_initiator = - ExtractStream(frame_header.stream_id); - GRPC_TRACE_LOG(chaotic_good, INFO) - << "Cancel stream " << frame_header.stream_id - << (call_initiator.has_value() ? " (active)" - : " (not found)"); - return If( - call_initiator.has_value(), - [&call_initiator]() { - auto c = std::move(*call_initiator); - return c.SpawnWaitable("cancel", [c]() mutable { - c.Cancel(); - return absl::OkStatus(); - }); - }, - []() -> absl::Status { return absl::OkStatus(); }); - }), - Default([frame_header]() { - return absl::InternalError( - absl::StrCat("Unexpected frame type: ", - static_cast(frame_header.type))); - })); - }, - []() -> LoopCtl { return Continue{}; })); -} - -auto ChaoticGoodServerTransport::TransportReadLoop( - RefCountedPtr transport) { - return Seq(got_acceptor_.Wait(), - Loop([this, transport = std::move(transport)] { - return ReadOneFrame(*transport); - })); -} - -auto ChaoticGoodServerTransport::OnTransportActivityDone( - absl::string_view activity) { - return [self = RefAsSubclass(), - activity](absl::Status status) { - GRPC_TRACE_LOG(chaotic_good, INFO) - << "CHAOTIC_GOOD: OnTransportActivityDone: activity=" << activity - << " status=" << status; - self->AbortWithError(); - }; -} - -ChaoticGoodServerTransport::ChaoticGoodServerTransport( - const ChannelArgs& args, PromiseEndpoint control_endpoint, - PromiseEndpoint data_endpoint, - std::shared_ptr event_engine, - HPackParser hpack_parser, HPackCompressor hpack_encoder) - : call_arena_allocator_(MakeRefCounted( - args.GetObject() - ->memory_quota() - ->CreateMemoryAllocator("chaotic-good"), - 1024)), - event_engine_(event_engine), - outgoing_frames_(4) { - auto transport = MakeRefCounted( - std::move(control_endpoint), std::move(data_endpoint), - std::move(hpack_parser), std::move(hpack_encoder)); - auto party_arena = SimpleArenaAllocator(0)->MakeArena(); - party_arena->SetContext( - event_engine.get()); - party_ = Party::Make(std::move(party_arena)); - party_->Spawn("server-chaotic-writer", - GRPC_LATENT_SEE_PROMISE("ServerTransportWriteLoop", - TransportWriteLoop(transport)), - OnTransportActivityDone("writer")); - party_->Spawn("server-chaotic-reader", - GRPC_LATENT_SEE_PROMISE("ServerTransportReadLoop", - TransportReadLoop(transport)), - OnTransportActivityDone("reader")); -} - -void ChaoticGoodServerTransport::SetCallDestination( - RefCountedPtr call_destination) { - CHECK(call_destination_ == nullptr); - CHECK(call_destination != nullptr); - call_destination_ = call_destination; - got_acceptor_.Set(); -} - -void ChaoticGoodServerTransport::Orphan() { - AbortWithError(); - RefCountedPtr party; - { - MutexLock lock(&mu_); - party = std::move(party_); - } - party.reset(); - Unref(); -} - -void ChaoticGoodServerTransport::AbortWithError() { - // Mark transport as unavailable when the endpoint write/read failed. - // Close all the available pipes. - outgoing_frames_.MarkClosed(); - ReleasableMutexLock lock(&mu_); - aborted_with_error_ = true; - StreamMap stream_map = std::move(stream_map_); - stream_map_.clear(); - state_tracker_.SetState(GRPC_CHANNEL_SHUTDOWN, - absl::UnavailableError("transport closed"), - "transport closed"); - lock.Release(); - for (const auto& pair : stream_map) { - auto call_initiator = pair.second; - call_initiator.SpawnInfallible( - "cancel", [call_initiator]() mutable { call_initiator.Cancel(); }); - } -} - -std::optional ChaoticGoodServerTransport::LookupStream( - uint32_t stream_id) { - GRPC_TRACE_LOG(chaotic_good, INFO) - << "CHAOTIC_GOOD " << this << " LookupStream " << stream_id; - MutexLock lock(&mu_); - auto it = stream_map_.find(stream_id); - if (it == stream_map_.end()) return std::nullopt; - return it->second; -} - -std::optional ChaoticGoodServerTransport::ExtractStream( - uint32_t stream_id) { - GRPC_TRACE_LOG(chaotic_good, INFO) - << "CHAOTIC_GOOD " << this << " ExtractStream " << stream_id; - MutexLock lock(&mu_); - auto it = stream_map_.find(stream_id); - if (it == stream_map_.end()) return std::nullopt; - auto r = std::move(it->second); - stream_map_.erase(it); - return std::move(r); -} - -absl::Status ChaoticGoodServerTransport::NewStream( - uint32_t stream_id, CallInitiator call_initiator) { - GRPC_TRACE_LOG(chaotic_good, INFO) - << "CHAOTIC_GOOD " << this << " NewStream " << stream_id; - MutexLock lock(&mu_); - if (aborted_with_error_) { - return absl::UnavailableError("Transport closed"); - } - auto it = stream_map_.find(stream_id); - if (it != stream_map_.end()) { - return absl::InternalError("Stream already exists"); - } - if (stream_id <= last_seen_new_stream_id_) { - return absl::InternalError("Stream id is not increasing"); - } - const bool on_done_added = call_initiator.OnDone( - [self = RefAsSubclass(), stream_id](bool) { - GRPC_TRACE_LOG(chaotic_good, INFO) - << "CHAOTIC_GOOD " << self.get() << " OnDone " << stream_id; - std::optional call_initiator = - self->ExtractStream(stream_id); - if (call_initiator.has_value()) { - auto c = std::move(*call_initiator); - c.SpawnInfallible("cancel", [c]() mutable { c.Cancel(); }); - } - }); - if (!on_done_added) { - return absl::CancelledError(); - } - stream_map_.emplace(stream_id, call_initiator); - return absl::OkStatus(); -} - -void ChaoticGoodServerTransport::PerformOp(grpc_transport_op* op) { - RefCountedPtr cancelled_party; - bool close_outgoing_frames = false; - auto cleanup = absl::MakeCleanup([&close_outgoing_frames, this]() { - if (close_outgoing_frames) { - outgoing_frames_.MarkClosed(); - } - }); - MutexLock lock(&mu_); - bool did_stuff = false; - if (op->start_connectivity_watch != nullptr) { - state_tracker_.AddWatcher(op->start_connectivity_watch_state, - std::move(op->start_connectivity_watch)); - did_stuff = true; - } - if (op->stop_connectivity_watch != nullptr) { - state_tracker_.RemoveWatcher(op->stop_connectivity_watch); - did_stuff = true; - } - if (op->set_accept_stream) { - if (op->set_accept_stream_fn != nullptr) { - Crash(absl::StrCat( - "set_accept_stream not supported on chaotic good transports: ", - grpc_transport_op_string(op))); - } - did_stuff = true; - } - if (!op->goaway_error.ok() || !op->disconnect_with_error.ok()) { - cancelled_party = std::move(party_); - close_outgoing_frames = true; - state_tracker_.SetState(GRPC_CHANNEL_SHUTDOWN, - absl::UnavailableError("transport closed"), - "transport closed"); - did_stuff = true; - } - if (!did_stuff) { - Crash(absl::StrCat("unimplemented transport perform op: ", - grpc_transport_op_string(op))); - } - ExecCtx::Run(DEBUG_LOCATION, op->on_consumed, absl::OkStatus()); -} - -} // namespace chaotic_good_legacy -} // namespace grpc_core diff --git a/src/core/ext/transport/chaotic_good_legacy/server_transport.h b/src/core/ext/transport/chaotic_good_legacy/server_transport.h deleted file mode 100644 index dfb4a875896f5..0000000000000 --- a/src/core/ext/transport/chaotic_good_legacy/server_transport.h +++ /dev/null @@ -1,158 +0,0 @@ -// Copyright 2022 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_SERVER_TRANSPORT_H -#define GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_SERVER_TRANSPORT_H - -#include -#include -#include -#include -#include -#include -#include - -#include -#include // IWYU pragma: keep -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "absl/base/thread_annotations.h" -#include "absl/container/flat_hash_map.h" -#include "absl/functional/any_invocable.h" -#include "absl/random/random.h" -#include "absl/status/status.h" -#include "absl/status/statusor.h" -#include "src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame_header.h" -#include "src/core/ext/transport/chttp2/transport/hpack_encoder.h" -#include "src/core/ext/transport/chttp2/transport/hpack_parser.h" -#include "src/core/lib/event_engine/default_event_engine.h" // IWYU pragma: keep -#include "src/core/lib/promise/activity.h" -#include "src/core/lib/promise/context.h" -#include "src/core/lib/promise/if.h" -#include "src/core/lib/promise/inter_activity_latch.h" -#include "src/core/lib/promise/inter_activity_pipe.h" -#include "src/core/lib/promise/loop.h" -#include "src/core/lib/promise/mpsc.h" -#include "src/core/lib/promise/party.h" -#include "src/core/lib/promise/pipe.h" -#include "src/core/lib/promise/poll.h" -#include "src/core/lib/promise/seq.h" -#include "src/core/lib/promise/try_join.h" -#include "src/core/lib/promise/try_seq.h" -#include "src/core/lib/resource_quota/arena.h" -#include "src/core/lib/resource_quota/memory_quota.h" -#include "src/core/lib/slice/slice.h" -#include "src/core/lib/slice/slice_buffer.h" -#include "src/core/lib/slice/slice_internal.h" -#include "src/core/lib/transport/metadata_batch.h" -#include "src/core/lib/transport/promise_endpoint.h" -#include "src/core/lib/transport/transport.h" -#include "src/core/util/ref_counted_ptr.h" -#include "src/core/util/sync.h" - -namespace grpc_core { -namespace chaotic_good_legacy { - -class ChaoticGoodServerTransport final : public ServerTransport { - public: - ChaoticGoodServerTransport( - const ChannelArgs& args, PromiseEndpoint control_endpoint, - PromiseEndpoint data_endpoint, - std::shared_ptr - event_engine, - HPackParser hpack_parser, HPackCompressor hpack_encoder); - - FilterStackTransport* filter_stack_transport() override { return nullptr; } - ClientTransport* client_transport() override { return nullptr; } - ServerTransport* server_transport() override { return this; } - absl::string_view GetTransportName() const override { return "chaotic_good"; } - void SetPollset(grpc_stream*, grpc_pollset*) override {} - void SetPollsetSet(grpc_stream*, grpc_pollset_set*) override {} - void PerformOp(grpc_transport_op*) override; - void Orphan() override; - - void SetCallDestination( - RefCountedPtr call_destination) override; - void AbortWithError(); - - private: - using StreamMap = absl::flat_hash_map; - - absl::Status NewStream(uint32_t stream_id, CallInitiator call_initiator); - std::optional LookupStream(uint32_t stream_id); - std::optional ExtractStream(uint32_t stream_id); - auto SendCallInitialMetadataAndBody(uint32_t stream_id, - MpscSender outgoing_frames, - CallInitiator call_initiator); - auto SendCallBody(uint32_t stream_id, MpscSender outgoing_frames, - CallInitiator call_initiator); - static auto SendFragment(ServerFragmentFrame frame, - MpscSender outgoing_frames, - CallInitiator call_initiator); - static auto SendFragmentAcked(ServerFragmentFrame frame, - MpscSender outgoing_frames, - CallInitiator call_initiator); - auto CallOutboundLoop(uint32_t stream_id, CallInitiator call_initiator); - auto OnTransportActivityDone(absl::string_view activity); - auto TransportReadLoop(RefCountedPtr transport); - auto ReadOneFrame(ChaoticGoodTransport& transport); - auto TransportWriteLoop(RefCountedPtr transport); - // Read different parts of the server frame from control/data endpoints - // based on frame header. - // Resolves to a StatusOr> - auto ReadFrameBody(Slice read_buffer); - void SendCancel(uint32_t stream_id, absl::Status why); - auto DeserializeAndPushFragmentToNewCall(FrameHeader frame_header, - BufferPair buffers, - ChaoticGoodTransport& transport); - auto DeserializeAndPushFragmentToExistingCall( - FrameHeader frame_header, BufferPair buffers, - ChaoticGoodTransport& transport); - auto MaybePushFragmentIntoCall(std::optional call_initiator, - absl::Status error, ClientFragmentFrame frame); - auto PushFragmentIntoCall(CallInitiator call_initiator, - ClientFragmentFrame frame); - - RefCountedPtr call_destination_; - const RefCountedPtr call_arena_allocator_; - const std::shared_ptr - event_engine_; - InterActivityLatch got_acceptor_; - MpscReceiver outgoing_frames_; - // Assigned aligned bytes from setting frame. - size_t aligned_bytes_ = 64; - Mutex mu_; - // Map of stream incoming server frames, key is stream_id. - StreamMap stream_map_ ABSL_GUARDED_BY(mu_); - bool aborted_with_error_ ABSL_GUARDED_BY(mu_) = false; - uint32_t last_seen_new_stream_id_ = 0; - RefCountedPtr party_; - ConnectivityStateTracker state_tracker_ ABSL_GUARDED_BY(mu_){ - "chaotic_good_server", GRPC_CHANNEL_READY}; -}; - -} // namespace chaotic_good_legacy -} // namespace grpc_core - -#endif // GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_SERVER_TRANSPORT_H diff --git a/src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc b/src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc deleted file mode 100644 index 939acbcc86412..0000000000000 --- a/src/core/ext/transport/chaotic_good_legacy/settings_metadata.cc +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2024 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "src/core/ext/transport/chaotic_good_legacy/settings_metadata.h" - -#include - -#include "absl/status/status.h" -#include "src/core/util/crash.h" - -namespace grpc_core { -namespace chaotic_good_legacy { - -Arena::PoolPtr SettingsMetadata::ToMetadataBatch() { - auto md = Arena::MakePooledForOverwrite(); - auto add = [&md](absl::string_view key, std::string value) { - md->Append(key, Slice::FromCopiedString(value), - [key, value](absl::string_view error, const Slice&) { - Crash(absl::StrCat("Failed to add metadata '", key, "' = '", - value, "': ", error)); - }); - }; - if (connection_type.has_value()) { - add("chaotic-good-connection-type", - connection_type.value() == ConnectionType::kControl ? "control" - : "data"); - } - if (connection_id.has_value()) { - add("chaotic-good-connection-id", connection_id.value()); - } - if (alignment.has_value()) { - add("chaotic-good-alignment", absl::StrCat(alignment.value())); - } - return md; -} - -absl::StatusOr SettingsMetadata::FromMetadataBatch( - const grpc_metadata_batch& batch) { - SettingsMetadata md; - std::string buffer; - auto v = batch.GetStringValue("chaotic-good-connection-type", &buffer); - if (v.has_value()) { - if (*v == "control") { - md.connection_type = ConnectionType::kControl; - } else if (*v == "data") { - md.connection_type = ConnectionType::kData; - } else { - return absl::UnavailableError( - absl::StrCat("Invalid connection type: ", *v)); - } - } - v = batch.GetStringValue("chaotic-good-connection-id", &buffer); - if (v.has_value()) { - md.connection_id = std::string(*v); - } - v = batch.GetStringValue("chaotic-good-alignment", &buffer); - if (v.has_value()) { - uint32_t alignment; - if (!absl::SimpleAtoi(*v, &alignment)) { - return absl::UnavailableError(absl::StrCat("Invalid alignment: ", *v)); - } - md.alignment = alignment; - } - return md; -} - -} // namespace chaotic_good_legacy -} // namespace grpc_core diff --git a/src/core/ext/transport/chaotic_good_legacy/settings_metadata.h b/src/core/ext/transport/chaotic_good_legacy/settings_metadata.h deleted file mode 100644 index d93c9f3a90795..0000000000000 --- a/src/core/ext/transport/chaotic_good_legacy/settings_metadata.h +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2024 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_SETTINGS_METADATA_H -#define GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_SETTINGS_METADATA_H - -#include - -#include - -#include "src/core/lib/resource_quota/arena.h" -#include "src/core/lib/transport/metadata_batch.h" - -namespace grpc_core { -namespace chaotic_good_legacy { - -// Captures metadata sent in a chaotic good settings frame. -struct SettingsMetadata { - enum class ConnectionType { - kControl, - kData, - }; - std::optional connection_type; - std::optional connection_id; - std::optional alignment; - - Arena::PoolPtr ToMetadataBatch(); - static absl::StatusOr FromMetadataBatch( - const grpc_metadata_batch& batch); -}; - -} // namespace chaotic_good_legacy -} // namespace grpc_core - -#endif // GRPC_SRC_CORE_EXT_TRANSPORT_CHAOTIC_GOOD_LEGACY_SETTINGS_METADATA_H diff --git a/src/core/lib/experiments/experiments.cc b/src/core/lib/experiments/experiments.cc index 19b416d122daf..e9aec90448916 100644 --- a/src/core/lib/experiments/experiments.cc +++ b/src/core/lib/experiments/experiments.cc @@ -32,10 +32,6 @@ const char* const additional_constraints_call_tracer_in_transport = "{}"; const char* const description_callv3_client_auth_filter = "Use the CallV3 client auth filter."; const char* const additional_constraints_callv3_client_auth_filter = "{}"; -const char* const description_chaotic_good_legacy_protocol = - "If set, use the first version of the chaotic-good protocol when that " - "protocol is enabled."; -const char* const additional_constraints_chaotic_good_legacy_protocol = "{}"; const char* const description_disable_buffer_hint_on_high_memory_pressure = "Disable buffer hint flag parsing in the transport under high memory " "pressure."; @@ -161,9 +157,6 @@ const ExperimentMetadata g_experiment_metadata[] = { additional_constraints_call_tracer_in_transport, nullptr, 0, true, true}, {"callv3_client_auth_filter", description_callv3_client_auth_filter, additional_constraints_callv3_client_auth_filter, nullptr, 0, false, true}, - {"chaotic_good_legacy_protocol", description_chaotic_good_legacy_protocol, - additional_constraints_chaotic_good_legacy_protocol, nullptr, 0, false, - true}, {"disable_buffer_hint_on_high_memory_pressure", description_disable_buffer_hint_on_high_memory_pressure, additional_constraints_disable_buffer_hint_on_high_memory_pressure, @@ -255,10 +248,6 @@ const char* const additional_constraints_call_tracer_in_transport = "{}"; const char* const description_callv3_client_auth_filter = "Use the CallV3 client auth filter."; const char* const additional_constraints_callv3_client_auth_filter = "{}"; -const char* const description_chaotic_good_legacy_protocol = - "If set, use the first version of the chaotic-good protocol when that " - "protocol is enabled."; -const char* const additional_constraints_chaotic_good_legacy_protocol = "{}"; const char* const description_disable_buffer_hint_on_high_memory_pressure = "Disable buffer hint flag parsing in the transport under high memory " "pressure."; @@ -384,9 +373,6 @@ const ExperimentMetadata g_experiment_metadata[] = { additional_constraints_call_tracer_in_transport, nullptr, 0, true, true}, {"callv3_client_auth_filter", description_callv3_client_auth_filter, additional_constraints_callv3_client_auth_filter, nullptr, 0, false, true}, - {"chaotic_good_legacy_protocol", description_chaotic_good_legacy_protocol, - additional_constraints_chaotic_good_legacy_protocol, nullptr, 0, false, - true}, {"disable_buffer_hint_on_high_memory_pressure", description_disable_buffer_hint_on_high_memory_pressure, additional_constraints_disable_buffer_hint_on_high_memory_pressure, @@ -478,10 +464,6 @@ const char* const additional_constraints_call_tracer_in_transport = "{}"; const char* const description_callv3_client_auth_filter = "Use the CallV3 client auth filter."; const char* const additional_constraints_callv3_client_auth_filter = "{}"; -const char* const description_chaotic_good_legacy_protocol = - "If set, use the first version of the chaotic-good protocol when that " - "protocol is enabled."; -const char* const additional_constraints_chaotic_good_legacy_protocol = "{}"; const char* const description_disable_buffer_hint_on_high_memory_pressure = "Disable buffer hint flag parsing in the transport under high memory " "pressure."; @@ -607,9 +589,6 @@ const ExperimentMetadata g_experiment_metadata[] = { additional_constraints_call_tracer_in_transport, nullptr, 0, true, true}, {"callv3_client_auth_filter", description_callv3_client_auth_filter, additional_constraints_callv3_client_auth_filter, nullptr, 0, false, true}, - {"chaotic_good_legacy_protocol", description_chaotic_good_legacy_protocol, - additional_constraints_chaotic_good_legacy_protocol, nullptr, 0, false, - true}, {"disable_buffer_hint_on_high_memory_pressure", description_disable_buffer_hint_on_high_memory_pressure, additional_constraints_disable_buffer_hint_on_high_memory_pressure, diff --git a/src/core/lib/experiments/experiments.h b/src/core/lib/experiments/experiments.h index 01adcf1990f61..a661e04a3b250 100644 --- a/src/core/lib/experiments/experiments.h +++ b/src/core/lib/experiments/experiments.h @@ -62,7 +62,6 @@ inline bool IsBackoffCapInitialAtMaxEnabled() { return true; } #define GRPC_EXPERIMENT_IS_INCLUDED_CALL_TRACER_IN_TRANSPORT inline bool IsCallTracerInTransportEnabled() { return true; } inline bool IsCallv3ClientAuthFilterEnabled() { return false; } -inline bool IsChaoticGoodLegacyProtocolEnabled() { return false; } inline bool IsDisableBufferHintOnHighMemoryPressureEnabled() { return false; } #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_APPLICATION_CALLBACKS inline bool IsEventEngineApplicationCallbacksEnabled() { return true; } @@ -105,7 +104,6 @@ inline bool IsBackoffCapInitialAtMaxEnabled() { return true; } #define GRPC_EXPERIMENT_IS_INCLUDED_CALL_TRACER_IN_TRANSPORT inline bool IsCallTracerInTransportEnabled() { return true; } inline bool IsCallv3ClientAuthFilterEnabled() { return false; } -inline bool IsChaoticGoodLegacyProtocolEnabled() { return false; } inline bool IsDisableBufferHintOnHighMemoryPressureEnabled() { return false; } #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_APPLICATION_CALLBACKS inline bool IsEventEngineApplicationCallbacksEnabled() { return true; } @@ -151,7 +149,6 @@ inline bool IsBackoffCapInitialAtMaxEnabled() { return true; } #define GRPC_EXPERIMENT_IS_INCLUDED_CALL_TRACER_IN_TRANSPORT inline bool IsCallTracerInTransportEnabled() { return true; } inline bool IsCallv3ClientAuthFilterEnabled() { return false; } -inline bool IsChaoticGoodLegacyProtocolEnabled() { return false; } inline bool IsDisableBufferHintOnHighMemoryPressureEnabled() { return false; } #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_APPLICATION_CALLBACKS inline bool IsEventEngineApplicationCallbacksEnabled() { return true; } @@ -197,7 +194,6 @@ enum ExperimentIds { kExperimentIdBackoffCapInitialAtMax, kExperimentIdCallTracerInTransport, kExperimentIdCallv3ClientAuthFilter, - kExperimentIdChaoticGoodLegacyProtocol, kExperimentIdDisableBufferHintOnHighMemoryPressure, kExperimentIdEventEngineApplicationCallbacks, kExperimentIdEventEngineCallbackCq, @@ -240,10 +236,6 @@ inline bool IsCallTracerInTransportEnabled() { inline bool IsCallv3ClientAuthFilterEnabled() { return IsExperimentEnabled(); } -#define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_LEGACY_PROTOCOL -inline bool IsChaoticGoodLegacyProtocolEnabled() { - return IsExperimentEnabled(); -} #define GRPC_EXPERIMENT_IS_INCLUDED_DISABLE_BUFFER_HINT_ON_HIGH_MEMORY_PRESSURE inline bool IsDisableBufferHintOnHighMemoryPressureEnabled() { return IsExperimentEnabled< diff --git a/src/core/lib/experiments/experiments.yaml b/src/core/lib/experiments/experiments.yaml index b53d41a248eca..0bb8a5a851421 100644 --- a/src/core/lib/experiments/experiments.yaml +++ b/src/core/lib/experiments/experiments.yaml @@ -55,11 +55,6 @@ expiry: 2025/06/01 owner: ctiller@google.com test_tags: [core_end2end_test] -- name: chaotic_good_legacy_protocol - description: If set, use the first version of the chaotic-good protocol when that protocol is enabled. - expiry: 2025/01/15 - owner: ctiller@google.com - test_tags: [core_end2end_test] - name: disable_buffer_hint_on_high_memory_pressure description: Disable buffer hint flag parsing in the transport under high memory pressure. diff --git a/test/core/transport/chaotic_good_legacy/BUILD b/test/core/transport/chaotic_good_legacy/BUILD deleted file mode 100644 index 1126cad43a4a9..0000000000000 --- a/test/core/transport/chaotic_good_legacy/BUILD +++ /dev/null @@ -1,251 +0,0 @@ -# Copyright 2021 gRPC authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -load("//bazel:grpc_build_system.bzl", "grpc_cc_library", "grpc_cc_test", "grpc_package") -load("//test/core/test_util:grpc_fuzzer.bzl", "grpc_fuzzer", "grpc_proto_fuzzer") - -licenses(["notice"]) - -grpc_package( - name = "test/core/transport/chaotic_good_legacy", - visibility = "tests", -) - -grpc_cc_library( - name = "mock_promise_endpoint", - testonly = 1, - srcs = ["mock_promise_endpoint.cc"], - hdrs = ["mock_promise_endpoint.h"], - external_deps = ["gtest"], - deps = [ - "//:grpc", - "//src/core:grpc_promise_endpoint", - ], -) - -grpc_cc_library( - name = "transport_test", - testonly = 1, - srcs = ["transport_test.cc"], - hdrs = ["transport_test.h"], - external_deps = ["gtest"], - deps = [ - "//:iomgr_timer", - "//src/core:chaotic_good_legacy_frame", - "//src/core:memory_quota", - "//src/core:resource_quota", - "//test/core/event_engine/fuzzing_event_engine", - "//test/core/event_engine/fuzzing_event_engine:fuzzing_event_engine_cc_proto", - ], -) - -grpc_cc_test( - name = "frame_header_test", - srcs = ["frame_header_test.cc"], - external_deps = [ - "absl/status", - "gtest", - ], - deps = ["//src/core:chaotic_good_legacy_frame_header"], -) - -grpc_fuzzer( - name = "frame_header_fuzzer", - srcs = ["frame_header_fuzzer.cc"], - corpus = "frame_header_fuzzer_corpus", - external_deps = ["absl/status:statusor"], - language = "C++", - tags = ["no_windows"], - deps = [ - "//:grpc", - "//src/core:chaotic_good_legacy_frame_header", - ], -) - -grpc_cc_test( - name = "frame_test", - srcs = ["frame_test.cc"], - external_deps = [ - "absl/log:check", - "absl/random", - "absl/status", - "absl/status:statusor", - "gtest", - ], - deps = [ - "//:channel_create", - "//src/core:chaotic_good_legacy_frame", - ], -) - -grpc_proto_fuzzer( - name = "frame_fuzzer", - srcs = ["frame_fuzzer.cc"], - corpus = "frame_fuzzer_corpus", - external_deps = [ - "absl/log:check", - "absl/log:log", - "absl/random:bit_gen_ref", - "absl/status:statusor", - ], - language = "C++", - proto = "frame_fuzzer.proto", - tags = ["no_windows"], - uses_event_engine = False, - uses_polling = False, - deps = [ - "//:exec_ctx", - "//:gpr", - "//:hpack_encoder", - "//:hpack_parser", - "//:ref_counted_ptr", - "//src/core:arena", - "//src/core:chaotic_good_legacy_frame", - "//src/core:chaotic_good_legacy_frame_header", - "//src/core:event_engine_memory_allocator", - "//src/core:memory_quota", - "//src/core:resource_quota", - "//src/core:slice", - "//src/core:slice_buffer", - "//test/core/promise:test_context", - ], -) - -grpc_cc_test( - name = "client_transport_test", - srcs = ["client_transport_test.cc"], - external_deps = [ - "absl/functional:any_invocable", - "absl/status:statusor", - "absl/strings:str_format", - "gtest", - ], - language = "C++", - uses_event_engine = False, - uses_polling = False, - deps = [ - "mock_promise_endpoint", - "transport_test", - "//:grpc", - "//:grpc_public_hdrs", - "//src/core:arena", - "//src/core:chaotic_good_legacy_client_transport", - "//src/core:if", - "//src/core:loop", - "//src/core:seq", - "//src/core:slice_buffer", - ], -) - -grpc_cc_test( - name = "client_transport_error_test", - srcs = ["client_transport_error_test.cc"], - external_deps = [ - "absl/functional:any_invocable", - "absl/status", - "absl/status:statusor", - "absl/strings:str_format", - "gtest", - ], - language = "C++", - uses_event_engine = False, - uses_polling = False, - deps = [ - "//:grpc_public_hdrs", - "//:grpc_unsecure", - "//:iomgr_timer", - "//:ref_counted_ptr", - "//src/core:activity", - "//src/core:arena", - "//src/core:chaotic_good_legacy_client_transport", - "//src/core:event_engine_wakeup_scheduler", - "//src/core:grpc_promise_endpoint", - "//src/core:if", - "//src/core:join", - "//src/core:loop", - "//src/core:memory_quota", - "//src/core:pipe", - "//src/core:resource_quota", - "//src/core:seq", - "//src/core:slice", - "//src/core:slice_buffer", - "//test/core/event_engine/fuzzing_event_engine", - "//test/core/event_engine/fuzzing_event_engine:fuzzing_event_engine_cc_proto", - ], -) - -grpc_cc_test( - name = "server_transport_test", - srcs = ["server_transport_test.cc"], - external_deps = [ - "absl/functional:any_invocable", - "absl/status", - "absl/status:statusor", - "absl/strings:str_format", - "gtest", - ], - language = "C++", - uses_event_engine = False, - uses_polling = False, - deps = [ - "mock_promise_endpoint", - "transport_test", - "//:grpc", - "//:grpc_public_hdrs", - "//:iomgr_timer", - "//:ref_counted_ptr", - "//src/core:arena", - "//src/core:chaotic_good_legacy_server_transport", - "//src/core:memory_quota", - "//src/core:resource_quota", - "//src/core:seq", - "//src/core:slice", - "//src/core:slice_buffer", - "//test/core/event_engine/fuzzing_event_engine", - "//test/core/event_engine/fuzzing_event_engine:fuzzing_event_engine_cc_proto", - ], -) - -grpc_cc_test( - name = "chaotic_good_server_test", - srcs = ["chaotic_good_server_test.cc"], - external_deps = [ - "absl/log:check", - "absl/log:log", - "absl/strings", - "absl/time", - "gtest", - ], - language = "C++", - tags = [ - "no_windows", - ], - uses_event_engine = True, - uses_polling = False, - deps = [ - "//:grpc", - "//:grpc++", - "//:grpc_public_hdrs", - "//:parse_address", - "//:uri", - "//src/core:channel_args", - "//src/core:chaotic_good_legacy_connector", - "//src/core:chaotic_good_legacy_server", - "//src/core:notification", - "//src/core:resource_quota", - "//src/core:time", - "//test/core/event_engine:event_engine_test_utils", - "//test/core/test_util:grpc_test_util", - ], -) diff --git a/test/core/transport/chaotic_good_legacy/chaotic_good_server_test.cc b/test/core/transport/chaotic_good_legacy/chaotic_good_server_test.cc deleted file mode 100644 index 4fd395b1cec52..0000000000000 --- a/test/core/transport/chaotic_good_legacy/chaotic_good_server_test.cc +++ /dev/null @@ -1,156 +0,0 @@ -// Copyright 2024 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h" - -#include -#include -#include -#include - -#include -#include -#include - -#include "absl/log/check.h" -#include "absl/log/log.h" -#include "absl/strings/str_cat.h" -#include "absl/time/time.h" -#include "gmock/gmock.h" -#include "gtest/gtest.h" -#include "src/core/ext/transport/chaotic_good_legacy/client/chaotic_good_connector.h" -#include "src/core/lib/address_utils/parse_address.h" -#include "src/core/lib/channel/channel_args.h" -#include "src/core/lib/event_engine/default_event_engine.h" -#include "src/core/lib/event_engine/tcp_socket_utils.h" -#include "src/core/server/server.h" -#include "src/core/util/notification.h" -#include "src/core/util/time.h" -#include "src/core/util/uri.h" -#include "test/core/event_engine/event_engine_test_utils.h" -#include "test/core/test_util/build.h" -#include "test/core/test_util/port.h" -#include "test/core/test_util/test_config.h" - -namespace grpc_core { -namespace chaotic_good_legacy { -namespace testing { -class ChaoticGoodServerTest : public ::testing::Test { - public: - ChaoticGoodServerTest() { - StartServer(); - ConstructConnector(); - } - - ~ChaoticGoodServerTest() override { - { - ExecCtx exec_ctx; - if (connecting_successful_) { - connecting_result_.transport->Orphan(); - } - if (connector_ != nullptr) connector_->Shutdown(absl::CancelledError()); - connector_.reset(); - } - args_.channel_args = ChannelArgs(); - auto* shutdown_cq = grpc_completion_queue_create_for_pluck(nullptr); - grpc_server_shutdown_and_notify(server_, shutdown_cq, nullptr); - auto ev = grpc_completion_queue_pluck( - shutdown_cq, nullptr, grpc_timeout_milliseconds_to_deadline(15000), - nullptr); - if (ev.type == GRPC_QUEUE_TIMEOUT) { - AsanAssertNoLeaks(); - } - CHECK_EQ(ev.type, GRPC_OP_COMPLETE); - CHECK_EQ(ev.tag, nullptr); - grpc_completion_queue_destroy(shutdown_cq); - grpc_server_destroy(server_); - } - - void StartServer() { - port_ = grpc_pick_unused_port_or_die(); - addr_ = absl::StrCat("[::1]:", port_); - server_ = grpc_server_create(nullptr, nullptr); - grpc_server_add_chaotic_good_legacy_port(server_, addr_.c_str()); - grpc_server_start(server_); - } - - void ConstructConnector() { - auto uri = URI::Parse("ipv6:" + addr_); - CHECK_OK(uri); - CHECK(grpc_parse_uri(*uri, &resolved_addr_)); - args_.address = &resolved_addr_; - args_.deadline = Timestamp::Now() + Duration::Seconds(5); - args_.channel_args = channel_args(); - connector_ = MakeRefCounted( - grpc_event_engine::experimental::GetDefaultEventEngine()); - } - - protected: - static void OnConnectingFinished(void* arg, grpc_error_handle error) { - LOG(ERROR) << "OnConnectingFinished: " << arg << " " << error.ToString(); - ChaoticGoodServerTest* test = static_cast(arg); - test->connecting_successful_ = error.ok(); - test->connect_finished_.Notify(); - } - - ChannelArgs channel_args() { - return CoreConfiguration::Get() - .channel_args_preconditioning() - .PreconditionChannelArgs(nullptr); - } - - grpc_server* server_; - Server* core_server_; - ChaoticGoodConnector::Args args_; - ChaoticGoodConnector::Result connecting_result_; - bool connecting_successful_ = false; - grpc_closure on_connecting_finished_; - Notification connect_finished_; - int port_; - std::string addr_; - grpc_resolved_address resolved_addr_; - RefCountedPtr connector_; -}; - -TEST_F(ChaoticGoodServerTest, Connect) { - GRPC_CLOSURE_INIT(&on_connecting_finished_, OnConnectingFinished, this, - grpc_schedule_on_exec_ctx); - connector_->Connect(args_, &connecting_result_, &on_connecting_finished_); - connect_finished_.WaitForNotification(); -} - -TEST_F(ChaoticGoodServerTest, ConnectAndShutdown) { - Notification connect_finished; - GRPC_CLOSURE_INIT(&on_connecting_finished_, OnConnectingFinished, this, - grpc_schedule_on_exec_ctx); - { - ExecCtx exec_ctx; - connector_->Connect(args_, &connecting_result_, &on_connecting_finished_); - connector_->Shutdown(absl::InternalError("shutdown")); - } - connect_finished_.WaitForNotification(); -} - -} // namespace testing -} // namespace chaotic_good_legacy -} // namespace grpc_core - -int main(int argc, char** argv) { - ::testing::InitGoogleTest(&argc, argv); - // Must call to create default EventEngine. - grpc_init(); - int ret = RUN_ALL_TESTS(); - grpc_shutdown(); - return ret; -} diff --git a/test/core/transport/chaotic_good_legacy/client_transport_error_test.cc b/test/core/transport/chaotic_good_legacy/client_transport_error_test.cc deleted file mode 100644 index aa52cd7fcf902..0000000000000 --- a/test/core/transport/chaotic_good_legacy/client_transport_error_test.cc +++ /dev/null @@ -1,407 +0,0 @@ -// Copyright 2023 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "absl/functional/any_invocable.h" -#include "absl/status/status.h" -#include "absl/status/statusor.h" -#include "absl/strings/str_format.h" -#include "gmock/gmock.h" -#include "gtest/gtest.h" -#include "src/core/config/core_configuration.h" -#include "src/core/ext/transport/chaotic_good_legacy/client_transport.h" -#include "src/core/lib/event_engine/event_engine_context.h" -#include "src/core/lib/iomgr/timer_manager.h" -#include "src/core/lib/promise/activity.h" -#include "src/core/lib/promise/event_engine_wakeup_scheduler.h" -#include "src/core/lib/promise/if.h" -#include "src/core/lib/promise/join.h" -#include "src/core/lib/promise/loop.h" -#include "src/core/lib/promise/pipe.h" -#include "src/core/lib/promise/seq.h" -#include "src/core/lib/resource_quota/arena.h" -#include "src/core/lib/resource_quota/memory_quota.h" -#include "src/core/lib/resource_quota/resource_quota.h" -#include "src/core/lib/slice/slice_buffer.h" -#include "src/core/lib/slice/slice_internal.h" -#include "src/core/lib/transport/metadata_batch.h" -#include "src/core/lib/transport/promise_endpoint.h" -#include "src/core/lib/transport/transport.h" -#include "src/core/util/ref_counted_ptr.h" -#include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h" -#include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h" - -using testing::AtMost; -using testing::MockFunction; -using testing::Return; -using testing::StrictMock; -using testing::WithArgs; - -namespace grpc_core { -namespace chaotic_good_legacy { -namespace testing { - -class MockEndpoint - : public grpc_event_engine::experimental::EventEngine::Endpoint { - public: - MOCK_METHOD( - bool, Read, - (absl::AnyInvocable on_read, - grpc_event_engine::experimental::SliceBuffer* buffer, - const grpc_event_engine::experimental::EventEngine::Endpoint::ReadArgs* - args), - (override)); - - MOCK_METHOD( - bool, Write, - (absl::AnyInvocable on_writable, - grpc_event_engine::experimental::SliceBuffer* data, - const grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs* - args), - (override)); - - MOCK_METHOD( - const grpc_event_engine::experimental::EventEngine::ResolvedAddress&, - GetPeerAddress, (), (const, override)); - MOCK_METHOD( - const grpc_event_engine::experimental::EventEngine::ResolvedAddress&, - GetLocalAddress, (), (const, override)); -}; - -struct MockPromiseEndpoint { - StrictMock* endpoint = new StrictMock(); - PromiseEndpoint promise_endpoint{ - std::unique_ptr>(endpoint), SliceBuffer()}; -}; - -// Send messages from client to server. -auto SendClientToServerMessages(CallInitiator initiator, int num_messages) { - return Loop([initiator, num_messages]() mutable { - bool has_message = (num_messages > 0); - return If( - has_message, - [initiator, &num_messages]() mutable { - return Seq(initiator.PushMessage(Arena::MakePooled()), - [&num_messages]() -> LoopCtl { - --num_messages; - return Continue(); - }); - }, - [initiator]() mutable -> LoopCtl { - initiator.FinishSends(); - return absl::OkStatus(); - }); - }); -} - -ClientMetadataHandle TestInitialMetadata() { - auto md = Arena::MakePooledForOverwrite(); - md->Set(HttpPathMetadata(), Slice::FromStaticString("/test")); - return md; -} - -class ClientTransportTest : public ::testing::Test { - protected: - const std::shared_ptr& - event_engine() { - return event_engine_; - } - - ChannelArgs MakeChannelArgs() { - return CoreConfiguration::Get() - .channel_args_preconditioning() - .PreconditionChannelArgs(nullptr); - } - - auto MakeCall(ClientMetadataHandle client_initial_metadata) { - auto arena = call_arena_allocator_->MakeArena(); - arena->SetContext( - event_engine_.get()); - return MakeCallPair(std::move(client_initial_metadata), std::move(arena)); - } - - private: - std::shared_ptr - event_engine_{ - std::make_shared( - []() { - grpc_timer_manager_set_threading(false); - grpc_event_engine::experimental::FuzzingEventEngine::Options - options; - return options; - }(), - fuzzing_event_engine::Actions())}; - RefCountedPtr call_arena_allocator_{ - MakeRefCounted( - MakeResourceQuota("test-quota") - ->memory_quota() - ->CreateMemoryAllocator("test-allocator"), - 1024)}; -}; - -TEST_F(ClientTransportTest, AddOneStreamWithWriteFailed) { - MockPromiseEndpoint control_endpoint; - MockPromiseEndpoint data_endpoint; - // Mock write failed and read is pending. - EXPECT_CALL(*control_endpoint.endpoint, Write) - .Times(AtMost(1)) - .WillOnce( - WithArgs<0>([](absl::AnyInvocable on_write) { - on_write(absl::InternalError("control endpoint write failed.")); - return false; - })); - EXPECT_CALL(*data_endpoint.endpoint, Write) - .Times(AtMost(1)) - .WillOnce( - WithArgs<0>([](absl::AnyInvocable on_write) { - on_write(absl::InternalError("data endpoint write failed.")); - return false; - })); - EXPECT_CALL(*control_endpoint.endpoint, Read).WillOnce(Return(false)); - auto transport = MakeOrphanable( - std::move(control_endpoint.promise_endpoint), - std::move(data_endpoint.promise_endpoint), MakeChannelArgs(), - event_engine(), HPackParser(), HPackCompressor()); - auto call = MakeCall(TestInitialMetadata()); - transport->StartCall(call.handler.StartCall()); - call.initiator.SpawnGuarded("test-send", - [initiator = call.initiator]() mutable { - return SendClientToServerMessages(initiator, 1); - }); - StrictMock> on_done; - EXPECT_CALL(on_done, Call()); - call.initiator.SpawnInfallible( - "test-read", [&on_done, initiator = call.initiator]() mutable { - return Seq( - initiator.PullServerInitialMetadata(), - [](ValueOrFailure> md) { - EXPECT_TRUE(md.ok()); - }, - initiator.PullServerTrailingMetadata(), - [&on_done](ServerMetadataHandle md) { - EXPECT_EQ(md->get(GrpcStatusMetadata()).value(), - GRPC_STATUS_UNAVAILABLE); - on_done.Call(); - }); - }); - // Wait until ClientTransport's internal activities to finish. - event_engine()->TickUntilIdle(); - event_engine()->UnsetGlobalHooks(); -} - -TEST_F(ClientTransportTest, AddOneStreamWithReadFailed) { - MockPromiseEndpoint control_endpoint; - MockPromiseEndpoint data_endpoint; - // Mock read failed. - EXPECT_CALL(*control_endpoint.endpoint, Read) - .WillOnce(WithArgs<0>( - [](absl::AnyInvocable on_read) mutable { - on_read(absl::InternalError("control endpoint read failed.")); - // Return false to mock EventEngine read not finish. - return false; - })); - auto transport = MakeOrphanable( - std::move(control_endpoint.promise_endpoint), - std::move(data_endpoint.promise_endpoint), MakeChannelArgs(), - event_engine(), HPackParser(), HPackCompressor()); - auto call = MakeCall(TestInitialMetadata()); - transport->StartCall(call.handler.StartCall()); - call.initiator.SpawnGuarded("test-send", - [initiator = call.initiator]() mutable { - return SendClientToServerMessages(initiator, 1); - }); - StrictMock> on_done; - EXPECT_CALL(on_done, Call()); - call.initiator.SpawnInfallible( - "test-read", [&on_done, initiator = call.initiator]() mutable { - return Seq( - initiator.PullServerInitialMetadata(), - [](ValueOrFailure> md) { - EXPECT_TRUE(md.ok()); - }, - initiator.PullServerTrailingMetadata(), - [&on_done](ServerMetadataHandle md) { - EXPECT_EQ(md->get(GrpcStatusMetadata()).value(), - GRPC_STATUS_UNAVAILABLE); - on_done.Call(); - }); - }); - // Wait until ClientTransport's internal activities to finish. - event_engine()->TickUntilIdle(); - event_engine()->UnsetGlobalHooks(); -} - -TEST_F(ClientTransportTest, AddMultipleStreamWithWriteFailed) { - // Mock write failed at first stream and second stream's write will fail too. - MockPromiseEndpoint control_endpoint; - MockPromiseEndpoint data_endpoint; - EXPECT_CALL(*control_endpoint.endpoint, Write) - .Times(AtMost(1)) - .WillRepeatedly( - WithArgs<0>([](absl::AnyInvocable on_write) { - on_write(absl::InternalError("control endpoint write failed.")); - return false; - })); - EXPECT_CALL(*data_endpoint.endpoint, Write) - .Times(AtMost(1)) - .WillRepeatedly( - WithArgs<0>([](absl::AnyInvocable on_write) { - on_write(absl::InternalError("data endpoint write failed.")); - return false; - })); - EXPECT_CALL(*control_endpoint.endpoint, Read).WillOnce(Return(false)); - auto transport = MakeOrphanable( - std::move(control_endpoint.promise_endpoint), - std::move(data_endpoint.promise_endpoint), MakeChannelArgs(), - event_engine(), HPackParser(), HPackCompressor()); - auto call1 = MakeCall(TestInitialMetadata()); - transport->StartCall(call1.handler.StartCall()); - auto call2 = MakeCall(TestInitialMetadata()); - transport->StartCall(call2.handler.StartCall()); - call1.initiator.SpawnGuarded( - "test-send-1", [initiator = call1.initiator]() mutable { - return SendClientToServerMessages(initiator, 1); - }); - call2.initiator.SpawnGuarded( - "test-send-2", [initiator = call2.initiator]() mutable { - return SendClientToServerMessages(initiator, 1); - }); - StrictMock> on_done1; - EXPECT_CALL(on_done1, Call()); - StrictMock> on_done2; - EXPECT_CALL(on_done2, Call()); - call1.initiator.SpawnInfallible( - "test-read-1", [&on_done1, initiator = call1.initiator]() mutable { - return Seq( - initiator.PullServerInitialMetadata(), - [](ValueOrFailure> md) { - EXPECT_TRUE(md.ok()); - }, - initiator.PullServerTrailingMetadata(), - [&on_done1](ServerMetadataHandle md) { - EXPECT_EQ(md->get(GrpcStatusMetadata()).value(), - GRPC_STATUS_UNAVAILABLE); - on_done1.Call(); - }); - }); - call2.initiator.SpawnInfallible( - "test-read-2", [&on_done2, initiator = call2.initiator]() mutable { - return Seq( - initiator.PullServerInitialMetadata(), - [](ValueOrFailure> md) { - EXPECT_TRUE(md.ok()); - }, - initiator.PullServerTrailingMetadata(), - [&on_done2](ServerMetadataHandle md) { - EXPECT_EQ(md->get(GrpcStatusMetadata()).value(), - GRPC_STATUS_UNAVAILABLE); - on_done2.Call(); - }); - }); - // Wait until ClientTransport's internal activities to finish. - event_engine()->TickUntilIdle(); - event_engine()->UnsetGlobalHooks(); -} - -TEST_F(ClientTransportTest, AddMultipleStreamWithReadFailed) { - MockPromiseEndpoint control_endpoint; - MockPromiseEndpoint data_endpoint; - // Mock read failed at first stream, and second stream's write will fail too. - EXPECT_CALL(*control_endpoint.endpoint, Read) - .WillOnce(WithArgs<0>( - [](absl::AnyInvocable on_read) mutable { - on_read(absl::InternalError("control endpoint read failed.")); - // Return false to mock EventEngine read not finish. - return false; - })); - auto transport = MakeOrphanable( - std::move(control_endpoint.promise_endpoint), - std::move(data_endpoint.promise_endpoint), MakeChannelArgs(), - event_engine(), HPackParser(), HPackCompressor()); - auto call1 = MakeCall(TestInitialMetadata()); - transport->StartCall(call1.handler.StartCall()); - auto call2 = MakeCall(TestInitialMetadata()); - transport->StartCall(call2.handler.StartCall()); - call1.initiator.SpawnGuarded( - "test-send", [initiator = call1.initiator]() mutable { - return SendClientToServerMessages(initiator, 1); - }); - call2.initiator.SpawnGuarded( - "test-send", [initiator = call2.initiator]() mutable { - return SendClientToServerMessages(initiator, 1); - }); - StrictMock> on_done1; - EXPECT_CALL(on_done1, Call()); - StrictMock> on_done2; - EXPECT_CALL(on_done2, Call()); - call1.initiator.SpawnInfallible( - "test-read", [&on_done1, initiator = call1.initiator]() mutable { - return Seq( - initiator.PullServerInitialMetadata(), - [](ValueOrFailure> md) { - EXPECT_TRUE(md.ok()); - }, - initiator.PullServerTrailingMetadata(), - [&on_done1](ServerMetadataHandle md) { - EXPECT_EQ(md->get(GrpcStatusMetadata()).value(), - GRPC_STATUS_UNAVAILABLE); - on_done1.Call(); - }); - }); - call2.initiator.SpawnInfallible( - "test-read", [&on_done2, initiator = call2.initiator]() mutable { - return Seq( - initiator.PullServerInitialMetadata(), - [](ValueOrFailure> md) { - EXPECT_TRUE(md.ok()); - }, - initiator.PullServerTrailingMetadata(), - [&on_done2](ServerMetadataHandle md) { - EXPECT_EQ(md->get(GrpcStatusMetadata()).value(), - GRPC_STATUS_UNAVAILABLE); - on_done2.Call(); - }); - }); - // Wait until ClientTransport's internal activities to finish. - event_engine()->TickUntilIdle(); - event_engine()->UnsetGlobalHooks(); -} - -} // namespace testing -} // namespace chaotic_good_legacy -} // namespace grpc_core - -int main(int argc, char** argv) { - ::testing::InitGoogleTest(&argc, argv); - // Must call to create default EventEngine. - grpc_init(); - int ret = RUN_ALL_TESTS(); - grpc_shutdown(); - return ret; -} diff --git a/test/core/transport/chaotic_good_legacy/client_transport_test.cc b/test/core/transport/chaotic_good_legacy/client_transport_test.cc deleted file mode 100644 index c1c9390a10dac..0000000000000 --- a/test/core/transport/chaotic_good_legacy/client_transport_test.cc +++ /dev/null @@ -1,280 +0,0 @@ -// Copyright 2023 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "src/core/ext/transport/chaotic_good_legacy/client_transport.h" - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "absl/functional/any_invocable.h" -#include "absl/status/statusor.h" -#include "absl/strings/str_format.h" -#include "gmock/gmock.h" -#include "gtest/gtest.h" -#include "src/core/config/core_configuration.h" -#include "src/core/lib/promise/if.h" -#include "src/core/lib/promise/loop.h" -#include "src/core/lib/promise/seq.h" -#include "src/core/lib/resource_quota/arena.h" -#include "src/core/lib/slice/slice_buffer.h" -#include "src/core/lib/transport/metadata_batch.h" -#include "test/core/transport/chaotic_good_legacy/mock_promise_endpoint.h" -#include "test/core/transport/chaotic_good_legacy/transport_test.h" - -using testing::MockFunction; -using testing::Return; -using testing::StrictMock; - -using EventEngineSlice = grpc_event_engine::experimental::Slice; - -namespace grpc_core { -namespace chaotic_good_legacy { -namespace testing { - -// Encoded string of header ":path: /demo.Service/Step". -const uint8_t kPathDemoServiceStep[] = { - 0x40, 0x05, 0x3a, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2f, - 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2f, 0x53, 0x74, 0x65, 0x70}; - -// Encoded string of trailer "grpc-status: 0". -const uint8_t kGrpcStatus0[] = {0x10, 0x0b, 0x67, 0x72, 0x70, 0x63, 0x2d, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x01, 0x30}; - -ClientMetadataHandle TestInitialMetadata() { - auto md = Arena::MakePooledForOverwrite(); - md->Set(HttpPathMetadata(), Slice::FromStaticString("/demo.Service/Step")); - return md; -} - -// Send messages from client to server. -auto SendClientToServerMessages(CallInitiator initiator, int num_messages) { - return Loop([initiator, num_messages, i = 0]() mutable { - bool has_message = (i < num_messages); - return If( - has_message, - [initiator, &i]() mutable { - return Seq( - initiator.PushMessage(Arena::MakePooled( - SliceBuffer(Slice::FromCopiedString(std::to_string(i))), 0)), - [&i]() -> LoopCtl { - ++i; - return Continue(); - }); - }, - [initiator]() mutable -> LoopCtl { - initiator.FinishSends(); - return absl::OkStatus(); - }); - }); -} - -ChannelArgs MakeChannelArgs() { - return CoreConfiguration::Get() - .channel_args_preconditioning() - .PreconditionChannelArgs(nullptr); -} - -TEST_F(TransportTest, AddOneStream) { - MockPromiseEndpoint control_endpoint(1000); - MockPromiseEndpoint data_endpoint(1001); - control_endpoint.ExpectRead( - {SerializedFrameHeader(FrameType::kFragment, 7, 1, 26, 8, 56, 15), - EventEngineSlice::FromCopiedBuffer(kPathDemoServiceStep, - sizeof(kPathDemoServiceStep)), - EventEngineSlice::FromCopiedBuffer(kGrpcStatus0, sizeof(kGrpcStatus0))}, - event_engine().get()); - data_endpoint.ExpectRead( - {EventEngineSlice::FromCopiedString("12345678"), Zeros(56)}, nullptr); - EXPECT_CALL(*control_endpoint.endpoint, Read) - .InSequence(control_endpoint.read_sequence) - .WillOnce(Return(false)); - auto transport = MakeOrphanable( - std::move(control_endpoint.promise_endpoint), - std::move(data_endpoint.promise_endpoint), MakeChannelArgs(), - event_engine(), HPackParser(), HPackCompressor()); - auto call = MakeCall(TestInitialMetadata()); - StrictMock> on_done; - EXPECT_CALL(on_done, Call()); - control_endpoint.ExpectWrite( - {SerializedFrameHeader(FrameType::kFragment, 1, 1, - sizeof(kPathDemoServiceStep), 0, 0, 0), - EventEngineSlice::FromCopiedBuffer(kPathDemoServiceStep, - sizeof(kPathDemoServiceStep))}, - nullptr); - control_endpoint.ExpectWrite( - {SerializedFrameHeader(FrameType::kFragment, 2, 1, 0, 1, 63, 0)}, - nullptr); - data_endpoint.ExpectWrite( - {EventEngineSlice::FromCopiedString("0"), Zeros(63)}, nullptr); - control_endpoint.ExpectWrite( - {SerializedFrameHeader(FrameType::kFragment, 4, 1, 0, 0, 0, 0)}, nullptr); - transport->StartCall(call.handler.StartCall()); - call.initiator.SpawnGuarded("test-send", - [initiator = call.initiator]() mutable { - return SendClientToServerMessages(initiator, 1); - }); - call.initiator.SpawnInfallible( - "test-read", [&on_done, initiator = call.initiator]() mutable { - return Seq( - initiator.PullServerInitialMetadata(), - [](ValueOrFailure> md) { - EXPECT_TRUE(md.ok()); - EXPECT_TRUE(md.value().has_value()); - EXPECT_EQ(md.value() - .value() - ->get_pointer(HttpPathMetadata()) - ->as_string_view(), - "/demo.Service/Step"); - }, - [initiator]() mutable { return initiator.PullMessage(); }, - [](ServerToClientNextMessage msg) { - EXPECT_TRUE(msg.ok()); - EXPECT_TRUE(msg.has_value()); - EXPECT_EQ(msg.value().payload()->JoinIntoString(), "12345678"); - }, - [initiator]() mutable { return initiator.PullMessage(); }, - [](ServerToClientNextMessage msg) { - EXPECT_TRUE(msg.ok()); - EXPECT_FALSE(msg.has_value()); - }, - [initiator]() mutable { - return initiator.PullServerTrailingMetadata(); - }, - [&on_done](ServerMetadataHandle md) { - EXPECT_EQ(md->get(GrpcStatusMetadata()).value(), GRPC_STATUS_OK); - on_done.Call(); - }); - }); - // Wait until ClientTransport's internal activities to finish. - event_engine()->TickUntilIdle(); - event_engine()->UnsetGlobalHooks(); -} - -TEST_F(TransportTest, AddOneStreamMultipleMessages) { - MockPromiseEndpoint control_endpoint(1000); - MockPromiseEndpoint data_endpoint(1001); - control_endpoint.ExpectRead( - {SerializedFrameHeader(FrameType::kFragment, 3, 1, 26, 8, 56, 0), - EventEngineSlice::FromCopiedBuffer(kPathDemoServiceStep, - sizeof(kPathDemoServiceStep))}, - event_engine().get()); - control_endpoint.ExpectRead( - {SerializedFrameHeader(FrameType::kFragment, 6, 1, 0, 8, 56, 15), - EventEngineSlice::FromCopiedBuffer(kGrpcStatus0, sizeof(kGrpcStatus0))}, - event_engine().get()); - data_endpoint.ExpectRead( - {EventEngineSlice::FromCopiedString("12345678"), Zeros(56)}, nullptr); - data_endpoint.ExpectRead( - {EventEngineSlice::FromCopiedString("87654321"), Zeros(56)}, nullptr); - EXPECT_CALL(*control_endpoint.endpoint, Read) - .InSequence(control_endpoint.read_sequence) - .WillOnce(Return(false)); - auto transport = MakeOrphanable( - std::move(control_endpoint.promise_endpoint), - std::move(data_endpoint.promise_endpoint), MakeChannelArgs(), - event_engine(), HPackParser(), HPackCompressor()); - auto call = MakeCall(TestInitialMetadata()); - StrictMock> on_done; - EXPECT_CALL(on_done, Call()); - control_endpoint.ExpectWrite( - {SerializedFrameHeader(FrameType::kFragment, 1, 1, - sizeof(kPathDemoServiceStep), 0, 0, 0), - EventEngineSlice::FromCopiedBuffer(kPathDemoServiceStep, - sizeof(kPathDemoServiceStep))}, - nullptr); - control_endpoint.ExpectWrite( - {SerializedFrameHeader(FrameType::kFragment, 2, 1, 0, 1, 63, 0)}, - nullptr); - data_endpoint.ExpectWrite( - {EventEngineSlice::FromCopiedString("0"), Zeros(63)}, nullptr); - control_endpoint.ExpectWrite( - {SerializedFrameHeader(FrameType::kFragment, 2, 1, 0, 1, 63, 0)}, - nullptr); - data_endpoint.ExpectWrite( - {EventEngineSlice::FromCopiedString("1"), Zeros(63)}, nullptr); - control_endpoint.ExpectWrite( - {SerializedFrameHeader(FrameType::kFragment, 4, 1, 0, 0, 0, 0)}, nullptr); - transport->StartCall(call.handler.StartCall()); - call.initiator.SpawnGuarded("test-send", - [initiator = call.initiator]() mutable { - return SendClientToServerMessages(initiator, 2); - }); - call.initiator.SpawnInfallible( - "test-read", [&on_done, initiator = call.initiator]() mutable { - return Seq( - initiator.PullServerInitialMetadata(), - [](ValueOrFailure> md) { - EXPECT_TRUE(md.ok()); - EXPECT_TRUE(md.value().has_value()); - EXPECT_EQ(md.value() - .value() - ->get_pointer(HttpPathMetadata()) - ->as_string_view(), - "/demo.Service/Step"); - }, - initiator.PullMessage(), - [](ServerToClientNextMessage msg) { - EXPECT_TRUE(msg.ok()); - EXPECT_TRUE(msg.has_value()); - EXPECT_EQ(msg.value().payload()->JoinIntoString(), "12345678"); - }, - initiator.PullMessage(), - [](ServerToClientNextMessage msg) { - EXPECT_TRUE(msg.ok()); - EXPECT_TRUE(msg.has_value()); - EXPECT_EQ(msg.value().payload()->JoinIntoString(), "87654321"); - }, - initiator.PullMessage(), - [](ServerToClientNextMessage msg) { - EXPECT_TRUE(msg.ok()); - EXPECT_FALSE(msg.has_value()); - }, - initiator.PullServerTrailingMetadata(), - [&on_done](ServerMetadataHandle md) { - EXPECT_EQ(md->get(GrpcStatusMetadata()).value(), GRPC_STATUS_OK); - on_done.Call(); - }); - }); - // Wait until ClientTransport's internal activities to finish. - event_engine()->TickUntilIdle(); - event_engine()->UnsetGlobalHooks(); -} - -} // namespace testing -} // namespace chaotic_good_legacy -} // namespace grpc_core - -int main(int argc, char** argv) { - ::testing::InitGoogleTest(&argc, argv); - // Must call to create default EventEngine. - grpc_init(); - int ret = RUN_ALL_TESTS(); - grpc_shutdown(); - return ret; -} diff --git a/test/core/transport/chaotic_good_legacy/frame_fuzzer.cc b/test/core/transport/chaotic_good_legacy/frame_fuzzer.cc deleted file mode 100644 index 94338f6fbd765..0000000000000 --- a/test/core/transport/chaotic_good_legacy/frame_fuzzer.cc +++ /dev/null @@ -1,136 +0,0 @@ -// Copyright 2022 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include -#include -#include - -#include -#include - -#include "absl/log/check.h" -#include "absl/log/log.h" -#include "absl/random/bit_gen_ref.h" -#include "absl/status/statusor.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame_header.h" -#include "src/core/ext/transport/chttp2/transport/hpack_encoder.h" -#include "src/core/ext/transport/chttp2/transport/hpack_parser.h" -#include "src/core/lib/iomgr/exec_ctx.h" -#include "src/core/lib/resource_quota/arena.h" -#include "src/core/lib/resource_quota/memory_quota.h" -#include "src/core/lib/resource_quota/resource_quota.h" -#include "src/core/lib/slice/slice.h" -#include "src/core/lib/slice/slice_buffer.h" -#include "src/core/util/ref_counted_ptr.h" -#include "src/libfuzzer/libfuzzer_macro.h" -#include "test/core/promise/test_context.h" -#include "test/core/transport/chaotic_good_legacy/frame_fuzzer.pb.h" - -bool squelch = false; - -namespace grpc_core { -namespace chaotic_good_legacy { - -struct DeterministicBitGen : public std::numeric_limits { - using result_type = uint64_t; - uint64_t operator()() { return 42; } -}; - -FrameLimits FuzzerFrameLimits() { return FrameLimits{1024 * 1024 * 1024, 63}; } - -template -void AssertRoundTrips(const T& input, FrameType expected_frame_type) { - HPackCompressor hpack_compressor; - bool saw_encoding_errors = false; - auto serialized = input.Serialize(&hpack_compressor, saw_encoding_errors); - CHECK(serialized.control.Length() >= - 24); // Initial output buffer size is 64 byte. - uint8_t header_bytes[24]; - serialized.control.MoveFirstNBytesIntoBuffer(24, header_bytes); - auto header = FrameHeader::Parse(header_bytes); - if (!header.ok()) { - if (!squelch) { - LOG(ERROR) << "Failed to parse header: " << header.status().ToString(); - } - Crash("Failed to parse header"); - } - CHECK_EQ(header->type, expected_frame_type); - T output; - HPackParser hpack_parser; - DeterministicBitGen bitgen; - auto deser = output.Deserialize(&hpack_parser, header.value(), - absl::BitGenRef(bitgen), GetContext(), - std::move(serialized), FuzzerFrameLimits()); - CHECK_OK(deser); - if (!saw_encoding_errors) CHECK_EQ(input, output); -} - -template -void FinishParseAndChecks(const FrameHeader& header, BufferPair buffers) { - T parsed; - ExecCtx exec_ctx; // Initialized to get this_cpu() info in global_stat(). - HPackParser hpack_parser; - DeterministicBitGen bitgen; - auto deser = parsed.Deserialize(&hpack_parser, header, - absl::BitGenRef(bitgen), GetContext(), - std::move(buffers), FuzzerFrameLimits()); - if (!deser.ok()) return; - LOG(INFO) << "Read frame: " << parsed.ToString(); - AssertRoundTrips(parsed, header.type); -} - -void Run(const frame_fuzzer::Test& test) { - const uint8_t* control_data = - reinterpret_cast(test.control().data()); - size_t control_size = test.control().size(); - if (test.control().size() < 24) return; - auto r = FrameHeader::Parse(control_data); - if (!r.ok()) return; - if (test.data().size() != r->message_length) return; - LOG(INFO) << "Read frame header: " << r->ToString(); - control_data += 24; - control_size -= 24; - auto arena = SimpleArenaAllocator()->MakeArena(); - TestContext ctx(arena.get()); - BufferPair buffers{ - SliceBuffer(Slice::FromCopiedBuffer(control_data, control_size)), - SliceBuffer( - Slice::FromCopiedBuffer(test.data().data(), test.data().size())), - }; - switch (r->type) { - default: - return; // We don't know how to parse this frame type. - case FrameType::kSettings: - FinishParseAndChecks(*r, std::move(buffers)); - break; - case FrameType::kFragment: - if (test.is_server()) { - FinishParseAndChecks(*r, std::move(buffers)); - } else { - FinishParseAndChecks(*r, std::move(buffers)); - } - break; - case FrameType::kCancel: - FinishParseAndChecks(*r, std::move(buffers)); - break; - } -} - -} // namespace chaotic_good_legacy -} // namespace grpc_core - -DEFINE_PROTO_FUZZER(const frame_fuzzer::Test& test) { - grpc_core::chaotic_good_legacy::Run(test); -} diff --git a/test/core/transport/chaotic_good_legacy/frame_fuzzer.proto b/test/core/transport/chaotic_good_legacy/frame_fuzzer.proto deleted file mode 100644 index 4ae8657e5881a..0000000000000 --- a/test/core/transport/chaotic_good_legacy/frame_fuzzer.proto +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2021 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package frame_fuzzer; - -message Test { - bool is_server = 1; - bytes control = 2; - bytes data = 3; -} diff --git a/test/core/transport/chaotic_good_legacy/frame_fuzzer_corpus/clusterfuzz-testcase-minimized-frame_fuzzer-4558239670272000 b/test/core/transport/chaotic_good_legacy/frame_fuzzer_corpus/clusterfuzz-testcase-minimized-frame_fuzzer-4558239670272000 deleted file mode 100644 index da23b9563e24c..0000000000000 --- a/test/core/transport/chaotic_good_legacy/frame_fuzzer_corpus/clusterfuzz-testcase-minimized-frame_fuzzer-4558239670272000 +++ /dev/null @@ -1 +0,0 @@ -control: "\200\001\000\000\022z`:0\000\000\000\000\000\000\000\000\000:status\234@\000\000\000\000\000\000\010\2342393\\3\237\237\237\237\237\237\237\237\237\237\237\237\237\237\237\237\237\237\237\237\237\237\237\237\237\237\237\237\237\237\237\237\23777\\3\377\377\377\0037X1user-agentrol: b0\\0\000" diff --git a/test/core/transport/chaotic_good_legacy/frame_fuzzer_corpus/empty b/test/core/transport/chaotic_good_legacy/frame_fuzzer_corpus/empty deleted file mode 100644 index 8b137891791fe..0000000000000 --- a/test/core/transport/chaotic_good_legacy/frame_fuzzer_corpus/empty +++ /dev/null @@ -1 +0,0 @@ - diff --git a/test/core/transport/chaotic_good_legacy/frame_fuzzer_corpus/testcase-5162634043785216 b/test/core/transport/chaotic_good_legacy/frame_fuzzer_corpus/testcase-5162634043785216 deleted file mode 100644 index 3652070e75ac5..0000000000000 --- a/test/core/transport/chaotic_good_legacy/frame_fuzzer_corpus/testcase-5162634043785216 +++ /dev/null @@ -1,2 +0,0 @@ -control: "\200\002\000\000\ny\0022\000\000\000\000\033\000\000\000;E\\000\\ny]0" -data: "\200\002\000\000\ny\0022\000\000\000\000\033\000\000\000;E\\000\\ny]0" diff --git a/test/core/transport/chaotic_good_legacy/frame_header_fuzzer.cc b/test/core/transport/chaotic_good_legacy/frame_header_fuzzer.cc deleted file mode 100644 index 70b618aba9b09..0000000000000 --- a/test/core/transport/chaotic_good_legacy/frame_header_fuzzer.cc +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2022 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include -#include -#include - -#include "absl/status/statusor.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame_header.h" - -bool squelch = false; - -extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - if (size != 24) return 0; - auto r = grpc_core::chaotic_good_legacy::FrameHeader::Parse(data); - if (!r.ok()) return 0; - uint8_t reserialized[24]; - r->Serialize(reserialized); - // If it parses, we insist that the bytes reserialize to the same thing. - if (memcmp(data, reserialized, 24) != 0) abort(); - return 0; -} diff --git a/test/core/transport/chaotic_good_legacy/frame_header_fuzzer_corpus/0 b/test/core/transport/chaotic_good_legacy/frame_header_fuzzer_corpus/0 deleted file mode 100644 index 8b137891791fe..0000000000000 --- a/test/core/transport/chaotic_good_legacy/frame_header_fuzzer_corpus/0 +++ /dev/null @@ -1 +0,0 @@ - diff --git a/test/core/transport/chaotic_good_legacy/frame_header_test.cc b/test/core/transport/chaotic_good_legacy/frame_header_test.cc deleted file mode 100644 index 94c3b7bbe0423..0000000000000 --- a/test/core/transport/chaotic_good_legacy/frame_header_test.cc +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright 2022 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "src/core/ext/transport/chaotic_good_legacy/frame_header.h" - -#include -#include - -#include "absl/status/status.h" -#include "gtest/gtest.h" - -namespace grpc_core { -namespace chaotic_good_legacy { -namespace { - -std::vector Serialize(FrameHeader h) { - uint8_t buffer[24]; - h.Serialize(buffer); - return std::vector(buffer, buffer + 24); -} - -absl::StatusOr Deserialize(std::vector data) { - if (data.size() != 24) return absl::InvalidArgumentError("bad length"); - return FrameHeader::Parse(data.data()); -} - -TEST(FrameHeaderTest, SimpleSerialize) { - EXPECT_EQ(Serialize(FrameHeader{FrameType::kCancel, BitSet<3>::FromInt(0), - 0x01020304, 0x05060708, 0x090a0b0c, - 0x00000034, 0x0d0e0f10}), - std::vector({ - 0x81, 0, 0, 0, // type, flags - 0x04, 0x03, 0x02, 0x01, // stream_id - 0x08, 0x07, 0x06, 0x05, // header_length - 0x0c, 0x0b, 0x0a, 0x09, // message_length - 0x34, 0x00, 0x00, 0x00, // mesage_padding - 0x10, 0x0f, 0x0e, 0x0d // trailer_length - })); -} - -TEST(FrameHeaderTest, SimpleDeserialize) { - EXPECT_EQ(Deserialize(std::vector({ - 0x81, 0, 0, 0, // type, flags - 0x04, 0x03, 0x02, 0x01, // stream_id - 0x08, 0x07, 0x06, 0x05, // header_length - 0x0c, 0x0b, 0x0a, 0x09, // message_length - 0x34, 0x00, 0x00, 0x00, // mesage_padding - 0x10, 0x0f, 0x0e, 0x0d // trailer_length - })), - absl::StatusOr(FrameHeader{ - FrameType::kCancel, BitSet<3>::FromInt(0), 0x01020304, - 0x05060708, 0x090a0b0c, 0x00000034, 0x0d0e0f10})); - EXPECT_EQ(Deserialize(std::vector({ - 0x81, 88, 88, 88, // type, flags - 0x04, 0x03, 0x02, 0x01, // stream_id - 0x08, 0x07, 0x06, 0x05, // header_length - 0x0c, 0x0b, 0x0a, 0x09, // message_length - 0x34, 0x00, 0x00, 0x00, // mesage_padding - 0x10, 0x0f, 0x0e, 0x0d // trailer_length - })) - .status(), - absl::InvalidArgumentError("Invalid flags")); -} - -TEST(FrameHeaderTest, GetFrameLength) { - EXPECT_EQ( - (FrameHeader{FrameType::kFragment, BitSet<3>::FromInt(5), 1, 0, 0, 0, 0}) - .GetFrameLength(), - 0); - EXPECT_EQ( - (FrameHeader{FrameType::kFragment, BitSet<3>::FromInt(5), 1, 14, 0, 0, 0}) - .GetFrameLength(), - 14); - EXPECT_EQ((FrameHeader{FrameType::kFragment, BitSet<3>::FromInt(5), 1, 0, 14, - 50, 0}) - .GetFrameLength(), - 0); - EXPECT_EQ( - (FrameHeader{FrameType::kFragment, BitSet<3>::FromInt(5), 1, 0, 0, 0, 14}) - .GetFrameLength(), - 14); -} - -} // namespace -} // namespace chaotic_good_legacy -} // namespace grpc_core - -int main(int argc, char** argv) { - ::testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} diff --git a/test/core/transport/chaotic_good_legacy/frame_test.cc b/test/core/transport/chaotic_good_legacy/frame_test.cc deleted file mode 100644 index 23505b390130d..0000000000000 --- a/test/core/transport/chaotic_good_legacy/frame_test.cc +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2022 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "src/core/ext/transport/chaotic_good_legacy/frame.h" - -#include - -#include "absl/log/check.h" -#include "absl/random/random.h" -#include "absl/status/status.h" -#include "absl/status/statusor.h" -#include "gtest/gtest.h" -#include "src/core/lib/resource_quota/memory_quota.h" -#include "src/core/lib/resource_quota/resource_quota.h" - -namespace grpc_core { -namespace chaotic_good_legacy { -namespace { - -FrameLimits TestFrameLimits() { return FrameLimits{1024 * 1024 * 1024, 63}; } - -template -void AssertRoundTrips(const T& input, FrameType expected_frame_type) { - HPackCompressor hpack_compressor; - bool saw_encoding_errors = false; - auto serialized = input.Serialize(&hpack_compressor, saw_encoding_errors); - CHECK_GE(serialized.control.Length(), - 24); // Initial output buffer size is 64 byte. - uint8_t header_bytes[24]; - serialized.control.MoveFirstNBytesIntoBuffer(24, header_bytes); - auto header = FrameHeader::Parse(header_bytes); - if (!header.ok()) { - Crash("Failed to parse header"); - } - CHECK_EQ(header->type, expected_frame_type); - T output; - HPackParser hpack_parser; - absl::BitGen bitgen; - MemoryAllocator allocator = MakeResourceQuota("test-quota") - ->memory_quota() - ->CreateMemoryAllocator("test-allocator"); - RefCountedPtr arena = SimpleArenaAllocator()->MakeArena(); - auto deser = - output.Deserialize(&hpack_parser, header.value(), absl::BitGenRef(bitgen), - arena.get(), std::move(serialized), TestFrameLimits()); - CHECK_OK(deser); - if (!saw_encoding_errors) CHECK_EQ(output, input); -} - -TEST(FrameTest, SettingsFrameRoundTrips) { - AssertRoundTrips(SettingsFrame{}, FrameType::kSettings); -} - -} // namespace -} // namespace chaotic_good_legacy -} // namespace grpc_core - -int main(int argc, char** argv) { - ::testing::InitGoogleTest(&argc, argv); - int r = RUN_ALL_TESTS(); - return r; -} diff --git a/test/core/transport/chaotic_good_legacy/mock_promise_endpoint.cc b/test/core/transport/chaotic_good_legacy/mock_promise_endpoint.cc deleted file mode 100644 index b1596a32d79a8..0000000000000 --- a/test/core/transport/chaotic_good_legacy/mock_promise_endpoint.cc +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2023 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "test/core/transport/chaotic_good_legacy/mock_promise_endpoint.h" - -#include - -#include "gmock/gmock.h" -#include "gtest/gtest.h" - -using EventEngineSlice = grpc_event_engine::experimental::Slice; -using grpc_event_engine::experimental::EventEngine; - -using testing::WithArgs; - -namespace grpc_core { -namespace chaotic_good_legacy { -namespace testing { - -void MockPromiseEndpoint::ExpectRead( - std::initializer_list slices_init, - EventEngine* schedule_on_event_engine) { - std::vector slices; - for (auto&& slice : slices_init) slices.emplace_back(slice.Copy()); - EXPECT_CALL(*endpoint, Read) - .InSequence(read_sequence) - .WillOnce(WithArgs<0, 1>( - [slices = std::move(slices), schedule_on_event_engine]( - absl::AnyInvocable on_read, - grpc_event_engine::experimental::SliceBuffer* buffer) mutable { - for (auto& slice : slices) { - buffer->Append(std::move(slice)); - } - if (schedule_on_event_engine != nullptr) { - schedule_on_event_engine->Run( - [on_read = std::move(on_read)]() mutable { - on_read(absl::OkStatus()); - }); - return false; - } else { - return true; - } - })); -} - -void MockPromiseEndpoint::ExpectWrite( - std::initializer_list slices, - EventEngine* schedule_on_event_engine) { - SliceBuffer expect; - for (auto&& slice : slices) { - expect.Append(grpc_event_engine::experimental::internal::SliceCast( - slice.Copy())); - } - EXPECT_CALL(*endpoint, Write) - .InSequence(write_sequence) - .WillOnce(WithArgs<0, 1>( - [expect = expect.JoinIntoString(), schedule_on_event_engine]( - absl::AnyInvocable on_writable, - grpc_event_engine::experimental::SliceBuffer* buffer) mutable { - SliceBuffer tmp; - grpc_slice_buffer_swap(buffer->c_slice_buffer(), - tmp.c_slice_buffer()); - EXPECT_EQ(tmp.JoinIntoString(), expect); - if (schedule_on_event_engine != nullptr) { - schedule_on_event_engine->Run( - [on_writable = std::move(on_writable)]() mutable { - on_writable(absl::OkStatus()); - }); - return false; - } else { - return true; - } - })); -} - -} // namespace testing -} // namespace chaotic_good_legacy -} // namespace grpc_core diff --git a/test/core/transport/chaotic_good_legacy/mock_promise_endpoint.h b/test/core/transport/chaotic_good_legacy/mock_promise_endpoint.h deleted file mode 100644 index bf77d5ef4edee..0000000000000 --- a/test/core/transport/chaotic_good_legacy/mock_promise_endpoint.h +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright 2023 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef GRPC_TEST_CORE_TRANSPORT_CHAOTIC_GOOD_LEGACY_MOCK_PROMISE_ENDPOINT_H -#define GRPC_TEST_CORE_TRANSPORT_CHAOTIC_GOOD_LEGACY_MOCK_PROMISE_ENDPOINT_H - -#include - -#include "gmock/gmock.h" -#include "gtest/gtest.h" -#include "src/core/lib/event_engine/tcp_socket_utils.h" -#include "src/core/lib/transport/promise_endpoint.h" - -namespace grpc_core { -namespace chaotic_good_legacy { -namespace testing { - -class MockEndpoint - : public grpc_event_engine::experimental::EventEngine::Endpoint { - public: - MOCK_METHOD( - bool, Read, - (absl::AnyInvocable on_read, - grpc_event_engine::experimental::SliceBuffer* buffer, - const grpc_event_engine::experimental::EventEngine::Endpoint::ReadArgs* - args), - (override)); - - MOCK_METHOD( - bool, Write, - (absl::AnyInvocable on_writable, - grpc_event_engine::experimental::SliceBuffer* data, - const grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs* - args), - (override)); - - MOCK_METHOD( - const grpc_event_engine::experimental::EventEngine::ResolvedAddress&, - GetPeerAddress, (), (const, override)); - MOCK_METHOD( - const grpc_event_engine::experimental::EventEngine::ResolvedAddress&, - GetLocalAddress, (), (const, override)); -}; - -struct MockPromiseEndpoint { - explicit MockPromiseEndpoint(int port) { - if (GRPC_TRACE_FLAG_ENABLED(chaotic_good)) { - EXPECT_CALL(*endpoint, GetPeerAddress) - .WillRepeatedly( - [peer_address = - std::make_shared( - grpc_event_engine::experimental::URIToResolvedAddress( - absl::StrCat("ipv4:127.0.0.1:", port)) - .value())]() - -> const grpc_event_engine::experimental::EventEngine:: - ResolvedAddress& { return *peer_address; }); - } - } - ::testing::StrictMock* endpoint = - new ::testing::StrictMock(); - PromiseEndpoint promise_endpoint = PromiseEndpoint( - std::unique_ptr<::testing::StrictMock>(endpoint), - SliceBuffer()); - ::testing::Sequence read_sequence; - ::testing::Sequence write_sequence; - void ExpectRead( - std::initializer_list slices_init, - grpc_event_engine::experimental::EventEngine* schedule_on_event_engine); - void ExpectWrite( - std::initializer_list slices, - grpc_event_engine::experimental::EventEngine* schedule_on_event_engine); -}; - -} // namespace testing -} // namespace chaotic_good_legacy -} // namespace grpc_core - -#endif // GRPC_TEST_CORE_TRANSPORT_CHAOTIC_GOOD_LEGACY_MOCK_PROMISE_ENDPOINT_H diff --git a/test/core/transport/chaotic_good_legacy/server_transport_test.cc b/test/core/transport/chaotic_good_legacy/server_transport_test.cc deleted file mode 100644 index eea23fa7a6e0f..0000000000000 --- a/test/core/transport/chaotic_good_legacy/server_transport_test.cc +++ /dev/null @@ -1,199 +0,0 @@ -// Copyright 2023 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "src/core/ext/transport/chaotic_good_legacy/server_transport.h" - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include "absl/functional/any_invocable.h" -#include "absl/status/status.h" -#include "absl/status/statusor.h" -#include "absl/strings/str_format.h" -#include "gmock/gmock.h" -#include "gtest/gtest.h" -#include "src/core/lib/iomgr/timer_manager.h" -#include "src/core/lib/promise/seq.h" -#include "src/core/lib/resource_quota/arena.h" -#include "src/core/lib/resource_quota/memory_quota.h" -#include "src/core/lib/resource_quota/resource_quota.h" -#include "src/core/lib/slice/slice_buffer.h" -#include "src/core/lib/slice/slice_internal.h" -#include "src/core/lib/transport/metadata_batch.h" -#include "src/core/util/ref_counted_ptr.h" -#include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h" -#include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h" -#include "test/core/transport/chaotic_good_legacy/mock_promise_endpoint.h" -#include "test/core/transport/chaotic_good_legacy/transport_test.h" - -using testing::_; -using testing::MockFunction; -using testing::Return; -using testing::StrictMock; -using testing::WithArgs; - -using EventEngineSlice = grpc_event_engine::experimental::Slice; - -namespace grpc_core { -namespace chaotic_good_legacy { -namespace testing { - -// Encoded string of header ":path: /demo.Service/Step". -const uint8_t kPathDemoServiceStep[] = { - 0x40, 0x05, 0x3a, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2f, - 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2f, 0x53, 0x74, 0x65, 0x70}; - -// Encoded string of trailer "grpc-status: 0". -const uint8_t kGrpcStatus0[] = {0x40, 0x0b, 0x67, 0x72, 0x70, 0x63, 0x2d, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x01, 0x30}; - -ServerMetadataHandle TestInitialMetadata() { - auto md = Arena::MakePooledForOverwrite(); - md->Set(HttpPathMetadata(), Slice::FromStaticString("/demo.Service/Step")); - return md; -} - -ServerMetadataHandle TestTrailingMetadata() { - auto md = Arena::MakePooledForOverwrite(); - md->Set(GrpcStatusMetadata(), GRPC_STATUS_OK); - return md; -} - -class MockCallDestination : public UnstartedCallDestination { - public: - ~MockCallDestination() override = default; - MOCK_METHOD(void, Orphaned, (), (override)); - MOCK_METHOD(void, StartCall, (UnstartedCallHandler unstarted_call_handler), - (override)); -}; - -TEST_F(TransportTest, ReadAndWriteOneMessage) { - MockPromiseEndpoint control_endpoint(1); - MockPromiseEndpoint data_endpoint(2); - auto call_destination = MakeRefCounted>(); - EXPECT_CALL(*call_destination, Orphaned()).Times(1); - auto transport = MakeOrphanable( - CoreConfiguration::Get() - .channel_args_preconditioning() - .PreconditionChannelArgs(nullptr), - std::move(control_endpoint.promise_endpoint), - std::move(data_endpoint.promise_endpoint), event_engine(), HPackParser(), - HPackCompressor()); - // Once we set the acceptor, expect to read some frames. - // We'll return a new request with a payload of "12345678". - control_endpoint.ExpectRead( - {SerializedFrameHeader(FrameType::kFragment, 7, 1, 26, 8, 56, 0), - EventEngineSlice::FromCopiedBuffer(kPathDemoServiceStep, - sizeof(kPathDemoServiceStep))}, - event_engine().get()); - data_endpoint.ExpectRead( - {EventEngineSlice::FromCopiedString("12345678"), Zeros(56)}, nullptr); - // Once that's read we'll create a new call - StrictMock> on_done; - auto control_address = - grpc_event_engine::experimental::URIToResolvedAddress("ipv4:1.2.3.4:5678") - .value(); - EXPECT_CALL(*control_endpoint.endpoint, GetPeerAddress) - .WillRepeatedly([&control_address]() { return control_address; }); - EXPECT_CALL(*call_destination, StartCall(_)) - .WillOnce(WithArgs<0>([&on_done]( - UnstartedCallHandler unstarted_call_handler) { - EXPECT_EQ(unstarted_call_handler.UnprocessedClientInitialMetadata() - .get_pointer(HttpPathMetadata()) - ->as_string_view(), - "/demo.Service/Step"); - auto handler = unstarted_call_handler.StartCall(); - handler.SpawnInfallible("test-io", [&on_done, handler]() mutable { - return Seq( - handler.PullClientInitialMetadata(), - [](ValueOrFailure md) { - EXPECT_TRUE(md.ok()); - EXPECT_EQ(md.value() - ->get_pointer(HttpPathMetadata()) - ->as_string_view(), - "/demo.Service/Step"); - }, - [handler]() mutable { return handler.PullMessage(); }, - [](ClientToServerNextMessage msg) { - EXPECT_TRUE(msg.ok()); - EXPECT_TRUE(msg.has_value()); - EXPECT_EQ(msg.value().payload()->JoinIntoString(), "12345678"); - }, - [handler]() mutable { return handler.PullMessage(); }, - [](ClientToServerNextMessage msg) { - EXPECT_TRUE(msg.ok()); - EXPECT_FALSE(msg.has_value()); - }, - [handler]() mutable { - return handler.PushServerInitialMetadata(TestInitialMetadata()); - }, - [handler]() mutable { - return handler.PushMessage(Arena::MakePooled( - SliceBuffer(Slice::FromCopiedString("87654321")), 0)); - }, - [handler, &on_done]() mutable { - handler.PushServerTrailingMetadata(TestTrailingMetadata()); - on_done.Call(); - }); - }); - })); - transport->SetCallDestination(call_destination); - EXPECT_CALL(on_done, Call()); - EXPECT_CALL(*control_endpoint.endpoint, Read) - .InSequence(control_endpoint.read_sequence) - .WillOnce(Return(false)); - control_endpoint.ExpectWrite( - {SerializedFrameHeader(FrameType::kFragment, 1, 1, - sizeof(kPathDemoServiceStep), 0, 0, 0), - EventEngineSlice::FromCopiedBuffer(kPathDemoServiceStep, - sizeof(kPathDemoServiceStep))}, - nullptr); - control_endpoint.ExpectWrite( - {SerializedFrameHeader(FrameType::kFragment, 2, 1, 0, 8, 56, 0)}, - nullptr); - data_endpoint.ExpectWrite( - {EventEngineSlice::FromCopiedString("87654321"), Zeros(56)}, nullptr); - control_endpoint.ExpectWrite( - {SerializedFrameHeader(FrameType::kFragment, 4, 1, 0, 0, 0, - sizeof(kGrpcStatus0)), - EventEngineSlice::FromCopiedBuffer(kGrpcStatus0, sizeof(kGrpcStatus0))}, - nullptr); - // Wait until ClientTransport's internal activities to finish. - event_engine()->TickUntilIdle(); - event_engine()->UnsetGlobalHooks(); -} - -} // namespace testing -} // namespace chaotic_good_legacy -} // namespace grpc_core - -int main(int argc, char** argv) { - ::testing::InitGoogleTest(&argc, argv); - // Must call to create default EventEngine. - grpc_init(); - int ret = RUN_ALL_TESTS(); - grpc_shutdown(); - return ret; -} diff --git a/test/core/transport/chaotic_good_legacy/transport_test.cc b/test/core/transport/chaotic_good_legacy/transport_test.cc deleted file mode 100644 index 82593f1d02f74..0000000000000 --- a/test/core/transport/chaotic_good_legacy/transport_test.cc +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2023 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "test/core/transport/chaotic_good_legacy/transport_test.h" - -namespace grpc_core { -namespace chaotic_good_legacy { -namespace testing { - -grpc_event_engine::experimental::Slice SerializedFrameHeader( - FrameType type, uint8_t flags, uint32_t stream_id, uint32_t header_length, - uint32_t message_length, uint32_t message_padding, - uint32_t trailer_length) { - uint8_t buffer[24] = {static_cast(type), - flags, - 0, - 0, - static_cast(stream_id), - static_cast(stream_id >> 8), - static_cast(stream_id >> 16), - static_cast(stream_id >> 24), - static_cast(header_length), - static_cast(header_length >> 8), - static_cast(header_length >> 16), - static_cast(header_length >> 24), - static_cast(message_length), - static_cast(message_length >> 8), - static_cast(message_length >> 16), - static_cast(message_length >> 24), - static_cast(message_padding), - static_cast(message_padding >> 8), - static_cast(message_padding >> 16), - static_cast(message_padding >> 24), - static_cast(trailer_length), - static_cast(trailer_length >> 8), - static_cast(trailer_length >> 16), - static_cast(trailer_length >> 24)}; - return grpc_event_engine::experimental::Slice::FromCopiedBuffer(buffer, 24); -} - -grpc_event_engine::experimental::Slice Zeros(uint32_t length) { - std::string zeros(length, 0); - return grpc_event_engine::experimental::Slice::FromCopiedBuffer(zeros.data(), - length); -} - -} // namespace testing -} // namespace chaotic_good_legacy -} // namespace grpc_core diff --git a/test/core/transport/chaotic_good_legacy/transport_test.h b/test/core/transport/chaotic_good_legacy/transport_test.h deleted file mode 100644 index 3d0a3153ab610..0000000000000 --- a/test/core/transport/chaotic_good_legacy/transport_test.h +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2023 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef GRPC_TEST_CORE_TRANSPORT_CHAOTIC_GOOD_LEGACY_TRANSPORT_TEST_H -#define GRPC_TEST_CORE_TRANSPORT_CHAOTIC_GOOD_LEGACY_TRANSPORT_TEST_H - -#include "gmock/gmock.h" -#include "gtest/gtest.h" -#include "src/core/ext/transport/chaotic_good_legacy/frame.h" -#include "src/core/lib/event_engine/event_engine_context.h" -#include "src/core/lib/iomgr/timer_manager.h" -#include "src/core/lib/resource_quota/memory_quota.h" -#include "src/core/lib/resource_quota/resource_quota.h" -#include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h" -#include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h" - -namespace grpc_core { -namespace chaotic_good_legacy { -namespace testing { - -class TransportTest : public ::testing::Test { - protected: - const std::shared_ptr& - event_engine() { - return event_engine_; - } - - RefCountedPtr MakeArena() { - auto arena = call_arena_allocator_->MakeArena(); - arena->SetContext( - event_engine_.get()); - return arena; - } - - RefCountedPtr call_arena_allocator() { - return call_arena_allocator_; - } - - auto MakeCall(ClientMetadataHandle client_initial_metadata) { - return MakeCallPair(std::move(client_initial_metadata), MakeArena()); - } - - private: - std::shared_ptr - event_engine_{ - std::make_shared( - []() { - grpc_timer_manager_set_threading(false); - grpc_event_engine::experimental::FuzzingEventEngine::Options - options; - return options; - }(), - fuzzing_event_engine::Actions())}; - RefCountedPtr call_arena_allocator_{ - MakeRefCounted( - MakeResourceQuota("test-quota") - ->memory_quota() - ->CreateMemoryAllocator("test-allocator"), - 1024)}; -}; - -grpc_event_engine::experimental::Slice SerializedFrameHeader( - FrameType type, uint8_t flags, uint32_t stream_id, uint32_t header_length, - uint32_t message_length, uint32_t message_padding, uint32_t trailer_length); - -grpc_event_engine::experimental::Slice Zeros(uint32_t length); - -} // namespace testing -} // namespace chaotic_good_legacy -} // namespace grpc_core - -#endif // GRPC_TEST_CORE_TRANSPORT_CHAOTIC_GOOD_LEGACY_TRANSPORT_TEST_H From 65ae463b711bfcdf68c03d522fad5155036e3cf8 Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Thu, 16 Jan 2025 17:27:19 -0800 Subject: [PATCH 15/15] [interop] Add grpc-java 1.68.3 and 1.69.1 to client_matrix.py (#38486) Closes #38486 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/38486 from ejona86:bump-version 6a74651108074b4bd29e32fce86172030eb88822 PiperOrigin-RevId: 716437573 --- tools/interop_matrix/client_matrix.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/interop_matrix/client_matrix.py b/tools/interop_matrix/client_matrix.py index 94f8e8b62cc50..f4afd82e9b3fb 100644 --- a/tools/interop_matrix/client_matrix.py +++ b/tools/interop_matrix/client_matrix.py @@ -457,8 +457,8 @@ def __init__(self, patch=[], runtimes=[], testcases_file=None): ("v1.65.1", ReleaseInfo()), ("v1.66.0", ReleaseInfo()), ("v1.67.1", ReleaseInfo()), - ("v1.68.2", ReleaseInfo()), - ("v1.69.0", ReleaseInfo()), + ("v1.68.3", ReleaseInfo()), + ("v1.69.1", ReleaseInfo()), ] ), "python": OrderedDict(