grpc 1.75.0.pre1 → 1.76.0.pre1
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 +18 -5
- data/include/grpc/credentials.h +21 -5
- data/src/core/call/call_filters.cc +4 -4
- data/src/core/call/call_filters.h +36 -36
- data/src/core/call/call_spine.h +27 -27
- data/src/core/call/client_call.cc +6 -5
- data/src/core/call/filter_fusion.h +5 -5
- data/src/core/call/metadata_batch.h +3 -3
- data/src/core/call/security_context.cc +1 -1
- data/src/core/call/server_call.cc +4 -4
- data/src/core/call/server_call.h +1 -1
- data/src/core/channelz/channelz.cc +12 -18
- data/src/core/channelz/channelz.h +32 -16
- data/src/core/channelz/channelz_registry.h +11 -0
- data/src/core/channelz/property_list.cc +18 -0
- data/src/core/channelz/property_list.h +10 -1
- data/src/core/channelz/text_encode.cc +66 -0
- data/src/core/channelz/text_encode.h +29 -0
- data/src/core/channelz/v2tov1/convert.cc +11 -0
- data/src/core/channelz/v2tov1/legacy_api.cc +15 -8
- data/src/core/channelz/ztrace_collector.h +247 -86
- data/src/core/client_channel/backup_poller.cc +5 -6
- data/src/core/client_channel/client_channel.cc +20 -13
- data/src/core/client_channel/client_channel_filter.cc +53 -45
- data/src/core/client_channel/client_channel_filter.h +2 -2
- data/src/core/client_channel/client_channel_internal.h +3 -4
- data/src/core/client_channel/config_selector.h +3 -3
- data/src/core/client_channel/dynamic_filters.cc +3 -3
- data/src/core/client_channel/global_subchannel_pool.cc +0 -37
- data/src/core/client_channel/global_subchannel_pool.h +0 -27
- data/src/core/client_channel/load_balanced_call_destination.cc +7 -7
- data/src/core/client_channel/local_subchannel_pool.cc +4 -4
- data/src/core/client_channel/retry_filter.h +3 -3
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +5 -5
- data/src/core/client_channel/subchannel.cc +8 -8
- data/src/core/client_channel/subchannel_stream_client.cc +4 -4
- data/src/core/config/config_vars.cc +30 -1
- data/src/core/config/config_vars.h +21 -0
- data/src/core/config/core_configuration.cc +5 -5
- data/src/core/config/core_configuration.h +7 -7
- data/src/core/config/load_config.cc +12 -0
- data/src/core/config/load_config.h +2 -0
- data/src/core/credentials/call/call_credentials.h +2 -2
- data/src/core/credentials/call/call_creds_util.cc +4 -3
- data/src/core/credentials/call/composite/composite_call_credentials.cc +4 -4
- data/src/core/credentials/call/external/aws_external_account_credentials.cc +3 -3
- data/src/core/credentials/call/external/external_account_credentials.cc +1 -1
- data/src/core/credentials/call/external/url_external_account_credentials.cc +1 -1
- data/src/core/credentials/call/iam/iam_credentials.cc +4 -4
- data/src/core/credentials/call/jwt/json_token.cc +3 -3
- data/src/core/credentials/call/jwt/jwt_credentials.cc +2 -2
- data/src/core/credentials/call/jwt/jwt_verifier.cc +14 -13
- data/src/core/credentials/call/oauth2/oauth2_credentials.cc +20 -12
- data/src/core/credentials/call/plugin/plugin_credentials.cc +2 -2
- data/src/core/credentials/transport/alts/alts_credentials.cc +4 -4
- data/src/core/credentials/transport/alts/alts_security_connector.cc +14 -12
- data/src/core/credentials/transport/alts/grpc_alts_credentials_client_options.cc +22 -2
- data/src/core/credentials/transport/alts/grpc_alts_credentials_options.cc +10 -1
- data/src/core/credentials/transport/alts/grpc_alts_credentials_options.h +31 -0
- data/src/core/credentials/transport/alts/grpc_alts_credentials_server_options.cc +8 -3
- data/src/core/credentials/transport/composite/composite_channel_credentials.cc +5 -5
- data/src/core/credentials/transport/fake/fake_security_connector.cc +2 -2
- data/src/core/credentials/transport/google_default/google_default_credentials.cc +78 -28
- data/src/core/credentials/transport/insecure/insecure_security_connector.cc +3 -3
- data/src/core/credentials/transport/local/local_security_connector.cc +8 -8
- data/src/core/credentials/transport/security_connector.cc +5 -5
- data/src/core/credentials/transport/ssl/ssl_credentials.cc +12 -12
- data/src/core/credentials/transport/ssl/ssl_credentials.h +2 -2
- data/src/core/credentials/transport/ssl/ssl_security_connector.cc +3 -3
- data/src/core/credentials/transport/tls/certificate_provider_registry.cc +2 -2
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +24 -24
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +5 -5
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +2 -2
- data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.cc +2 -2
- data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.h +2 -2
- data/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc +17 -17
- data/src/core/credentials/transport/tls/ssl_utils.cc +14 -9
- data/src/core/credentials/transport/tls/tls_credentials.cc +2 -2
- data/src/core/credentials/transport/tls/tls_security_connector.cc +11 -11
- data/src/core/credentials/transport/transport_credentials.cc +2 -2
- data/src/core/credentials/transport/transport_credentials.h +2 -2
- data/src/core/credentials/transport/xds/xds_credentials.cc +5 -5
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +2 -0
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +1 -1
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +8 -8
- data/src/core/ext/filters/http/message_compress/compression_filter.h +3 -3
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +7 -7
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -2
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +10 -9
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +10 -7
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +5 -5
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +6 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +96 -88
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +12 -7
- data/src/core/ext/transport/chttp2/transport/flow_control_manager.h +60 -0
- data/src/core/ext/transport/chttp2/transport/frame.cc +32 -10
- data/src/core/ext/transport/chttp2/transport/frame.h +16 -2
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +28 -12
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +4 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +27 -27
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +543 -366
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +198 -277
- data/src/core/ext/transport/chttp2/transport/http2_settings_manager.cc +3 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings_manager.h +11 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +179 -0
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +51 -23
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +13 -6
- data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +115 -71
- data/src/core/ext/transport/chttp2/transport/internal.h +6 -14
- data/src/core/ext/transport/chttp2/transport/message_assembler.h +7 -7
- data/src/core/ext/transport/chttp2/transport/parsing.cc +17 -15
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +62 -26
- data/src/core/ext/transport/chttp2/transport/ping_promise.h +58 -22
- data/src/core/ext/transport/chttp2/transport/stream.h +207 -0
- data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +328 -187
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/transport_common.cc +17 -1
- data/src/core/ext/transport/chttp2/transport/transport_common.h +52 -0
- data/src/core/ext/transport/chttp2/transport/varint.h +2 -2
- data/src/core/ext/transport/chttp2/transport/writable_streams.h +181 -79
- data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/writing.cc +3 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +1 -1
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +3 -3
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb.h +740 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c +218 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.h +46 -0
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +87 -55
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +23 -21
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.c +80 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.h +47 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/service.upbdefs.c +129 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/service.upbdefs.h +72 -0
- data/src/core/filter/auth/server_auth_filter.cc +2 -2
- data/src/core/handshaker/handshaker.cc +3 -3
- data/src/core/handshaker/http_connect/http_proxy_mapper.cc +2 -2
- data/src/core/handshaker/security/legacy_secure_endpoint.cc +2 -2
- data/src/core/handshaker/security/pipelined_secure_endpoint.cc +31 -8
- data/src/core/handshaker/security/secure_endpoint.cc +16 -6
- data/src/core/handshaker/security/security_handshaker.cc +3 -3
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +2 -2
- data/src/core/lib/channel/channel_stack.cc +8 -5
- data/src/core/lib/channel/channel_stack.h +3 -0
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -0
- data/src/core/lib/channel/connected_channel.cc +2 -2
- data/src/core/lib/channel/promise_based_filter.cc +69 -64
- data/src/core/lib/channel/promise_based_filter.h +16 -15
- data/src/core/lib/compression/compression_internal.cc +2 -2
- data/src/core/lib/compression/message_compress.cc +7 -7
- data/src/core/lib/event_engine/ares_resolver.cc +22 -20
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +2 -2
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +2 -2
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +2 -2
- data/src/core/lib/event_engine/extensions/channelz.h +2 -2
- data/src/core/lib/event_engine/extensions/supports_fd.h +5 -5
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +8 -8
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +10 -10
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +2 -2
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +23 -22
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +11 -11
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +168 -170
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +33 -54
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +4 -3
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +5 -5
- data/src/core/lib/event_engine/posix_engine/posix_interface.h +1 -1
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +3 -3
- data/src/core/lib/event_engine/resolved_address.cc +3 -3
- data/src/core/lib/event_engine/shim.cc +8 -11
- data/src/core/lib/event_engine/shim.h +2 -1
- data/src/core/lib/event_engine/slice.cc +2 -2
- data/src/core/lib/event_engine/tcp_socket_utils.cc +11 -11
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +7 -7
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +31 -31
- data/src/core/lib/event_engine/windows/iocp.cc +10 -10
- data/src/core/lib/event_engine/windows/win_socket.cc +6 -6
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +11 -11
- data/src/core/lib/event_engine/windows/windows_engine.cc +16 -14
- data/src/core/lib/event_engine/windows/windows_listener.cc +7 -7
- data/src/core/lib/experiments/experiments.cc +105 -18
- data/src/core/lib/experiments/experiments.h +43 -11
- data/src/core/lib/iomgr/call_combiner.cc +3 -3
- data/src/core/lib/iomgr/endpoint_cfstream.cc +6 -6
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +5 -5
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +15 -14
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +15 -15
- data/src/core/lib/iomgr/ev_poll_posix.cc +11 -11
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +5 -4
- data/src/core/lib/iomgr/event_engine_shims/endpoint.h +1 -1
- data/src/core/lib/iomgr/iocp_windows.cc +8 -8
- data/src/core/lib/iomgr/iomgr_windows.cc +3 -3
- data/src/core/lib/iomgr/lockfree_event.cc +2 -2
- data/src/core/lib/iomgr/polling_entity.cc +3 -3
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +2 -2
- data/src/core/lib/iomgr/socket_windows.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_posix.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +4 -4
- data/src/core/lib/iomgr/tcp_posix.cc +42 -42
- data/src/core/lib/iomgr/tcp_server.cc +5 -0
- data/src/core/lib/iomgr/tcp_server.h +7 -0
- data/src/core/lib/iomgr/tcp_server_posix.cc +47 -27
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +3 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -5
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +2 -2
- data/src/core/lib/iomgr/tcp_server_windows.cc +68 -29
- data/src/core/lib/iomgr/tcp_windows.cc +7 -7
- data/src/core/lib/iomgr/timer_generic.cc +2 -2
- data/src/core/lib/iomgr/timer_manager.cc +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +2 -2
- data/src/core/lib/promise/activity.cc +2 -2
- data/src/core/lib/promise/activity.h +6 -6
- data/src/core/lib/promise/context.h +2 -2
- data/src/core/lib/promise/detail/join_state.h +9 -9
- data/src/core/lib/promise/detail/seq_state.h +13 -13
- data/src/core/lib/promise/detail/status.h +2 -2
- data/src/core/lib/promise/for_each.h +5 -5
- data/src/core/lib/promise/interceptor_list.h +2 -2
- data/src/core/lib/promise/latch.h +7 -7
- data/src/core/lib/promise/mpsc.cc +26 -26
- data/src/core/lib/promise/mpsc.h +2 -2
- data/src/core/lib/promise/observable.h +4 -4
- data/src/core/lib/promise/party.cc +32 -25
- data/src/core/lib/promise/party.h +16 -19
- data/src/core/lib/promise/pipe.h +15 -15
- data/src/core/lib/promise/poll.h +5 -4
- data/src/core/lib/promise/promise.h +0 -2
- data/src/core/lib/promise/sleep.cc +3 -1
- data/src/core/lib/promise/status_flag.h +7 -7
- data/src/core/lib/promise/try_join.h +2 -2
- data/src/core/lib/promise/try_seq.h +2 -2
- data/src/core/lib/resource_quota/arena.h +15 -2
- data/src/core/lib/resource_quota/connection_quota.cc +9 -7
- data/src/core/lib/resource_quota/memory_quota.cc +45 -24
- data/src/core/lib/resource_quota/memory_quota.h +48 -16
- data/src/core/lib/resource_quota/telemetry.h +54 -0
- data/src/core/lib/resource_quota/thread_quota.cc +2 -2
- data/src/core/lib/resource_tracker/resource_tracker.cc +33 -0
- data/src/core/lib/resource_tracker/resource_tracker.h +46 -0
- data/src/core/lib/security/authorization/audit_logging.cc +5 -5
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +2 -2
- data/src/core/lib/security/authorization/stdout_logger.cc +3 -3
- data/src/core/lib/surface/byte_buffer_reader.cc +2 -2
- data/src/core/lib/surface/call.cc +16 -14
- data/src/core/lib/surface/call.h +1 -1
- data/src/core/lib/surface/call_utils.cc +2 -2
- data/src/core/lib/surface/call_utils.h +2 -2
- data/src/core/lib/surface/channel.cc +4 -4
- data/src/core/lib/surface/channel_create.cc +10 -6
- data/src/core/lib/surface/channel_init.cc +80 -23
- data/src/core/lib/surface/channel_init.h +26 -11
- data/src/core/lib/surface/completion_queue.cc +17 -16
- data/src/core/lib/surface/completion_queue_factory.cc +7 -7
- data/src/core/lib/surface/connection_context.h +45 -2
- data/src/core/lib/surface/filter_stack_call.cc +12 -23
- data/src/core/lib/surface/filter_stack_call.h +3 -4
- data/src/core/lib/surface/legacy_channel.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +2 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.h +3 -3
- data/src/core/lib/transport/promise_endpoint.cc +3 -3
- data/src/core/lib/transport/promise_endpoint.h +8 -8
- data/src/core/lib/transport/timeout_encoding.cc +4 -4
- data/src/core/load_balancing/child_policy_handler.cc +4 -4
- data/src/core/load_balancing/endpoint_list.cc +2 -2
- data/src/core/load_balancing/grpclb/grpclb.cc +24 -24
- data/src/core/load_balancing/health_check_client.cc +4 -4
- data/src/core/load_balancing/health_check_client_internal.h +2 -2
- data/src/core/load_balancing/lb_policy_registry.cc +2 -2
- data/src/core/load_balancing/oob_backend_metric.cc +4 -4
- data/src/core/load_balancing/oob_backend_metric_internal.h +2 -2
- data/src/core/load_balancing/outlier_detection/outlier_detection.cc +2 -2
- data/src/core/load_balancing/pick_first/pick_first.cc +14 -14
- data/src/core/load_balancing/priority/priority.cc +23 -24
- data/src/core/load_balancing/ring_hash/ring_hash.cc +3 -3
- data/src/core/load_balancing/rls/rls.cc +13 -13
- data/src/core/load_balancing/round_robin/round_robin.cc +9 -9
- data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +3 -3
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +33 -26
- data/src/core/load_balancing/weighted_target/weighted_target.cc +5 -5
- data/src/core/load_balancing/xds/cds.cc +76 -32
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +3 -3
- data/src/core/load_balancing/xds/xds_override_host.cc +4 -4
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +33 -33
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +10 -10
- data/src/core/resolver/dns/dns_resolver_plugin.cc +6 -3
- data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +2 -2
- data/src/core/resolver/endpoint_addresses.cc +3 -3
- data/src/core/resolver/endpoint_addresses.h +3 -0
- data/src/core/resolver/fake/fake_resolver.cc +2 -2
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +41 -54
- data/src/core/resolver/polling_resolver.cc +3 -3
- data/src/core/resolver/resolver_registry.cc +5 -4
- data/src/core/resolver/xds/xds_dependency_manager.cc +5 -5
- data/src/core/resolver/xds/xds_resolver.cc +9 -9
- data/src/core/server/server.cc +38 -38
- data/src/core/server/server_call_tracer_filter.h +4 -4
- data/src/core/server/server_config_selector_filter.cc +2 -2
- data/src/core/server/xds_server_config_fetcher.cc +9 -8
- data/src/core/service_config/service_config_impl.h +2 -2
- data/src/core/telemetry/call_tracer.cc +39 -49
- data/src/core/telemetry/call_tracer.h +199 -22
- data/src/core/telemetry/histogram.h +205 -0
- data/src/core/telemetry/instrument.cc +719 -0
- data/src/core/telemetry/instrument.h +932 -0
- data/src/core/telemetry/metrics.cc +13 -5
- data/src/core/telemetry/metrics.h +3 -1
- data/src/core/telemetry/stats_data.cc +0 -19
- data/src/core/telemetry/stats_data.h +0 -19
- data/src/core/transport/auth_context.cc +2 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +78 -45
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -0
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +3 -3
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +39 -31
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +3 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +3 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +7 -7
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +3 -3
- data/src/core/tsi/fake_transport_security.cc +4 -4
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +4 -4
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +9 -9
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +3 -3
- data/src/core/tsi/ssl_transport_security.cc +26 -25
- data/src/core/tsi/ssl_transport_security_utils.cc +9 -9
- data/src/core/util/chunked_vector.h +4 -4
- data/src/core/util/event_log.cc +2 -2
- data/src/core/util/gcp_metadata_query.cc +2 -2
- data/src/core/util/grpc_check.cc +22 -0
- data/src/core/util/grpc_check.h +103 -0
- data/src/core/util/http_client/httpcli.cc +3 -3
- data/src/core/util/http_client/parser.cc +4 -4
- data/src/core/util/latent_see.h +7 -4
- data/src/core/util/lru_cache.h +4 -4
- data/src/core/util/memory_usage.h +16 -0
- data/src/core/util/posix/directory_reader.cc +3 -2
- data/src/core/util/posix/sync.cc +24 -24
- data/src/core/util/postmortem_emit.cc +52 -0
- data/src/core/util/postmortem_emit.h +30 -0
- data/src/core/util/ref_counted_ptr.h +5 -0
- data/src/core/util/trie_lookup.h +170 -0
- data/src/core/util/unique_ptr_with_bitset.h +5 -5
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +6 -1
- data/src/core/xds/grpc/xds_certificate_provider.cc +3 -3
- data/src/core/xds/grpc/xds_client_grpc.cc +34 -15
- data/src/core/xds/grpc/xds_client_grpc.h +4 -1
- data/src/core/xds/grpc/xds_cluster_parser.cc +2 -2
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
- data/src/core/xds/grpc/xds_endpoint_parser.cc +2 -2
- data/src/core/xds/grpc/xds_http_filter_registry.cc +4 -3
- data/src/core/xds/grpc/xds_listener_parser.cc +3 -3
- data/src/core/xds/grpc/xds_matcher.cc +277 -0
- data/src/core/xds/grpc/xds_matcher.h +432 -0
- data/src/core/xds/grpc/xds_matcher_action.cc +47 -0
- data/src/core/xds/grpc/xds_matcher_action.h +48 -0
- data/src/core/xds/grpc/xds_matcher_context.cc +29 -0
- data/src/core/xds/grpc/xds_matcher_context.h +46 -0
- data/src/core/xds/grpc/xds_matcher_input.cc +79 -0
- data/src/core/xds/grpc/xds_matcher_input.h +105 -0
- data/src/core/xds/grpc/xds_matcher_parse.cc +356 -0
- data/src/core/xds/grpc/xds_matcher_parse.h +39 -0
- data/src/core/xds/grpc/xds_metadata.cc +4 -3
- data/src/core/xds/grpc/xds_route_config_parser.cc +6 -6
- data/src/core/xds/grpc/xds_routing.cc +3 -3
- data/src/core/xds/grpc/xds_transport_grpc.cc +10 -10
- data/src/core/xds/xds_client/lrs_client.cc +6 -6
- data/src/core/xds/xds_client/xds_client.cc +9 -9
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/abseil-cpp/absl/container/internal/node_slot_policy.h +95 -0
- data/third_party/abseil-cpp/absl/container/node_hash_map.h +687 -0
- metadata +37 -2
@@ -76,6 +76,9 @@ const uint8_t required_experiments_event_engine_for_all_other_endpoints[] = {
|
|
76
76
|
static_cast<uint8_t>(
|
77
77
|
grpc_core::kExperimentIdEventEngineDnsNonClientChannel),
|
78
78
|
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
|
79
|
+
const char* const description_event_engine_poller_for_python =
|
80
|
+
"Enable event engine poller in gRPC Python";
|
81
|
+
const char* const additional_constraints_event_engine_poller_for_python = "{}";
|
79
82
|
const char* const description_event_engine_secure_endpoint =
|
80
83
|
"Use EventEngine secure endpoint wrapper instead of iomgr when available";
|
81
84
|
const char* const additional_constraints_event_engine_secure_endpoint = "{}";
|
@@ -93,6 +96,9 @@ const char* const description_local_connector_secure =
|
|
93
96
|
"Local security connector uses TSI_SECURITY_NONE for LOCAL_TCP "
|
94
97
|
"connections.";
|
95
98
|
const char* const additional_constraints_local_connector_secure = "{}";
|
99
|
+
const char* const description_max_age_filter_float_to_top =
|
100
|
+
"If set, the max age filter is placed at the top of the stack.";
|
101
|
+
const char* const additional_constraints_max_age_filter_float_to_top = "{}";
|
96
102
|
const char* const description_max_inflight_pings_strict_limit =
|
97
103
|
"If set, the max inflight pings limit is strictly enforced.";
|
98
104
|
const char* const additional_constraints_max_inflight_pings_strict_limit = "{}";
|
@@ -170,12 +176,17 @@ const char* const description_server_global_callbacks_ownership =
|
|
170
176
|
"gRPC.";
|
171
177
|
const char* const additional_constraints_server_global_callbacks_ownership =
|
172
178
|
"{}";
|
173
|
-
const char* const description_shard_global_connection_pool =
|
174
|
-
"If set, shard the global connection pool to improve parallelism.";
|
175
|
-
const char* const additional_constraints_shard_global_connection_pool = "{}";
|
176
179
|
const char* const description_sleep_promise_exec_ctx_removal =
|
177
180
|
"If set, polling the sleep promise does not rely on the ExecCtx.";
|
178
181
|
const char* const additional_constraints_sleep_promise_exec_ctx_removal = "{}";
|
182
|
+
const char* const description_sleep_use_non_owning_waker =
|
183
|
+
"If set, the sleep promise uses a non-owning waker.";
|
184
|
+
const char* const additional_constraints_sleep_use_non_owning_waker = "{}";
|
185
|
+
const char* const description_subchannel_wrapper_cleanup_on_orphan =
|
186
|
+
"Fixes the subchannel wrapper to drop any non-cancelled watchers when it "
|
187
|
+
"gets orphaned.";
|
188
|
+
const char* const additional_constraints_subchannel_wrapper_cleanup_on_orphan =
|
189
|
+
"{}";
|
179
190
|
const char* const description_tcp_frame_size_tuning =
|
180
191
|
"If set, enables TCP to use RPC size estimation made by higher layers. TCP "
|
181
192
|
"would not indicate completion of a read operation until a specified "
|
@@ -185,6 +196,9 @@ const char* const additional_constraints_tcp_frame_size_tuning = "{}";
|
|
185
196
|
const char* const description_tcp_rcv_lowat =
|
186
197
|
"Use SO_RCVLOWAT to avoid wakeups on the read path.";
|
187
198
|
const char* const additional_constraints_tcp_rcv_lowat = "{}";
|
199
|
+
const char* const description_track_writes_in_resource_quota =
|
200
|
+
"Track the Write memory in Resource Quota.";
|
201
|
+
const char* const additional_constraints_track_writes_in_resource_quota = "{}";
|
188
202
|
const char* const description_tsi_frame_protector_without_locks =
|
189
203
|
"Do not hold locks while using the tsi_frame_protector.";
|
190
204
|
const char* const additional_constraints_tsi_frame_protector_without_locks =
|
@@ -233,6 +247,10 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
233
247
|
description_event_engine_for_all_other_endpoints,
|
234
248
|
additional_constraints_event_engine_for_all_other_endpoints,
|
235
249
|
required_experiments_event_engine_for_all_other_endpoints, 4, true, false},
|
250
|
+
{"event_engine_poller_for_python",
|
251
|
+
description_event_engine_poller_for_python,
|
252
|
+
additional_constraints_event_engine_poller_for_python, nullptr, 0, false,
|
253
|
+
true},
|
236
254
|
{"event_engine_secure_endpoint", description_event_engine_secure_endpoint,
|
237
255
|
additional_constraints_event_engine_secure_endpoint, nullptr, 0, true,
|
238
256
|
false},
|
@@ -245,6 +263,9 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
245
263
|
true},
|
246
264
|
{"local_connector_secure", description_local_connector_secure,
|
247
265
|
additional_constraints_local_connector_secure, nullptr, 0, false, true},
|
266
|
+
{"max_age_filter_float_to_top", description_max_age_filter_float_to_top,
|
267
|
+
additional_constraints_max_age_filter_float_to_top, nullptr, 0, true,
|
268
|
+
true},
|
248
269
|
{"max_inflight_pings_strict_limit",
|
249
270
|
description_max_inflight_pings_strict_limit,
|
250
271
|
additional_constraints_max_inflight_pings_strict_limit, nullptr, 0, true,
|
@@ -301,17 +322,25 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
301
322
|
description_server_global_callbacks_ownership,
|
302
323
|
additional_constraints_server_global_callbacks_ownership, nullptr, 0, true,
|
303
324
|
true},
|
304
|
-
{"shard_global_connection_pool", description_shard_global_connection_pool,
|
305
|
-
additional_constraints_shard_global_connection_pool, nullptr, 0, true,
|
306
|
-
true},
|
307
325
|
{"sleep_promise_exec_ctx_removal",
|
308
326
|
description_sleep_promise_exec_ctx_removal,
|
309
327
|
additional_constraints_sleep_promise_exec_ctx_removal, nullptr, 0, false,
|
310
328
|
true},
|
329
|
+
{"sleep_use_non_owning_waker", description_sleep_use_non_owning_waker,
|
330
|
+
additional_constraints_sleep_use_non_owning_waker, nullptr, 0, false,
|
331
|
+
true},
|
332
|
+
{"subchannel_wrapper_cleanup_on_orphan",
|
333
|
+
description_subchannel_wrapper_cleanup_on_orphan,
|
334
|
+
additional_constraints_subchannel_wrapper_cleanup_on_orphan, nullptr, 0,
|
335
|
+
false, true},
|
311
336
|
{"tcp_frame_size_tuning", description_tcp_frame_size_tuning,
|
312
337
|
additional_constraints_tcp_frame_size_tuning, nullptr, 0, false, true},
|
313
338
|
{"tcp_rcv_lowat", description_tcp_rcv_lowat,
|
314
339
|
additional_constraints_tcp_rcv_lowat, nullptr, 0, false, true},
|
340
|
+
{"track_writes_in_resource_quota",
|
341
|
+
description_track_writes_in_resource_quota,
|
342
|
+
additional_constraints_track_writes_in_resource_quota, nullptr, 0, false,
|
343
|
+
true},
|
315
344
|
{"tsi_frame_protector_without_locks",
|
316
345
|
description_tsi_frame_protector_without_locks,
|
317
346
|
additional_constraints_tsi_frame_protector_without_locks, nullptr, 0,
|
@@ -379,6 +408,9 @@ const uint8_t required_experiments_event_engine_for_all_other_endpoints[] = {
|
|
379
408
|
static_cast<uint8_t>(
|
380
409
|
grpc_core::kExperimentIdEventEngineDnsNonClientChannel),
|
381
410
|
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
|
411
|
+
const char* const description_event_engine_poller_for_python =
|
412
|
+
"Enable event engine poller in gRPC Python";
|
413
|
+
const char* const additional_constraints_event_engine_poller_for_python = "{}";
|
382
414
|
const char* const description_event_engine_secure_endpoint =
|
383
415
|
"Use EventEngine secure endpoint wrapper instead of iomgr when available";
|
384
416
|
const char* const additional_constraints_event_engine_secure_endpoint = "{}";
|
@@ -396,6 +428,9 @@ const char* const description_local_connector_secure =
|
|
396
428
|
"Local security connector uses TSI_SECURITY_NONE for LOCAL_TCP "
|
397
429
|
"connections.";
|
398
430
|
const char* const additional_constraints_local_connector_secure = "{}";
|
431
|
+
const char* const description_max_age_filter_float_to_top =
|
432
|
+
"If set, the max age filter is placed at the top of the stack.";
|
433
|
+
const char* const additional_constraints_max_age_filter_float_to_top = "{}";
|
399
434
|
const char* const description_max_inflight_pings_strict_limit =
|
400
435
|
"If set, the max inflight pings limit is strictly enforced.";
|
401
436
|
const char* const additional_constraints_max_inflight_pings_strict_limit = "{}";
|
@@ -473,12 +508,17 @@ const char* const description_server_global_callbacks_ownership =
|
|
473
508
|
"gRPC.";
|
474
509
|
const char* const additional_constraints_server_global_callbacks_ownership =
|
475
510
|
"{}";
|
476
|
-
const char* const description_shard_global_connection_pool =
|
477
|
-
"If set, shard the global connection pool to improve parallelism.";
|
478
|
-
const char* const additional_constraints_shard_global_connection_pool = "{}";
|
479
511
|
const char* const description_sleep_promise_exec_ctx_removal =
|
480
512
|
"If set, polling the sleep promise does not rely on the ExecCtx.";
|
481
513
|
const char* const additional_constraints_sleep_promise_exec_ctx_removal = "{}";
|
514
|
+
const char* const description_sleep_use_non_owning_waker =
|
515
|
+
"If set, the sleep promise uses a non-owning waker.";
|
516
|
+
const char* const additional_constraints_sleep_use_non_owning_waker = "{}";
|
517
|
+
const char* const description_subchannel_wrapper_cleanup_on_orphan =
|
518
|
+
"Fixes the subchannel wrapper to drop any non-cancelled watchers when it "
|
519
|
+
"gets orphaned.";
|
520
|
+
const char* const additional_constraints_subchannel_wrapper_cleanup_on_orphan =
|
521
|
+
"{}";
|
482
522
|
const char* const description_tcp_frame_size_tuning =
|
483
523
|
"If set, enables TCP to use RPC size estimation made by higher layers. TCP "
|
484
524
|
"would not indicate completion of a read operation until a specified "
|
@@ -488,6 +528,9 @@ const char* const additional_constraints_tcp_frame_size_tuning = "{}";
|
|
488
528
|
const char* const description_tcp_rcv_lowat =
|
489
529
|
"Use SO_RCVLOWAT to avoid wakeups on the read path.";
|
490
530
|
const char* const additional_constraints_tcp_rcv_lowat = "{}";
|
531
|
+
const char* const description_track_writes_in_resource_quota =
|
532
|
+
"Track the Write memory in Resource Quota.";
|
533
|
+
const char* const additional_constraints_track_writes_in_resource_quota = "{}";
|
491
534
|
const char* const description_tsi_frame_protector_without_locks =
|
492
535
|
"Do not hold locks while using the tsi_frame_protector.";
|
493
536
|
const char* const additional_constraints_tsi_frame_protector_without_locks =
|
@@ -536,6 +579,10 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
536
579
|
description_event_engine_for_all_other_endpoints,
|
537
580
|
additional_constraints_event_engine_for_all_other_endpoints,
|
538
581
|
required_experiments_event_engine_for_all_other_endpoints, 4, true, false},
|
582
|
+
{"event_engine_poller_for_python",
|
583
|
+
description_event_engine_poller_for_python,
|
584
|
+
additional_constraints_event_engine_poller_for_python, nullptr, 0, false,
|
585
|
+
true},
|
539
586
|
{"event_engine_secure_endpoint", description_event_engine_secure_endpoint,
|
540
587
|
additional_constraints_event_engine_secure_endpoint, nullptr, 0, true,
|
541
588
|
false},
|
@@ -548,6 +595,9 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
548
595
|
true},
|
549
596
|
{"local_connector_secure", description_local_connector_secure,
|
550
597
|
additional_constraints_local_connector_secure, nullptr, 0, false, true},
|
598
|
+
{"max_age_filter_float_to_top", description_max_age_filter_float_to_top,
|
599
|
+
additional_constraints_max_age_filter_float_to_top, nullptr, 0, true,
|
600
|
+
true},
|
551
601
|
{"max_inflight_pings_strict_limit",
|
552
602
|
description_max_inflight_pings_strict_limit,
|
553
603
|
additional_constraints_max_inflight_pings_strict_limit, nullptr, 0, true,
|
@@ -604,17 +654,25 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
604
654
|
description_server_global_callbacks_ownership,
|
605
655
|
additional_constraints_server_global_callbacks_ownership, nullptr, 0, true,
|
606
656
|
true},
|
607
|
-
{"shard_global_connection_pool", description_shard_global_connection_pool,
|
608
|
-
additional_constraints_shard_global_connection_pool, nullptr, 0, true,
|
609
|
-
true},
|
610
657
|
{"sleep_promise_exec_ctx_removal",
|
611
658
|
description_sleep_promise_exec_ctx_removal,
|
612
659
|
additional_constraints_sleep_promise_exec_ctx_removal, nullptr, 0, false,
|
613
660
|
true},
|
661
|
+
{"sleep_use_non_owning_waker", description_sleep_use_non_owning_waker,
|
662
|
+
additional_constraints_sleep_use_non_owning_waker, nullptr, 0, false,
|
663
|
+
true},
|
664
|
+
{"subchannel_wrapper_cleanup_on_orphan",
|
665
|
+
description_subchannel_wrapper_cleanup_on_orphan,
|
666
|
+
additional_constraints_subchannel_wrapper_cleanup_on_orphan, nullptr, 0,
|
667
|
+
false, true},
|
614
668
|
{"tcp_frame_size_tuning", description_tcp_frame_size_tuning,
|
615
669
|
additional_constraints_tcp_frame_size_tuning, nullptr, 0, false, true},
|
616
670
|
{"tcp_rcv_lowat", description_tcp_rcv_lowat,
|
617
671
|
additional_constraints_tcp_rcv_lowat, nullptr, 0, false, true},
|
672
|
+
{"track_writes_in_resource_quota",
|
673
|
+
description_track_writes_in_resource_quota,
|
674
|
+
additional_constraints_track_writes_in_resource_quota, nullptr, 0, false,
|
675
|
+
true},
|
618
676
|
{"tsi_frame_protector_without_locks",
|
619
677
|
description_tsi_frame_protector_without_locks,
|
620
678
|
additional_constraints_tsi_frame_protector_without_locks, nullptr, 0,
|
@@ -682,6 +740,9 @@ const uint8_t required_experiments_event_engine_for_all_other_endpoints[] = {
|
|
682
740
|
static_cast<uint8_t>(
|
683
741
|
grpc_core::kExperimentIdEventEngineDnsNonClientChannel),
|
684
742
|
static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
|
743
|
+
const char* const description_event_engine_poller_for_python =
|
744
|
+
"Enable event engine poller in gRPC Python";
|
745
|
+
const char* const additional_constraints_event_engine_poller_for_python = "{}";
|
685
746
|
const char* const description_event_engine_secure_endpoint =
|
686
747
|
"Use EventEngine secure endpoint wrapper instead of iomgr when available";
|
687
748
|
const char* const additional_constraints_event_engine_secure_endpoint = "{}";
|
@@ -699,6 +760,9 @@ const char* const description_local_connector_secure =
|
|
699
760
|
"Local security connector uses TSI_SECURITY_NONE for LOCAL_TCP "
|
700
761
|
"connections.";
|
701
762
|
const char* const additional_constraints_local_connector_secure = "{}";
|
763
|
+
const char* const description_max_age_filter_float_to_top =
|
764
|
+
"If set, the max age filter is placed at the top of the stack.";
|
765
|
+
const char* const additional_constraints_max_age_filter_float_to_top = "{}";
|
702
766
|
const char* const description_max_inflight_pings_strict_limit =
|
703
767
|
"If set, the max inflight pings limit is strictly enforced.";
|
704
768
|
const char* const additional_constraints_max_inflight_pings_strict_limit = "{}";
|
@@ -776,12 +840,17 @@ const char* const description_server_global_callbacks_ownership =
|
|
776
840
|
"gRPC.";
|
777
841
|
const char* const additional_constraints_server_global_callbacks_ownership =
|
778
842
|
"{}";
|
779
|
-
const char* const description_shard_global_connection_pool =
|
780
|
-
"If set, shard the global connection pool to improve parallelism.";
|
781
|
-
const char* const additional_constraints_shard_global_connection_pool = "{}";
|
782
843
|
const char* const description_sleep_promise_exec_ctx_removal =
|
783
844
|
"If set, polling the sleep promise does not rely on the ExecCtx.";
|
784
845
|
const char* const additional_constraints_sleep_promise_exec_ctx_removal = "{}";
|
846
|
+
const char* const description_sleep_use_non_owning_waker =
|
847
|
+
"If set, the sleep promise uses a non-owning waker.";
|
848
|
+
const char* const additional_constraints_sleep_use_non_owning_waker = "{}";
|
849
|
+
const char* const description_subchannel_wrapper_cleanup_on_orphan =
|
850
|
+
"Fixes the subchannel wrapper to drop any non-cancelled watchers when it "
|
851
|
+
"gets orphaned.";
|
852
|
+
const char* const additional_constraints_subchannel_wrapper_cleanup_on_orphan =
|
853
|
+
"{}";
|
785
854
|
const char* const description_tcp_frame_size_tuning =
|
786
855
|
"If set, enables TCP to use RPC size estimation made by higher layers. TCP "
|
787
856
|
"would not indicate completion of a read operation until a specified "
|
@@ -791,6 +860,9 @@ const char* const additional_constraints_tcp_frame_size_tuning = "{}";
|
|
791
860
|
const char* const description_tcp_rcv_lowat =
|
792
861
|
"Use SO_RCVLOWAT to avoid wakeups on the read path.";
|
793
862
|
const char* const additional_constraints_tcp_rcv_lowat = "{}";
|
863
|
+
const char* const description_track_writes_in_resource_quota =
|
864
|
+
"Track the Write memory in Resource Quota.";
|
865
|
+
const char* const additional_constraints_track_writes_in_resource_quota = "{}";
|
794
866
|
const char* const description_tsi_frame_protector_without_locks =
|
795
867
|
"Do not hold locks while using the tsi_frame_protector.";
|
796
868
|
const char* const additional_constraints_tsi_frame_protector_without_locks =
|
@@ -839,6 +911,10 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
839
911
|
description_event_engine_for_all_other_endpoints,
|
840
912
|
additional_constraints_event_engine_for_all_other_endpoints,
|
841
913
|
required_experiments_event_engine_for_all_other_endpoints, 4, true, false},
|
914
|
+
{"event_engine_poller_for_python",
|
915
|
+
description_event_engine_poller_for_python,
|
916
|
+
additional_constraints_event_engine_poller_for_python, nullptr, 0, false,
|
917
|
+
true},
|
842
918
|
{"event_engine_secure_endpoint", description_event_engine_secure_endpoint,
|
843
919
|
additional_constraints_event_engine_secure_endpoint, nullptr, 0, true,
|
844
920
|
false},
|
@@ -851,6 +927,9 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
851
927
|
true},
|
852
928
|
{"local_connector_secure", description_local_connector_secure,
|
853
929
|
additional_constraints_local_connector_secure, nullptr, 0, false, true},
|
930
|
+
{"max_age_filter_float_to_top", description_max_age_filter_float_to_top,
|
931
|
+
additional_constraints_max_age_filter_float_to_top, nullptr, 0, true,
|
932
|
+
true},
|
854
933
|
{"max_inflight_pings_strict_limit",
|
855
934
|
description_max_inflight_pings_strict_limit,
|
856
935
|
additional_constraints_max_inflight_pings_strict_limit, nullptr, 0, true,
|
@@ -907,17 +986,25 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
907
986
|
description_server_global_callbacks_ownership,
|
908
987
|
additional_constraints_server_global_callbacks_ownership, nullptr, 0, true,
|
909
988
|
true},
|
910
|
-
{"shard_global_connection_pool", description_shard_global_connection_pool,
|
911
|
-
additional_constraints_shard_global_connection_pool, nullptr, 0, true,
|
912
|
-
true},
|
913
989
|
{"sleep_promise_exec_ctx_removal",
|
914
990
|
description_sleep_promise_exec_ctx_removal,
|
915
991
|
additional_constraints_sleep_promise_exec_ctx_removal, nullptr, 0, false,
|
916
992
|
true},
|
993
|
+
{"sleep_use_non_owning_waker", description_sleep_use_non_owning_waker,
|
994
|
+
additional_constraints_sleep_use_non_owning_waker, nullptr, 0, false,
|
995
|
+
true},
|
996
|
+
{"subchannel_wrapper_cleanup_on_orphan",
|
997
|
+
description_subchannel_wrapper_cleanup_on_orphan,
|
998
|
+
additional_constraints_subchannel_wrapper_cleanup_on_orphan, nullptr, 0,
|
999
|
+
false, true},
|
917
1000
|
{"tcp_frame_size_tuning", description_tcp_frame_size_tuning,
|
918
1001
|
additional_constraints_tcp_frame_size_tuning, nullptr, 0, false, true},
|
919
1002
|
{"tcp_rcv_lowat", description_tcp_rcv_lowat,
|
920
1003
|
additional_constraints_tcp_rcv_lowat, nullptr, 0, false, true},
|
1004
|
+
{"track_writes_in_resource_quota",
|
1005
|
+
description_track_writes_in_resource_quota,
|
1006
|
+
additional_constraints_track_writes_in_resource_quota, nullptr, 0, false,
|
1007
|
+
true},
|
921
1008
|
{"tsi_frame_protector_without_locks",
|
922
1009
|
description_tsi_frame_protector_without_locks,
|
923
1010
|
additional_constraints_tsi_frame_protector_without_locks, nullptr, 0,
|
@@ -78,12 +78,15 @@ inline bool IsEventEngineListenerEnabled() { return true; }
|
|
78
78
|
inline bool IsEventEngineCallbackCqEnabled() { return true; }
|
79
79
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_FOR_ALL_OTHER_ENDPOINTS
|
80
80
|
inline bool IsEventEngineForAllOtherEndpointsEnabled() { return true; }
|
81
|
+
inline bool IsEventEnginePollerForPythonEnabled() { return false; }
|
81
82
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_SECURE_ENDPOINT
|
82
83
|
inline bool IsEventEngineSecureEndpointEnabled() { return true; }
|
83
84
|
inline bool IsFreeLargeAllocatorEnabled() { return false; }
|
84
85
|
inline bool IsFuseFiltersEnabled() { return false; }
|
85
86
|
inline bool IsKeepAlivePingTimerBatchEnabled() { return false; }
|
86
87
|
inline bool IsLocalConnectorSecureEnabled() { return false; }
|
88
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_AGE_FILTER_FLOAT_TO_TOP
|
89
|
+
inline bool IsMaxAgeFilterFloatToTopEnabled() { return true; }
|
87
90
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_INFLIGHT_PINGS_STRICT_LIMIT
|
88
91
|
inline bool IsMaxInflightPingsStrictLimitEnabled() { return true; }
|
89
92
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
|
@@ -103,11 +106,12 @@ inline bool IsSecureEndpointOffloadLargeReadsEnabled() { return false; }
|
|
103
106
|
inline bool IsSecureEndpointOffloadLargeWritesEnabled() { return false; }
|
104
107
|
#define GRPC_EXPERIMENT_IS_INCLUDED_SERVER_GLOBAL_CALLBACKS_OWNERSHIP
|
105
108
|
inline bool IsServerGlobalCallbacksOwnershipEnabled() { return true; }
|
106
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_SHARD_GLOBAL_CONNECTION_POOL
|
107
|
-
inline bool IsShardGlobalConnectionPoolEnabled() { return true; }
|
108
109
|
inline bool IsSleepPromiseExecCtxRemovalEnabled() { return false; }
|
110
|
+
inline bool IsSleepUseNonOwningWakerEnabled() { return false; }
|
111
|
+
inline bool IsSubchannelWrapperCleanupOnOrphanEnabled() { return false; }
|
109
112
|
inline bool IsTcpFrameSizeTuningEnabled() { return false; }
|
110
113
|
inline bool IsTcpRcvLowatEnabled() { return false; }
|
114
|
+
inline bool IsTrackWritesInResourceQuotaEnabled() { return false; }
|
111
115
|
inline bool IsTsiFrameProtectorWithoutLocksEnabled() { return false; }
|
112
116
|
inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
|
113
117
|
|
@@ -133,12 +137,15 @@ inline bool IsEventEngineListenerEnabled() { return true; }
|
|
133
137
|
inline bool IsEventEngineCallbackCqEnabled() { return true; }
|
134
138
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_FOR_ALL_OTHER_ENDPOINTS
|
135
139
|
inline bool IsEventEngineForAllOtherEndpointsEnabled() { return true; }
|
140
|
+
inline bool IsEventEnginePollerForPythonEnabled() { return false; }
|
136
141
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_SECURE_ENDPOINT
|
137
142
|
inline bool IsEventEngineSecureEndpointEnabled() { return true; }
|
138
143
|
inline bool IsFreeLargeAllocatorEnabled() { return false; }
|
139
144
|
inline bool IsFuseFiltersEnabled() { return false; }
|
140
145
|
inline bool IsKeepAlivePingTimerBatchEnabled() { return false; }
|
141
146
|
inline bool IsLocalConnectorSecureEnabled() { return false; }
|
147
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_AGE_FILTER_FLOAT_TO_TOP
|
148
|
+
inline bool IsMaxAgeFilterFloatToTopEnabled() { return true; }
|
142
149
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_INFLIGHT_PINGS_STRICT_LIMIT
|
143
150
|
inline bool IsMaxInflightPingsStrictLimitEnabled() { return true; }
|
144
151
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
|
@@ -158,11 +165,12 @@ inline bool IsSecureEndpointOffloadLargeReadsEnabled() { return false; }
|
|
158
165
|
inline bool IsSecureEndpointOffloadLargeWritesEnabled() { return false; }
|
159
166
|
#define GRPC_EXPERIMENT_IS_INCLUDED_SERVER_GLOBAL_CALLBACKS_OWNERSHIP
|
160
167
|
inline bool IsServerGlobalCallbacksOwnershipEnabled() { return true; }
|
161
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_SHARD_GLOBAL_CONNECTION_POOL
|
162
|
-
inline bool IsShardGlobalConnectionPoolEnabled() { return true; }
|
163
168
|
inline bool IsSleepPromiseExecCtxRemovalEnabled() { return false; }
|
169
|
+
inline bool IsSleepUseNonOwningWakerEnabled() { return false; }
|
170
|
+
inline bool IsSubchannelWrapperCleanupOnOrphanEnabled() { return false; }
|
164
171
|
inline bool IsTcpFrameSizeTuningEnabled() { return false; }
|
165
172
|
inline bool IsTcpRcvLowatEnabled() { return false; }
|
173
|
+
inline bool IsTrackWritesInResourceQuotaEnabled() { return false; }
|
166
174
|
inline bool IsTsiFrameProtectorWithoutLocksEnabled() { return false; }
|
167
175
|
inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
|
168
176
|
|
@@ -188,12 +196,15 @@ inline bool IsEventEngineListenerEnabled() { return true; }
|
|
188
196
|
inline bool IsEventEngineCallbackCqEnabled() { return true; }
|
189
197
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_FOR_ALL_OTHER_ENDPOINTS
|
190
198
|
inline bool IsEventEngineForAllOtherEndpointsEnabled() { return true; }
|
199
|
+
inline bool IsEventEnginePollerForPythonEnabled() { return false; }
|
191
200
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_SECURE_ENDPOINT
|
192
201
|
inline bool IsEventEngineSecureEndpointEnabled() { return true; }
|
193
202
|
inline bool IsFreeLargeAllocatorEnabled() { return false; }
|
194
203
|
inline bool IsFuseFiltersEnabled() { return false; }
|
195
204
|
inline bool IsKeepAlivePingTimerBatchEnabled() { return false; }
|
196
205
|
inline bool IsLocalConnectorSecureEnabled() { return false; }
|
206
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_AGE_FILTER_FLOAT_TO_TOP
|
207
|
+
inline bool IsMaxAgeFilterFloatToTopEnabled() { return true; }
|
197
208
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_INFLIGHT_PINGS_STRICT_LIMIT
|
198
209
|
inline bool IsMaxInflightPingsStrictLimitEnabled() { return true; }
|
199
210
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
|
@@ -213,11 +224,12 @@ inline bool IsSecureEndpointOffloadLargeReadsEnabled() { return false; }
|
|
213
224
|
inline bool IsSecureEndpointOffloadLargeWritesEnabled() { return false; }
|
214
225
|
#define GRPC_EXPERIMENT_IS_INCLUDED_SERVER_GLOBAL_CALLBACKS_OWNERSHIP
|
215
226
|
inline bool IsServerGlobalCallbacksOwnershipEnabled() { return true; }
|
216
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_SHARD_GLOBAL_CONNECTION_POOL
|
217
|
-
inline bool IsShardGlobalConnectionPoolEnabled() { return true; }
|
218
227
|
inline bool IsSleepPromiseExecCtxRemovalEnabled() { return false; }
|
228
|
+
inline bool IsSleepUseNonOwningWakerEnabled() { return false; }
|
229
|
+
inline bool IsSubchannelWrapperCleanupOnOrphanEnabled() { return false; }
|
219
230
|
inline bool IsTcpFrameSizeTuningEnabled() { return false; }
|
220
231
|
inline bool IsTcpRcvLowatEnabled() { return false; }
|
232
|
+
inline bool IsTrackWritesInResourceQuotaEnabled() { return false; }
|
221
233
|
inline bool IsTsiFrameProtectorWithoutLocksEnabled() { return false; }
|
222
234
|
inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
|
223
235
|
#endif
|
@@ -237,11 +249,13 @@ enum ExperimentIds {
|
|
237
249
|
kExperimentIdEventEngineListener,
|
238
250
|
kExperimentIdEventEngineCallbackCq,
|
239
251
|
kExperimentIdEventEngineForAllOtherEndpoints,
|
252
|
+
kExperimentIdEventEnginePollerForPython,
|
240
253
|
kExperimentIdEventEngineSecureEndpoint,
|
241
254
|
kExperimentIdFreeLargeAllocator,
|
242
255
|
kExperimentIdFuseFilters,
|
243
256
|
kExperimentIdKeepAlivePingTimerBatch,
|
244
257
|
kExperimentIdLocalConnectorSecure,
|
258
|
+
kExperimentIdMaxAgeFilterFloatToTop,
|
245
259
|
kExperimentIdMaxInflightPingsStrictLimit,
|
246
260
|
kExperimentIdMonitoringExperiment,
|
247
261
|
kExperimentIdMultiping,
|
@@ -258,10 +272,12 @@ enum ExperimentIds {
|
|
258
272
|
kExperimentIdSecureEndpointOffloadLargeReads,
|
259
273
|
kExperimentIdSecureEndpointOffloadLargeWrites,
|
260
274
|
kExperimentIdServerGlobalCallbacksOwnership,
|
261
|
-
kExperimentIdShardGlobalConnectionPool,
|
262
275
|
kExperimentIdSleepPromiseExecCtxRemoval,
|
276
|
+
kExperimentIdSleepUseNonOwningWaker,
|
277
|
+
kExperimentIdSubchannelWrapperCleanupOnOrphan,
|
263
278
|
kExperimentIdTcpFrameSizeTuning,
|
264
279
|
kExperimentIdTcpRcvLowat,
|
280
|
+
kExperimentIdTrackWritesInResourceQuota,
|
265
281
|
kExperimentIdTsiFrameProtectorWithoutLocks,
|
266
282
|
kExperimentIdUnconstrainedMaxQuotaBufferSize,
|
267
283
|
kNumExperiments
|
@@ -318,6 +334,10 @@ inline bool IsEventEngineCallbackCqEnabled() {
|
|
318
334
|
inline bool IsEventEngineForAllOtherEndpointsEnabled() {
|
319
335
|
return IsExperimentEnabled<kExperimentIdEventEngineForAllOtherEndpoints>();
|
320
336
|
}
|
337
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_POLLER_FOR_PYTHON
|
338
|
+
inline bool IsEventEnginePollerForPythonEnabled() {
|
339
|
+
return IsExperimentEnabled<kExperimentIdEventEnginePollerForPython>();
|
340
|
+
}
|
321
341
|
#define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_SECURE_ENDPOINT
|
322
342
|
inline bool IsEventEngineSecureEndpointEnabled() {
|
323
343
|
return IsExperimentEnabled<kExperimentIdEventEngineSecureEndpoint>();
|
@@ -338,6 +358,10 @@ inline bool IsKeepAlivePingTimerBatchEnabled() {
|
|
338
358
|
inline bool IsLocalConnectorSecureEnabled() {
|
339
359
|
return IsExperimentEnabled<kExperimentIdLocalConnectorSecure>();
|
340
360
|
}
|
361
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_AGE_FILTER_FLOAT_TO_TOP
|
362
|
+
inline bool IsMaxAgeFilterFloatToTopEnabled() {
|
363
|
+
return IsExperimentEnabled<kExperimentIdMaxAgeFilterFloatToTop>();
|
364
|
+
}
|
341
365
|
#define GRPC_EXPERIMENT_IS_INCLUDED_MAX_INFLIGHT_PINGS_STRICT_LIMIT
|
342
366
|
inline bool IsMaxInflightPingsStrictLimitEnabled() {
|
343
367
|
return IsExperimentEnabled<kExperimentIdMaxInflightPingsStrictLimit>();
|
@@ -402,14 +426,18 @@ inline bool IsSecureEndpointOffloadLargeWritesEnabled() {
|
|
402
426
|
inline bool IsServerGlobalCallbacksOwnershipEnabled() {
|
403
427
|
return IsExperimentEnabled<kExperimentIdServerGlobalCallbacksOwnership>();
|
404
428
|
}
|
405
|
-
#define GRPC_EXPERIMENT_IS_INCLUDED_SHARD_GLOBAL_CONNECTION_POOL
|
406
|
-
inline bool IsShardGlobalConnectionPoolEnabled() {
|
407
|
-
return IsExperimentEnabled<kExperimentIdShardGlobalConnectionPool>();
|
408
|
-
}
|
409
429
|
#define GRPC_EXPERIMENT_IS_INCLUDED_SLEEP_PROMISE_EXEC_CTX_REMOVAL
|
410
430
|
inline bool IsSleepPromiseExecCtxRemovalEnabled() {
|
411
431
|
return IsExperimentEnabled<kExperimentIdSleepPromiseExecCtxRemoval>();
|
412
432
|
}
|
433
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_SLEEP_USE_NON_OWNING_WAKER
|
434
|
+
inline bool IsSleepUseNonOwningWakerEnabled() {
|
435
|
+
return IsExperimentEnabled<kExperimentIdSleepUseNonOwningWaker>();
|
436
|
+
}
|
437
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_SUBCHANNEL_WRAPPER_CLEANUP_ON_ORPHAN
|
438
|
+
inline bool IsSubchannelWrapperCleanupOnOrphanEnabled() {
|
439
|
+
return IsExperimentEnabled<kExperimentIdSubchannelWrapperCleanupOnOrphan>();
|
440
|
+
}
|
413
441
|
#define GRPC_EXPERIMENT_IS_INCLUDED_TCP_FRAME_SIZE_TUNING
|
414
442
|
inline bool IsTcpFrameSizeTuningEnabled() {
|
415
443
|
return IsExperimentEnabled<kExperimentIdTcpFrameSizeTuning>();
|
@@ -418,6 +446,10 @@ inline bool IsTcpFrameSizeTuningEnabled() {
|
|
418
446
|
inline bool IsTcpRcvLowatEnabled() {
|
419
447
|
return IsExperimentEnabled<kExperimentIdTcpRcvLowat>();
|
420
448
|
}
|
449
|
+
#define GRPC_EXPERIMENT_IS_INCLUDED_TRACK_WRITES_IN_RESOURCE_QUOTA
|
450
|
+
inline bool IsTrackWritesInResourceQuotaEnabled() {
|
451
|
+
return IsExperimentEnabled<kExperimentIdTrackWritesInResourceQuota>();
|
452
|
+
}
|
421
453
|
#define GRPC_EXPERIMENT_IS_INCLUDED_TSI_FRAME_PROTECTOR_WITHOUT_LOCKS
|
422
454
|
inline bool IsTsiFrameProtectorWithoutLocksEnabled() {
|
423
455
|
return IsExperimentEnabled<kExperimentIdTsiFrameProtectorWithoutLocks>();
|
@@ -21,11 +21,11 @@
|
|
21
21
|
#include <grpc/support/port_platform.h>
|
22
22
|
#include <inttypes.h>
|
23
23
|
|
24
|
-
#include "absl/log/check.h"
|
25
24
|
#include "absl/log/log.h"
|
26
25
|
#include "src/core/telemetry/stats.h"
|
27
26
|
#include "src/core/telemetry/stats_data.h"
|
28
27
|
#include "src/core/util/crash.h"
|
28
|
+
#include "src/core/util/grpc_check.h"
|
29
29
|
|
30
30
|
namespace grpc_core {
|
31
31
|
|
@@ -84,7 +84,7 @@ void CallCombiner::TsanClosure(void* arg, grpc_error_handle error) {
|
|
84
84
|
if (lock != nullptr) {
|
85
85
|
TSAN_ANNOTATE_RWLOCK_RELEASED(&lock->taken, true);
|
86
86
|
bool prev = true;
|
87
|
-
|
87
|
+
GRPC_CHECK(lock->taken.compare_exchange_strong(prev, false));
|
88
88
|
}
|
89
89
|
}
|
90
90
|
#endif
|
@@ -141,7 +141,7 @@ void CallCombiner::Stop(DEBUG_ARGS const char* reason) {
|
|
141
141
|
static_cast<size_t>(gpr_atm_full_fetch_add(&size_, (gpr_atm)-1));
|
142
142
|
GRPC_TRACE_LOG(call_combiner, INFO)
|
143
143
|
<< " size: " << prev_size << " -> " << prev_size - 1;
|
144
|
-
|
144
|
+
GRPC_CHECK_GE(prev_size, 1u);
|
145
145
|
if (prev_size > 1) {
|
146
146
|
while (true) {
|
147
147
|
GRPC_TRACE_LOG(call_combiner, INFO) << " checking queue";
|
@@ -27,7 +27,6 @@
|
|
27
27
|
#include <grpc/support/alloc.h>
|
28
28
|
#include <grpc/support/string_util.h>
|
29
29
|
|
30
|
-
#include "absl/log/check.h"
|
31
30
|
#include "absl/log/log.h"
|
32
31
|
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
33
32
|
#include "src/core/lib/iomgr/cfstream_handle.h"
|
@@ -39,6 +38,7 @@
|
|
39
38
|
#include "src/core/lib/slice/slice.h"
|
40
39
|
#include "src/core/lib/slice/slice_internal.h"
|
41
40
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
41
|
+
#include "src/core/util/grpc_check.h"
|
42
42
|
#include "src/core/util/string.h"
|
43
43
|
|
44
44
|
struct CFStreamEndpoint {
|
@@ -139,7 +139,7 @@ static void CallWriteCb(CFStreamEndpoint* ep, grpc_error_handle error) {
|
|
139
139
|
|
140
140
|
static void ReadAction(void* arg, grpc_error_handle error) {
|
141
141
|
CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
|
142
|
-
|
142
|
+
GRPC_CHECK_NE(ep->read_cb, nullptr);
|
143
143
|
if (!error.ok()) {
|
144
144
|
grpc_slice_buffer_reset_and_unref(ep->read_slices);
|
145
145
|
CallReadCb(ep, error);
|
@@ -147,7 +147,7 @@ static void ReadAction(void* arg, grpc_error_handle error) {
|
|
147
147
|
return;
|
148
148
|
}
|
149
149
|
|
150
|
-
|
150
|
+
GRPC_CHECK_EQ(ep->read_slices->count, 1);
|
151
151
|
grpc_slice slice = ep->read_slices->slices[0];
|
152
152
|
size_t len = GRPC_SLICE_LENGTH(slice);
|
153
153
|
CFIndex read_size =
|
@@ -179,7 +179,7 @@ static void ReadAction(void* arg, grpc_error_handle error) {
|
|
179
179
|
|
180
180
|
static void WriteAction(void* arg, grpc_error_handle error) {
|
181
181
|
CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
|
182
|
-
|
182
|
+
GRPC_CHECK_NE(ep->write_cb, nullptr);
|
183
183
|
if (!error.ok()) {
|
184
184
|
grpc_slice_buffer_reset_and_unref(ep->write_slices);
|
185
185
|
CallWriteCb(ep, error);
|
@@ -233,7 +233,7 @@ static void CFStreamRead(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
|
233
233
|
GRPC_TRACE_VLOG(tcp, 2) << "CFStream endpoint:" << ep_impl << " read ("
|
234
234
|
<< slices << ", " << cb
|
235
235
|
<< ") length:" << slices->length;
|
236
|
-
|
236
|
+
GRPC_CHECK_EQ(ep_impl->read_cb, nullptr);
|
237
237
|
ep_impl->read_cb = cb;
|
238
238
|
ep_impl->read_slices = slices;
|
239
239
|
grpc_slice_buffer_reset_and_unref(slices);
|
@@ -251,7 +251,7 @@ static void CFStreamWrite(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
|
251
251
|
GRPC_TRACE_VLOG(tcp, 2) << "CFStream endpoint:" << ep_impl << " write ("
|
252
252
|
<< slices << ", " << cb
|
253
253
|
<< ") length:" << slices->length;
|
254
|
-
|
254
|
+
GRPC_CHECK_EQ(ep_impl->write_cb, nullptr);
|
255
255
|
ep_impl->write_cb = cb;
|
256
256
|
ep_impl->write_slices = slices;
|
257
257
|
EP_REF(ep_impl, "write");
|
@@ -30,7 +30,6 @@
|
|
30
30
|
|
31
31
|
#include <string>
|
32
32
|
|
33
|
-
#include "absl/log/check.h"
|
34
33
|
#include "absl/strings/str_cat.h"
|
35
34
|
#include "src/core/config/core_configuration.h"
|
36
35
|
#include "src/core/lib/event_engine/channel_args_endpoint_config.h"
|
@@ -44,6 +43,7 @@
|
|
44
43
|
#include "src/core/lib/iomgr/tcp_posix.h"
|
45
44
|
#include "src/core/lib/iomgr/unix_sockets_posix.h"
|
46
45
|
#include "src/core/util/crash.h"
|
46
|
+
#include "src/core/util/grpc_check.h"
|
47
47
|
|
48
48
|
namespace {
|
49
49
|
using grpc_event_engine::experimental::ChannelArgsEndpointConfig;
|
@@ -56,11 +56,11 @@ void create_sockets(int sv[2]) {
|
|
56
56
|
int flags;
|
57
57
|
grpc_create_socketpair_if_unix(sv);
|
58
58
|
flags = fcntl(sv[0], F_GETFL, 0);
|
59
|
-
|
59
|
+
GRPC_CHECK_EQ(fcntl(sv[0], F_SETFL, flags | O_NONBLOCK), 0);
|
60
60
|
flags = fcntl(sv[1], F_GETFL, 0);
|
61
|
-
|
62
|
-
|
63
|
-
|
61
|
+
GRPC_CHECK_EQ(fcntl(sv[1], F_SETFL, flags | O_NONBLOCK), 0);
|
62
|
+
GRPC_CHECK(grpc_set_socket_no_sigpipe_if_possible(sv[0]) == absl::OkStatus());
|
63
|
+
GRPC_CHECK(grpc_set_socket_no_sigpipe_if_possible(sv[1]) == absl::OkStatus());
|
64
64
|
}
|
65
65
|
|
66
66
|
} // namespace
|