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
@@ -31,7 +31,6 @@
|
|
31
31
|
#include <variant>
|
32
32
|
|
33
33
|
#include "absl/base/attributes.h"
|
34
|
-
#include "absl/log/check.h"
|
35
34
|
#include "absl/log/log.h"
|
36
35
|
#include "absl/status/status.h"
|
37
36
|
#include "absl/strings/match.h"
|
@@ -51,6 +50,7 @@
|
|
51
50
|
#include "src/core/telemetry/call_tracer.h"
|
52
51
|
#include "src/core/telemetry/stats.h"
|
53
52
|
#include "src/core/telemetry/stats_data.h"
|
53
|
+
#include "src/core/util/grpc_check.h"
|
54
54
|
#include "src/core/util/match.h"
|
55
55
|
|
56
56
|
// IWYU pragma: no_include <type_traits>
|
@@ -193,7 +193,7 @@ class HPackParser::Input {
|
|
193
193
|
std::optional<StringPrefix> ParseStringPrefix() {
|
194
194
|
auto cur = Next();
|
195
195
|
if (!cur.has_value()) {
|
196
|
-
|
196
|
+
GRPC_DCHECK(eof_error());
|
197
197
|
return {};
|
198
198
|
}
|
199
199
|
// Huffman if the top bit is 1
|
@@ -204,7 +204,7 @@ class HPackParser::Input {
|
|
204
204
|
// all ones ==> varint string length
|
205
205
|
auto v = ParseVarint(0x7f);
|
206
206
|
if (!v.has_value()) {
|
207
|
-
|
207
|
+
GRPC_DCHECK(eof_error());
|
208
208
|
return {};
|
209
209
|
}
|
210
210
|
strlen = *v;
|
@@ -231,7 +231,7 @@ class HPackParser::Input {
|
|
231
231
|
// Intended for errors that are specific to a stream and recoverable.
|
232
232
|
// Callers should ensure that any hpack table updates happen.
|
233
233
|
void SetErrorAndContinueParsing(HpackParseResult error) {
|
234
|
-
|
234
|
+
GRPC_DCHECK(error.stream_error());
|
235
235
|
SetError(std::move(error));
|
236
236
|
}
|
237
237
|
|
@@ -239,7 +239,7 @@ class HPackParser::Input {
|
|
239
239
|
// Intended for unrecoverable errors, with the expectation that they will
|
240
240
|
// close the connection on return to chttp2.
|
241
241
|
void SetErrorAndStopParsing(HpackParseResult error) {
|
242
|
-
|
242
|
+
GRPC_DCHECK(error.connection_error());
|
243
243
|
SetError(std::move(error));
|
244
244
|
begin_ = end_;
|
245
245
|
}
|
@@ -248,17 +248,17 @@ class HPackParser::Input {
|
|
248
248
|
// min_progress_size: how many bytes beyond the current frontier do we need to
|
249
249
|
// read prior to being able to get further in this parse.
|
250
250
|
void UnexpectedEOF(size_t min_progress_size) {
|
251
|
-
|
251
|
+
GRPC_CHECK_GT(min_progress_size, 0u);
|
252
252
|
if (eof_error()) return;
|
253
253
|
// Set min progress size, taking into account bytes parsed already but not
|
254
254
|
// consumed.
|
255
255
|
min_progress_size_ = min_progress_size + (begin_ - frontier_);
|
256
|
-
|
256
|
+
GRPC_DCHECK(eof_error());
|
257
257
|
}
|
258
258
|
|
259
259
|
// Update the frontier - signifies we've successfully parsed another element
|
260
260
|
void UpdateFrontier() {
|
261
|
-
|
261
|
+
GRPC_DCHECK_EQ(skip_bytes_, 0u);
|
262
262
|
frontier_ = begin_;
|
263
263
|
}
|
264
264
|
|
@@ -381,7 +381,7 @@ HPackParser::String::StringResult HPackParser::String::ParseUncompressed(
|
|
381
381
|
// Check there's enough bytes
|
382
382
|
if (input->remaining() < length) {
|
383
383
|
input->UnexpectedEOF(/*min_progress_size=*/length);
|
384
|
-
|
384
|
+
GRPC_DCHECK(input->eof_error());
|
385
385
|
return StringResult{HpackParseStatus::kEof, wire_size, String{}};
|
386
386
|
}
|
387
387
|
auto* refcount = input->slice_refcount();
|
@@ -601,7 +601,7 @@ class HPackParser::Parser {
|
|
601
601
|
|
602
602
|
private:
|
603
603
|
bool ParseTop() {
|
604
|
-
|
604
|
+
GRPC_DCHECK(state_.parse_state == ParseState::kTop);
|
605
605
|
auto cur = *input_->Next();
|
606
606
|
input_->ClearFieldError();
|
607
607
|
switch (cur >> 4) {
|
@@ -773,7 +773,7 @@ class HPackParser::Parser {
|
|
773
773
|
|
774
774
|
// Parse an index encoded key and a string encoded value
|
775
775
|
bool StartIdxKey(uint32_t index, bool add_to_table) {
|
776
|
-
|
776
|
+
GRPC_DCHECK(state_.parse_state == ParseState::kTop);
|
777
777
|
input_->UpdateFrontier();
|
778
778
|
const auto* elem = state_.hpack_table.Lookup(index);
|
779
779
|
if (GPR_UNLIKELY(elem == nullptr)) {
|
@@ -789,14 +789,14 @@ class HPackParser::Parser {
|
|
789
789
|
|
790
790
|
// Parse a varint index encoded key and a string encoded value
|
791
791
|
bool StartVarIdxKey(uint32_t offset, bool add_to_table) {
|
792
|
-
|
792
|
+
GRPC_DCHECK(state_.parse_state == ParseState::kTop);
|
793
793
|
auto index = input_->ParseVarint(offset);
|
794
794
|
if (GPR_UNLIKELY(!index.has_value())) return false;
|
795
795
|
return StartIdxKey(*index, add_to_table);
|
796
796
|
}
|
797
797
|
|
798
798
|
bool StartParseLiteralKey(bool add_to_table) {
|
799
|
-
|
799
|
+
GRPC_DCHECK(state_.parse_state == ParseState::kTop);
|
800
800
|
state_.add_to_table = add_to_table;
|
801
801
|
state_.parse_state = ParseState::kParsingKeyLength;
|
802
802
|
input_->UpdateFrontier();
|
@@ -831,7 +831,7 @@ class HPackParser::Parser {
|
|
831
831
|
}
|
832
832
|
|
833
833
|
bool ParseKeyLength() {
|
834
|
-
|
834
|
+
GRPC_DCHECK(state_.parse_state == ParseState::kParsingKeyLength);
|
835
835
|
auto pfx = input_->ParseStringPrefix();
|
836
836
|
if (!pfx.has_value()) return false;
|
837
837
|
state_.is_string_huff_compressed = pfx->huff;
|
@@ -852,14 +852,14 @@ class HPackParser::Parser {
|
|
852
852
|
}
|
853
853
|
|
854
854
|
bool ParseKeyBody() {
|
855
|
-
|
855
|
+
GRPC_DCHECK(state_.parse_state == ParseState::kParsingKeyBody);
|
856
856
|
auto key = String::Parse(input_, state_.is_string_huff_compressed,
|
857
857
|
state_.string_length);
|
858
858
|
switch (key.status) {
|
859
859
|
case HpackParseStatus::kOk:
|
860
860
|
break;
|
861
861
|
case HpackParseStatus::kEof:
|
862
|
-
|
862
|
+
GRPC_DCHECK(input_->eof_error());
|
863
863
|
return false;
|
864
864
|
default:
|
865
865
|
input_->SetErrorAndStopParsing(
|
@@ -899,7 +899,7 @@ class HPackParser::Parser {
|
|
899
899
|
}
|
900
900
|
|
901
901
|
bool SkipKeyBody() {
|
902
|
-
|
902
|
+
GRPC_DCHECK(state_.parse_state == ParseState::kSkippingKeyBody);
|
903
903
|
if (!SkipStringBody()) return false;
|
904
904
|
input_->UpdateFrontier();
|
905
905
|
state_.parse_state = ParseState::kSkippingValueLength;
|
@@ -907,7 +907,7 @@ class HPackParser::Parser {
|
|
907
907
|
}
|
908
908
|
|
909
909
|
bool SkipValueLength() {
|
910
|
-
|
910
|
+
GRPC_DCHECK(state_.parse_state == ParseState::kSkippingValueLength);
|
911
911
|
auto pfx = input_->ParseStringPrefix();
|
912
912
|
if (!pfx.has_value()) return false;
|
913
913
|
state_.string_length = pfx->length;
|
@@ -917,7 +917,7 @@ class HPackParser::Parser {
|
|
917
917
|
}
|
918
918
|
|
919
919
|
bool SkipValueBody() {
|
920
|
-
|
920
|
+
GRPC_DCHECK(state_.parse_state == ParseState::kSkippingValueBody);
|
921
921
|
if (!SkipStringBody()) return false;
|
922
922
|
input_->UpdateFrontier();
|
923
923
|
state_.parse_state = ParseState::kTop;
|
@@ -928,7 +928,7 @@ class HPackParser::Parser {
|
|
928
928
|
}
|
929
929
|
|
930
930
|
bool ParseValueLength() {
|
931
|
-
|
931
|
+
GRPC_DCHECK(state_.parse_state == ParseState::kParsingValueLength);
|
932
932
|
auto pfx = input_->ParseStringPrefix();
|
933
933
|
if (!pfx.has_value()) return false;
|
934
934
|
state_.is_string_huff_compressed = pfx->huff;
|
@@ -952,7 +952,7 @@ class HPackParser::Parser {
|
|
952
952
|
}
|
953
953
|
|
954
954
|
bool ParseValueBody() {
|
955
|
-
|
955
|
+
GRPC_DCHECK(state_.parse_state == ParseState::kParsingValueBody);
|
956
956
|
auto value =
|
957
957
|
state_.is_binary_header
|
958
958
|
? String::ParseBinary(input_, state_.is_string_huff_compressed,
|
@@ -980,7 +980,7 @@ class HPackParser::Parser {
|
|
980
980
|
case HpackParseStatus::kOk:
|
981
981
|
break;
|
982
982
|
case HpackParseStatus::kEof:
|
983
|
-
|
983
|
+
GRPC_DCHECK(input_->eof_error());
|
984
984
|
return false;
|
985
985
|
default: {
|
986
986
|
auto result =
|
@@ -1106,9 +1106,9 @@ void HPackParser::BeginFrame(grpc_metadata_batch* metadata_buffer,
|
|
1106
1106
|
log_info_ = log_info;
|
1107
1107
|
}
|
1108
1108
|
|
1109
|
-
grpc_error_handle HPackParser::Parse(
|
1110
|
-
|
1111
|
-
|
1109
|
+
grpc_error_handle HPackParser::Parse(const grpc_slice& slice, bool is_last,
|
1110
|
+
absl::BitGenRef bitsrc,
|
1111
|
+
CallSpan* call_tracer) {
|
1112
1112
|
if (GPR_UNLIKELY(!unparsed_bytes_.empty())) {
|
1113
1113
|
unparsed_bytes_.insert(unparsed_bytes_.end(), GRPC_SLICE_START_PTR(slice),
|
1114
1114
|
GRPC_SLICE_END_PTR(slice));
|
@@ -1129,8 +1129,8 @@ grpc_error_handle HPackParser::Parse(
|
|
1129
1129
|
is_last, call_tracer);
|
1130
1130
|
}
|
1131
1131
|
|
1132
|
-
grpc_error_handle HPackParser::ParseInput(
|
1133
|
-
|
1132
|
+
grpc_error_handle HPackParser::ParseInput(Input input, bool is_last,
|
1133
|
+
CallSpan* call_tracer) {
|
1134
1134
|
ParseInputInner(&input);
|
1135
1135
|
if (is_last && is_boundary()) {
|
1136
1136
|
if (state_.metadata_early_detection.Reject(state_.frame_length,
|
@@ -104,8 +104,7 @@ class HPackParser {
|
|
104
104
|
void StopBufferingFrame() { metadata_buffer_ = nullptr; }
|
105
105
|
// Parse one slice worth of data
|
106
106
|
grpc_error_handle Parse(const grpc_slice& slice, bool is_last,
|
107
|
-
absl::BitGenRef bitsrc,
|
108
|
-
CallTracerAnnotationInterface* call_tracer);
|
107
|
+
absl::BitGenRef bitsrc, CallSpan* call_tracer);
|
109
108
|
// Reset state ready for the next BeginFrame
|
110
109
|
void FinishFrame();
|
111
110
|
|
@@ -257,7 +256,7 @@ class HPackParser {
|
|
257
256
|
};
|
258
257
|
|
259
258
|
grpc_error_handle ParseInput(Input input, bool is_last,
|
260
|
-
|
259
|
+
CallSpan* call_tracer);
|
261
260
|
void ParseInputInner(Input* input);
|
262
261
|
GPR_ATTRIBUTE_NOINLINE
|
263
262
|
void HandleMetadataSoftSizeLimitExceeded(Input* input);
|
@@ -26,7 +26,6 @@
|
|
26
26
|
#include <cstring>
|
27
27
|
#include <utility>
|
28
28
|
|
29
|
-
#include "absl/log/check.h"
|
30
29
|
#include "absl/log/log.h"
|
31
30
|
#include "absl/status/status.h"
|
32
31
|
#include "absl/strings/str_cat.h"
|
@@ -37,11 +36,12 @@
|
|
37
36
|
#include "src/core/lib/debug/trace.h"
|
38
37
|
#include "src/core/lib/slice/slice.h"
|
39
38
|
#include "src/core/telemetry/stats.h"
|
39
|
+
#include "src/core/util/grpc_check.h"
|
40
40
|
|
41
41
|
namespace grpc_core {
|
42
42
|
|
43
43
|
void HPackTable::MementoRingBuffer::Put(Memento m) {
|
44
|
-
|
44
|
+
GRPC_CHECK_LT(num_entries_, max_entries_);
|
45
45
|
if (entries_.size() < max_entries_) {
|
46
46
|
++num_entries_;
|
47
47
|
return entries_.push_back(std::move(m));
|
@@ -56,7 +56,7 @@ void HPackTable::MementoRingBuffer::Put(Memento m) {
|
|
56
56
|
}
|
57
57
|
|
58
58
|
auto HPackTable::MementoRingBuffer::PopOne() -> Memento {
|
59
|
-
|
59
|
+
GRPC_CHECK_GT(num_entries_, 0u);
|
60
60
|
size_t index = first_entry_ % max_entries_;
|
61
61
|
if (index == timestamp_index_) {
|
62
62
|
http2_stats_collector_->IncrementHttp2HpackEntryLifetime(
|
@@ -121,7 +121,7 @@ HPackTable::MementoRingBuffer::~MementoRingBuffer() {
|
|
121
121
|
// Evict one element from the table
|
122
122
|
void HPackTable::EvictOne() {
|
123
123
|
auto first_entry = entries_.PopOne();
|
124
|
-
|
124
|
+
GRPC_CHECK(first_entry.md.transport_size() <= mem_used_);
|
125
125
|
mem_used_ -= first_entry.md.transport_size();
|
126
126
|
}
|
127
127
|
|