grpc 1.73.0 → 1.74.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +38 -17
- data/include/grpc/create_channel_from_endpoint.h +54 -0
- data/include/grpc/credentials.h +11 -5
- data/include/grpc/event_engine/event_engine.h +74 -17
- data/include/grpc/grpc_posix.h +20 -1
- data/include/grpc/impl/channel_arg_names.h +2 -4
- data/include/grpc/module.modulemap +1 -0
- data/include/grpc/support/json.h +24 -0
- data/src/core/call/interception_chain.h +7 -11
- data/src/core/channelz/channel_trace.cc +213 -115
- data/src/core/channelz/channel_trace.h +380 -86
- data/src/core/channelz/channelz.cc +270 -181
- data/src/core/channelz/channelz.h +168 -55
- data/src/core/channelz/channelz_registry.cc +2 -1
- data/src/core/channelz/channelz_registry.h +24 -0
- data/src/core/channelz/property_list.cc +357 -0
- data/src/core/channelz/property_list.h +202 -0
- data/src/core/channelz/ztrace_collector.h +3 -2
- data/src/core/client_channel/backup_poller.cc +17 -2
- data/src/core/client_channel/client_channel.cc +17 -28
- data/src/core/client_channel/client_channel_filter.cc +19 -29
- data/src/core/client_channel/config_selector.h +8 -2
- data/src/core/client_channel/dynamic_filters.cc +5 -6
- data/src/core/client_channel/dynamic_filters.h +1 -1
- data/src/core/client_channel/global_subchannel_pool.cc +4 -1
- data/src/core/client_channel/retry_filter.cc +21 -27
- data/src/core/client_channel/retry_filter.h +10 -7
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +5 -5
- data/src/core/client_channel/retry_filter_legacy_call_data.h +1 -1
- data/src/core/client_channel/retry_interceptor.cc +30 -44
- data/src/core/client_channel/retry_interceptor.h +18 -17
- data/src/core/client_channel/retry_throttle.cc +46 -61
- data/src/core/client_channel/retry_throttle.h +17 -39
- data/src/core/client_channel/subchannel.cc +43 -19
- data/src/core/client_channel/subchannel.h +8 -0
- data/src/core/config/config_vars.cc +2 -0
- data/src/core/config/core_configuration.cc +1 -0
- data/src/core/config/core_configuration.h +11 -0
- data/src/core/credentials/call/call_creds_registry.h +125 -0
- data/src/core/credentials/call/call_creds_registry_init.cc +91 -0
- data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +6 -48
- data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +86 -0
- data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.h +74 -0
- data/src/core/credentials/call/jwt_util.cc +70 -0
- data/src/core/credentials/call/jwt_util.h +32 -0
- data/src/core/credentials/transport/channel_creds_registry_init.cc +1 -1
- data/src/core/credentials/transport/google_default/google_default_credentials.cc +72 -4
- data/src/core/credentials/transport/ssl/ssl_credentials.cc +0 -1
- data/src/core/credentials/transport/tls/load_system_roots_supported.cc +1 -0
- data/src/core/credentials/transport/xds/xds_credentials.cc +0 -3
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +8 -8
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +16 -16
- data/src/core/ext/filters/http/client_authority_filter.cc +2 -4
- data/src/core/ext/filters/http/message_compress/compression_filter.h +25 -22
- data/src/core/ext/filters/http/server/http_server_filter.h +12 -11
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +120 -35
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +162 -115
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +0 -3
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +1239 -3514
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +1008 -1486
- data/src/core/ext/transport/chttp2/transport/flow_control.h +22 -17
- data/src/core/ext/transport/chttp2/transport/frame.cc +10 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +2 -2
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +299 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +11 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +12 -1
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +1017 -0
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +593 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +19 -22
- data/{third_party/abseil-cpp/absl/strings/cord_buffer.cc → src/core/ext/transport/chttp2/transport/http2_stats_collector.cc} +14 -14
- data/src/core/ext/transport/chttp2/transport/http2_stats_collector.h +33 -0
- data/src/core/ext/transport/chttp2/transport/http2_status.h +6 -1
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +43 -0
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +65 -0
- data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +0 -29
- data/src/core/ext/transport/chttp2/transport/internal.h +18 -8
- data/src/core/ext/transport/chttp2/transport/keepalive.cc +105 -0
- data/src/core/ext/transport/chttp2/transport/keepalive.h +138 -0
- data/src/core/ext/transport/chttp2/transport/message_assembler.h +185 -0
- data/src/core/ext/transport/chttp2/transport/parsing.cc +2 -4
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +19 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +151 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.h +180 -0
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +5 -9
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +11 -0
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +39 -1
- data/src/core/ext/transport/chttp2/transport/transport_common.cc +19 -0
- data/src/core/ext/transport/chttp2/transport/transport_common.h +27 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +37 -11
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +571 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +120 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +36 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +1272 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +312 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +50 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +984 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +226 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +44 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c +175 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.h +82 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.c +135 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.h +67 -0
- data/src/core/filter/auth/auth_filters.h +0 -25
- data/src/core/filter/auth/client_auth_filter.cc +0 -118
- data/src/core/filter/filter_args.h +9 -23
- data/src/core/handshaker/handshaker.cc +23 -14
- data/src/core/handshaker/handshaker.h +3 -0
- data/src/core/handshaker/http_connect/http_connect_handshaker.cc +3 -1
- data/src/core/handshaker/security/legacy_secure_endpoint.cc +6 -5
- data/src/core/handshaker/security/secure_endpoint.cc +70 -25
- data/src/core/handshaker/security/security_handshaker.cc +4 -1
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +7 -1
- data/src/core/lib/channel/channel_args.cc +15 -0
- data/src/core/lib/channel/channel_args.h +3 -0
- data/src/core/lib/channel/channel_stack.cc +22 -23
- data/src/core/lib/channel/channel_stack.h +9 -7
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
- data/src/core/lib/channel/channel_stack_builder_impl.h +2 -7
- data/src/core/lib/channel/promise_based_filter.h +5 -5
- data/src/core/lib/debug/trace_impl.h +0 -1
- data/src/core/lib/event_engine/ares_resolver.cc +165 -46
- data/src/core/lib/event_engine/ares_resolver.h +48 -2
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +3 -1
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +1 -4
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +2 -6
- data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.cc +40 -0
- data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.h +60 -0
- data/src/core/lib/event_engine/event_engine.cc +7 -0
- data/src/core/lib/event_engine/extensions/channelz.h +10 -6
- data/src/core/lib/event_engine/grpc_polled_fd.h +5 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +130 -162
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +11 -15
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +75 -117
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +7 -9
- data/src/core/lib/event_engine/posix_engine/event_poller.h +18 -15
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +0 -18
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +124 -0
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.h +243 -0
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +29 -19
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +6 -2
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +6 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +145 -92
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +9 -19
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +333 -116
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +61 -18
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +45 -37
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +6 -4
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +32 -142
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +6 -5
- data/src/core/lib/event_engine/posix_engine/posix_interface.h +211 -0
- data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +1083 -0
- data/src/core/lib/event_engine/posix_engine/posix_interface_windows.cc +281 -0
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.cc +154 -0
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +174 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +3 -719
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +10 -170
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +33 -22
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +13 -11
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +117 -151
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +26 -94
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +26 -25
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +6 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +36 -62
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +6 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +7 -6
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +12 -6
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +3 -1
- data/src/core/lib/event_engine/shim.cc +9 -0
- data/src/core/lib/event_engine/shim.h +3 -0
- data/src/core/lib/event_engine/thread_pool/thread_pool.h +7 -3
- data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +0 -17
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +4 -2
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -2
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +4 -0
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +4 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.h +2 -6
- data/src/core/lib/event_engine/windows/windows_engine.cc +0 -1
- data/src/core/lib/event_engine/windows/windows_engine.h +1 -3
- data/src/core/lib/event_engine/windows/windows_listener.cc +14 -2
- data/src/core/lib/experiments/experiments.cc +45 -93
- data/src/core/lib/experiments/experiments.h +21 -51
- data/src/core/lib/iomgr/endpoint.cc +4 -3
- data/src/core/lib/iomgr/endpoint.h +7 -4
- data/src/core/lib/iomgr/endpoint_cfstream.cc +3 -2
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +7 -2
- data/src/core/lib/iomgr/ev_poll_posix.cc +7 -2
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +4 -6
- data/src/core/lib/iomgr/tcp_posix.cc +12 -6
- data/src/core/lib/iomgr/tcp_windows.cc +3 -2
- data/src/core/lib/promise/activity.h +1 -0
- data/src/core/lib/promise/arena_promise.h +23 -7
- data/src/core/lib/promise/detail/promise_factory.h +10 -0
- data/src/core/lib/promise/detail/promise_like.h +118 -11
- data/src/core/lib/promise/detail/promise_variant.h +50 -0
- data/src/core/lib/promise/detail/seq_state.h +687 -548
- data/src/core/lib/promise/if.h +20 -0
- data/src/core/lib/promise/inter_activity_latch.h +147 -0
- data/src/core/lib/promise/inter_activity_mutex.h +547 -0
- data/src/core/lib/promise/loop.h +65 -3
- data/src/core/lib/promise/map.h +24 -0
- data/src/core/lib/promise/match_promise.h +103 -0
- data/src/core/lib/promise/mpsc.cc +425 -0
- data/src/core/lib/promise/mpsc.h +490 -0
- data/src/core/lib/promise/party.cc +50 -1
- data/src/core/lib/promise/party.h +66 -1
- data/src/core/lib/promise/race.h +31 -0
- data/src/core/lib/promise/seq.h +4 -1
- data/src/core/lib/promise/status_flag.h +7 -0
- data/src/core/lib/promise/try_seq.h +4 -1
- data/src/core/lib/promise/wait_set.cc +28 -0
- data/src/core/lib/promise/wait_set.h +86 -0
- data/src/core/lib/resource_quota/arena.h +19 -0
- data/src/core/lib/slice/slice.h +5 -0
- data/src/core/lib/surface/channel_create.cc +88 -13
- data/src/core/lib/surface/channel_create.h +4 -0
- data/src/core/lib/surface/channel_init.cc +164 -47
- data/src/core/lib/surface/channel_init.h +64 -1
- data/src/core/lib/surface/filter_stack_call.cc +18 -9
- data/src/core/lib/surface/init.cc +6 -15
- data/src/core/lib/surface/legacy_channel.cc +3 -5
- data/src/core/lib/surface/legacy_channel.h +3 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/promise_endpoint.cc +110 -0
- data/src/core/lib/transport/promise_endpoint.h +307 -0
- data/src/core/load_balancing/child_policy_handler.cc +2 -4
- data/src/core/load_balancing/delegating_helper.h +2 -3
- data/src/core/load_balancing/health_check_client.cc +1 -5
- data/src/core/load_balancing/lb_policy.h +1 -3
- data/src/core/load_balancing/oob_backend_metric.cc +1 -5
- data/src/core/load_balancing/pick_first/pick_first.cc +3 -0
- data/src/core/load_balancing/xds/cds.cc +10 -1
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
- data/src/core/resolver/xds/xds_config.cc +6 -3
- data/src/core/resolver/xds/xds_config.h +9 -4
- data/src/core/resolver/xds/xds_dependency_manager.cc +21 -6
- data/src/core/resolver/xds/xds_dependency_manager.h +2 -1
- data/src/core/resolver/xds/xds_resolver.cc +31 -11
- data/src/core/server/server.cc +83 -12
- data/src/core/server/server.h +21 -2
- data/src/core/server/xds_server_config_fetcher.cc +63 -25
- data/src/core/service_config/service_config.h +1 -1
- data/src/core/service_config/service_config_impl.h +1 -1
- data/src/core/telemetry/context_list_entry.cc +38 -0
- data/src/core/telemetry/context_list_entry.h +42 -12
- data/src/core/telemetry/stats_data.cc +233 -207
- data/src/core/telemetry/stats_data.h +250 -153
- data/src/core/telemetry/tcp_tracer.h +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +11 -3
- data/src/core/tsi/fake_transport_security.cc +17 -0
- data/src/core/tsi/ssl_transport_security.cc +2 -0
- data/src/core/tsi/transport_security_grpc.cc +8 -0
- data/src/core/tsi/transport_security_grpc.h +15 -0
- data/src/core/util/backoff.cc +1 -5
- data/src/core/util/backoff.h +1 -0
- data/src/core/util/down_cast.h +1 -1
- data/src/core/util/function_signature.h +15 -1
- data/src/core/util/http_client/httpcli.cc +12 -5
- data/src/core/util/http_client/httpcli.h +4 -1
- data/src/core/util/latent_see.h +8 -5
- data/src/core/util/log.cc +4 -0
- data/src/core/util/memory_usage.h +268 -0
- data/src/core/util/per_cpu.cc +2 -0
- data/src/core/util/per_cpu.h +7 -0
- data/src/core/util/shared_bit_gen.h +20 -0
- data/src/core/util/single_set_ptr.h +2 -2
- data/src/core/util/upb_utils.h +42 -0
- data/src/core/util/uri.cc +3 -2
- data/src/core/util/useful.h +53 -2
- data/src/core/util/wait_for_single_owner.cc +31 -0
- data/src/core/util/wait_for_single_owner.h +24 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +2 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +5 -0
- data/src/core/xds/grpc/xds_client_grpc.cc +6 -2
- data/src/core/xds/grpc/xds_common_types_parser.cc +138 -50
- data/src/core/xds/grpc/xds_common_types_parser.h +12 -0
- data/src/core/xds/grpc/xds_http_filter.h +7 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +22 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +3 -0
- data/src/core/xds/grpc/xds_route_config_parser.cc +15 -38
- data/src/core/xds/grpc/xds_server_grpc.cc +63 -13
- data/src/core/xds/grpc/xds_server_grpc.h +10 -2
- data/src/core/xds/grpc/xds_server_grpc_interface.h +4 -0
- data/src/core/xds/grpc/xds_transport_grpc.cc +18 -0
- data/src/core/xds/xds_client/xds_bootstrap.h +2 -0
- data/src/core/xds/xds_client/xds_client.cc +26 -5
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_call.c +1 -8
- data/src/ruby/ext/grpc/rb_channel.c +72 -568
- data/src/ruby/ext/grpc/rb_channel.h +0 -3
- data/src/ruby/ext/grpc/rb_completion_queue.c +26 -14
- data/src/ruby/ext/grpc/rb_completion_queue.h +1 -7
- data/src/ruby/ext/grpc/rb_grpc.c +9 -5
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/ext/grpc/rb_loader.c +0 -4
- data/src/ruby/ext/grpc/rb_server.c +31 -50
- data/src/ruby/lib/grpc/generic/client_stub.rb +4 -4
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/core_spec.rb +22 -0
- data/src/ruby/spec/generic/active_call_spec.rb +1 -1
- data/third_party/abseil-cpp/absl/algorithm/container.h +2 -19
- data/third_party/abseil-cpp/absl/base/attributes.h +76 -7
- data/third_party/abseil-cpp/absl/base/call_once.h +11 -12
- data/third_party/abseil-cpp/absl/base/config.h +20 -129
- data/third_party/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
- data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
- data/third_party/abseil-cpp/absl/base/internal/endian.h +34 -38
- data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -5
- data/third_party/abseil-cpp/absl/base/internal/{nullability_impl.h → nullability_deprecated.h} +45 -8
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +0 -9
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -13
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +8 -3
- data/third_party/abseil-cpp/absl/base/no_destructor.h +11 -32
- data/third_party/abseil-cpp/absl/base/nullability.h +84 -72
- data/third_party/abseil-cpp/absl/base/options.h +3 -80
- data/third_party/abseil-cpp/absl/base/policy_checks.h +7 -7
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +1 -3
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
- data/third_party/abseil-cpp/absl/container/btree_map.h +4 -2
- data/third_party/abseil-cpp/absl/container/btree_set.h +4 -2
- data/third_party/abseil-cpp/absl/container/fixed_array.h +7 -14
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +5 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +6 -1
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +8 -5
- data/third_party/abseil-cpp/absl/container/internal/btree.h +132 -29
- data/third_party/abseil-cpp/absl/container/internal/btree_container.h +175 -71
- data/third_party/abseil-cpp/absl/container/internal/common.h +43 -0
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -2
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +9 -10
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +1 -8
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +0 -4
- data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +527 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +20 -4
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +31 -12
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +2 -7
- data/third_party/abseil-cpp/absl/container/internal/layout.h +26 -42
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +1354 -183
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +881 -1424
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +80 -0
- data/third_party/abseil-cpp/absl/crc/crc32c.cc +0 -4
- data/third_party/abseil-cpp/absl/crc/crc32c.h +7 -5
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +45 -74
- data/third_party/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +8 -35
- data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -37
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +13 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +19 -9
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +144 -27
- data/third_party/abseil-cpp/absl/debugging/stacktrace.h +73 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +19 -9
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +2 -2
- data/third_party/abseil-cpp/absl/flags/flag.h +4 -3
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +2 -1
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +7 -6
- data/third_party/abseil-cpp/absl/flags/internal/registry.h +4 -3
- data/third_party/abseil-cpp/absl/flags/reflection.cc +2 -3
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +8 -10
- data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -9
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +110 -226
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
- data/third_party/abseil-cpp/absl/hash/hash.h +18 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +1 -5
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -61
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +25 -68
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +2 -6
- data/third_party/abseil-cpp/absl/hash/internal/weakly_mixed_integer.h +38 -0
- data/third_party/abseil-cpp/absl/log/check.h +2 -1
- data/third_party/abseil-cpp/absl/log/globals.h +4 -5
- data/third_party/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
- data/third_party/abseil-cpp/absl/log/internal/check_op.cc +22 -22
- data/third_party/abseil-cpp/absl/log/internal/check_op.h +65 -62
- data/third_party/abseil-cpp/absl/log/internal/conditions.cc +5 -3
- data/third_party/abseil-cpp/absl/log/internal/conditions.h +7 -2
- data/third_party/abseil-cpp/absl/log/internal/log_message.cc +85 -43
- data/third_party/abseil-cpp/absl/log/internal/log_message.h +84 -59
- data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -0
- data/third_party/abseil-cpp/absl/log/internal/proto.cc +3 -2
- data/third_party/abseil-cpp/absl/log/internal/proto.h +3 -3
- data/third_party/abseil-cpp/absl/log/internal/strip.h +4 -12
- data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
- data/third_party/abseil-cpp/absl/log/internal/voidify.h +10 -4
- data/third_party/abseil-cpp/absl/log/log.h +48 -35
- data/third_party/abseil-cpp/absl/log/log_sink_registry.h +2 -2
- data/third_party/abseil-cpp/absl/meta/type_traits.h +46 -175
- data/third_party/abseil-cpp/absl/numeric/bits.h +68 -2
- data/third_party/abseil-cpp/absl/numeric/int128.cc +0 -52
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +7 -3
- data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
- data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +10 -11
- data/third_party/abseil-cpp/absl/random/distributions.h +6 -8
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +5 -6
- data/third_party/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +22 -90
- data/third_party/abseil-cpp/absl/random/internal/entropy_pool.h +35 -0
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +1 -1
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +5 -5
- data/third_party/abseil-cpp/absl/random/random.h +88 -53
- data/third_party/abseil-cpp/absl/random/seed_sequences.cc +6 -2
- data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +3 -4
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +3 -4
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -3
- data/third_party/abseil-cpp/absl/status/status.cc +4 -8
- data/third_party/abseil-cpp/absl/status/status.h +8 -8
- data/third_party/abseil-cpp/absl/status/status_payload_printer.h +2 -2
- data/third_party/abseil-cpp/absl/status/statusor.cc +2 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +6 -6
- data/third_party/abseil-cpp/absl/strings/ascii.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/ascii.h +18 -18
- data/third_party/abseil-cpp/absl/strings/charconv.cc +21 -22
- data/third_party/abseil-cpp/absl/strings/charconv.h +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +54 -58
- data/third_party/abseil-cpp/absl/strings/cord.h +94 -83
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +3 -3
- data/third_party/abseil-cpp/absl/strings/escaping.cc +130 -149
- data/third_party/abseil-cpp/absl/strings/escaping.h +9 -10
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +6 -8
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +0 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
- data/third_party/abseil-cpp/absl/strings/internal/utf8.h +15 -1
- data/third_party/abseil-cpp/absl/strings/numbers.cc +53 -32
- data/third_party/abseil-cpp/absl/strings/numbers.h +87 -58
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +6 -7
- data/third_party/abseil-cpp/absl/strings/str_cat.h +32 -32
- data/third_party/abseil-cpp/absl/strings/str_format.h +18 -18
- data/third_party/abseil-cpp/absl/strings/str_replace.cc +3 -3
- data/third_party/abseil-cpp/absl/strings/str_replace.h +6 -6
- data/third_party/abseil-cpp/absl/strings/string_view.cc +4 -9
- data/third_party/abseil-cpp/absl/strings/string_view.h +27 -32
- data/third_party/abseil-cpp/absl/strings/strip.h +4 -4
- data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -4
- data/third_party/abseil-cpp/absl/strings/substitute.h +66 -64
- data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
- data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +1 -1
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +97 -69
- data/third_party/abseil-cpp/absl/synchronization/notification.h +1 -1
- data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +12 -7
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +90 -111
- data/third_party/abseil-cpp/absl/time/time.h +20 -15
- data/third_party/abseil-cpp/absl/types/optional.h +7 -747
- data/third_party/abseil-cpp/absl/types/span.h +13 -11
- data/third_party/abseil-cpp/absl/types/variant.h +5 -784
- data/third_party/abseil-cpp/absl/utility/utility.h +10 -185
- metadata +72 -20
- data/src/core/lib/event_engine/forkable.cc +0 -105
- data/src/core/lib/event_engine/forkable.h +0 -67
- data/src/core/lib/iomgr/python_util.h +0 -46
- data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +0 -241
- data/third_party/abseil-cpp/absl/log/log_entry.cc +0 -41
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
- data/third_party/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
- data/third_party/abseil-cpp/absl/types/bad_optional_access.h +0 -78
- data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +0 -82
- data/third_party/abseil-cpp/absl/types/internal/optional.h +0 -352
- data/third_party/abseil-cpp/absl/types/internal/variant.h +0 -1622
@@ -26,9 +26,6 @@ namespace {
|
|
26
26
|
const char* const description_call_tracer_in_transport =
|
27
27
|
"Transport directly passes byte counts to CallTracer.";
|
28
28
|
const char* const additional_constraints_call_tracer_in_transport = "{}";
|
29
|
-
const char* const description_callv3_client_auth_filter =
|
30
|
-
"Use the CallV3 client auth filter.";
|
31
|
-
const char* const additional_constraints_callv3_client_auth_filter = "{}";
|
32
29
|
const char* const description_chaotic_good_framing_layer =
|
33
30
|
"Enable the chaotic good framing layer.";
|
34
31
|
const char* const additional_constraints_chaotic_good_framing_layer = "{}";
|
@@ -90,17 +87,15 @@ const char* const additional_constraints_local_connector_secure = "{}";
|
|
90
87
|
const char* const description_max_inflight_pings_strict_limit =
|
91
88
|
"If set, the max inflight pings limit is strictly enforced.";
|
92
89
|
const char* const additional_constraints_max_inflight_pings_strict_limit = "{}";
|
93
|
-
const char* const description_max_pings_wo_data_throttle =
|
94
|
-
"Experiment to throttle pings to a period of 1 min when "
|
95
|
-
"GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA limit has reached (instead of "
|
96
|
-
"completely blocking).";
|
97
|
-
const char* const additional_constraints_max_pings_wo_data_throttle = "{}";
|
98
90
|
const char* const description_monitoring_experiment =
|
99
91
|
"Placeholder experiment to prove/disprove our monitoring is working";
|
100
92
|
const char* const additional_constraints_monitoring_experiment = "{}";
|
101
93
|
const char* const description_multiping =
|
102
94
|
"Allow more than one ping to be in flight at a time by default.";
|
103
95
|
const char* const additional_constraints_multiping = "{}";
|
96
|
+
const char* const description_pick_first_ignore_empty_updates =
|
97
|
+
"Ignore empty resolutions in pick_first";
|
98
|
+
const char* const additional_constraints_pick_first_ignore_empty_updates = "{}";
|
104
99
|
const char* const description_pollset_alternative =
|
105
100
|
"Code outside iomgr that relies directly on pollsets will use non-pollset "
|
106
101
|
"alternatives when enabled.";
|
@@ -108,10 +103,10 @@ const char* const additional_constraints_pollset_alternative = "{}";
|
|
108
103
|
const uint8_t required_experiments_pollset_alternative[] = {
|
109
104
|
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
|
110
105
|
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
|
111
|
-
const char* const
|
112
|
-
"
|
113
|
-
"
|
114
|
-
const char* const
|
106
|
+
const char* const description_prioritize_finished_requests =
|
107
|
+
"Prioritize flushing out finished requests over other in-flight requests "
|
108
|
+
"during transport writes.";
|
109
|
+
const char* const additional_constraints_prioritize_finished_requests = "{}";
|
115
110
|
const char* const description_promise_based_http2_client_transport =
|
116
111
|
"Use promises for the http2 client transport. We have kept client and "
|
117
112
|
"server transport experiments separate to help with smoother roll outs and "
|
@@ -129,14 +124,6 @@ const char* const description_promise_based_inproc_transport =
|
|
129
124
|
const char* const additional_constraints_promise_based_inproc_transport = "{}";
|
130
125
|
const char* const description_retry_in_callv3 = "Support retries with call-v3";
|
131
126
|
const char* const additional_constraints_retry_in_callv3 = "{}";
|
132
|
-
const char* const description_rq_fast_reject =
|
133
|
-
"Resource quota rejects requests immediately (before allocating the "
|
134
|
-
"request structure) under very high memory pressure.";
|
135
|
-
const char* const additional_constraints_rq_fast_reject = "{}";
|
136
|
-
const char* const description_rst_stream_fix =
|
137
|
-
"Fix for RST_STREAM - do not send for idle streams "
|
138
|
-
"(https://github.com/grpc/grpc/issues/38758)";
|
139
|
-
const char* const additional_constraints_rst_stream_fix = "{}";
|
140
127
|
const char* const description_schedule_cancellation_over_write =
|
141
128
|
"Allow cancellation op to be scheduled over a write";
|
142
129
|
const char* const additional_constraints_schedule_cancellation_over_write =
|
@@ -192,8 +179,6 @@ namespace grpc_core {
|
|
192
179
|
const ExperimentMetadata g_experiment_metadata[] = {
|
193
180
|
{"call_tracer_in_transport", description_call_tracer_in_transport,
|
194
181
|
additional_constraints_call_tracer_in_transport, nullptr, 0, true, false},
|
195
|
-
{"callv3_client_auth_filter", description_callv3_client_auth_filter,
|
196
|
-
additional_constraints_callv3_client_auth_filter, nullptr, 0, false, true},
|
197
182
|
{"chaotic_good_framing_layer", description_chaotic_good_framing_layer,
|
198
183
|
additional_constraints_chaotic_good_framing_layer, nullptr, 0, true,
|
199
184
|
false},
|
@@ -208,7 +193,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
208
193
|
{"event_engine_dns_non_client_channel",
|
209
194
|
description_event_engine_dns_non_client_channel,
|
210
195
|
additional_constraints_event_engine_dns_non_client_channel, nullptr, 0,
|
211
|
-
|
196
|
+
true, false},
|
212
197
|
{"event_engine_fork", description_event_engine_fork,
|
213
198
|
additional_constraints_event_engine_fork, nullptr, 0, false, false},
|
214
199
|
{"event_engine_listener", description_event_engine_listener,
|
@@ -234,17 +219,20 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
234
219
|
description_max_inflight_pings_strict_limit,
|
235
220
|
additional_constraints_max_inflight_pings_strict_limit, nullptr, 0, true,
|
236
221
|
true},
|
237
|
-
{"max_pings_wo_data_throttle", description_max_pings_wo_data_throttle,
|
238
|
-
additional_constraints_max_pings_wo_data_throttle, nullptr, 0, true, true},
|
239
222
|
{"monitoring_experiment", description_monitoring_experiment,
|
240
223
|
additional_constraints_monitoring_experiment, nullptr, 0, true, true},
|
241
224
|
{"multiping", description_multiping, additional_constraints_multiping,
|
242
225
|
nullptr, 0, false, true},
|
226
|
+
{"pick_first_ignore_empty_updates",
|
227
|
+
description_pick_first_ignore_empty_updates,
|
228
|
+
additional_constraints_pick_first_ignore_empty_updates, nullptr, 0, false,
|
229
|
+
true},
|
243
230
|
{"pollset_alternative", description_pollset_alternative,
|
244
231
|
additional_constraints_pollset_alternative,
|
245
232
|
required_experiments_pollset_alternative, 2, false, false},
|
246
|
-
{"
|
247
|
-
|
233
|
+
{"prioritize_finished_requests", description_prioritize_finished_requests,
|
234
|
+
additional_constraints_prioritize_finished_requests, nullptr, 0, false,
|
235
|
+
true},
|
248
236
|
{"promise_based_http2_client_transport",
|
249
237
|
description_promise_based_http2_client_transport,
|
250
238
|
additional_constraints_promise_based_http2_client_transport, nullptr, 0,
|
@@ -259,10 +247,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
259
247
|
false},
|
260
248
|
{"retry_in_callv3", description_retry_in_callv3,
|
261
249
|
additional_constraints_retry_in_callv3, nullptr, 0, false, true},
|
262
|
-
{"rq_fast_reject", description_rq_fast_reject,
|
263
|
-
additional_constraints_rq_fast_reject, nullptr, 0, false, true},
|
264
|
-
{"rst_stream_fix", description_rst_stream_fix,
|
265
|
-
additional_constraints_rst_stream_fix, nullptr, 0, true, true},
|
266
250
|
{"schedule_cancellation_over_write",
|
267
251
|
description_schedule_cancellation_over_write,
|
268
252
|
additional_constraints_schedule_cancellation_over_write, nullptr, 0, false,
|
@@ -307,9 +291,6 @@ namespace {
|
|
307
291
|
const char* const description_call_tracer_in_transport =
|
308
292
|
"Transport directly passes byte counts to CallTracer.";
|
309
293
|
const char* const additional_constraints_call_tracer_in_transport = "{}";
|
310
|
-
const char* const description_callv3_client_auth_filter =
|
311
|
-
"Use the CallV3 client auth filter.";
|
312
|
-
const char* const additional_constraints_callv3_client_auth_filter = "{}";
|
313
294
|
const char* const description_chaotic_good_framing_layer =
|
314
295
|
"Enable the chaotic good framing layer.";
|
315
296
|
const char* const additional_constraints_chaotic_good_framing_layer = "{}";
|
@@ -371,17 +352,15 @@ const char* const additional_constraints_local_connector_secure = "{}";
|
|
371
352
|
const char* const description_max_inflight_pings_strict_limit =
|
372
353
|
"If set, the max inflight pings limit is strictly enforced.";
|
373
354
|
const char* const additional_constraints_max_inflight_pings_strict_limit = "{}";
|
374
|
-
const char* const description_max_pings_wo_data_throttle =
|
375
|
-
"Experiment to throttle pings to a period of 1 min when "
|
376
|
-
"GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA limit has reached (instead of "
|
377
|
-
"completely blocking).";
|
378
|
-
const char* const additional_constraints_max_pings_wo_data_throttle = "{}";
|
379
355
|
const char* const description_monitoring_experiment =
|
380
356
|
"Placeholder experiment to prove/disprove our monitoring is working";
|
381
357
|
const char* const additional_constraints_monitoring_experiment = "{}";
|
382
358
|
const char* const description_multiping =
|
383
359
|
"Allow more than one ping to be in flight at a time by default.";
|
384
360
|
const char* const additional_constraints_multiping = "{}";
|
361
|
+
const char* const description_pick_first_ignore_empty_updates =
|
362
|
+
"Ignore empty resolutions in pick_first";
|
363
|
+
const char* const additional_constraints_pick_first_ignore_empty_updates = "{}";
|
385
364
|
const char* const description_pollset_alternative =
|
386
365
|
"Code outside iomgr that relies directly on pollsets will use non-pollset "
|
387
366
|
"alternatives when enabled.";
|
@@ -389,10 +368,10 @@ const char* const additional_constraints_pollset_alternative = "{}";
|
|
389
368
|
const uint8_t required_experiments_pollset_alternative[] = {
|
390
369
|
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
|
391
370
|
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
|
392
|
-
const char* const
|
393
|
-
"
|
394
|
-
"
|
395
|
-
const char* const
|
371
|
+
const char* const description_prioritize_finished_requests =
|
372
|
+
"Prioritize flushing out finished requests over other in-flight requests "
|
373
|
+
"during transport writes.";
|
374
|
+
const char* const additional_constraints_prioritize_finished_requests = "{}";
|
396
375
|
const char* const description_promise_based_http2_client_transport =
|
397
376
|
"Use promises for the http2 client transport. We have kept client and "
|
398
377
|
"server transport experiments separate to help with smoother roll outs and "
|
@@ -410,14 +389,6 @@ const char* const description_promise_based_inproc_transport =
|
|
410
389
|
const char* const additional_constraints_promise_based_inproc_transport = "{}";
|
411
390
|
const char* const description_retry_in_callv3 = "Support retries with call-v3";
|
412
391
|
const char* const additional_constraints_retry_in_callv3 = "{}";
|
413
|
-
const char* const description_rq_fast_reject =
|
414
|
-
"Resource quota rejects requests immediately (before allocating the "
|
415
|
-
"request structure) under very high memory pressure.";
|
416
|
-
const char* const additional_constraints_rq_fast_reject = "{}";
|
417
|
-
const char* const description_rst_stream_fix =
|
418
|
-
"Fix for RST_STREAM - do not send for idle streams "
|
419
|
-
"(https://github.com/grpc/grpc/issues/38758)";
|
420
|
-
const char* const additional_constraints_rst_stream_fix = "{}";
|
421
392
|
const char* const description_schedule_cancellation_over_write =
|
422
393
|
"Allow cancellation op to be scheduled over a write";
|
423
394
|
const char* const additional_constraints_schedule_cancellation_over_write =
|
@@ -473,8 +444,6 @@ namespace grpc_core {
|
|
473
444
|
const ExperimentMetadata g_experiment_metadata[] = {
|
474
445
|
{"call_tracer_in_transport", description_call_tracer_in_transport,
|
475
446
|
additional_constraints_call_tracer_in_transport, nullptr, 0, true, false},
|
476
|
-
{"callv3_client_auth_filter", description_callv3_client_auth_filter,
|
477
|
-
additional_constraints_callv3_client_auth_filter, nullptr, 0, false, true},
|
478
447
|
{"chaotic_good_framing_layer", description_chaotic_good_framing_layer,
|
479
448
|
additional_constraints_chaotic_good_framing_layer, nullptr, 0, true,
|
480
449
|
false},
|
@@ -489,7 +458,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
489
458
|
{"event_engine_dns_non_client_channel",
|
490
459
|
description_event_engine_dns_non_client_channel,
|
491
460
|
additional_constraints_event_engine_dns_non_client_channel, nullptr, 0,
|
492
|
-
|
461
|
+
true, false},
|
493
462
|
{"event_engine_fork", description_event_engine_fork,
|
494
463
|
additional_constraints_event_engine_fork, nullptr, 0, false, false},
|
495
464
|
{"event_engine_listener", description_event_engine_listener,
|
@@ -515,17 +484,20 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
515
484
|
description_max_inflight_pings_strict_limit,
|
516
485
|
additional_constraints_max_inflight_pings_strict_limit, nullptr, 0, true,
|
517
486
|
true},
|
518
|
-
{"max_pings_wo_data_throttle", description_max_pings_wo_data_throttle,
|
519
|
-
additional_constraints_max_pings_wo_data_throttle, nullptr, 0, true, true},
|
520
487
|
{"monitoring_experiment", description_monitoring_experiment,
|
521
488
|
additional_constraints_monitoring_experiment, nullptr, 0, true, true},
|
522
489
|
{"multiping", description_multiping, additional_constraints_multiping,
|
523
490
|
nullptr, 0, false, true},
|
491
|
+
{"pick_first_ignore_empty_updates",
|
492
|
+
description_pick_first_ignore_empty_updates,
|
493
|
+
additional_constraints_pick_first_ignore_empty_updates, nullptr, 0, false,
|
494
|
+
true},
|
524
495
|
{"pollset_alternative", description_pollset_alternative,
|
525
496
|
additional_constraints_pollset_alternative,
|
526
497
|
required_experiments_pollset_alternative, 2, false, false},
|
527
|
-
{"
|
528
|
-
|
498
|
+
{"prioritize_finished_requests", description_prioritize_finished_requests,
|
499
|
+
additional_constraints_prioritize_finished_requests, nullptr, 0, false,
|
500
|
+
true},
|
529
501
|
{"promise_based_http2_client_transport",
|
530
502
|
description_promise_based_http2_client_transport,
|
531
503
|
additional_constraints_promise_based_http2_client_transport, nullptr, 0,
|
@@ -540,10 +512,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
540
512
|
false},
|
541
513
|
{"retry_in_callv3", description_retry_in_callv3,
|
542
514
|
additional_constraints_retry_in_callv3, nullptr, 0, false, true},
|
543
|
-
{"rq_fast_reject", description_rq_fast_reject,
|
544
|
-
additional_constraints_rq_fast_reject, nullptr, 0, false, true},
|
545
|
-
{"rst_stream_fix", description_rst_stream_fix,
|
546
|
-
additional_constraints_rst_stream_fix, nullptr, 0, true, true},
|
547
515
|
{"schedule_cancellation_over_write",
|
548
516
|
description_schedule_cancellation_over_write,
|
549
517
|
additional_constraints_schedule_cancellation_over_write, nullptr, 0, false,
|
@@ -588,9 +556,6 @@ namespace {
|
|
588
556
|
const char* const description_call_tracer_in_transport =
|
589
557
|
"Transport directly passes byte counts to CallTracer.";
|
590
558
|
const char* const additional_constraints_call_tracer_in_transport = "{}";
|
591
|
-
const char* const description_callv3_client_auth_filter =
|
592
|
-
"Use the CallV3 client auth filter.";
|
593
|
-
const char* const additional_constraints_callv3_client_auth_filter = "{}";
|
594
559
|
const char* const description_chaotic_good_framing_layer =
|
595
560
|
"Enable the chaotic good framing layer.";
|
596
561
|
const char* const additional_constraints_chaotic_good_framing_layer = "{}";
|
@@ -652,17 +617,15 @@ const char* const additional_constraints_local_connector_secure = "{}";
|
|
652
617
|
const char* const description_max_inflight_pings_strict_limit =
|
653
618
|
"If set, the max inflight pings limit is strictly enforced.";
|
654
619
|
const char* const additional_constraints_max_inflight_pings_strict_limit = "{}";
|
655
|
-
const char* const description_max_pings_wo_data_throttle =
|
656
|
-
"Experiment to throttle pings to a period of 1 min when "
|
657
|
-
"GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA limit has reached (instead of "
|
658
|
-
"completely blocking).";
|
659
|
-
const char* const additional_constraints_max_pings_wo_data_throttle = "{}";
|
660
620
|
const char* const description_monitoring_experiment =
|
661
621
|
"Placeholder experiment to prove/disprove our monitoring is working";
|
662
622
|
const char* const additional_constraints_monitoring_experiment = "{}";
|
663
623
|
const char* const description_multiping =
|
664
624
|
"Allow more than one ping to be in flight at a time by default.";
|
665
625
|
const char* const additional_constraints_multiping = "{}";
|
626
|
+
const char* const description_pick_first_ignore_empty_updates =
|
627
|
+
"Ignore empty resolutions in pick_first";
|
628
|
+
const char* const additional_constraints_pick_first_ignore_empty_updates = "{}";
|
666
629
|
const char* const description_pollset_alternative =
|
667
630
|
"Code outside iomgr that relies directly on pollsets will use non-pollset "
|
668
631
|
"alternatives when enabled.";
|
@@ -670,10 +633,10 @@ const char* const additional_constraints_pollset_alternative = "{}";
|
|
670
633
|
const uint8_t required_experiments_pollset_alternative[] = {
|
671
634
|
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
|
672
635
|
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
|
673
|
-
const char* const
|
674
|
-
"
|
675
|
-
"
|
676
|
-
const char* const
|
636
|
+
const char* const description_prioritize_finished_requests =
|
637
|
+
"Prioritize flushing out finished requests over other in-flight requests "
|
638
|
+
"during transport writes.";
|
639
|
+
const char* const additional_constraints_prioritize_finished_requests = "{}";
|
677
640
|
const char* const description_promise_based_http2_client_transport =
|
678
641
|
"Use promises for the http2 client transport. We have kept client and "
|
679
642
|
"server transport experiments separate to help with smoother roll outs and "
|
@@ -691,14 +654,6 @@ const char* const description_promise_based_inproc_transport =
|
|
691
654
|
const char* const additional_constraints_promise_based_inproc_transport = "{}";
|
692
655
|
const char* const description_retry_in_callv3 = "Support retries with call-v3";
|
693
656
|
const char* const additional_constraints_retry_in_callv3 = "{}";
|
694
|
-
const char* const description_rq_fast_reject =
|
695
|
-
"Resource quota rejects requests immediately (before allocating the "
|
696
|
-
"request structure) under very high memory pressure.";
|
697
|
-
const char* const additional_constraints_rq_fast_reject = "{}";
|
698
|
-
const char* const description_rst_stream_fix =
|
699
|
-
"Fix for RST_STREAM - do not send for idle streams "
|
700
|
-
"(https://github.com/grpc/grpc/issues/38758)";
|
701
|
-
const char* const additional_constraints_rst_stream_fix = "{}";
|
702
657
|
const char* const description_schedule_cancellation_over_write =
|
703
658
|
"Allow cancellation op to be scheduled over a write";
|
704
659
|
const char* const additional_constraints_schedule_cancellation_over_write =
|
@@ -754,8 +709,6 @@ namespace grpc_core {
|
|
754
709
|
const ExperimentMetadata g_experiment_metadata[] = {
|
755
710
|
{"call_tracer_in_transport", description_call_tracer_in_transport,
|
756
711
|
additional_constraints_call_tracer_in_transport, nullptr, 0, true, false},
|
757
|
-
{"callv3_client_auth_filter", description_callv3_client_auth_filter,
|
758
|
-
additional_constraints_callv3_client_auth_filter, nullptr, 0, false, true},
|
759
712
|
{"chaotic_good_framing_layer", description_chaotic_good_framing_layer,
|
760
713
|
additional_constraints_chaotic_good_framing_layer, nullptr, 0, true,
|
761
714
|
false},
|
@@ -770,7 +723,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
770
723
|
{"event_engine_dns_non_client_channel",
|
771
724
|
description_event_engine_dns_non_client_channel,
|
772
725
|
additional_constraints_event_engine_dns_non_client_channel, nullptr, 0,
|
773
|
-
|
726
|
+
true, false},
|
774
727
|
{"event_engine_fork", description_event_engine_fork,
|
775
728
|
additional_constraints_event_engine_fork, nullptr, 0, false, false},
|
776
729
|
{"event_engine_listener", description_event_engine_listener,
|
@@ -796,17 +749,20 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
796
749
|
description_max_inflight_pings_strict_limit,
|
797
750
|
additional_constraints_max_inflight_pings_strict_limit, nullptr, 0, true,
|
798
751
|
true},
|
799
|
-
{"max_pings_wo_data_throttle", description_max_pings_wo_data_throttle,
|
800
|
-
additional_constraints_max_pings_wo_data_throttle, nullptr, 0, true, true},
|
801
752
|
{"monitoring_experiment", description_monitoring_experiment,
|
802
753
|
additional_constraints_monitoring_experiment, nullptr, 0, true, true},
|
803
754
|
{"multiping", description_multiping, additional_constraints_multiping,
|
804
755
|
nullptr, 0, false, true},
|
756
|
+
{"pick_first_ignore_empty_updates",
|
757
|
+
description_pick_first_ignore_empty_updates,
|
758
|
+
additional_constraints_pick_first_ignore_empty_updates, nullptr, 0, false,
|
759
|
+
true},
|
805
760
|
{"pollset_alternative", description_pollset_alternative,
|
806
761
|
additional_constraints_pollset_alternative,
|
807
762
|
required_experiments_pollset_alternative, 2, false, false},
|
808
|
-
{"
|
809
|
-
|
763
|
+
{"prioritize_finished_requests", description_prioritize_finished_requests,
|
764
|
+
additional_constraints_prioritize_finished_requests, nullptr, 0, false,
|
765
|
+
true},
|
810
766
|
{"promise_based_http2_client_transport",
|
811
767
|
description_promise_based_http2_client_transport,
|
812
768
|
additional_constraints_promise_based_http2_client_transport, nullptr, 0,
|
@@ -821,10 +777,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
821
777
|
false},
|
822
778
|
{"retry_in_callv3", description_retry_in_callv3,
|
823
779
|
additional_constraints_retry_in_callv3, nullptr, 0, false, true},
|
824
|
-
{"rq_fast_reject", description_rq_fast_reject,
|
825
|
-
additional_constraints_rq_fast_reject, nullptr, 0, false, true},
|
826
|
-
{"rst_stream_fix", description_rst_stream_fix,
|
827
|
-
additional_constraints_rst_stream_fix, nullptr, 0, true, true},
|
828
780
|
{"schedule_cancellation_over_write",
|
829
781
|
description_schedule_cancellation_over_write,
|
830
782
|
additional_constraints_schedule_cancellation_over_write, nullptr, 0, false,
|
@@ -59,7 +59,6 @@ namespace grpc_core {
|
|
59
59
|
#if defined(GRPC_CFSTREAM)
|
60
60
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CALL_TRACER_IN_TRANSPORT
|
61
61
|
inline bool IsCallTracerInTransportEnabled() { return true; }
|
62
|
-
inline bool IsCallv3ClientAuthFilterEnabled() { return false; }
|
63
62
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_FRAMING_LAYER
|
64
63
|
inline bool IsChaoticGoodFramingLayerEnabled() { return true; }
|
65
64
|
inline bool IsChttp2BoundWriteSizeEnabled() { return false; }
|
@@ -68,7 +67,8 @@ inline bool IsErrorFlattenEnabled() { return false; }
|
|
68
67
|
inline bool IsEventEngineClientEnabled() { return true; }
|
69
68
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_DNS
|
70
69
|
inline bool IsEventEngineDnsEnabled() { return true; }
|
71
|
-
|
70
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_DNS_NON_CLIENT_CHANNEL
|
71
|
+
inline bool IsEventEngineDnsNonClientChannelEnabled() { return true; }
|
72
72
|
inline bool IsEventEngineForkEnabled() { return false; }
|
73
73
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_LISTENER
|
74
74
|
inline bool IsEventEngineListenerEnabled() { return true; }
|
@@ -83,21 +83,16 @@ inline bool IsKeepAlivePingTimerBatchEnabled() { return false; }
|
|
83
83
|
inline bool IsLocalConnectorSecureEnabled() { return false; }
|
84
84
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_INFLIGHT_PINGS_STRICT_LIMIT
|
85
85
|
inline bool IsMaxInflightPingsStrictLimitEnabled() { return true; }
|
86
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_PINGS_WO_DATA_THROTTLE
|
87
|
-
inline bool IsMaxPingsWoDataThrottleEnabled() { return true; }
|
88
86
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
|
89
87
|
inline bool IsMonitoringExperimentEnabled() { return true; }
|
90
88
|
inline bool IsMultipingEnabled() { return false; }
|
89
|
+
inline bool IsPickFirstIgnoreEmptyUpdatesEnabled() { return false; }
|
91
90
|
inline bool IsPollsetAlternativeEnabled() { return false; }
|
92
|
-
|
93
|
-
inline bool IsPosixEeSkipGrpcInitEnabled() { return true; }
|
91
|
+
inline bool IsPrioritizeFinishedRequestsEnabled() { return false; }
|
94
92
|
inline bool IsPromiseBasedHttp2ClientTransportEnabled() { return false; }
|
95
93
|
inline bool IsPromiseBasedHttp2ServerTransportEnabled() { return false; }
|
96
94
|
inline bool IsPromiseBasedInprocTransportEnabled() { return false; }
|
97
95
|
inline bool IsRetryInCallv3Enabled() { return false; }
|
98
|
-
inline bool IsRqFastRejectEnabled() { return false; }
|
99
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_RST_STREAM_FIX
|
100
|
-
inline bool IsRstStreamFixEnabled() { return true; }
|
101
96
|
inline bool IsScheduleCancellationOverWriteEnabled() { return false; }
|
102
97
|
inline bool IsSecureEndpointOffloadLargeReadsEnabled() { return false; }
|
103
98
|
inline bool IsSecureEndpointOffloadLargeWritesEnabled() { return false; }
|
@@ -113,7 +108,6 @@ inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
|
|
113
108
|
#elif defined(GPR_WINDOWS)
|
114
109
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CALL_TRACER_IN_TRANSPORT
|
115
110
|
inline bool IsCallTracerInTransportEnabled() { return true; }
|
116
|
-
inline bool IsCallv3ClientAuthFilterEnabled() { return false; }
|
117
111
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_FRAMING_LAYER
|
118
112
|
inline bool IsChaoticGoodFramingLayerEnabled() { return true; }
|
119
113
|
inline bool IsChttp2BoundWriteSizeEnabled() { return false; }
|
@@ -122,7 +116,8 @@ inline bool IsErrorFlattenEnabled() { return false; }
|
|
122
116
|
inline bool IsEventEngineClientEnabled() { return true; }
|
123
117
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_DNS
|
124
118
|
inline bool IsEventEngineDnsEnabled() { return true; }
|
125
|
-
|
119
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_DNS_NON_CLIENT_CHANNEL
|
120
|
+
inline bool IsEventEngineDnsNonClientChannelEnabled() { return true; }
|
126
121
|
inline bool IsEventEngineForkEnabled() { return false; }
|
127
122
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_LISTENER
|
128
123
|
inline bool IsEventEngineListenerEnabled() { return true; }
|
@@ -137,21 +132,16 @@ inline bool IsKeepAlivePingTimerBatchEnabled() { return false; }
|
|
137
132
|
inline bool IsLocalConnectorSecureEnabled() { return false; }
|
138
133
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_INFLIGHT_PINGS_STRICT_LIMIT
|
139
134
|
inline bool IsMaxInflightPingsStrictLimitEnabled() { return true; }
|
140
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_PINGS_WO_DATA_THROTTLE
|
141
|
-
inline bool IsMaxPingsWoDataThrottleEnabled() { return true; }
|
142
135
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
|
143
136
|
inline bool IsMonitoringExperimentEnabled() { return true; }
|
144
137
|
inline bool IsMultipingEnabled() { return false; }
|
138
|
+
inline bool IsPickFirstIgnoreEmptyUpdatesEnabled() { return false; }
|
145
139
|
inline bool IsPollsetAlternativeEnabled() { return false; }
|
146
|
-
|
147
|
-
inline bool IsPosixEeSkipGrpcInitEnabled() { return true; }
|
140
|
+
inline bool IsPrioritizeFinishedRequestsEnabled() { return false; }
|
148
141
|
inline bool IsPromiseBasedHttp2ClientTransportEnabled() { return false; }
|
149
142
|
inline bool IsPromiseBasedHttp2ServerTransportEnabled() { return false; }
|
150
143
|
inline bool IsPromiseBasedInprocTransportEnabled() { return false; }
|
151
144
|
inline bool IsRetryInCallv3Enabled() { return false; }
|
152
|
-
inline bool IsRqFastRejectEnabled() { return false; }
|
153
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_RST_STREAM_FIX
|
154
|
-
inline bool IsRstStreamFixEnabled() { return true; }
|
155
145
|
inline bool IsScheduleCancellationOverWriteEnabled() { return false; }
|
156
146
|
inline bool IsSecureEndpointOffloadLargeReadsEnabled() { return false; }
|
157
147
|
inline bool IsSecureEndpointOffloadLargeWritesEnabled() { return false; }
|
@@ -167,7 +157,6 @@ inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
|
|
167
157
|
#else
|
168
158
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CALL_TRACER_IN_TRANSPORT
|
169
159
|
inline bool IsCallTracerInTransportEnabled() { return true; }
|
170
|
-
inline bool IsCallv3ClientAuthFilterEnabled() { return false; }
|
171
160
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_FRAMING_LAYER
|
172
161
|
inline bool IsChaoticGoodFramingLayerEnabled() { return true; }
|
173
162
|
inline bool IsChttp2BoundWriteSizeEnabled() { return false; }
|
@@ -176,7 +165,8 @@ inline bool IsErrorFlattenEnabled() { return false; }
|
|
176
165
|
inline bool IsEventEngineClientEnabled() { return true; }
|
177
166
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_DNS
|
178
167
|
inline bool IsEventEngineDnsEnabled() { return true; }
|
179
|
-
|
168
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_DNS_NON_CLIENT_CHANNEL
|
169
|
+
inline bool IsEventEngineDnsNonClientChannelEnabled() { return true; }
|
180
170
|
inline bool IsEventEngineForkEnabled() { return false; }
|
181
171
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_LISTENER
|
182
172
|
inline bool IsEventEngineListenerEnabled() { return true; }
|
@@ -191,21 +181,16 @@ inline bool IsKeepAlivePingTimerBatchEnabled() { return false; }
|
|
191
181
|
inline bool IsLocalConnectorSecureEnabled() { return false; }
|
192
182
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_INFLIGHT_PINGS_STRICT_LIMIT
|
193
183
|
inline bool IsMaxInflightPingsStrictLimitEnabled() { return true; }
|
194
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_PINGS_WO_DATA_THROTTLE
|
195
|
-
inline bool IsMaxPingsWoDataThrottleEnabled() { return true; }
|
196
184
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
|
197
185
|
inline bool IsMonitoringExperimentEnabled() { return true; }
|
198
186
|
inline bool IsMultipingEnabled() { return false; }
|
187
|
+
inline bool IsPickFirstIgnoreEmptyUpdatesEnabled() { return false; }
|
199
188
|
inline bool IsPollsetAlternativeEnabled() { return false; }
|
200
|
-
|
201
|
-
inline bool IsPosixEeSkipGrpcInitEnabled() { return true; }
|
189
|
+
inline bool IsPrioritizeFinishedRequestsEnabled() { return false; }
|
202
190
|
inline bool IsPromiseBasedHttp2ClientTransportEnabled() { return false; }
|
203
191
|
inline bool IsPromiseBasedHttp2ServerTransportEnabled() { return false; }
|
204
192
|
inline bool IsPromiseBasedInprocTransportEnabled() { return false; }
|
205
193
|
inline bool IsRetryInCallv3Enabled() { return false; }
|
206
|
-
inline bool IsRqFastRejectEnabled() { return false; }
|
207
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_RST_STREAM_FIX
|
208
|
-
inline bool IsRstStreamFixEnabled() { return true; }
|
209
194
|
inline bool IsScheduleCancellationOverWriteEnabled() { return false; }
|
210
195
|
inline bool IsSecureEndpointOffloadLargeReadsEnabled() { return false; }
|
211
196
|
inline bool IsSecureEndpointOffloadLargeWritesEnabled() { return false; }
|
@@ -222,7 +207,6 @@ inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
|
|
222
207
|
#else
|
223
208
|
enum ExperimentIds {
|
224
209
|
kExperimentIdCallTracerInTransport,
|
225
|
-
kExperimentIdCallv3ClientAuthFilter,
|
226
210
|
kExperimentIdChaoticGoodFramingLayer,
|
227
211
|
kExperimentIdChttp2BoundWriteSize,
|
228
212
|
kExperimentIdErrorFlatten,
|
@@ -238,17 +222,15 @@ enum ExperimentIds {
|
|
238
222
|
kExperimentIdKeepAlivePingTimerBatch,
|
239
223
|
kExperimentIdLocalConnectorSecure,
|
240
224
|
kExperimentIdMaxInflightPingsStrictLimit,
|
241
|
-
kExperimentIdMaxPingsWoDataThrottle,
|
242
225
|
kExperimentIdMonitoringExperiment,
|
243
226
|
kExperimentIdMultiping,
|
227
|
+
kExperimentIdPickFirstIgnoreEmptyUpdates,
|
244
228
|
kExperimentIdPollsetAlternative,
|
245
|
-
|
229
|
+
kExperimentIdPrioritizeFinishedRequests,
|
246
230
|
kExperimentIdPromiseBasedHttp2ClientTransport,
|
247
231
|
kExperimentIdPromiseBasedHttp2ServerTransport,
|
248
232
|
kExperimentIdPromiseBasedInprocTransport,
|
249
233
|
kExperimentIdRetryInCallv3,
|
250
|
-
kExperimentIdRqFastReject,
|
251
|
-
kExperimentIdRstStreamFix,
|
252
234
|
kExperimentIdScheduleCancellationOverWrite,
|
253
235
|
kExperimentIdSecureEndpointOffloadLargeReads,
|
254
236
|
kExperimentIdSecureEndpointOffloadLargeWrites,
|
@@ -265,10 +247,6 @@ enum ExperimentIds {
|
|
265
247
|
inline bool IsCallTracerInTransportEnabled() {
|
266
248
|
return IsExperimentEnabled<kExperimentIdCallTracerInTransport>();
|
267
249
|
}
|
268
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_CALLV3_CLIENT_AUTH_FILTER
|
269
|
-
inline bool IsCallv3ClientAuthFilterEnabled() {
|
270
|
-
return IsExperimentEnabled<kExperimentIdCallv3ClientAuthFilter>();
|
271
|
-
}
|
272
250
|
#define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD_FRAMING_LAYER
|
273
251
|
inline bool IsChaoticGoodFramingLayerEnabled() {
|
274
252
|
return IsExperimentEnabled<kExperimentIdChaoticGoodFramingLayer>();
|
@@ -329,10 +307,6 @@ inline bool IsLocalConnectorSecureEnabled() {
|
|
329
307
|
inline bool IsMaxInflightPingsStrictLimitEnabled() {
|
330
308
|
return IsExperimentEnabled<kExperimentIdMaxInflightPingsStrictLimit>();
|
331
309
|
}
|
332
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_PINGS_WO_DATA_THROTTLE
|
333
|
-
inline bool IsMaxPingsWoDataThrottleEnabled() {
|
334
|
-
return IsExperimentEnabled<kExperimentIdMaxPingsWoDataThrottle>();
|
335
|
-
}
|
336
310
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
|
337
311
|
inline bool IsMonitoringExperimentEnabled() {
|
338
312
|
return IsExperimentEnabled<kExperimentIdMonitoringExperiment>();
|
@@ -341,13 +315,17 @@ inline bool IsMonitoringExperimentEnabled() {
|
|
341
315
|
inline bool IsMultipingEnabled() {
|
342
316
|
return IsExperimentEnabled<kExperimentIdMultiping>();
|
343
317
|
}
|
318
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_PICK_FIRST_IGNORE_EMPTY_UPDATES
|
319
|
+
inline bool IsPickFirstIgnoreEmptyUpdatesEnabled() {
|
320
|
+
return IsExperimentEnabled<kExperimentIdPickFirstIgnoreEmptyUpdates>();
|
321
|
+
}
|
344
322
|
#define GRPC_EXPERIMENT_IS_INCLUDED_POLLSET_ALTERNATIVE
|
345
323
|
inline bool IsPollsetAlternativeEnabled() {
|
346
324
|
return IsExperimentEnabled<kExperimentIdPollsetAlternative>();
|
347
325
|
}
|
348
|
-
#define
|
349
|
-
inline bool
|
350
|
-
return IsExperimentEnabled<
|
326
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_PRIORITIZE_FINISHED_REQUESTS
|
327
|
+
inline bool IsPrioritizeFinishedRequestsEnabled() {
|
328
|
+
return IsExperimentEnabled<kExperimentIdPrioritizeFinishedRequests>();
|
351
329
|
}
|
352
330
|
#define GRPC_EXPERIMENT_IS_INCLUDED_PROMISE_BASED_HTTP2_CLIENT_TRANSPORT
|
353
331
|
inline bool IsPromiseBasedHttp2ClientTransportEnabled() {
|
@@ -365,14 +343,6 @@ inline bool IsPromiseBasedInprocTransportEnabled() {
|
|
365
343
|
inline bool IsRetryInCallv3Enabled() {
|
366
344
|
return IsExperimentEnabled<kExperimentIdRetryInCallv3>();
|
367
345
|
}
|
368
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_RQ_FAST_REJECT
|
369
|
-
inline bool IsRqFastRejectEnabled() {
|
370
|
-
return IsExperimentEnabled<kExperimentIdRqFastReject>();
|
371
|
-
}
|
372
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_RST_STREAM_FIX
|
373
|
-
inline bool IsRstStreamFixEnabled() {
|
374
|
-
return IsExperimentEnabled<kExperimentIdRstStreamFix>();
|
375
|
-
}
|
376
346
|
#define GRPC_EXPERIMENT_IS_INCLUDED_SCHEDULE_CANCELLATION_OVER_WRITE
|
377
347
|
inline bool IsScheduleCancellationOverWriteEnabled() {
|
378
348
|
return IsExperimentEnabled<kExperimentIdScheduleCancellationOverWrite>();
|
@@ -25,9 +25,10 @@ void grpc_endpoint_read(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
|
25
25
|
ep->vtable->read(ep, slices, cb, urgent, min_progress_size);
|
26
26
|
}
|
27
27
|
|
28
|
-
void grpc_endpoint_write(
|
29
|
-
|
30
|
-
|
28
|
+
void grpc_endpoint_write(
|
29
|
+
grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb,
|
30
|
+
grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs args) {
|
31
|
+
ep->vtable->write(ep, slices, cb, std::move(args));
|
31
32
|
}
|
32
33
|
|
33
34
|
void grpc_endpoint_add_to_pollset(grpc_endpoint* ep, grpc_pollset* pollset) {
|
@@ -19,6 +19,7 @@
|
|
19
19
|
#ifndef GRPC_SRC_CORE_LIB_IOMGR_ENDPOINT_H
|
20
20
|
#define GRPC_SRC_CORE_LIB_IOMGR_ENDPOINT_H
|
21
21
|
|
22
|
+
#include <grpc/event_engine/event_engine.h>
|
22
23
|
#include <grpc/slice.h>
|
23
24
|
#include <grpc/slice_buffer.h>
|
24
25
|
#include <grpc/support/port_platform.h>
|
@@ -37,8 +38,9 @@ typedef struct grpc_endpoint_vtable grpc_endpoint_vtable;
|
|
37
38
|
struct grpc_endpoint_vtable {
|
38
39
|
void (*read)(grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb,
|
39
40
|
bool urgent, int min_progress_size);
|
40
|
-
void (*write)(
|
41
|
-
|
41
|
+
void (*write)(
|
42
|
+
grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb,
|
43
|
+
grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs args);
|
42
44
|
void (*add_to_pollset)(grpc_endpoint* ep, grpc_pollset* pollset);
|
43
45
|
void (*add_to_pollset_set)(grpc_endpoint* ep, grpc_pollset_set* pollset);
|
44
46
|
void (*delete_from_pollset_set)(grpc_endpoint* ep, grpc_pollset_set* pollset);
|
@@ -79,8 +81,9 @@ int grpc_endpoint_get_fd(grpc_endpoint* ep);
|
|
79
81
|
// \a max_frame_size. A hint to the endpoint implementation to construct
|
80
82
|
// frames which do not exceed the specified size.
|
81
83
|
//
|
82
|
-
void grpc_endpoint_write(
|
83
|
-
|
84
|
+
void grpc_endpoint_write(
|
85
|
+
grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb,
|
86
|
+
grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs arg);
|
84
87
|
|
85
88
|
// Causes any pending and future read/write callbacks to run immediately with
|
86
89
|
// success==0
|
@@ -244,8 +244,9 @@ static void CFStreamRead(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
|
244
244
|
}
|
245
245
|
|
246
246
|
static void CFStreamWrite(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
247
|
-
grpc_closure* cb,
|
248
|
-
|
247
|
+
grpc_closure* cb,
|
248
|
+
grpc_event_engine::experimental::EventEngine::
|
249
|
+
Endpoint::WriteArgs /*args*/) {
|
249
250
|
CFStreamEndpoint* ep_impl = reinterpret_cast<CFStreamEndpoint*>(ep);
|
250
251
|
GRPC_TRACE_VLOG(tcp, 2) << "CFStream endpoint:" << ep_impl << " write ("
|
251
252
|
<< slices << ", " << cb
|
@@ -45,6 +45,7 @@
|
|
45
45
|
#include "absl/strings/str_cat.h"
|
46
46
|
#include "absl/strings/str_format.h"
|
47
47
|
#include "absl/strings/str_join.h"
|
48
|
+
#include "src/core/lib/event_engine/shim.h"
|
48
49
|
#include "src/core/lib/experiments/experiments.h"
|
49
50
|
#include "src/core/lib/iomgr/block_annotate.h"
|
50
51
|
#include "src/core/lib/iomgr/ev_epoll1_linux.h"
|
@@ -333,7 +334,9 @@ static void fork_fd_list_remove_grpc_fd(grpc_fd* fd) {
|
|
333
334
|
|
334
335
|
static grpc_fd* fd_create(int fd, const char* name, bool track_err) {
|
335
336
|
grpc_fd* new_fd = nullptr;
|
336
|
-
if (grpc_core::IsEventEngineForAllOtherEndpointsEnabled()
|
337
|
+
if (grpc_core::IsEventEngineForAllOtherEndpointsEnabled() &&
|
338
|
+
!grpc_event_engine::experimental::
|
339
|
+
EventEngineExperimentDisabledForPython()) {
|
337
340
|
grpc_fd* new_fd = static_cast<grpc_fd*>(gpr_malloc(sizeof(grpc_fd)));
|
338
341
|
new_fd->fd = fd;
|
339
342
|
return new_fd;
|
@@ -415,7 +418,9 @@ static void fd_shutdown(grpc_fd* fd, grpc_error_handle why) {
|
|
415
418
|
|
416
419
|
static void fd_orphan(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
|
417
420
|
const char* reason) {
|
418
|
-
if (grpc_core::IsEventEngineForAllOtherEndpointsEnabled()
|
421
|
+
if (grpc_core::IsEventEngineForAllOtherEndpointsEnabled() &&
|
422
|
+
!grpc_event_engine::experimental::
|
423
|
+
EventEngineExperimentDisabledForPython()) {
|
419
424
|
CHECK_NE(release_fd, nullptr);
|
420
425
|
CHECK_EQ(on_done, nullptr);
|
421
426
|
*release_fd = fd->fd;
|