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
@@ -32,15 +32,17 @@
|
|
32
32
|
|
33
33
|
#include "absl/base/thread_annotations.h"
|
34
34
|
#include "absl/container/flat_hash_set.h"
|
35
|
-
#include "absl/log/check.h"
|
36
35
|
#include "absl/log/log.h"
|
37
36
|
#include "absl/strings/string_view.h"
|
38
37
|
#include "src/core/channelz/channelz.h"
|
38
|
+
#include "src/core/config/config_vars.h"
|
39
39
|
#include "src/core/lib/debug/trace.h"
|
40
40
|
#include "src/core/lib/experiments/experiments.h"
|
41
41
|
#include "src/core/lib/promise/activity.h"
|
42
42
|
#include "src/core/lib/promise/poll.h"
|
43
43
|
#include "src/core/lib/resource_quota/periodic_update.h"
|
44
|
+
#include "src/core/lib/resource_quota/telemetry.h"
|
45
|
+
#include "src/core/util/grpc_check.h"
|
44
46
|
#include "src/core/util/orphanable.h"
|
45
47
|
#include "src/core/util/ref_counted_ptr.h"
|
46
48
|
#include "src/core/util/sync.h"
|
@@ -134,7 +136,7 @@ class ReclaimerQueue {
|
|
134
136
|
explicit Handle(F reclaimer, std::shared_ptr<State> state)
|
135
137
|
: sweep_(new SweepFn<F>(std::move(reclaimer), std::move(state))) {}
|
136
138
|
~Handle() override {
|
137
|
-
|
139
|
+
GRPC_DCHECK_EQ(sweep_.load(std::memory_order_relaxed), nullptr);
|
138
140
|
}
|
139
141
|
|
140
142
|
Handle(const Handle&) = delete;
|
@@ -273,6 +275,11 @@ class PressureTracker {
|
|
273
275
|
std::atomic<double> report_{0.0};
|
274
276
|
PeriodicUpdate update_{Duration::Seconds(1)};
|
275
277
|
PressureController controller_{100, 3};
|
278
|
+
|
279
|
+
const double target_memory_pressure_ =
|
280
|
+
ConfigVars::Get().ExperimentalTargetMemoryPressure();
|
281
|
+
const double memory_pressure_threshold_ =
|
282
|
+
ConfigVars::Get().ExperimentalMemoryPressureThreshold();
|
276
283
|
};
|
277
284
|
} // namespace memory_quota_detail
|
278
285
|
|
@@ -284,7 +291,8 @@ static constexpr size_t kSmallAllocatorThreshold = 0.1 * 1024 * 1024;
|
|
284
291
|
|
285
292
|
class BasicMemoryQuota final
|
286
293
|
: public std::enable_shared_from_this<BasicMemoryQuota>,
|
287
|
-
public channelz::DataSource
|
294
|
+
public channelz::DataSource,
|
295
|
+
public GaugeProvider<ResourceQuotaDomain> {
|
288
296
|
public:
|
289
297
|
// Data about current memory pressure.
|
290
298
|
struct PressureInfo {
|
@@ -298,8 +306,9 @@ class BasicMemoryQuota final
|
|
298
306
|
};
|
299
307
|
|
300
308
|
explicit BasicMemoryQuota(
|
301
|
-
RefCountedPtr<channelz::ResourceQuotaNode> channelz_node
|
302
|
-
|
309
|
+
RefCountedPtr<channelz::ResourceQuotaNode> channelz_node,
|
310
|
+
InstrumentStorageRefPtr<ResourceQuotaDomain> telemetry_storage);
|
311
|
+
~BasicMemoryQuota();
|
303
312
|
|
304
313
|
// Start the reclamation activity.
|
305
314
|
void Start();
|
@@ -335,6 +344,12 @@ class BasicMemoryQuota final
|
|
335
344
|
|
336
345
|
void AddData(channelz::DataSink sink) override;
|
337
346
|
|
347
|
+
void PopulateGaugeData(GaugeSink<ResourceQuotaDomain>& sink) override;
|
348
|
+
|
349
|
+
InstrumentStorage<ResourceQuotaDomain>* telemetry_storage() const {
|
350
|
+
return telemetry_storage_.get();
|
351
|
+
}
|
352
|
+
|
338
353
|
private:
|
339
354
|
friend class ReclamationSweep;
|
340
355
|
class WaitForSweepPromise;
|
@@ -387,6 +402,7 @@ class BasicMemoryQuota final
|
|
387
402
|
std::atomic<uint64_t> reclamation_counter_{0};
|
388
403
|
// Memory pressure smoothing
|
389
404
|
memory_quota_detail::PressureTracker pressure_tracker_;
|
405
|
+
const InstrumentStorageRefPtr<ResourceQuotaDomain> telemetry_storage_;
|
390
406
|
};
|
391
407
|
|
392
408
|
// MemoryAllocatorImpl grants the owner the ability to allocate memory from an
|
@@ -440,7 +456,7 @@ class GrpcMemoryAllocatorImpl final : public EventEngineMemoryAllocatorImpl {
|
|
440
456
|
template <typename F>
|
441
457
|
void PostReclaimer(ReclamationPass pass, F fn) {
|
442
458
|
MutexLock lock(&reclaimer_mu_);
|
443
|
-
|
459
|
+
GRPC_CHECK(!shutdown_);
|
444
460
|
InsertReclaimer(static_cast<size_t>(pass), std::move(fn));
|
445
461
|
}
|
446
462
|
|
@@ -462,6 +478,10 @@ class GrpcMemoryAllocatorImpl final : public EventEngineMemoryAllocatorImpl {
|
|
462
478
|
|
463
479
|
void FillChannelzProperties(channelz::PropertyList& list);
|
464
480
|
|
481
|
+
InstrumentStorage<ResourceQuotaDomain>* telemetry_storage() const {
|
482
|
+
return memory_quota_->telemetry_storage();
|
483
|
+
}
|
484
|
+
|
465
485
|
private:
|
466
486
|
static constexpr size_t kMaxQuotaBufferSize = 1024 * 1024;
|
467
487
|
|
@@ -537,12 +557,23 @@ class MemoryOwner final : public MemoryAllocator {
|
|
537
557
|
// Is this object valid (ie has not been moved out of or reset)
|
538
558
|
bool is_valid() const { return impl() != nullptr; }
|
539
559
|
|
540
|
-
static double
|
560
|
+
static double memory_pressure_high_threshold_reject_new_streams() {
|
561
|
+
return 0.99;
|
562
|
+
}
|
563
|
+
|
564
|
+
static double memory_pressure_high_threshold_reject_new_connections() {
|
565
|
+
return 0.99;
|
566
|
+
}
|
541
567
|
|
542
|
-
// Return true if the controlled memory pressure is high
|
543
|
-
|
568
|
+
// Return true if the controlled memory pressure is high enough to reject new
|
569
|
+
// streams.
|
570
|
+
bool RejectNewStreamsUnderHighMemoryPressure() const {
|
544
571
|
return GetPressureInfo().pressure_control_value >
|
545
|
-
|
572
|
+
memory_pressure_high_threshold_reject_new_streams();
|
573
|
+
}
|
574
|
+
|
575
|
+
InstrumentStorage<ResourceQuotaDomain>* telemetry_storage() const {
|
576
|
+
return impl()->telemetry_storage();
|
546
577
|
}
|
547
578
|
|
548
579
|
private:
|
@@ -560,8 +591,9 @@ class MemoryQuota final
|
|
560
591
|
: public grpc_event_engine::experimental::MemoryAllocatorFactory {
|
561
592
|
public:
|
562
593
|
explicit MemoryQuota(RefCountedPtr<channelz::ResourceQuotaNode> channelz_node)
|
563
|
-
: memory_quota_(
|
564
|
-
std::
|
594
|
+
: memory_quota_(std::make_shared<BasicMemoryQuota>(
|
595
|
+
std::move(channelz_node),
|
596
|
+
ResourceQuotaDomain::GetStorage(channelz_node->name()))) {
|
565
597
|
memory_quota_->Start();
|
566
598
|
}
|
567
599
|
~MemoryQuota() override {
|
@@ -579,9 +611,11 @@ class MemoryQuota final
|
|
579
611
|
// Resize the quota to new_size.
|
580
612
|
void SetSize(size_t new_size) { memory_quota_->SetSize(new_size); }
|
581
613
|
|
582
|
-
|
614
|
+
// Return true if the controlled memory pressure is high enough to reject new
|
615
|
+
// connections.
|
616
|
+
bool RejectNewConnectionsUnderHighMemoryPressure() const {
|
583
617
|
return memory_quota_->GetPressureInfo().pressure_control_value >
|
584
|
-
MemoryOwner::
|
618
|
+
MemoryOwner::memory_pressure_high_threshold_reject_new_connections();
|
585
619
|
}
|
586
620
|
|
587
621
|
private:
|
@@ -597,8 +631,6 @@ inline MemoryQuotaRefPtr MakeMemoryQuota(
|
|
597
631
|
|
598
632
|
std::vector<std::shared_ptr<BasicMemoryQuota>> AllMemoryQuotas();
|
599
633
|
|
600
|
-
void SetContainerMemoryPressure(double pressure);
|
601
|
-
|
602
634
|
double ContainerMemoryPressure();
|
603
635
|
|
604
636
|
} // namespace grpc_core
|
@@ -0,0 +1,54 @@
|
|
1
|
+
// Copyright 2025 gRPC authors.
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#ifndef GRPC_SRC_CORE_LIB_RESOURCE_QUOTA_TELEMETRY_H
|
16
|
+
#define GRPC_SRC_CORE_LIB_RESOURCE_QUOTA_TELEMETRY_H
|
17
|
+
|
18
|
+
#include "src/core/telemetry/instrument.h"
|
19
|
+
|
20
|
+
namespace grpc_core {
|
21
|
+
|
22
|
+
class ResourceQuotaDomain final : public InstrumentDomain<ResourceQuotaDomain> {
|
23
|
+
public:
|
24
|
+
using Backend = HighContentionBackend;
|
25
|
+
static constexpr auto kLabels = Labels("grpc.resource_quota");
|
26
|
+
|
27
|
+
static inline const auto kCallsDropped = RegisterCounter(
|
28
|
+
"grpc.resource_quota.calls_dropped",
|
29
|
+
"EXPERIMENTAL. Number of calls dropped due to resource quota "
|
30
|
+
"exceeded",
|
31
|
+
"calls");
|
32
|
+
static inline const auto kCallsRejected = RegisterCounter(
|
33
|
+
"grpc.resource_quota.calls_rejected",
|
34
|
+
"EXPERIMENTAL. Number of calls rejected due to resource quota "
|
35
|
+
"exceeded",
|
36
|
+
"calls");
|
37
|
+
static inline const auto kConnectionsDropped = RegisterCounter(
|
38
|
+
"grpc.resource_quota.connections_dropped",
|
39
|
+
"EXPERIMENTAL. Number of connections dropped due to resource quota "
|
40
|
+
"exceeded",
|
41
|
+
"connections");
|
42
|
+
static inline const auto kInstantaneousMemoryPressure = RegisterDoubleGauge(
|
43
|
+
"grpc.resource_quota.instantaneous_memory_pressure",
|
44
|
+
"The current instantaneously measured memory pressure.", "ratio");
|
45
|
+
static inline const auto kMemoryPressureControlValue = RegisterDoubleGauge(
|
46
|
+
"grpc.resource_quota.memory_pressure_control_value",
|
47
|
+
"A control value that can be used to scale buffer sizes up or down to "
|
48
|
+
"adjust memory pressure to our target set point.",
|
49
|
+
"ratio");
|
50
|
+
};
|
51
|
+
|
52
|
+
} // namespace grpc_core
|
53
|
+
|
54
|
+
#endif // GRPC_SRC_CORE_LIB_RESOURCE_QUOTA_TELEMETRY_H
|
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
#include <grpc/support/port_platform.h>
|
18
18
|
|
19
|
-
#include "
|
19
|
+
#include "src/core/util/grpc_check.h"
|
20
20
|
|
21
21
|
namespace grpc_core {
|
22
22
|
|
@@ -38,7 +38,7 @@ bool ThreadQuota::Reserve(size_t num_threads) {
|
|
38
38
|
|
39
39
|
void ThreadQuota::Release(size_t num_threads) {
|
40
40
|
MutexLock lock(&mu_);
|
41
|
-
|
41
|
+
GRPC_CHECK(num_threads <= allocated_);
|
42
42
|
allocated_ -= num_threads;
|
43
43
|
}
|
44
44
|
|
@@ -0,0 +1,33 @@
|
|
1
|
+
// Copyright 2025 gRPC authors.
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#include "src/core/lib/resource_tracker/resource_tracker.h"
|
16
|
+
|
17
|
+
#include <atomic>
|
18
|
+
|
19
|
+
namespace grpc_core {
|
20
|
+
|
21
|
+
namespace {
|
22
|
+
std::atomic<ResourceTracker*> g_resource_tracker(nullptr);
|
23
|
+
} // namespace
|
24
|
+
|
25
|
+
ResourceTracker* ResourceTracker::Get() {
|
26
|
+
return g_resource_tracker.load(std::memory_order_acquire);
|
27
|
+
}
|
28
|
+
|
29
|
+
void ResourceTracker::Set(ResourceTracker* tracker) {
|
30
|
+
g_resource_tracker.store(tracker, std::memory_order_release);
|
31
|
+
}
|
32
|
+
|
33
|
+
} // namespace grpc_core
|
@@ -0,0 +1,46 @@
|
|
1
|
+
// Copyright 2025 gRPC authors.
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#ifndef GRPC_SRC_CORE_LIB_RESOURCE_TRACKER_RESOURCE_TRACKER_H
|
16
|
+
#define GRPC_SRC_CORE_LIB_RESOURCE_TRACKER_RESOURCE_TRACKER_H
|
17
|
+
|
18
|
+
#include <grpc/support/port_platform.h>
|
19
|
+
|
20
|
+
#include <string>
|
21
|
+
#include <vector>
|
22
|
+
|
23
|
+
#include "absl/status/statusor.h"
|
24
|
+
|
25
|
+
namespace grpc_core {
|
26
|
+
|
27
|
+
// Interface for tracking and retrieving resource usage metrics.
|
28
|
+
class ResourceTracker {
|
29
|
+
public:
|
30
|
+
virtual ~ResourceTracker() = default;
|
31
|
+
|
32
|
+
static ResourceTracker* Get();
|
33
|
+
static void Set(ResourceTracker* tracker);
|
34
|
+
|
35
|
+
// Returns a list of metric names that this tracker can provide.
|
36
|
+
virtual std::vector<std::string> GetMetrics() const = 0;
|
37
|
+
|
38
|
+
// Retrieves the current value of a specific metric.
|
39
|
+
// Returns NotFoundError if the metric_name is not supported.
|
40
|
+
virtual absl::StatusOr<double> GetMetricValue(
|
41
|
+
const std::string& metric_name) const = 0;
|
42
|
+
};
|
43
|
+
|
44
|
+
} // namespace grpc_core
|
45
|
+
|
46
|
+
#endif // GRPC_SRC_CORE_LIB_RESOURCE_TRACKER_RESOURCE_TRACKER_H
|
@@ -26,12 +26,12 @@
|
|
26
26
|
#include <memory>
|
27
27
|
#include <utility>
|
28
28
|
|
29
|
-
#include "absl/log/check.h"
|
30
29
|
#include "absl/status/status.h"
|
31
30
|
#include "absl/status/statusor.h"
|
32
31
|
#include "absl/strings/str_format.h"
|
33
32
|
#include "absl/strings/string_view.h"
|
34
33
|
#include "src/core/lib/security/authorization/stdout_logger.h"
|
34
|
+
#include "src/core/util/grpc_check.h"
|
35
35
|
#include "src/core/util/sync.h"
|
36
36
|
|
37
37
|
namespace grpc_core {
|
@@ -44,15 +44,15 @@ AuditLoggerRegistry* AuditLoggerRegistry::registry = new AuditLoggerRegistry();
|
|
44
44
|
AuditLoggerRegistry::AuditLoggerRegistry() {
|
45
45
|
auto factory = std::make_unique<StdoutAuditLoggerFactory>();
|
46
46
|
absl::string_view name = factory->name();
|
47
|
-
|
47
|
+
GRPC_CHECK(logger_factories_map_.emplace(name, std::move(factory)).second);
|
48
48
|
}
|
49
49
|
|
50
50
|
void AuditLoggerRegistry::RegisterFactory(
|
51
51
|
std::unique_ptr<AuditLoggerFactory> factory) {
|
52
|
-
|
52
|
+
GRPC_CHECK(factory != nullptr);
|
53
53
|
MutexLock lock(mu);
|
54
54
|
absl::string_view name = factory->name();
|
55
|
-
|
55
|
+
GRPC_CHECK(
|
56
56
|
registry->logger_factories_map_.emplace(name, std::move(factory)).second);
|
57
57
|
}
|
58
58
|
|
@@ -77,7 +77,7 @@ std::unique_ptr<AuditLogger> AuditLoggerRegistry::CreateAuditLogger(
|
|
77
77
|
std::unique_ptr<AuditLoggerFactory::Config> config) {
|
78
78
|
MutexLock lock(mu);
|
79
79
|
auto it = registry->logger_factories_map_.find(config->name());
|
80
|
-
|
80
|
+
GRPC_CHECK(it != registry->logger_factories_map_.end());
|
81
81
|
return it->second->CreateAuditLogger(std::move(config));
|
82
82
|
}
|
83
83
|
|
@@ -20,9 +20,9 @@
|
|
20
20
|
#include <map>
|
21
21
|
#include <utility>
|
22
22
|
|
23
|
-
#include "absl/log/check.h"
|
24
23
|
#include "src/core/lib/security/authorization/audit_logging.h"
|
25
24
|
#include "src/core/lib/security/authorization/authorization_engine.h"
|
25
|
+
#include "src/core/util/grpc_check.h"
|
26
26
|
|
27
27
|
namespace grpc_core {
|
28
28
|
|
@@ -58,7 +58,7 @@ GrpcAuthorizationEngine::GrpcAuthorizationEngine(Rbac policy)
|
|
58
58
|
for (auto& logger_config : policy.logger_configs) {
|
59
59
|
auto logger =
|
60
60
|
AuditLoggerRegistry::CreateAuditLogger(std::move(logger_config));
|
61
|
-
|
61
|
+
GRPC_CHECK(logger != nullptr);
|
62
62
|
audit_loggers_.push_back(std::move(logger));
|
63
63
|
}
|
64
64
|
}
|
@@ -22,12 +22,12 @@
|
|
22
22
|
#include <memory>
|
23
23
|
#include <string>
|
24
24
|
|
25
|
-
#include "absl/log/check.h"
|
26
25
|
#include "absl/status/statusor.h"
|
27
26
|
#include "absl/strings/str_format.h"
|
28
27
|
#include "absl/strings/string_view.h"
|
29
28
|
#include "absl/time/clock.h"
|
30
29
|
#include "absl/time/time.h"
|
30
|
+
#include "src/core/util/grpc_check.h"
|
31
31
|
|
32
32
|
namespace grpc_core {
|
33
33
|
namespace experimental {
|
@@ -65,8 +65,8 @@ StdoutAuditLoggerFactory::ParseAuditLoggerConfig(const Json&) {
|
|
65
65
|
std::unique_ptr<AuditLogger> StdoutAuditLoggerFactory::CreateAuditLogger(
|
66
66
|
std::unique_ptr<AuditLoggerFactory::Config> config) {
|
67
67
|
// Sanity check.
|
68
|
-
|
69
|
-
|
68
|
+
GRPC_CHECK(config != nullptr);
|
69
|
+
GRPC_CHECK_EQ(config->name(), name());
|
70
70
|
return std::make_unique<StdoutAuditLogger>();
|
71
71
|
}
|
72
72
|
|
@@ -24,9 +24,9 @@
|
|
24
24
|
#include <stdint.h>
|
25
25
|
#include <string.h>
|
26
26
|
|
27
|
-
#include "absl/log/check.h"
|
28
27
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
29
28
|
#include "src/core/lib/slice/slice.h"
|
29
|
+
#include "src/core/util/grpc_check.h"
|
30
30
|
|
31
31
|
int grpc_byte_buffer_reader_init(grpc_byte_buffer_reader* reader,
|
32
32
|
grpc_byte_buffer* buffer) {
|
@@ -92,7 +92,7 @@ grpc_slice grpc_byte_buffer_reader_readall(grpc_byte_buffer_reader* reader) {
|
|
92
92
|
memcpy(&(outbuf[bytes_read]), GRPC_SLICE_START_PTR(in_slice), slice_length);
|
93
93
|
bytes_read += slice_length;
|
94
94
|
grpc_core::CSliceUnref(in_slice);
|
95
|
-
|
95
|
+
GRPC_CHECK(bytes_read <= input_size);
|
96
96
|
}
|
97
97
|
|
98
98
|
return out_slice;
|
@@ -48,7 +48,6 @@
|
|
48
48
|
#include <vector>
|
49
49
|
|
50
50
|
#include "absl/base/thread_annotations.h"
|
51
|
-
#include "absl/log/check.h"
|
52
51
|
#include "absl/log/log.h"
|
53
52
|
#include "absl/status/status.h"
|
54
53
|
#include "absl/strings/str_cat.h"
|
@@ -98,6 +97,7 @@
|
|
98
97
|
#include "src/core/util/cpp_impl_of.h"
|
99
98
|
#include "src/core/util/crash.h"
|
100
99
|
#include "src/core/util/debug_location.h"
|
100
|
+
#include "src/core/util/grpc_check.h"
|
101
101
|
#include "src/core/util/match.h"
|
102
102
|
#include "src/core/util/ref_counted.h"
|
103
103
|
#include "src/core/util/ref_counted_ptr.h"
|
@@ -119,9 +119,10 @@ Call::Call(bool is_client, Timestamp send_deadline, RefCountedPtr<Arena> arena)
|
|
119
119
|
: arena_(std::move(arena)),
|
120
120
|
send_deadline_(send_deadline),
|
121
121
|
is_client_(is_client) {
|
122
|
-
|
123
|
-
|
124
|
-
|
122
|
+
GRPC_DCHECK_NE(arena_.get(), nullptr);
|
123
|
+
GRPC_DCHECK_NE(
|
124
|
+
arena_->GetContext<grpc_event_engine::experimental::EventEngine>(),
|
125
|
+
nullptr);
|
125
126
|
arena_->SetContext<Call>(this);
|
126
127
|
}
|
127
128
|
|
@@ -148,8 +149,8 @@ absl::Status Call::InitParent(Call* parent, uint32_t propagation_mask) {
|
|
148
149
|
child_ = arena()->New<ChildCall>(parent);
|
149
150
|
|
150
151
|
parent->InternalRef("child");
|
151
|
-
|
152
|
-
|
152
|
+
GRPC_CHECK(is_client_);
|
153
|
+
GRPC_CHECK(!parent->is_client_);
|
153
154
|
|
154
155
|
if (propagation_mask & GRPC_PROPAGATE_DEADLINE) {
|
155
156
|
send_deadline_ = std::min(send_deadline_, parent->send_deadline_);
|
@@ -307,7 +308,7 @@ void Call::ProcessIncomingInitialMetadata(grpc_metadata_batch& md) {
|
|
307
308
|
HandleCompressionAlgorithmDisabled(compression_algorithm);
|
308
309
|
}
|
309
310
|
// GRPC_COMPRESS_NONE is always set.
|
310
|
-
|
311
|
+
GRPC_DCHECK(encodings_accepted_by_peer_.IsSet(GRPC_COMPRESS_NONE));
|
311
312
|
if (GPR_UNLIKELY(!encodings_accepted_by_peer_.IsSet(compression_algorithm))) {
|
312
313
|
if (GRPC_TRACE_FLAG_ENABLED(compression)) {
|
313
314
|
HandleCompressionAlgorithmNotAccepted(compression_algorithm);
|
@@ -413,7 +414,7 @@ char* grpc_call_get_peer(grpc_call* call) {
|
|
413
414
|
grpc_call_error grpc_call_cancel(grpc_call* call, void* reserved) {
|
414
415
|
GRPC_TRACE_LOG(api, INFO)
|
415
416
|
<< "grpc_call_cancel(call=" << call << ", reserved=" << reserved << ")";
|
416
|
-
|
417
|
+
GRPC_CHECK_EQ(reserved, nullptr);
|
417
418
|
if (call == nullptr) {
|
418
419
|
return GRPC_CALL_ERROR;
|
419
420
|
}
|
@@ -430,7 +431,7 @@ grpc_call_error grpc_call_cancel_with_status(grpc_call* c,
|
|
430
431
|
GRPC_TRACE_LOG(api, INFO)
|
431
432
|
<< "grpc_call_cancel_with_status(c=" << c << ", status=" << (int)status
|
432
433
|
<< ", description=" << description << ", reserved=" << reserved << ")";
|
433
|
-
|
434
|
+
GRPC_CHECK_EQ(reserved, nullptr);
|
434
435
|
if (c == nullptr) {
|
435
436
|
return GRPC_CALL_ERROR;
|
436
437
|
}
|
@@ -491,21 +492,22 @@ grpc_call_error grpc_call_start_batch_and_execute(grpc_call* call,
|
|
491
492
|
|
492
493
|
void grpc_call_tracer_set(grpc_call* call,
|
493
494
|
grpc_core::ClientCallTracerInterface* tracer) {
|
494
|
-
grpc_call_get_arena(call)
|
495
|
-
|
495
|
+
auto* arena = grpc_call_get_arena(call);
|
496
|
+
arena->SetContext<grpc_core::CallSpan>(
|
497
|
+
grpc_core::WrapClientCallTracer(tracer, arena));
|
496
498
|
}
|
497
499
|
|
498
500
|
void grpc_call_tracer_set_and_manage(
|
499
501
|
grpc_call* call, grpc_core::ClientCallTracerInterface* tracer) {
|
500
502
|
grpc_core::Arena* arena = grpc_call_get_arena(call);
|
501
503
|
arena->ManagedNew<ClientCallTracerWrapper>(tracer);
|
502
|
-
|
504
|
+
arena->SetContext<grpc_core::CallSpan>(
|
505
|
+
grpc_core::WrapClientCallTracer(tracer, arena));
|
503
506
|
}
|
504
507
|
|
505
508
|
void* grpc_call_tracer_get(grpc_call* call) {
|
506
509
|
grpc_core::Arena* arena = grpc_call_get_arena(call);
|
507
|
-
auto* call_tracer =
|
508
|
-
arena->GetContext<grpc_core::CallTracerAnnotationInterface>();
|
510
|
+
auto* call_tracer = arena->GetContext<grpc_core::CallSpan>();
|
509
511
|
return call_tracer;
|
510
512
|
}
|
511
513
|
|
data/src/core/lib/surface/call.h
CHANGED
@@ -30,7 +30,6 @@
|
|
30
30
|
|
31
31
|
#include "absl/functional/any_invocable.h"
|
32
32
|
#include "absl/functional/function_ref.h"
|
33
|
-
#include "absl/log/check.h"
|
34
33
|
#include "absl/strings/string_view.h"
|
35
34
|
#include "src/core/lib/channel/channel_fwd.h"
|
36
35
|
#include "src/core/lib/channel/channel_stack.h"
|
@@ -45,6 +44,7 @@
|
|
45
44
|
#include "src/core/lib/surface/channel.h"
|
46
45
|
#include "src/core/lib/transport/transport.h"
|
47
46
|
#include "src/core/server/server_interface.h"
|
47
|
+
#include "src/core/util/grpc_check.h"
|
48
48
|
#include "src/core/util/ref_counted_ptr.h"
|
49
49
|
#include "src/core/util/time.h"
|
50
50
|
#include "src/core/util/time_precise.h"
|
@@ -40,7 +40,6 @@
|
|
40
40
|
#include <type_traits>
|
41
41
|
#include <utility>
|
42
42
|
|
43
|
-
#include "absl/log/check.h"
|
44
43
|
#include "absl/log/log.h"
|
45
44
|
#include "absl/status/status.h"
|
46
45
|
#include "absl/strings/str_cat.h"
|
@@ -60,6 +59,7 @@
|
|
60
59
|
#include "src/core/lib/surface/validate_metadata.h"
|
61
60
|
#include "src/core/util/crash.h"
|
62
61
|
#include "src/core/util/debug_location.h"
|
62
|
+
#include "src/core/util/grpc_check.h"
|
63
63
|
#include "src/core/util/match.h"
|
64
64
|
|
65
65
|
namespace grpc_core {
|
@@ -215,7 +215,7 @@ bool ValidateMetadata(size_t count, grpc_metadata* metadata) {
|
|
215
215
|
void EndOpImmediately(grpc_completion_queue* cq, void* notify_tag,
|
216
216
|
bool is_notify_tag_closure) {
|
217
217
|
if (!is_notify_tag_closure) {
|
218
|
-
|
218
|
+
GRPC_CHECK(grpc_cq_begin_op(cq, notify_tag));
|
219
219
|
grpc_cq_end_op(
|
220
220
|
cq, notify_tag, absl::OkStatus(),
|
221
221
|
[](void*, grpc_cq_completion* completion) { gpr_free(completion); },
|
@@ -40,7 +40,6 @@
|
|
40
40
|
#include <type_traits>
|
41
41
|
#include <utility>
|
42
42
|
|
43
|
-
#include "absl/log/check.h"
|
44
43
|
#include "absl/status/status.h"
|
45
44
|
#include "absl/strings/str_cat.h"
|
46
45
|
#include "absl/strings/string_view.h"
|
@@ -55,6 +54,7 @@
|
|
55
54
|
#include "src/core/lib/promise/status_flag.h"
|
56
55
|
#include "src/core/lib/surface/completion_queue.h"
|
57
56
|
#include "src/core/util/crash.h"
|
57
|
+
#include "src/core/util/grpc_check.h"
|
58
58
|
|
59
59
|
namespace grpc_core {
|
60
60
|
|
@@ -428,7 +428,7 @@ class MessageReceiver {
|
|
428
428
|
|
429
429
|
template <typename Puller>
|
430
430
|
auto MakeBatchOp(const grpc_op& op, Puller* puller) {
|
431
|
-
|
431
|
+
GRPC_CHECK_EQ(recv_message_, nullptr);
|
432
432
|
recv_message_ = op.data.recv_message.recv_message;
|
433
433
|
return [this, puller]() mutable {
|
434
434
|
return Map(puller->PullMessage(),
|
@@ -22,7 +22,6 @@
|
|
22
22
|
#include <grpc/support/alloc.h>
|
23
23
|
#include <grpc/support/port_platform.h>
|
24
24
|
|
25
|
-
#include "absl/log/check.h"
|
26
25
|
#include "src/core/channelz/channel_trace.h"
|
27
26
|
#include "src/core/channelz/channelz.h"
|
28
27
|
#include "src/core/lib/channel/channel_args.h"
|
@@ -31,6 +30,7 @@
|
|
31
30
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
32
31
|
#include "src/core/telemetry/stats.h"
|
33
32
|
#include "src/core/telemetry/stats_data.h"
|
33
|
+
#include "src/core/util/grpc_check.h"
|
34
34
|
|
35
35
|
namespace grpc_core {
|
36
36
|
|
@@ -102,7 +102,7 @@ grpc_call* grpc_channel_create_call(grpc_channel* channel,
|
|
102
102
|
grpc_completion_queue* completion_queue,
|
103
103
|
grpc_slice method, const grpc_slice* host,
|
104
104
|
gpr_timespec deadline, void* reserved) {
|
105
|
-
|
105
|
+
GRPC_CHECK(!reserved);
|
106
106
|
grpc_core::ExecCtx exec_ctx;
|
107
107
|
return grpc_core::Channel::FromC(channel)->CreateCall(
|
108
108
|
parent_call, propagation_mask, completion_queue, nullptr,
|
@@ -119,7 +119,7 @@ void* grpc_channel_register_call(grpc_channel* channel, const char* method,
|
|
119
119
|
GRPC_TRACE_LOG(api, INFO) << "grpc_channel_register_call(channel=" << channel
|
120
120
|
<< ", method=" << method << ", host=" << host
|
121
121
|
<< ", reserved=" << reserved << ")";
|
122
|
-
|
122
|
+
GRPC_CHECK(!reserved);
|
123
123
|
grpc_core::ExecCtx exec_ctx;
|
124
124
|
return grpc_core::Channel::FromC(channel)->RegisterCall(method, host);
|
125
125
|
}
|
@@ -208,6 +208,6 @@ void grpc_channel_ping(grpc_channel* channel, grpc_completion_queue* cq,
|
|
208
208
|
GRPC_TRACE_LOG(api, INFO)
|
209
209
|
<< "grpc_channel_ping(channel=" << channel << ", cq=" << cq
|
210
210
|
<< ", tag=" << tag << ", reserved=" << reserved << ")";
|
211
|
-
|
211
|
+
GRPC_CHECK_EQ(reserved, nullptr);
|
212
212
|
grpc_core::Channel::FromC(channel)->Ping(cq, tag);
|
213
213
|
}
|
@@ -21,7 +21,6 @@
|
|
21
21
|
#include <grpc/impl/channel_arg_names.h>
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
-
#include "absl/log/check.h"
|
25
24
|
#include "absl/strings/str_cat.h"
|
26
25
|
#include "absl/strings/str_split.h"
|
27
26
|
#include "src/core/channelz/channelz.h"
|
@@ -47,6 +46,7 @@
|
|
47
46
|
#include "src/core/telemetry/stats.h"
|
48
47
|
#include "src/core/telemetry/stats_data.h"
|
49
48
|
#include "src/core/transport/endpoint_transport.h"
|
49
|
+
#include "src/core/util/grpc_check.h"
|
50
50
|
|
51
51
|
namespace grpc_core {
|
52
52
|
|
@@ -199,10 +199,14 @@ grpc_channel* CreateChannelFromFd(int fd, grpc_channel_credentials* creds,
|
|
199
199
|
GRPC_STATUS_INTERNAL,
|
200
200
|
"Failed to create client channel");
|
201
201
|
}
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
202
|
+
auto endpoint = supports_fd->CreateEndpointFromFd(
|
203
|
+
fd, ChannelArgsEndpointConfig(channel_args));
|
204
|
+
if (!endpoint.ok()) {
|
205
|
+
return grpc_lame_client_channel_create(
|
206
|
+
"fake:created-from-endpoint", GRPC_STATUS_INTERNAL,
|
207
|
+
std::string(endpoint.status().message()).c_str());
|
208
|
+
}
|
209
|
+
return CreateChannelFromEndpoint(std::move(endpoint).value(), creds,
|
206
210
|
channel_args.ToC().get());
|
207
211
|
}
|
208
212
|
} // namespace experimental
|
@@ -230,7 +234,7 @@ grpc_channel* grpc_lame_client_channel_create(const char* target,
|
|
230
234
|
auto channel =
|
231
235
|
grpc_core::ChannelCreate(target == nullptr ? "" : target, std::move(args),
|
232
236
|
GRPC_CLIENT_LAME_CHANNEL, nullptr);
|
233
|
-
|
237
|
+
GRPC_CHECK(channel.ok());
|
234
238
|
return channel->release()->c_ptr();
|
235
239
|
}
|
236
240
|
|