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
@@ -48,13 +48,6 @@
|
|
48
48
|
#include "src/core/lib/event_engine/posix_engine/tcp_socket_utils.h"
|
49
49
|
#endif // GRPC_POSIX_SOCKET_TCP
|
50
50
|
|
51
|
-
#if defined(GRPC_POSIX_SOCKET_TCP) && \
|
52
|
-
!defined(GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER)
|
53
|
-
#define GRPC_PLATFORM_SUPPORTS_POSIX_POLLING true
|
54
|
-
#else
|
55
|
-
#define GRPC_PLATFORM_SUPPORTS_POSIX_POLLING false
|
56
|
-
#endif
|
57
|
-
|
58
51
|
namespace grpc_event_engine::experimental {
|
59
52
|
|
60
53
|
#ifdef GRPC_POSIX_SOCKET_TCP
|
@@ -127,10 +120,10 @@ class PosixEventEngine final : public PosixEventEngineWithFdSupport {
|
|
127
120
|
|
128
121
|
~PosixEventEngine() override;
|
129
122
|
|
130
|
-
std::unique_ptr<EventEngine::Endpoint
|
131
|
-
|
132
|
-
|
133
|
-
std::unique_ptr<EventEngine::Endpoint
|
123
|
+
absl::StatusOr<std::unique_ptr<EventEngine::Endpoint>>
|
124
|
+
CreatePosixEndpointFromFd(int fd, const EndpointConfig& config,
|
125
|
+
MemoryAllocator memory_allocator) override;
|
126
|
+
absl::StatusOr<std::unique_ptr<EventEngine::Endpoint>> CreateEndpointFromFd(
|
134
127
|
int fd, const EndpointConfig& config) override;
|
135
128
|
|
136
129
|
ConnectionHandle CreateEndpointFromUnconnectedFd(
|
@@ -194,19 +187,14 @@ class PosixEventEngine final : public PosixEventEngineWithFdSupport {
|
|
194
187
|
|
195
188
|
PosixEventEngine();
|
196
189
|
|
197
|
-
#
|
190
|
+
#ifdef GRPC_POSIX_SOCKET_TCP
|
198
191
|
// Constructs an EventEngine which has a shared ownership of the poller. Use
|
199
192
|
// the MakeTestOnlyPosixEventEngine static method to call this. Its expected
|
200
193
|
// to be used only in tests.
|
201
194
|
explicit PosixEventEngine(
|
202
195
|
std::shared_ptr<grpc_event_engine::experimental::PosixEventPoller>
|
203
196
|
poller);
|
204
|
-
#endif // GRPC_PLATFORM_SUPPORTS_POSIX_POLLING
|
205
197
|
|
206
|
-
EventEngine::TaskHandle RunAfterInternal(Duration when,
|
207
|
-
absl::AnyInvocable<void()> cb);
|
208
|
-
|
209
|
-
#ifdef GRPC_POSIX_SOCKET_TCP
|
210
198
|
friend class AsyncConnect;
|
211
199
|
struct ConnectionShard {
|
212
200
|
grpc_core::Mutex mu;
|
@@ -214,40 +202,8 @@ class PosixEventEngine final : public PosixEventEngineWithFdSupport {
|
|
214
202
|
ABSL_GUARDED_BY(&mu);
|
215
203
|
};
|
216
204
|
|
217
|
-
ConnectionHandle CreateEndpointFromUnconnectedFdInternal(
|
218
|
-
const FileDescriptor& fd, EventEngine::OnConnectCallback on_connect,
|
219
|
-
const EventEngine::ResolvedAddress& addr, const PosixTcpOptions& options,
|
220
|
-
MemoryAllocator memory_allocator, EventEngine::Duration timeout);
|
221
|
-
|
222
205
|
void OnConnectFinishInternal(int connection_handle);
|
223
206
|
|
224
|
-
std::vector<ConnectionShard> connection_shards_;
|
225
|
-
std::atomic<int64_t> last_connection_id_{1};
|
226
|
-
|
227
|
-
#endif // GRPC_POSIX_SOCKET_TCP
|
228
|
-
|
229
|
-
#if GRPC_ENABLE_FORK_SUPPORT
|
230
|
-
void AfterForkInChild();
|
231
|
-
#endif
|
232
|
-
|
233
|
-
grpc_core::Mutex mu_;
|
234
|
-
TaskHandleSet known_handles_ ABSL_GUARDED_BY(mu_);
|
235
|
-
std::atomic<intptr_t> aba_token_{0};
|
236
|
-
#if GRPC_ARES == 1 && defined(GRPC_POSIX_SOCKET_ARES_EV_DRIVER)
|
237
|
-
|
238
|
-
void RegisterAresResolverForFork(AresResolver* resolver);
|
239
|
-
|
240
|
-
#if GRPC_ENABLE_FORK_SUPPORT
|
241
|
-
// A separate mutex to avoid deadlocks.
|
242
|
-
grpc_core::Mutex resolver_handles_mu_;
|
243
|
-
absl::InlinedVector<std::weak_ptr<AresResolver::ReinitHandle>, 16>
|
244
|
-
resolver_handles_ ABSL_GUARDED_BY(resolver_handles_mu_);
|
245
|
-
#endif // GRPC_ENABLE_FORK_SUPPORT
|
246
|
-
#endif // GRPC_ARES == 1 && defined(GRPC_POSIX_SOCKET_ARES_EV_DRIVER)
|
247
|
-
std::shared_ptr<ThreadPool> executor_;
|
248
|
-
|
249
|
-
#if GRPC_PLATFORM_SUPPORTS_POSIX_POLLING
|
250
|
-
|
251
207
|
// RAII wrapper for a polling cycle. Starts a new one in ctor and stops
|
252
208
|
// in dtor.
|
253
209
|
class PollingCycle {
|
@@ -272,18 +228,41 @@ class PosixEventEngine final : public PosixEventEngineWithFdSupport {
|
|
272
228
|
void SchedulePoller();
|
273
229
|
void ResetPollCycle();
|
274
230
|
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
231
|
+
ConnectionHandle CreateEndpointFromUnconnectedFdInternal(
|
232
|
+
const FileDescriptor& fd, EventEngine::OnConnectCallback on_connect,
|
233
|
+
const EventEngine::ResolvedAddress& addr, const PosixTcpOptions& options,
|
234
|
+
MemoryAllocator memory_allocator, EventEngine::Duration timeout);
|
279
235
|
|
236
|
+
std::vector<ConnectionShard> connection_shards_;
|
237
|
+
std::atomic<int64_t> last_connection_id_{1};
|
280
238
|
std::shared_ptr<grpc_event_engine::experimental::PosixEventPoller> poller_;
|
281
239
|
|
282
240
|
// Ensures there's ever only one of these.
|
283
241
|
std::optional<PollingCycle> polling_cycle_ ABSL_GUARDED_BY(&mu_);
|
242
|
+
#endif // GRPC_POSIX_SOCKET_TCP
|
284
243
|
|
285
|
-
|
244
|
+
EventEngine::TaskHandle RunAfterInternal(Duration when,
|
245
|
+
absl::AnyInvocable<void()> cb);
|
286
246
|
|
247
|
+
#if GRPC_ENABLE_FORK_SUPPORT
|
248
|
+
void AfterForkInChild();
|
249
|
+
#endif
|
250
|
+
|
251
|
+
grpc_core::Mutex mu_;
|
252
|
+
TaskHandleSet known_handles_ ABSL_GUARDED_BY(mu_);
|
253
|
+
std::atomic<intptr_t> aba_token_{0};
|
254
|
+
#if GRPC_ARES == 1 && defined(GRPC_POSIX_SOCKET_ARES_EV_DRIVER)
|
255
|
+
|
256
|
+
void RegisterAresResolverForFork(AresResolver* resolver);
|
257
|
+
|
258
|
+
#if GRPC_ENABLE_FORK_SUPPORT
|
259
|
+
// A separate mutex to avoid deadlocks.
|
260
|
+
grpc_core::Mutex resolver_handles_mu_;
|
261
|
+
absl::InlinedVector<std::weak_ptr<AresResolver::ReinitHandle>, 16>
|
262
|
+
resolver_handles_ ABSL_GUARDED_BY(resolver_handles_mu_);
|
263
|
+
#endif // GRPC_ENABLE_FORK_SUPPORT
|
264
|
+
#endif // GRPC_ARES == 1 && defined(GRPC_POSIX_SOCKET_ARES_EV_DRIVER)
|
265
|
+
std::shared_ptr<ThreadPool> executor_;
|
287
266
|
std::shared_ptr<TimerManager> timer_manager_;
|
288
267
|
};
|
289
268
|
|
@@ -33,7 +33,6 @@
|
|
33
33
|
#include <utility>
|
34
34
|
|
35
35
|
#include "absl/functional/any_invocable.h"
|
36
|
-
#include "absl/log/check.h"
|
37
36
|
#include "absl/log/log.h"
|
38
37
|
#include "absl/status/status.h"
|
39
38
|
#include "absl/strings/str_cat.h"
|
@@ -44,7 +43,9 @@
|
|
44
43
|
#include "src/core/lib/event_engine/posix_engine/posix_interface.h"
|
45
44
|
#include "src/core/lib/event_engine/posix_engine/tcp_socket_utils.h"
|
46
45
|
#include "src/core/lib/event_engine/tcp_socket_utils.h"
|
46
|
+
#include "src/core/lib/iomgr/socket_mutator.h"
|
47
47
|
#include "src/core/net/socket_mutator.h"
|
48
|
+
#include "src/core/util/grpc_check.h"
|
48
49
|
#include "src/core/util/status_helper.h"
|
49
50
|
#include "src/core/util/strerror.h"
|
50
51
|
#include "src/core/util/time.h"
|
@@ -77,7 +78,7 @@ absl::StatusOr<int> PosixEngineListenerImpl::Bind(
|
|
77
78
|
EventEngine::ResolvedAddress res_addr = addr;
|
78
79
|
EventEngine::ResolvedAddress addr6_v4mapped;
|
79
80
|
int requested_port = ResolvedAddressGetPort(res_addr);
|
80
|
-
|
81
|
+
GRPC_CHECK(addr.size() <= EventEngine::ResolvedAddress::MAX_SIZE_BYTES);
|
81
82
|
UnlinkIfUnixDomainSocket(addr);
|
82
83
|
|
83
84
|
EventEnginePosixInterface& posix_interface = poller_->posix_interface();
|
@@ -307,7 +308,7 @@ void PosixEngineListenerImpl::AsyncConnectionAcceptor::Shutdown() {
|
|
307
308
|
absl::Status PosixEngineListenerImpl::Start() {
|
308
309
|
grpc_core::MutexLock lock(&this->mu_);
|
309
310
|
// Start each asynchronous acceptor.
|
310
|
-
|
311
|
+
GRPC_CHECK(!this->started_);
|
311
312
|
this->started_ = true;
|
312
313
|
for (auto it = acceptors_.begin(); it != acceptors_.end(); it++) {
|
313
314
|
(*it)->Start();
|
@@ -24,7 +24,6 @@
|
|
24
24
|
#include <string>
|
25
25
|
|
26
26
|
#include "absl/cleanup/cleanup.h"
|
27
|
-
#include "absl/log/check.h"
|
28
27
|
#include "absl/log/log.h"
|
29
28
|
#include "absl/status/status.h"
|
30
29
|
#include "absl/strings/str_cat.h"
|
@@ -33,6 +32,7 @@
|
|
33
32
|
#include "src/core/lib/event_engine/tcp_socket_utils.h"
|
34
33
|
#include "src/core/lib/iomgr/port.h"
|
35
34
|
#include "src/core/util/crash.h" // IWYU pragma: keep
|
35
|
+
#include "src/core/util/grpc_check.h"
|
36
36
|
#include "src/core/util/status_helper.h"
|
37
37
|
|
38
38
|
#ifdef GRPC_POSIX_SOCKET_UTILS_COMMON
|
@@ -68,7 +68,7 @@ absl::Status PrepareSocket(EventEnginePosixInterface* posix_interface,
|
|
68
68
|
const PosixTcpOptions& options,
|
69
69
|
ListenerSocket& socket) {
|
70
70
|
FileDescriptor fd = socket.sock;
|
71
|
-
|
71
|
+
GRPC_CHECK(fd.ready());
|
72
72
|
bool close_fd = true;
|
73
73
|
socket.port = 0;
|
74
74
|
auto sock_cleanup =
|
@@ -110,7 +110,7 @@ absl::StatusOr<ListenerSocket> CreateAndPrepareListenerSocket(
|
|
110
110
|
socket.addr = addr;
|
111
111
|
}
|
112
112
|
GRPC_RETURN_IF_ERROR(PrepareSocket(posix_interface, options, socket));
|
113
|
-
|
113
|
+
GRPC_CHECK_GT(socket.port, 0);
|
114
114
|
return socket;
|
115
115
|
}
|
116
116
|
|
@@ -269,8 +269,8 @@ absl::StatusOr<int> ListenerContainerAddWildcardAddresses(
|
|
269
269
|
}
|
270
270
|
return assigned_port;
|
271
271
|
} else {
|
272
|
-
|
273
|
-
|
272
|
+
GRPC_CHECK(!v6_sock.ok());
|
273
|
+
GRPC_CHECK(!v4_sock.ok());
|
274
274
|
return absl::FailedPreconditionError(absl::StrCat(
|
275
275
|
"Failed to add any wildcard listeners: ", v6_sock.status().message(),
|
276
276
|
v4_sock.status().message()));
|
@@ -23,10 +23,10 @@
|
|
23
23
|
#include <string>
|
24
24
|
#include <utility>
|
25
25
|
|
26
|
-
#include "absl/log/check.h"
|
27
26
|
#include "absl/status/status.h"
|
28
27
|
#include "src/core/lib/event_engine/posix_engine/file_descriptor_collection.h"
|
29
28
|
#include "src/core/lib/event_engine/posix_engine/tcp_socket_utils.h"
|
29
|
+
#include "src/core/util/grpc_check.h"
|
30
30
|
|
31
31
|
namespace grpc_event_engine::experimental {
|
32
32
|
|
@@ -25,10 +25,10 @@
|
|
25
25
|
#include <optional>
|
26
26
|
#include <utility>
|
27
27
|
|
28
|
-
#include "absl/log/check.h"
|
29
28
|
#include "absl/log/log.h"
|
30
29
|
#include "absl/time/time.h"
|
31
30
|
#include "src/core/lib/debug/trace.h"
|
31
|
+
#include "src/core/util/grpc_check.h"
|
32
32
|
|
33
33
|
static thread_local bool g_timer_thread;
|
34
34
|
|
@@ -65,7 +65,7 @@ void TimerManager::MainLoop() {
|
|
65
65
|
grpc_core::Timestamp next = grpc_core::Timestamp::InfFuture();
|
66
66
|
std::optional<std::vector<experimental::EventEngine::Closure*>> check_result =
|
67
67
|
timer_list_->TimerCheck(&next);
|
68
|
-
|
68
|
+
GRPC_CHECK(check_result.has_value())
|
69
69
|
<< "ERROR: More than one MainLoop is running.";
|
70
70
|
bool timers_found = !check_result->empty();
|
71
71
|
if (timers_found) {
|
@@ -126,7 +126,7 @@ void TimerManager::Kick() {
|
|
126
126
|
|
127
127
|
void TimerManager::RestartPostFork() {
|
128
128
|
grpc_core::MutexLock lock(&mu_);
|
129
|
-
|
129
|
+
GRPC_CHECK(state_ != TimerManager::State::kRunning);
|
130
130
|
GRPC_TRACE_VLOG(timer, 2)
|
131
131
|
<< "TimerManager::" << this << " restarting after suspend";
|
132
132
|
if (state_ == TimerManager::State::kSuspended) {
|
@@ -18,8 +18,8 @@
|
|
18
18
|
#include <grpc/support/port_platform.h>
|
19
19
|
#include <string.h>
|
20
20
|
|
21
|
-
#include "absl/log/check.h"
|
22
21
|
#include "src/core/lib/event_engine/resolved_address_internal.h"
|
22
|
+
#include "src/core/util/grpc_check.h"
|
23
23
|
|
24
24
|
// IWYU pragma: no_include <sys/socket.h>
|
25
25
|
|
@@ -28,8 +28,8 @@ namespace grpc_event_engine::experimental {
|
|
28
28
|
EventEngine::ResolvedAddress::ResolvedAddress(const sockaddr* address,
|
29
29
|
socklen_t size)
|
30
30
|
: size_(size) {
|
31
|
-
|
32
|
-
|
31
|
+
GRPC_DCHECK_GE(size, 0u);
|
32
|
+
GRPC_CHECK(static_cast<size_t>(size) <= sizeof(address_));
|
33
33
|
memcpy(&address_, address, size);
|
34
34
|
}
|
35
35
|
|
@@ -22,17 +22,13 @@
|
|
22
22
|
namespace grpc_event_engine::experimental {
|
23
23
|
|
24
24
|
bool UseEventEngineClient() {
|
25
|
-
|
26
|
-
|
27
|
-
#endif
|
28
|
-
return grpc_core::IsEventEngineClientEnabled();
|
25
|
+
return !EventEngineExperimentDisabledForPython() &&
|
26
|
+
grpc_core::IsEventEngineClientEnabled();
|
29
27
|
}
|
30
28
|
|
31
29
|
bool UseEventEngineListener() {
|
32
|
-
|
33
|
-
|
34
|
-
#endif
|
35
|
-
return grpc_core::IsEventEngineListenerEnabled();
|
30
|
+
return !EventEngineExperimentDisabledForPython() &&
|
31
|
+
grpc_core::IsEventEngineListenerEnabled();
|
36
32
|
}
|
37
33
|
|
38
34
|
bool UsePollsetAlternative() {
|
@@ -40,10 +36,11 @@ bool UsePollsetAlternative() {
|
|
40
36
|
grpc_core::IsPollsetAlternativeEnabled();
|
41
37
|
}
|
42
38
|
|
43
|
-
// Returns true if
|
39
|
+
// Returns true if the poller is disabled by build configuration or experiment
|
40
|
+
// flags.
|
44
41
|
bool EventEngineExperimentDisabledForPython() {
|
45
|
-
#ifdef
|
46
|
-
return
|
42
|
+
#ifdef GRPC_PYTHON_BUILD
|
43
|
+
return !grpc_core::IsEventEnginePollerForPythonEnabled();
|
47
44
|
#else
|
48
45
|
return false;
|
49
46
|
#endif
|
@@ -35,7 +35,8 @@ bool UseEventEngineListener();
|
|
35
35
|
// may disable the poller in some builds.
|
36
36
|
bool UsePollsetAlternative();
|
37
37
|
|
38
|
-
// Returns true if
|
38
|
+
// Returns true if the poller is disabled by build configuration or experiment
|
39
|
+
// flags.
|
39
40
|
bool EventEngineExperimentDisabledForPython();
|
40
41
|
|
41
42
|
} // namespace grpc_event_engine::experimental
|
@@ -22,9 +22,9 @@
|
|
22
22
|
#include <string>
|
23
23
|
#include <utility>
|
24
24
|
|
25
|
-
#include "absl/log/check.h"
|
26
25
|
#include "src/core/lib/slice/slice_internal.h"
|
27
26
|
#include "src/core/lib/slice/slice_refcount.h"
|
27
|
+
#include "src/core/util/grpc_check.h"
|
28
28
|
|
29
29
|
namespace grpc_event_engine::experimental {
|
30
30
|
|
@@ -46,7 +46,7 @@ Slice CopyConstructors<Slice>::FromCopiedString(std::string s) {
|
|
46
46
|
|
47
47
|
MutableSlice::MutableSlice(const grpc_slice& slice)
|
48
48
|
: slice_detail::BaseSlice(slice) {
|
49
|
-
|
49
|
+
GRPC_DCHECK(slice.refcount == nullptr || slice.refcount->IsUnique());
|
50
50
|
}
|
51
51
|
|
52
52
|
MutableSlice::~MutableSlice() { grpc_core::CSliceUnref(c_slice()); }
|
@@ -53,12 +53,12 @@
|
|
53
53
|
|
54
54
|
#include <utility>
|
55
55
|
|
56
|
-
#include "absl/log/check.h"
|
57
56
|
#include "absl/log/log.h"
|
58
57
|
#include "absl/status/status.h"
|
59
58
|
#include "absl/strings/str_cat.h"
|
60
59
|
#include "absl/strings/str_format.h"
|
61
60
|
#include "src/core/lib/iomgr/resolved_address.h"
|
61
|
+
#include "src/core/util/grpc_check.h"
|
62
62
|
#include "src/core/util/host_port.h"
|
63
63
|
#include "src/core/util/status_helper.h"
|
64
64
|
#include "src/core/util/uri.h"
|
@@ -216,7 +216,7 @@ bool ResolvedAddressIsV4Mapped(
|
|
216
216
|
bool ResolvedAddressToV4Mapped(
|
217
217
|
const EventEngine::ResolvedAddress& resolved_addr,
|
218
218
|
EventEngine::ResolvedAddress* resolved_addr6_out) {
|
219
|
-
|
219
|
+
GRPC_CHECK(&resolved_addr != resolved_addr6_out);
|
220
220
|
const sockaddr* addr = resolved_addr.address();
|
221
221
|
sockaddr_in6* addr6_out = const_cast<sockaddr_in6*>(
|
222
222
|
reinterpret_cast<const sockaddr_in6*>(resolved_addr6_out->address()));
|
@@ -238,8 +238,8 @@ EventEngine::ResolvedAddress ResolvedAddressMakeWild6(int port) {
|
|
238
238
|
EventEngine::ResolvedAddress resolved_wild_out;
|
239
239
|
sockaddr_in6* wild_out = reinterpret_cast<sockaddr_in6*>(
|
240
240
|
const_cast<sockaddr*>(resolved_wild_out.address()));
|
241
|
-
|
242
|
-
|
241
|
+
GRPC_CHECK_GE(port, 0);
|
242
|
+
GRPC_CHECK_LT(port, 65536);
|
243
243
|
memset(wild_out, 0, sizeof(sockaddr_in6));
|
244
244
|
wild_out->sin6_family = AF_INET6;
|
245
245
|
wild_out->sin6_port = htons(static_cast<uint16_t>(port));
|
@@ -252,8 +252,8 @@ EventEngine::ResolvedAddress ResolvedAddressMakeWild4(int port) {
|
|
252
252
|
EventEngine::ResolvedAddress resolved_wild_out;
|
253
253
|
sockaddr_in* wild_out = reinterpret_cast<sockaddr_in*>(
|
254
254
|
const_cast<sockaddr*>(resolved_wild_out.address()));
|
255
|
-
|
256
|
-
|
255
|
+
GRPC_CHECK_GE(port, 0);
|
256
|
+
GRPC_CHECK_LT(port, 65536);
|
257
257
|
memset(wild_out, 0, sizeof(sockaddr_in));
|
258
258
|
wild_out->sin_family = AF_INET;
|
259
259
|
wild_out->sin_port = htons(static_cast<uint16_t>(port));
|
@@ -289,14 +289,14 @@ void ResolvedAddressSetPort(EventEngine::ResolvedAddress& resolved_addr,
|
|
289
289
|
sockaddr* addr = const_cast<sockaddr*>(resolved_addr.address());
|
290
290
|
switch (addr->sa_family) {
|
291
291
|
case AF_INET:
|
292
|
-
|
293
|
-
|
292
|
+
GRPC_CHECK_GE(port, 0);
|
293
|
+
GRPC_CHECK_LT(port, 65536);
|
294
294
|
(reinterpret_cast<sockaddr_in*>(addr))->sin_port =
|
295
295
|
htons(static_cast<uint16_t>(port));
|
296
296
|
return;
|
297
297
|
case AF_INET6:
|
298
|
-
|
299
|
-
|
298
|
+
GRPC_CHECK_GE(port, 0);
|
299
|
+
GRPC_CHECK_LT(port, 65536);
|
300
300
|
(reinterpret_cast<sockaddr_in6*>(addr))->sin6_port =
|
301
301
|
htons(static_cast<uint16_t>(port));
|
302
302
|
return;
|
@@ -441,7 +441,7 @@ absl::StatusOr<EventEngine::ResolvedAddress> URIToResolvedAddress(
|
|
441
441
|
LOG(ERROR) << "Failed to parse URI. Error: " << uri.status();
|
442
442
|
}
|
443
443
|
GRPC_RETURN_IF_ERROR(uri.status());
|
444
|
-
|
444
|
+
GRPC_CHECK(grpc_parse_uri(*uri, &addr));
|
445
445
|
return EventEngine::ResolvedAddress(
|
446
446
|
reinterpret_cast<const sockaddr*>(addr.addr), addr.len);
|
447
447
|
}
|
@@ -29,7 +29,6 @@
|
|
29
29
|
#include <utility>
|
30
30
|
|
31
31
|
#include "absl/functional/any_invocable.h"
|
32
|
-
#include "absl/log/check.h"
|
33
32
|
#include "absl/log/log.h"
|
34
33
|
#include "absl/time/clock.h"
|
35
34
|
#include "absl/time/time.h"
|
@@ -42,6 +41,7 @@
|
|
42
41
|
#include "src/core/util/crash.h"
|
43
42
|
#include "src/core/util/env.h"
|
44
43
|
#include "src/core/util/examine_stack.h"
|
44
|
+
#include "src/core/util/grpc_check.h"
|
45
45
|
#include "src/core/util/thd.h"
|
46
46
|
#include "src/core/util/time.h"
|
47
47
|
|
@@ -180,7 +180,7 @@ WorkStealingThreadPool::WorkStealingThreadPool(size_t reserve_threads)
|
|
180
180
|
void WorkStealingThreadPool::Quiesce() { pool_->Quiesce(); }
|
181
181
|
|
182
182
|
WorkStealingThreadPool::~WorkStealingThreadPool() {
|
183
|
-
|
183
|
+
GRPC_CHECK(pool_->IsQuiesced());
|
184
184
|
}
|
185
185
|
|
186
186
|
void WorkStealingThreadPool::Run(absl::AnyInvocable<void()> callback) {
|
@@ -237,7 +237,7 @@ void WorkStealingThreadPool::WorkStealingThreadPoolImpl::Start() {
|
|
237
237
|
|
238
238
|
void WorkStealingThreadPool::WorkStealingThreadPoolImpl::Run(
|
239
239
|
EventEngine::Closure* closure) {
|
240
|
-
|
240
|
+
GRPC_CHECK(!IsQuiesced());
|
241
241
|
if (g_local_queue != nullptr && g_local_queue->owner() == this) {
|
242
242
|
g_local_queue->Add(closure);
|
243
243
|
} else {
|
@@ -279,7 +279,7 @@ void WorkStealingThreadPool::WorkStealingThreadPoolImpl::Quiesce() {
|
|
279
279
|
if (!threads_were_shut_down.ok() && g_log_verbose_failures) {
|
280
280
|
DumpStacksAndCrash();
|
281
281
|
}
|
282
|
-
|
282
|
+
GRPC_CHECK(queue_.Empty());
|
283
283
|
quiesced_.store(true, std::memory_order_relaxed);
|
284
284
|
grpc_core::MutexLock lock(&lifeguard_ptr_mu_);
|
285
285
|
lifeguard_.reset();
|
@@ -293,14 +293,14 @@ bool WorkStealingThreadPool::WorkStealingThreadPoolImpl::SetThrottled(
|
|
293
293
|
void WorkStealingThreadPool::WorkStealingThreadPoolImpl::SetShutdown(
|
294
294
|
bool is_shutdown) {
|
295
295
|
auto was_shutdown = shutdown_.exchange(is_shutdown);
|
296
|
-
|
296
|
+
GRPC_CHECK(is_shutdown != was_shutdown);
|
297
297
|
work_signal_.SignalAll();
|
298
298
|
}
|
299
299
|
|
300
300
|
void WorkStealingThreadPool::WorkStealingThreadPoolImpl::SetForking(
|
301
301
|
bool is_forking) {
|
302
302
|
auto was_forking = forking_.exchange(is_forking);
|
303
|
-
|
303
|
+
GRPC_CHECK(is_forking != was_forking);
|
304
304
|
}
|
305
305
|
|
306
306
|
bool WorkStealingThreadPool::WorkStealingThreadPoolImpl::IsForking() {
|
@@ -510,7 +510,7 @@ void WorkStealingThreadPool::ThreadState::ThreadBody() {
|
|
510
510
|
} else if (pool_->IsShutdown()) {
|
511
511
|
FinishDraining();
|
512
512
|
}
|
513
|
-
|
513
|
+
GRPC_CHECK(g_local_queue->Empty());
|
514
514
|
pool_->theft_registry()->Unenroll(g_local_queue);
|
515
515
|
delete g_local_queue;
|
516
516
|
if (g_log_verbose_failures) {
|