grpc 1.55.0 → 1.58.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Makefile +783 -492
- data/include/grpc/event_engine/event_engine.h +26 -36
- data/include/grpc/event_engine/memory_allocator.h +2 -2
- data/include/grpc/grpc_audit_logging.h +96 -0
- data/include/grpc/grpc_security.h +19 -0
- data/include/grpc/impl/channel_arg_names.h +371 -0
- data/include/grpc/impl/grpc_types.h +1 -350
- data/include/grpc/module.modulemap +3 -0
- data/include/grpc/support/json.h +218 -0
- data/include/grpc/support/port_platform.h +29 -23
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +6 -1
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +2 -1
- data/src/core/ext/filters/client_channel/backend_metric.cc +2 -0
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +4 -4
- data/src/core/ext/filters/client_channel/client_channel.cc +137 -115
- data/src/core/ext/filters/client_channel/client_channel.h +6 -0
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +19 -18
- data/src/core/ext/filters/client_channel/client_channel_internal.h +16 -21
- data/src/core/ext/filters/client_channel/config_selector.h +9 -24
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/http_proxy.cc +6 -1
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +27 -53
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +23 -9
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +3 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +25 -35
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +84 -136
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +4 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +3 -1
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +480 -0
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.h +52 -0
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client_internal.h +202 -0
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +6 -9
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric_internal.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +132 -74
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +9 -2
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +168 -104
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.h +20 -0
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -43
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +22 -14
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +18 -1
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +33 -88
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +7 -5
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +57 -22
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc +76 -6
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +53 -43
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +17 -52
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +55 -114
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +8 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +32 -83
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +21 -67
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +62 -133
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +23 -62
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +24 -93
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +2 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +102 -11
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +44 -37
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +4 -1
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc +6 -0
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +135 -73
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +28 -27
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +10 -4
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +1 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +25 -13
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +428 -256
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +32 -1
- data/src/core/ext/filters/client_channel/retry_filter.cc +39 -2498
- data/src/core/ext/filters/client_channel/retry_filter.h +92 -1
- data/src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc +2052 -0
- data/src/core/ext/filters/client_channel/retry_filter_legacy_call_data.h +442 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +2 -1
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +40 -90
- data/src/core/ext/filters/client_channel/subchannel.cc +17 -199
- data/src/core/ext/filters/client_channel/subchannel.h +14 -48
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +3 -0
- data/src/core/ext/filters/deadline/deadline_filter.cc +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +1 -0
- data/src/core/ext/filters/http/client_authority_filter.cc +1 -1
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +6 -5
- data/src/core/ext/filters/http/server/http_server_filter.cc +1 -1
- data/src/core/ext/filters/message_size/message_size_filter.cc +1 -0
- data/src/core/ext/filters/rbac/rbac_filter.cc +40 -111
- data/src/core/ext/filters/rbac/rbac_filter.h +12 -30
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +94 -3
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +6 -8
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +164 -88
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +16 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +1 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +15 -16
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +463 -519
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +6569 -174
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +2278 -441
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +46 -95
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +6 -20
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +176 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +326 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +631 -547
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +157 -11
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +47 -33
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +19 -5
- data/src/core/ext/transport/chttp2/transport/internal.h +39 -76
- data/src/core/ext/transport/chttp2/transport/parsing.cc +43 -22
- data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc +80 -0
- data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.h +55 -0
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +98 -0
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +73 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +82 -91
- data/src/core/ext/transport/inproc/inproc_transport.cc +1 -0
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +27 -6
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +143 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +2 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +0 -39
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +13 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +35 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +17 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +85 -20
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +26 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +45 -3
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +4 -3
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +21 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +30 -6
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +180 -0
- data/src/core/ext/upb-generated/envoy/data/accesslog/v3/accesslog.upb.c +558 -0
- data/src/core/ext/upb-generated/envoy/data/accesslog/v3/accesslog.upb.h +2710 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +30 -11
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +53 -24
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +30 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +110 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +41 -15
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +150 -27
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +93 -0
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +11 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +15 -0
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +88 -76
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +11 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +0 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +162 -160
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +129 -118
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +141 -135
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +19 -12
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +38 -30
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/data/accesslog/v3/accesslog.upbdefs.c +402 -0
- data/src/core/ext/upbdefs-generated/envoy/data/accesslog/v3/accesslog.upbdefs.h +111 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +80 -74
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +63 -47
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +315 -293
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +29 -29
- data/src/core/ext/xds/certificate_provider_store.cc +4 -9
- data/src/core/ext/xds/certificate_provider_store.h +1 -1
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +30 -42
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +14 -9
- data/src/core/ext/xds/xds_api.cc +9 -6
- data/src/core/ext/xds/xds_api.h +3 -2
- data/src/core/ext/xds/xds_audit_logger_registry.cc +122 -0
- data/src/core/ext/xds/xds_audit_logger_registry.h +68 -0
- data/src/core/ext/xds/xds_bootstrap_grpc.cc +51 -36
- data/src/core/ext/xds/xds_bootstrap_grpc.h +10 -13
- data/src/core/ext/xds/xds_client.cc +5 -4
- data/src/core/ext/xds/xds_client_grpc.cc +12 -6
- data/src/core/ext/xds/xds_client_grpc.h +16 -2
- data/src/core/ext/xds/xds_client_stats.h +11 -1
- data/src/core/ext/xds/xds_cluster.cc +46 -35
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +11 -8
- data/src/core/ext/xds/xds_common_types.cc +3 -1
- data/src/core/ext/xds/xds_endpoint.cc +4 -7
- data/src/core/ext/xds/xds_health_status.cc +0 -17
- data/src/core/ext/xds/xds_health_status.h +5 -25
- data/src/core/ext/xds/xds_http_fault_filter.cc +14 -12
- data/src/core/ext/xds/xds_http_rbac_filter.cc +147 -65
- data/src/core/ext/xds/xds_http_stateful_session_filter.cc +13 -10
- data/src/core/ext/xds/xds_lb_policy_registry.cc +58 -16
- data/src/core/ext/xds/xds_listener.cc +1 -0
- data/src/core/ext/xds/xds_route_config.cc +44 -3
- data/src/core/ext/xds/xds_transport_grpc.cc +2 -1
- data/src/core/lib/address_utils/parse_address.cc +63 -1
- data/src/core/lib/address_utils/parse_address.h +8 -0
- data/src/core/lib/address_utils/sockaddr_utils.cc +46 -1
- data/src/core/lib/address_utils/sockaddr_utils.h +2 -2
- data/src/core/lib/avl/avl.h +15 -173
- data/src/core/lib/backoff/random_early_detection.h +5 -0
- data/src/core/lib/channel/call_tracer.cc +289 -0
- data/src/core/lib/channel/call_tracer.h +35 -0
- data/src/core/lib/channel/channel_args.cc +120 -46
- data/src/core/lib/channel/channel_args.h +52 -4
- data/src/core/lib/channel/channel_trace.cc +16 -12
- data/src/core/lib/channel/channelz.cc +159 -132
- data/src/core/lib/channel/channelz.h +42 -35
- data/src/core/lib/channel/channelz_registry.cc +23 -20
- data/src/core/lib/channel/connected_channel.cc +21 -8
- data/src/core/lib/channel/promise_based_filter.cc +4 -5
- data/src/core/lib/channel/promise_based_filter.h +3 -0
- data/src/core/lib/compression/compression_internal.cc +8 -7
- data/src/core/lib/config/config_vars.cc +20 -18
- data/src/core/lib/config/config_vars.h +4 -4
- data/src/core/lib/config/load_config.cc +13 -0
- data/src/core/lib/config/load_config.h +6 -0
- data/src/core/lib/debug/event_log.h +1 -1
- data/src/core/lib/debug/stats_data.cc +93 -21
- data/src/core/lib/debug/stats_data.h +42 -1
- data/src/core/lib/debug/trace.cc +21 -55
- data/src/core/lib/debug/trace.h +3 -1
- data/src/core/lib/event_engine/ares_resolver.cc +712 -0
- data/src/core/lib/event_engine/ares_resolver.h +150 -0
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +218 -0
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +86 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +354 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +146 -0
- data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +79 -0
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +229 -0
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +117 -0
- data/src/core/lib/event_engine/default_event_engine.cc +13 -1
- data/src/core/lib/event_engine/default_event_engine_factory.cc +14 -2
- data/src/core/lib/event_engine/event_engine.cc +0 -12
- data/src/core/lib/event_engine/forkable.cc +62 -43
- data/src/core/lib/event_engine/forkable.h +15 -0
- data/src/core/lib/event_engine/grpc_polled_fd.h +73 -0
- data/src/core/lib/event_engine/handle_containers.h +0 -4
- data/src/core/lib/event_engine/poller.h +2 -2
- data/src/core/lib/event_engine/posix.h +4 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +5 -7
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +29 -9
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +10 -1
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +197 -0
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +7 -18
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +28 -14
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +12 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +82 -21
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +22 -14
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +70 -31
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +12 -8
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +4 -2
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +43 -2
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +6 -0
- data/src/core/lib/event_engine/posix_engine/timer.h +10 -37
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +1 -1
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +2 -0
- data/src/core/lib/event_engine/shim.cc +7 -1
- data/src/core/lib/event_engine/tcp_socket_utils.cc +67 -7
- data/src/core/lib/event_engine/tcp_socket_utils.h +3 -0
- data/src/core/lib/event_engine/{thread_pool.cc → thread_pool/original_thread_pool.cc} +28 -25
- data/src/core/lib/event_engine/{thread_pool.h → thread_pool/original_thread_pool.h} +11 -15
- data/src/core/lib/event_engine/thread_pool/thread_count.cc +58 -0
- data/src/core/lib/event_engine/thread_pool/thread_count.h +161 -0
- data/src/core/lib/event_engine/{executor/executor.h → thread_pool/thread_pool.h} +21 -9
- data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +47 -0
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +517 -0
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +223 -0
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +157 -0
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +104 -0
- data/src/core/lib/event_engine/windows/iocp.cc +4 -3
- data/src/core/lib/event_engine/windows/iocp.h +3 -3
- data/src/core/lib/event_engine/windows/win_socket.cc +6 -6
- data/src/core/lib/event_engine/windows/win_socket.h +4 -4
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +60 -59
- data/src/core/lib/event_engine/windows/windows_endpoint.h +17 -13
- data/src/core/lib/event_engine/windows/windows_engine.cc +21 -18
- data/src/core/lib/event_engine/windows/windows_engine.h +14 -18
- data/src/core/lib/event_engine/windows/windows_listener.cc +3 -3
- data/src/core/lib/event_engine/windows/windows_listener.h +3 -2
- data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +63 -0
- data/src/core/lib/event_engine/work_queue/basic_work_queue.h +71 -0
- data/src/core/lib/event_engine/work_queue/work_queue.h +62 -0
- data/src/core/lib/experiments/config.cc +112 -29
- data/src/core/lib/experiments/config.h +33 -5
- data/src/core/lib/experiments/experiments.cc +226 -64
- data/src/core/lib/experiments/experiments.h +93 -30
- data/src/core/lib/gpr/log_internal.h +55 -0
- data/src/core/lib/gprpp/crash.cc +10 -0
- data/src/core/lib/gprpp/crash.h +3 -0
- data/src/core/lib/gprpp/dual_ref_counted.h +9 -9
- data/src/core/lib/gprpp/fork.cc +8 -9
- data/src/core/lib/gprpp/fork.h +6 -5
- data/src/core/lib/gprpp/if_list.h +4530 -0
- data/src/core/lib/gprpp/orphanable.h +3 -3
- data/src/core/lib/gprpp/per_cpu.cc +33 -0
- data/src/core/lib/gprpp/per_cpu.h +29 -6
- data/src/core/lib/gprpp/ref_counted.h +9 -7
- data/src/core/lib/gprpp/ref_counted_string.cc +44 -0
- data/src/core/lib/gprpp/ref_counted_string.h +146 -0
- data/src/core/lib/gprpp/sorted_pack.h +3 -12
- data/src/core/lib/gprpp/status_helper.h +16 -15
- data/src/core/lib/gprpp/time.cc +1 -0
- data/src/core/lib/gprpp/time.h +13 -1
- data/src/core/lib/gprpp/type_list.h +32 -0
- data/src/core/lib/gprpp/work_serializer.cc +36 -0
- data/src/core/lib/gprpp/work_serializer.h +5 -0
- data/src/core/lib/http/httpcli.h +6 -9
- data/src/core/lib/http/httpcli_security_connector.cc +1 -0
- data/src/core/lib/iomgr/buffer_list.cc +2 -0
- data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
- data/src/core/lib/iomgr/endpoint_cfstream.cc +10 -8
- data/src/core/lib/iomgr/error.cc +32 -2
- data/src/core/lib/iomgr/error.h +9 -10
- data/src/core/lib/iomgr/ev_apple.cc +12 -12
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +15 -10
- data/src/core/lib/iomgr/ev_poll_posix.cc +6 -5
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +22 -23
- data/src/core/lib/iomgr/exec_ctx.h +11 -0
- data/src/core/lib/iomgr/iocp_windows.cc +24 -3
- data/src/core/lib/iomgr/iocp_windows.h +11 -0
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +1 -1
- data/src/core/lib/iomgr/pollset.h +4 -5
- data/src/core/lib/iomgr/port.h +10 -0
- data/src/core/lib/iomgr/resolve_address.cc +13 -1
- data/src/core/lib/iomgr/resolve_address.h +17 -3
- data/src/core/lib/iomgr/sockaddr_posix.h +7 -0
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +33 -2
- data/src/core/lib/iomgr/socket_utils_posix.cc +2 -0
- data/src/core/lib/iomgr/socket_utils_posix.h +6 -0
- data/src/core/lib/iomgr/socket_windows.cc +61 -7
- data/src/core/lib/iomgr/socket_windows.h +9 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +14 -3
- data/src/core/lib/iomgr/tcp_client_posix.cc +4 -1
- data/src/core/lib/iomgr/tcp_posix.cc +24 -7
- data/src/core/lib/iomgr/tcp_server_posix.cc +184 -120
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -1
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +26 -2
- data/src/core/lib/iomgr/tcp_server_windows.cc +1 -1
- data/src/core/lib/iomgr/tcp_windows.cc +1 -3
- data/src/core/lib/iomgr/vsock.cc +59 -0
- data/src/core/lib/iomgr/vsock.h +38 -0
- data/src/core/lib/iomgr/wakeup_fd_posix.h +3 -6
- data/src/core/lib/json/json.h +2 -166
- data/src/core/lib/json/json_object_loader.cc +8 -9
- data/src/core/lib/json/json_object_loader.h +25 -18
- data/src/core/lib/json/json_reader.cc +13 -6
- data/src/core/lib/json/json_util.cc +6 -11
- data/src/core/lib/json/json_writer.cc +7 -8
- data/src/core/lib/load_balancing/delegating_helper.h +115 -0
- data/src/core/lib/load_balancing/lb_policy.h +33 -0
- data/src/core/lib/load_balancing/lb_policy_registry.cc +2 -1
- data/src/core/lib/load_balancing/subchannel_interface.h +6 -0
- data/src/core/lib/matchers/matchers.cc +3 -4
- data/src/core/lib/matchers/matchers.h +2 -1
- data/src/core/lib/promise/activity.cc +5 -0
- data/src/core/lib/promise/activity.h +10 -0
- data/src/core/lib/promise/detail/basic_seq.h +1 -372
- data/src/core/lib/promise/detail/promise_factory.h +1 -1
- data/src/core/lib/promise/detail/seq_state.h +2076 -0
- data/src/core/lib/promise/party.cc +31 -13
- data/src/core/lib/promise/party.h +12 -3
- data/src/core/lib/promise/pipe.h +9 -2
- data/src/core/lib/promise/prioritized_race.h +95 -0
- data/src/core/lib/promise/seq.h +19 -2
- data/src/core/lib/promise/sleep.cc +2 -1
- data/src/core/lib/promise/sleep.h +5 -10
- data/src/core/lib/promise/try_seq.h +34 -2
- data/src/core/lib/resolver/resolver_factory.h +3 -2
- data/src/core/lib/resolver/server_address.cc +9 -102
- data/src/core/lib/resolver/server_address.h +10 -70
- data/src/core/lib/resource_quota/api.cc +1 -0
- data/src/core/lib/resource_quota/arena.cc +2 -0
- data/src/core/lib/resource_quota/arena.h +42 -8
- data/src/core/lib/resource_quota/memory_quota.cc +7 -8
- data/src/core/lib/resource_quota/memory_quota.h +2 -3
- data/src/core/lib/resource_quota/resource_quota.h +1 -0
- data/src/core/lib/security/authorization/audit_logging.cc +98 -0
- data/src/core/lib/security/authorization/audit_logging.h +73 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +47 -2
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +18 -1
- data/src/core/lib/security/authorization/rbac_policy.cc +36 -4
- data/src/core/lib/security/authorization/rbac_policy.h +19 -2
- data/src/core/lib/security/authorization/stdout_logger.cc +75 -0
- data/src/core/lib/security/authorization/stdout_logger.h +61 -0
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +8 -4
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +8 -18
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +14 -8
- data/src/core/lib/security/credentials/channel_creds_registry.h +51 -27
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +169 -9
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +1 -1
- data/src/core/lib/security/credentials/composite/composite_credentials.h +3 -1
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +19 -12
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +8 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +44 -3
- data/src/core/lib/security/credentials/external/external_account_credentials.h +6 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +1 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +1 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +30 -38
- data/src/core/lib/security/credentials/fake/fake_credentials.h +28 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +2 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +32 -14
- data/src/core/lib/security/credentials/jwt/json_token.h +4 -0
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +4 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +43 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +1 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +1 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +4 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +8 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +5 -1
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +2 -1
- data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -1
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +1 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +2 -5
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +1 -0
- data/src/core/lib/security/security_connector/ssl_utils.cc +3 -1
- data/src/core/lib/security/security_connector/ssl_utils.h +1 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +1 -1
- data/src/core/lib/security/transport/client_auth_filter.cc +8 -5
- data/src/core/lib/security/transport/security_handshaker.cc +1 -0
- data/src/core/lib/security/transport/server_auth_filter.cc +2 -0
- data/src/core/lib/security/util/json_util.cc +1 -0
- data/src/core/lib/service_config/service_config_call_data.h +54 -20
- data/src/core/lib/service_config/service_config_impl.cc +2 -1
- data/src/core/lib/slice/slice.h +16 -0
- data/src/core/lib/surface/call.cc +100 -59
- data/src/core/lib/surface/channel.cc +1 -0
- data/src/core/lib/surface/completion_queue.cc +16 -2
- data/src/core/lib/surface/init.cc +1 -0
- data/src/core/lib/surface/server.cc +67 -64
- data/src/core/lib/surface/server.h +1 -15
- data/src/core/lib/surface/validate_metadata.cc +37 -22
- data/src/core/lib/surface/validate_metadata.h +13 -3
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/batch_builder.cc +15 -12
- data/src/core/lib/transport/batch_builder.h +39 -35
- data/src/core/lib/transport/metadata_batch.cc +7 -7
- data/src/core/lib/transport/metadata_batch.h +86 -48
- data/src/core/lib/transport/parsed_metadata.h +34 -20
- data/src/core/lib/transport/simple_slice_based_metadata.h +9 -2
- data/src/core/plugin_registry/grpc_plugin_registry.cc +0 -2
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
- data/src/core/tsi/alts/crypt/aes_gcm.cc +27 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +4 -6
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +1 -2
- data/src/core/tsi/ssl_transport_security.cc +44 -9
- data/src/core/tsi/ssl_transport_security.h +13 -1
- data/src/ruby/bin/math_pb.rb +24 -18
- data/src/ruby/ext/grpc/extconf.rb +27 -27
- data/src/ruby/ext/grpc/rb_call.c +62 -39
- data/src/ruby/ext/grpc/rb_call_credentials.c +0 -1
- data/src/ruby/ext/grpc/rb_channel.c +109 -84
- data/src/ruby/ext/grpc/rb_channel.h +1 -0
- data/src/ruby/ext/grpc/rb_channel_args.c +16 -2
- data/src/ruby/ext/grpc/rb_channel_args.h +4 -0
- data/src/ruby/ext/grpc/rb_channel_credentials.c +0 -1
- data/src/ruby/ext/grpc/rb_compression_options.c +0 -1
- data/src/ruby/ext/grpc/rb_event_thread.c +22 -6
- data/src/ruby/ext/grpc/rb_event_thread.h +1 -0
- data/src/ruby/ext/grpc/rb_grpc.c +192 -30
- data/src/ruby/ext/grpc/rb_grpc.h +8 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
- data/src/ruby/ext/grpc/rb_server.c +62 -45
- data/src/ruby/ext/grpc/rb_server_credentials.c +0 -1
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +0 -1
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +0 -1
- data/src/ruby/lib/grpc/generic/active_call.rb +9 -14
- data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +24 -13
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +24 -3
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +25 -111
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +25 -2
- data/src/ruby/pb/test/client.rb +16 -0
- data/src/ruby/spec/generic/rpc_server_spec.rb +3 -3
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -2
- data/third_party/abseil-cpp/absl/base/attributes.h +58 -5
- data/third_party/abseil-cpp/absl/base/call_once.h +1 -1
- data/third_party/abseil-cpp/absl/base/casts.h +8 -8
- data/third_party/abseil-cpp/absl/base/config.h +89 -106
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +26 -1
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +2 -2
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +50 -39
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +2 -1
- data/third_party/abseil-cpp/absl/base/internal/prefetch.h +17 -18
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +32 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +24 -4
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +31 -73
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +9 -8
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +23 -32
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +2 -3
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/policy_checks.h +3 -3
- data/third_party/abseil-cpp/absl/base/prefetch.h +198 -0
- data/third_party/abseil-cpp/absl/container/fixed_array.h +54 -29
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +5 -1
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +6 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +167 -79
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +3 -21
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +46 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -0
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +85 -26
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +35 -18
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +70 -29
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +437 -236
- data/third_party/abseil-cpp/absl/crc/crc32c.h +8 -1
- data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +14 -8
- data/third_party/abseil-cpp/absl/crc/internal/crc.cc +4 -35
- data/third_party/abseil-cpp/absl/crc/internal/crc.h +2 -10
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +1 -1
- data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +1 -1
- data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.h +4 -4
- data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +8 -10
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc +17 -19
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +8 -8
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +2 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +59 -23
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +1 -1
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +43 -19
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -0
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +1 -1
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc +1 -1
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +2 -2
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +16 -15
- data/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc +1 -1
- data/third_party/abseil-cpp/absl/flags/marshalling.cc +43 -2
- data/third_party/abseil-cpp/absl/flags/marshalling.h +5 -0
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +9 -1
- data/third_party/abseil-cpp/absl/functional/bind_front.h +1 -1
- data/third_party/abseil-cpp/absl/functional/function_ref.h +3 -3
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +37 -24
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +19 -9
- data/third_party/abseil-cpp/absl/hash/hash.h +7 -4
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +38 -15
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +6 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +48 -373
- data/third_party/abseil-cpp/absl/numeric/bits.h +4 -4
- data/third_party/abseil-cpp/absl/numeric/int128.cc +20 -8
- data/third_party/abseil-cpp/absl/numeric/int128.h +36 -39
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +0 -3
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +47 -30
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +4 -3
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/platform.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +4 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +1 -1
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +1 -1
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +4 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +12 -24
- data/third_party/abseil-cpp/absl/status/status.cc +11 -7
- data/third_party/abseil-cpp/absl/status/status.h +11 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +22 -8
- data/third_party/abseil-cpp/absl/strings/ascii.cc +54 -6
- data/third_party/abseil-cpp/absl/strings/charconv.cc +21 -4
- data/third_party/abseil-cpp/absl/strings/charconv.h +2 -2
- data/third_party/abseil-cpp/absl/strings/cord.cc +1 -2
- data/third_party/abseil-cpp/absl/strings/cord.h +32 -5
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +23 -1
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +18 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.h +2 -5
- data/third_party/abseil-cpp/absl/strings/escaping.cc +10 -32
- data/third_party/abseil-cpp/absl/strings/escaping.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +2 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +3 -3
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +0 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +15 -13
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +13 -4
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +8 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +5 -3
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +4 -7
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +8 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +46 -20
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +1 -34
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +2 -1
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +23 -0
- data/third_party/abseil-cpp/absl/strings/internal/escaping.h +1 -0
- data/third_party/abseil-cpp/absl/strings/internal/memutil.cc +2 -77
- data/third_party/abseil-cpp/absl/strings/internal/memutil.h +4 -112
- data/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +10 -31
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +8 -8
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +5 -20
- data/third_party/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h +1 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +56 -6
- data/third_party/abseil-cpp/absl/strings/match.cc +87 -0
- data/third_party/abseil-cpp/absl/strings/match.h +19 -0
- data/third_party/abseil-cpp/absl/strings/numbers.cc +154 -122
- data/third_party/abseil-cpp/absl/strings/numbers.h +1 -6
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +7 -50
- data/third_party/abseil-cpp/absl/strings/str_cat.h +83 -15
- data/third_party/abseil-cpp/absl/strings/str_format.h +6 -3
- data/third_party/abseil-cpp/absl/strings/str_split.cc +9 -6
- data/third_party/abseil-cpp/absl/strings/string_view.cc +26 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +5 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +63 -43
- data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +111 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.h +63 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +11 -7
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +225 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +122 -114
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +12 -8
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +10 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +167 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.h +60 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +122 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.h +65 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +91 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.h +56 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +19 -113
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +42 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.h +90 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +151 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.h +70 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +407 -411
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +152 -118
- data/third_party/abseil-cpp/absl/time/clock.cc +6 -7
- data/third_party/abseil-cpp/absl/time/duration.cc +24 -26
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +3 -3
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +8 -6
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +6 -3
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +4 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +4 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +322 -295
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +8 -17
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +51 -33
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +7 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +128 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +5 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +34 -34
- data/third_party/abseil-cpp/absl/time/time.cc +9 -2
- data/third_party/abseil-cpp/absl/time/time.h +115 -15
- data/third_party/abseil-cpp/absl/types/internal/optional.h +0 -52
- data/third_party/abseil-cpp/absl/types/internal/span.h +2 -2
- data/third_party/abseil-cpp/absl/types/internal/variant.h +2 -2
- data/third_party/abseil-cpp/absl/types/optional.h +15 -13
- data/third_party/abseil-cpp/absl/types/span.h +1 -2
- data/third_party/boringssl-with-bazel/err_data.c +554 -553
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +7 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +34 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +11 -4
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +10 -6
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +7 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +9 -7
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +7 -8
- data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/bio/errno.c +92 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +7 -50
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +23 -22
- data/third_party/boringssl-with-bazel/src/crypto/bio/internal.h +16 -6
- data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +11 -2
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +31 -22
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +19 -1
- data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +8 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +29 -26
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +189 -13
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +31 -192
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +3 -7
- data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_freebsd.c → cpu_aarch64_openbsd.c} +23 -24
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.c +93 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +55 -50
- data/third_party/boringssl-with-bazel/src/crypto/{cpu_arm.c → curve25519/curve25519_64_adx.c} +4 -24
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +2834 -7442
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +26 -8
- data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +20 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +110 -72
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_derive.c +4 -3
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +42 -34
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +17 -11
- data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +23 -21
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +35 -12
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +3 -7
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +7 -6
- data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +34 -72
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +12 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +5 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +12 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +17 -18
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +51 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +5 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +37 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +41 -19
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/builtin_curves.h +277 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +204 -428
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +31 -64
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +105 -143
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +19 -19
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +16 -18
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +27 -30
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +23 -26
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +24 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +21 -37
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +31 -31
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +16 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +11 -5
- data/third_party/boringssl-with-bazel/src/crypto/{hkdf → fipsmodule/hkdf}/hkdf.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +2 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +115 -133
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +12 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +57 -47
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +1 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c +27 -28
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +40 -26
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +21 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +38 -19
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +2 -41
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +76 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +5 -288
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +143 -83
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +126 -233
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +113 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +4 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +33 -0
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +169 -6
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +216 -87
- data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +23 -15
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +7 -8
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +25 -46
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +6 -13
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +18 -14
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +8 -5
- data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +7 -6
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c +6 -12
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c +52 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{fuchsia.c → ios.c} +8 -8
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c +38 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +41 -19
- data/third_party/boringssl-with-bazel/src/crypto/{refcount_c11.c → refcount.c} +11 -17
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h +77 -0
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.c +568 -0
- data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +152 -72
- data/third_party/boringssl-with-bazel/src/crypto/thread_none.c +0 -8
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +6 -35
- data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +5 -26
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +230 -60
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +35 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +580 -120
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +27 -18
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +8 -19
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +0 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +17 -39
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +39 -48
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +1 -141
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +72 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +8 -12
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +19 -20
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +22 -29
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +33 -46
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +3 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +16 -49
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -26
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +4 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +17 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +5 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +4 -119
- data/third_party/boringssl-with-bazel/src/include/openssl/asm_base.h +207 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +11 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +37 -112
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +11 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +0 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +5 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +0 -21
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +28 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +19 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +14 -10
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +34 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +2 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +13 -14
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +91 -62
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +26 -19
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +275 -96
- data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +236 -213
- data/third_party/boringssl-with-bazel/src/include/openssl/target.h +201 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +1 -25
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +758 -603
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +45 -12
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +11 -6
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +10 -68
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +20 -20
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +24 -16
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +69 -29
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +37 -18
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +209 -209
- data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +4 -4
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +46 -155
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +209 -33
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +17 -4
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +27 -19
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +2 -3
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +5 -21
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +5 -2
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_adx.h +691 -0
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_msvc.h +1281 -0
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64_msvc.h +2002 -0
- data/third_party/cares/cares/include/ares.h +23 -1
- data/third_party/cares/cares/{src/lib → include}/ares_nameser.h +9 -7
- data/third_party/cares/cares/include/ares_rules.h +2 -2
- data/third_party/cares/cares/include/ares_version.h +3 -3
- data/third_party/cares/cares/src/lib/ares__addrinfo2hostent.c +266 -0
- data/third_party/cares/cares/src/lib/ares__addrinfo_localhost.c +240 -0
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +49 -80
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +37 -43
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +12 -4
- data/third_party/cares/cares/src/lib/ares_data.c +16 -0
- data/third_party/cares/cares/src/lib/ares_data.h +7 -0
- data/third_party/cares/cares/src/lib/ares_destroy.c +8 -0
- data/third_party/cares/cares/src/lib/ares_expand_name.c +17 -6
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +1 -0
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +156 -78
- data/third_party/cares/cares/src/lib/ares_gethostbyname.c +130 -326
- data/third_party/cares/cares/src/lib/ares_init.c +97 -485
- data/third_party/cares/cares/src/lib/ares_library_init.c +2 -89
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +23 -142
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +22 -142
- data/third_party/cares/cares/src/lib/ares_parse_uri_reply.c +184 -0
- data/third_party/cares/cares/src/lib/ares_private.h +30 -16
- data/third_party/cares/cares/src/lib/ares_process.c +55 -16
- data/third_party/cares/cares/src/lib/ares_query.c +1 -35
- data/third_party/cares/cares/src/lib/ares_rand.c +279 -0
- data/third_party/cares/cares/src/lib/ares_send.c +5 -7
- data/third_party/cares/cares/src/lib/ares_strdup.c +12 -19
- data/third_party/cares/cares/src/lib/ares_strsplit.c +44 -128
- data/third_party/cares/cares/src/lib/ares_strsplit.h +9 -10
- data/third_party/cares/cares/src/lib/inet_net_pton.c +78 -116
- data/third_party/cares/cares/src/tools/ares_getopt.h +53 -0
- data/third_party/upb/upb/collections/map.c +3 -3
- metadata +106 -45
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +0 -175
- data/src/core/ext/filters/client_channel/health/health_check_client.h +0 -43
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc +0 -42
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.h +0 -64
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +0 -177
- data/src/core/ext/transport/chttp2/transport/stream_map.h +0 -68
- data/src/core/lib/promise/detail/basic_join.h +0 -197
- data/src/core/lib/promise/detail/switch.h +0 -1455
- data/src/core/lib/promise/try_join.h +0 -82
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +0 -403
- data/third_party/boringssl-with-bazel/src/crypto/refcount_lock.c +0 -52
- data/third_party/cares/cares/src/lib/ares_library_init.h +0 -43
- data/third_party/re2/util/benchmark.h +0 -156
- data/third_party/re2/util/flags.h +0 -26
- data/third_party/re2/util/malloc_counter.h +0 -19
- data/third_party/re2/util/pcre.cc +0 -1025
- data/third_party/re2/util/pcre.h +0 -681
- data/third_party/re2/util/test.h +0 -50
- data/third_party/upb/upb/mini_table.h +0 -36
- data/third_party/zlib/gzclose.c +0 -25
- data/third_party/zlib/gzlib.c +0 -639
- data/third_party/zlib/gzread.c +0 -650
- data/third_party/zlib/gzwrite.c +0 -677
@@ -30,7 +30,7 @@
|
|
30
30
|
#include "upb/upb.hpp"
|
31
31
|
#include "xds/data/orca/v3/orca_load_report.upb.h"
|
32
32
|
|
33
|
-
#include <grpc/
|
33
|
+
#include <grpc/impl/channel_arg_names.h>
|
34
34
|
#include <grpc/support/log.h>
|
35
35
|
|
36
36
|
#include "src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h"
|
@@ -67,6 +67,11 @@ absl::optional<std::string> BackendMetricFilter::MaybeSerializeBackendMetrics(
|
|
67
67
|
data.mem_utilization);
|
68
68
|
has_data = true;
|
69
69
|
}
|
70
|
+
if (data.application_utilization != -1) {
|
71
|
+
xds_data_orca_v3_OrcaLoadReport_set_application_utilization(
|
72
|
+
response, data.application_utilization);
|
73
|
+
has_data = true;
|
74
|
+
}
|
70
75
|
if (data.qps != -1) {
|
71
76
|
xds_data_orca_v3_OrcaLoadReport_set_rps_fractional(response, data.qps);
|
72
77
|
has_data = true;
|
@@ -19,6 +19,7 @@
|
|
19
19
|
|
20
20
|
#include "src/core/ext/filters/channel_idle/channel_idle_filter.h"
|
21
21
|
|
22
|
+
#include <stdint.h>
|
22
23
|
#include <stdlib.h>
|
23
24
|
|
24
25
|
#include <functional>
|
@@ -26,7 +27,7 @@
|
|
26
27
|
|
27
28
|
#include "absl/types/optional.h"
|
28
29
|
|
29
|
-
#include <grpc/
|
30
|
+
#include <grpc/impl/channel_arg_names.h>
|
30
31
|
#include <grpc/support/log.h>
|
31
32
|
|
32
33
|
#include "src/core/lib/channel/channel_args.h"
|
@@ -69,6 +69,8 @@ const BackendMetricData* ParseBackendMetricData(
|
|
69
69
|
xds_data_orca_v3_OrcaLoadReport_cpu_utilization(msg);
|
70
70
|
backend_metric_data->mem_utilization =
|
71
71
|
xds_data_orca_v3_OrcaLoadReport_mem_utilization(msg);
|
72
|
+
backend_metric_data->application_utilization =
|
73
|
+
xds_data_orca_v3_OrcaLoadReport_application_utilization(msg);
|
72
74
|
backend_metric_data->qps =
|
73
75
|
xds_data_orca_v3_OrcaLoadReport_rps_fractional(msg);
|
74
76
|
backend_metric_data->eps = xds_data_orca_v3_OrcaLoadReport_eps(msg);
|
@@ -20,7 +20,6 @@
|
|
20
20
|
|
21
21
|
#include "absl/base/thread_annotations.h"
|
22
22
|
#include "absl/status/status.h"
|
23
|
-
#include "absl/synchronization/mutex.h"
|
24
23
|
#include "absl/types/optional.h"
|
25
24
|
|
26
25
|
#include <grpc/event_engine/event_engine.h>
|
@@ -36,6 +35,7 @@
|
|
36
35
|
#include "src/core/lib/gprpp/crash.h"
|
37
36
|
#include "src/core/lib/gprpp/dual_ref_counted.h"
|
38
37
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
38
|
+
#include "src/core/lib/gprpp/sync.h"
|
39
39
|
#include "src/core/lib/gprpp/time.h"
|
40
40
|
#include "src/core/lib/iomgr/closure.h"
|
41
41
|
#include "src/core/lib/iomgr/error.h"
|
@@ -169,7 +169,7 @@ class StateWatcher : public DualRefCounted<StateWatcher> {
|
|
169
169
|
|
170
170
|
void StartTimer(Timestamp deadline) {
|
171
171
|
const Duration timeout = deadline - Timestamp::Now();
|
172
|
-
|
172
|
+
MutexLock lock(&mu_);
|
173
173
|
timer_handle_ = channel_->channel_stack()->EventEngine()->RunAfter(
|
174
174
|
timeout, [self = Ref()]() mutable {
|
175
175
|
ApplicationCallbackExecCtx callback_exec_ctx;
|
@@ -186,7 +186,7 @@ class StateWatcher : public DualRefCounted<StateWatcher> {
|
|
186
186
|
GRPC_LOG_IF_ERROR("watch_completion_error", error);
|
187
187
|
}
|
188
188
|
{
|
189
|
-
|
189
|
+
MutexLock lock(&self->mu_);
|
190
190
|
if (self->timer_handle_.has_value()) {
|
191
191
|
self->channel_->channel_stack()->EventEngine()->Cancel(
|
192
192
|
*self->timer_handle_);
|
@@ -238,7 +238,7 @@ class StateWatcher : public DualRefCounted<StateWatcher> {
|
|
238
238
|
// timer_handle_ might be accessed in parallel from multiple threads, e.g.
|
239
239
|
// timer callback fired immediately on an EventEngine thread before
|
240
240
|
// RunAfter() returns.
|
241
|
-
|
241
|
+
Mutex mu_;
|
242
242
|
absl::optional<grpc_event_engine::experimental::EventEngine::TaskHandle>
|
243
243
|
timer_handle_ ABSL_GUARDED_BY(mu_);
|
244
244
|
bool timer_fired_ = false;
|
@@ -24,6 +24,7 @@
|
|
24
24
|
#include <algorithm>
|
25
25
|
#include <functional>
|
26
26
|
#include <new>
|
27
|
+
#include <set>
|
27
28
|
#include <type_traits>
|
28
29
|
#include <utility>
|
29
30
|
#include <vector>
|
@@ -40,8 +41,10 @@
|
|
40
41
|
#include "absl/types/variant.h"
|
41
42
|
|
42
43
|
#include <grpc/event_engine/event_engine.h>
|
44
|
+
#include <grpc/impl/channel_arg_names.h>
|
43
45
|
#include <grpc/slice.h>
|
44
46
|
#include <grpc/status.h>
|
47
|
+
#include <grpc/support/json.h>
|
45
48
|
#include <grpc/support/log.h>
|
46
49
|
#include <grpc/support/string_util.h>
|
47
50
|
#include <grpc/support/time.h>
|
@@ -81,6 +84,7 @@
|
|
81
84
|
#include "src/core/lib/load_balancing/subchannel_interface.h"
|
82
85
|
#include "src/core/lib/resolver/resolver_registry.h"
|
83
86
|
#include "src/core/lib/resolver/server_address.h"
|
87
|
+
#include "src/core/lib/security/credentials/credentials.h"
|
84
88
|
#include "src/core/lib/service_config/service_config_call_data.h"
|
85
89
|
#include "src/core/lib/service_config/service_config_impl.h"
|
86
90
|
#include "src/core/lib/slice/slice.h"
|
@@ -94,9 +98,6 @@
|
|
94
98
|
// Client channel filter
|
95
99
|
//
|
96
100
|
|
97
|
-
#define GRPC_ARG_HEALTH_CHECK_SERVICE_NAME \
|
98
|
-
"grpc.internal.health_check_service_name"
|
99
|
-
|
100
101
|
namespace grpc_core {
|
101
102
|
|
102
103
|
using internal::ClientChannelMethodParsedConfig;
|
@@ -479,8 +480,8 @@ class ClientChannel::ResolverResultHandler : public Resolver::ResultHandler {
|
|
479
480
|
//
|
480
481
|
|
481
482
|
// This class is a wrapper for Subchannel that hides details of the
|
482
|
-
// channel's implementation (such as the
|
483
|
-
//
|
483
|
+
// channel's implementation (such as the connected subchannel) from the
|
484
|
+
// LB policy API.
|
484
485
|
//
|
485
486
|
// Note that no synchronization is needed here, because even if the
|
486
487
|
// underlying subchannel is shared between channels, this wrapper will only
|
@@ -488,14 +489,12 @@ class ClientChannel::ResolverResultHandler : public Resolver::ResultHandler {
|
|
488
489
|
// control plane work_serializer.
|
489
490
|
class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
490
491
|
public:
|
491
|
-
SubchannelWrapper(ClientChannel* chand, RefCountedPtr<Subchannel> subchannel
|
492
|
-
absl::optional<std::string> health_check_service_name)
|
492
|
+
SubchannelWrapper(ClientChannel* chand, RefCountedPtr<Subchannel> subchannel)
|
493
493
|
: SubchannelInterface(GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)
|
494
494
|
? "SubchannelWrapper"
|
495
495
|
: nullptr),
|
496
496
|
chand_(chand),
|
497
|
-
subchannel_(std::move(subchannel))
|
498
|
-
health_check_service_name_(std::move(health_check_service_name)) {
|
497
|
+
subchannel_(std::move(subchannel)) {
|
499
498
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
500
499
|
gpr_log(GPR_INFO,
|
501
500
|
"chand=%p: creating subchannel wrapper %p for subchannel %p",
|
@@ -514,6 +513,7 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
514
513
|
++it->second;
|
515
514
|
}
|
516
515
|
}
|
516
|
+
GPR_DEBUG_ASSERT(chand_->work_serializer_->RunningInWorkSerializer());
|
517
517
|
chand_->subchannel_wrappers_.insert(this);
|
518
518
|
}
|
519
519
|
|
@@ -523,6 +523,7 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
523
523
|
"chand=%p: destroying subchannel wrapper %p for subchannel %p",
|
524
524
|
chand_, this, subchannel_.get());
|
525
525
|
}
|
526
|
+
GPR_DEBUG_ASSERT(chand_->work_serializer_->RunningInWorkSerializer());
|
526
527
|
chand_->subchannel_wrappers_.erase(this);
|
527
528
|
if (chand_->channelz_node_ != nullptr) {
|
528
529
|
auto* subchannel_node = subchannel_->channelz_node();
|
@@ -548,7 +549,6 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
548
549
|
watcher_wrapper = new WatcherWrapper(std::move(watcher),
|
549
550
|
Ref(DEBUG_LOCATION, "WatcherWrapper"));
|
550
551
|
subchannel_->WatchConnectivityState(
|
551
|
-
health_check_service_name_,
|
552
552
|
RefCountedPtr<Subchannel::ConnectivityStateWatcherInterface>(
|
553
553
|
watcher_wrapper));
|
554
554
|
}
|
@@ -557,8 +557,7 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
557
557
|
override ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
558
558
|
auto it = watcher_map_.find(watcher);
|
559
559
|
GPR_ASSERT(it != watcher_map_.end());
|
560
|
-
subchannel_->CancelConnectivityStateWatch(
|
561
|
-
it->second);
|
560
|
+
subchannel_->CancelConnectivityStateWatch(it->second);
|
562
561
|
watcher_map_.erase(it);
|
563
562
|
}
|
564
563
|
|
@@ -572,11 +571,15 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
572
571
|
|
573
572
|
void AddDataWatcher(std::unique_ptr<DataWatcherInterface> watcher) override
|
574
573
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
574
|
+
static_cast<InternalSubchannelDataWatcherInterface*>(watcher.get())
|
575
|
+
->SetSubchannel(subchannel_.get());
|
576
|
+
GPR_ASSERT(data_watchers_.insert(std::move(watcher)).second);
|
577
|
+
}
|
578
|
+
|
579
|
+
void CancelDataWatcher(DataWatcherInterface* watcher) override
|
580
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
581
|
+
auto it = data_watchers_.find(watcher);
|
582
|
+
if (it != data_watchers_.end()) data_watchers_.erase(it);
|
580
583
|
}
|
581
584
|
|
582
585
|
void ThrottleKeepaliveTime(int new_keepalive_time) {
|
@@ -614,15 +617,16 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
614
617
|
DEBUG_LOCATION);
|
615
618
|
}
|
616
619
|
|
617
|
-
void OnConnectivityStateChange(
|
618
|
-
|
620
|
+
void OnConnectivityStateChange(
|
621
|
+
RefCountedPtr<ConnectivityStateWatcherInterface> self,
|
622
|
+
grpc_connectivity_state state, const absl::Status& status) override {
|
619
623
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
620
624
|
gpr_log(GPR_INFO,
|
621
625
|
"chand=%p: connectivity change for subchannel wrapper %p "
|
622
626
|
"subchannel %p; hopping into work_serializer",
|
623
627
|
parent_->chand_, parent_.get(), parent_->subchannel_.get());
|
624
628
|
}
|
625
|
-
|
629
|
+
self.release(); // Held by callback.
|
626
630
|
parent_->chand_->work_serializer_->Run(
|
627
631
|
[this, state, status]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(
|
628
632
|
*parent_->chand_->work_serializer_) {
|
@@ -675,17 +679,13 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
675
679
|
std::string(keepalive_throttling.value()).c_str());
|
676
680
|
}
|
677
681
|
}
|
678
|
-
//
|
679
|
-
//
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
watcher_->OnConnectivityStateChange(
|
686
|
-
state, state == GRPC_CHANNEL_TRANSIENT_FAILURE ? status
|
687
|
-
: absl::OkStatus());
|
688
|
-
}
|
682
|
+
// Propagate status only in state TF.
|
683
|
+
// We specifically want to avoid propagating the status for
|
684
|
+
// state IDLE that the real subchannel gave us only for the
|
685
|
+
// purpose of keepalive propagation.
|
686
|
+
watcher_->OnConnectivityStateChange(
|
687
|
+
state,
|
688
|
+
state == GRPC_CHANNEL_TRANSIENT_FAILURE ? status : absl::OkStatus());
|
689
689
|
}
|
690
690
|
|
691
691
|
std::unique_ptr<SubchannelInterface::ConnectivityStateWatcherInterface>
|
@@ -693,9 +693,26 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
693
693
|
RefCountedPtr<SubchannelWrapper> parent_;
|
694
694
|
};
|
695
695
|
|
696
|
+
// A heterogenous lookup comparator for data watchers that allows
|
697
|
+
// unique_ptr keys to be looked up as raw pointers.
|
698
|
+
struct DataWatcherLessThan {
|
699
|
+
using is_transparent = void;
|
700
|
+
bool operator()(const std::unique_ptr<DataWatcherInterface>& p1,
|
701
|
+
const std::unique_ptr<DataWatcherInterface>& p2) const {
|
702
|
+
return p1 < p2;
|
703
|
+
}
|
704
|
+
bool operator()(const std::unique_ptr<DataWatcherInterface>& p1,
|
705
|
+
const DataWatcherInterface* p2) const {
|
706
|
+
return p1.get() < p2;
|
707
|
+
}
|
708
|
+
bool operator()(const DataWatcherInterface* p1,
|
709
|
+
const std::unique_ptr<DataWatcherInterface>& p2) const {
|
710
|
+
return p1 < p2.get();
|
711
|
+
}
|
712
|
+
};
|
713
|
+
|
696
714
|
ClientChannel* chand_;
|
697
715
|
RefCountedPtr<Subchannel> subchannel_;
|
698
|
-
absl::optional<std::string> health_check_service_name_;
|
699
716
|
// Maps from the address of the watcher passed to us by the LB policy
|
700
717
|
// to the address of the WrapperWatcher that we passed to the underlying
|
701
718
|
// subchannel. This is needed so that when the LB policy calls
|
@@ -703,7 +720,7 @@ class ClientChannel::SubchannelWrapper : public SubchannelInterface {
|
|
703
720
|
// corresponding WrapperWatcher to cancel on the underlying subchannel.
|
704
721
|
std::map<ConnectivityStateWatcherInterface*, WatcherWrapper*> watcher_map_
|
705
722
|
ABSL_GUARDED_BY(*chand_->work_serializer_);
|
706
|
-
std::
|
723
|
+
std::set<std::unique_ptr<DataWatcherInterface>, DataWatcherLessThan>
|
707
724
|
data_watchers_ ABSL_GUARDED_BY(*chand_->work_serializer_);
|
708
725
|
};
|
709
726
|
|
@@ -908,13 +925,6 @@ class ClientChannel::ClientChannelControlHelper
|
|
908
925
|
ServerAddress address, const ChannelArgs& args) override
|
909
926
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
|
910
927
|
if (chand_->resolver_ == nullptr) return nullptr; // Shutting down.
|
911
|
-
// Determine health check service name.
|
912
|
-
absl::optional<std::string> health_check_service_name;
|
913
|
-
if (!args.GetBool(GRPC_ARG_INHIBIT_HEALTH_CHECKING).value_or(false)) {
|
914
|
-
health_check_service_name =
|
915
|
-
args.GetOwnedString(GRPC_ARG_HEALTH_CHECK_SERVICE_NAME);
|
916
|
-
}
|
917
|
-
// Construct channel args for subchannel.
|
918
928
|
ChannelArgs subchannel_args = ClientChannel::MakeSubchannelArgs(
|
919
929
|
args, address.args(), chand_->subchannel_pool_,
|
920
930
|
chand_->default_authority_);
|
@@ -926,8 +936,7 @@ class ClientChannel::ClientChannelControlHelper
|
|
926
936
|
// Make sure the subchannel has updated keepalive time.
|
927
937
|
subchannel->ThrottleKeepaliveTime(chand_->keepalive_time_);
|
928
938
|
// Create and return wrapper for the subchannel.
|
929
|
-
return MakeRefCounted<SubchannelWrapper>(
|
930
|
-
chand_, std::move(subchannel), std::move(health_check_service_name));
|
939
|
+
return MakeRefCounted<SubchannelWrapper>(chand_, std::move(subchannel));
|
931
940
|
}
|
932
941
|
|
933
942
|
void UpdateState(grpc_connectivity_state state, const absl::Status& status,
|
@@ -962,6 +971,16 @@ class ClientChannel::ClientChannelControlHelper
|
|
962
971
|
return chand_->default_authority_;
|
963
972
|
}
|
964
973
|
|
974
|
+
RefCountedPtr<grpc_channel_credentials> GetChannelCredentials() override {
|
975
|
+
return chand_->channel_args_.GetObject<grpc_channel_credentials>()
|
976
|
+
->duplicate_without_call_credentials();
|
977
|
+
}
|
978
|
+
|
979
|
+
RefCountedPtr<grpc_channel_credentials> GetUnsafeChannelCredentials()
|
980
|
+
override {
|
981
|
+
return chand_->channel_args_.GetObject<grpc_channel_credentials>()->Ref();
|
982
|
+
}
|
983
|
+
|
965
984
|
grpc_event_engine::experimental::EventEngine* GetEventEngine() override {
|
966
985
|
return chand_->owning_stack_->EventEngine();
|
967
986
|
}
|
@@ -1148,7 +1167,9 @@ ChannelArgs ClientChannel::MakeSubchannelArgs(
|
|
1148
1167
|
// uniqueness.
|
1149
1168
|
.Remove(GRPC_ARG_HEALTH_CHECK_SERVICE_NAME)
|
1150
1169
|
.Remove(GRPC_ARG_INHIBIT_HEALTH_CHECKING)
|
1151
|
-
.Remove(GRPC_ARG_CHANNELZ_CHANNEL_NODE)
|
1170
|
+
.Remove(GRPC_ARG_CHANNELZ_CHANNEL_NODE)
|
1171
|
+
// Remove all keys with the no-subchannel prefix.
|
1172
|
+
.RemoveAllKeysWithPrefix(GRPC_ARG_NO_SUBCHANNEL_PREFIX);
|
1152
1173
|
}
|
1153
1174
|
|
1154
1175
|
void ClientChannel::ReprocessQueuedResolverCalls() {
|
@@ -1199,9 +1220,9 @@ RefCountedPtr<LoadBalancingPolicy::Config> ChooseLbPolicy(
|
|
1199
1220
|
// above.
|
1200
1221
|
if (!policy_name.has_value()) policy_name = "pick_first";
|
1201
1222
|
// Now that we have the policy name, construct an empty config for it.
|
1202
|
-
Json config_json = Json::
|
1203
|
-
{std::string(*policy_name), Json::
|
1204
|
-
}};
|
1223
|
+
Json config_json = Json::FromArray({Json::FromObject({
|
1224
|
+
{std::string(*policy_name), Json::FromObject({})},
|
1225
|
+
})});
|
1205
1226
|
auto lb_policy_config =
|
1206
1227
|
CoreConfiguration::Get().lb_policy_registry().ParseLoadBalancingConfig(
|
1207
1228
|
config_json);
|
@@ -1366,11 +1387,8 @@ void ClientChannel::OnResolverErrorLocked(absl::Status status) {
|
|
1366
1387
|
// Otherwise, we go into TRANSIENT_FAILURE.
|
1367
1388
|
if (lb_policy_ == nullptr) {
|
1368
1389
|
// Update connectivity state.
|
1369
|
-
|
1370
|
-
|
1371
|
-
UpdateStateAndPickerLocked(
|
1372
|
-
GRPC_CHANNEL_TRANSIENT_FAILURE, status, "resolver failure",
|
1373
|
-
MakeRefCounted<LoadBalancingPolicy::TransientFailurePicker>(status));
|
1390
|
+
UpdateStateLocked(GRPC_CHANNEL_TRANSIENT_FAILURE, status,
|
1391
|
+
"resolver failure");
|
1374
1392
|
{
|
1375
1393
|
MutexLock lock(&resolution_mu_);
|
1376
1394
|
// Update resolver transient failure.
|
@@ -1414,6 +1432,14 @@ absl::Status ClientChannel::CreateOrUpdateLbPolicyLocked(
|
|
1414
1432
|
// Creates a new LB policy.
|
1415
1433
|
OrphanablePtr<LoadBalancingPolicy> ClientChannel::CreateLbPolicyLocked(
|
1416
1434
|
const ChannelArgs& args) {
|
1435
|
+
// The LB policy will start in state CONNECTING but will not
|
1436
|
+
// necessarily send us an update synchronously, so set state to
|
1437
|
+
// CONNECTING (in case the resolver had previously failed and put the
|
1438
|
+
// channel into TRANSIENT_FAILURE) and make sure we have a queueing picker.
|
1439
|
+
UpdateStateAndPickerLocked(
|
1440
|
+
GRPC_CHANNEL_CONNECTING, absl::Status(), "started resolving",
|
1441
|
+
MakeRefCounted<LoadBalancingPolicy::QueuePicker>(nullptr));
|
1442
|
+
// Now create the LB policy.
|
1417
1443
|
LoadBalancingPolicy::Args lb_policy_args;
|
1418
1444
|
lb_policy_args.work_serializer = work_serializer_;
|
1419
1445
|
lb_policy_args.channel_control_helper =
|
@@ -1477,7 +1503,7 @@ void ClientChannel::UpdateServiceConfigInDataPlaneLocked() {
|
|
1477
1503
|
std::vector<const grpc_channel_filter*> filters =
|
1478
1504
|
config_selector->GetFilters();
|
1479
1505
|
if (enable_retries) {
|
1480
|
-
filters.push_back(&
|
1506
|
+
filters.push_back(&RetryFilter::kVtable);
|
1481
1507
|
} else {
|
1482
1508
|
filters.push_back(&DynamicTerminationFilter::kFilterVtable);
|
1483
1509
|
}
|
@@ -1506,21 +1532,17 @@ void ClientChannel::UpdateServiceConfigInDataPlaneLocked() {
|
|
1506
1532
|
|
1507
1533
|
void ClientChannel::CreateResolverLocked() {
|
1508
1534
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1509
|
-
gpr_log(GPR_INFO, "chand=%p: starting name resolution", this
|
1535
|
+
gpr_log(GPR_INFO, "chand=%p: starting name resolution for %s", this,
|
1536
|
+
uri_to_resolve_.c_str());
|
1510
1537
|
}
|
1511
1538
|
resolver_ = CoreConfiguration::Get().resolver_registry().CreateResolver(
|
1512
|
-
uri_to_resolve_
|
1513
|
-
|
1539
|
+
uri_to_resolve_, channel_args_, interested_parties_, work_serializer_,
|
1540
|
+
std::make_unique<ResolverResultHandler>(this));
|
1514
1541
|
// Since the validity of the args was checked when the channel was created,
|
1515
1542
|
// CreateResolver() must return a non-null result.
|
1516
1543
|
GPR_ASSERT(resolver_ != nullptr);
|
1517
|
-
|
1518
|
-
|
1519
|
-
// the picker to a queueing picker somewhere, in case the LB policy
|
1520
|
-
// does not immediately return a new picker.
|
1521
|
-
UpdateStateAndPickerLocked(
|
1522
|
-
GRPC_CHANNEL_CONNECTING, absl::Status(), "started resolving",
|
1523
|
-
MakeRefCounted<LoadBalancingPolicy::QueuePicker>(nullptr));
|
1544
|
+
UpdateStateLocked(GRPC_CHANNEL_CONNECTING, absl::Status(),
|
1545
|
+
"started resolving");
|
1524
1546
|
resolver_->StartLocked();
|
1525
1547
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1526
1548
|
gpr_log(GPR_INFO, "chand=%p: created resolver=%p", this, resolver_.get());
|
@@ -1534,24 +1556,7 @@ void ClientChannel::DestroyResolverAndLbPolicyLocked() {
|
|
1534
1556
|
resolver_.get());
|
1535
1557
|
}
|
1536
1558
|
resolver_.reset();
|
1537
|
-
|
1538
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1539
|
-
gpr_log(GPR_INFO, "chand=%p: shutting down lb_policy=%p", this,
|
1540
|
-
lb_policy_.get());
|
1541
|
-
}
|
1542
|
-
grpc_pollset_set_del_pollset_set(lb_policy_->interested_parties(),
|
1543
|
-
interested_parties_);
|
1544
|
-
lb_policy_.reset();
|
1545
|
-
}
|
1546
|
-
}
|
1547
|
-
}
|
1548
|
-
|
1549
|
-
void ClientChannel::UpdateStateAndPickerLocked(
|
1550
|
-
grpc_connectivity_state state, const absl::Status& status,
|
1551
|
-
const char* reason,
|
1552
|
-
RefCountedPtr<LoadBalancingPolicy::SubchannelPicker> picker) {
|
1553
|
-
// Special case for IDLE and SHUTDOWN states.
|
1554
|
-
if (picker == nullptr || state == GRPC_CHANNEL_SHUTDOWN) {
|
1559
|
+
// Clear resolution state.
|
1555
1560
|
saved_service_config_.reset();
|
1556
1561
|
saved_config_selector_.reset();
|
1557
1562
|
// Acquire resolution lock to update config selector and associated state.
|
@@ -1567,8 +1572,22 @@ void ClientChannel::UpdateStateAndPickerLocked(
|
|
1567
1572
|
config_selector_to_unref = std::move(config_selector_);
|
1568
1573
|
dynamic_filters_to_unref = std::move(dynamic_filters_);
|
1569
1574
|
}
|
1575
|
+
// Clear LB policy if set.
|
1576
|
+
if (lb_policy_ != nullptr) {
|
1577
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
|
1578
|
+
gpr_log(GPR_INFO, "chand=%p: shutting down lb_policy=%p", this,
|
1579
|
+
lb_policy_.get());
|
1580
|
+
}
|
1581
|
+
grpc_pollset_set_del_pollset_set(lb_policy_->interested_parties(),
|
1582
|
+
interested_parties_);
|
1583
|
+
lb_policy_.reset();
|
1584
|
+
}
|
1570
1585
|
}
|
1571
|
-
|
1586
|
+
}
|
1587
|
+
|
1588
|
+
void ClientChannel::UpdateStateLocked(grpc_connectivity_state state,
|
1589
|
+
const absl::Status& status,
|
1590
|
+
const char* reason) {
|
1572
1591
|
state_tracker_.SetState(state, status, reason);
|
1573
1592
|
if (channelz_node_ != nullptr) {
|
1574
1593
|
channelz_node_->SetConnectivityState(state);
|
@@ -1578,19 +1597,24 @@ void ClientChannel::UpdateStateAndPickerLocked(
|
|
1578
1597
|
channelz::ChannelNode::GetChannelConnectivityStateChangeString(
|
1579
1598
|
state)));
|
1580
1599
|
}
|
1600
|
+
}
|
1601
|
+
|
1602
|
+
void ClientChannel::UpdateStateAndPickerLocked(
|
1603
|
+
grpc_connectivity_state state, const absl::Status& status,
|
1604
|
+
const char* reason,
|
1605
|
+
RefCountedPtr<LoadBalancingPolicy::SubchannelPicker> picker) {
|
1606
|
+
UpdateStateLocked(state, status, reason);
|
1581
1607
|
// Grab the LB lock to update the picker and trigger reprocessing of the
|
1582
1608
|
// queued picks.
|
1583
1609
|
// Old picker will be unreffed after releasing the lock.
|
1584
|
-
|
1585
|
-
|
1586
|
-
|
1587
|
-
|
1588
|
-
|
1589
|
-
|
1590
|
-
call->RetryPickLocked();
|
1591
|
-
}
|
1592
|
-
lb_queued_calls_.clear();
|
1610
|
+
MutexLock lock(&lb_mu_);
|
1611
|
+
picker_.swap(picker);
|
1612
|
+
// Reprocess queued picks.
|
1613
|
+
for (LoadBalancedCall* call : lb_queued_calls_) {
|
1614
|
+
call->RemoveCallFromLbQueuedCallsLocked();
|
1615
|
+
call->RetryPickLocked();
|
1593
1616
|
}
|
1617
|
+
lb_queued_calls_.clear();
|
1594
1618
|
}
|
1595
1619
|
|
1596
1620
|
namespace {
|
@@ -1704,10 +1728,13 @@ void ClientChannel::StartTransportOpLocked(grpc_transport_op* op) {
|
|
1704
1728
|
StatusIntProperty::ChannelConnectivityState,
|
1705
1729
|
&value) &&
|
1706
1730
|
static_cast<grpc_connectivity_state>(value) == GRPC_CHANNEL_IDLE) {
|
1707
|
-
if (disconnect_error_.ok()) {
|
1731
|
+
if (disconnect_error_.ok()) { // Ignore if we're shutting down.
|
1708
1732
|
// Enter IDLE state.
|
1709
1733
|
UpdateStateAndPickerLocked(GRPC_CHANNEL_IDLE, absl::Status(),
|
1710
1734
|
"channel entering IDLE", nullptr);
|
1735
|
+
// TODO(roth): Do we need to check for any queued picks here, in
|
1736
|
+
// case there's a race condition in the client_idle filter?
|
1737
|
+
// And maybe also check for calls in the resolver queue?
|
1711
1738
|
}
|
1712
1739
|
} else {
|
1713
1740
|
// Disconnect.
|
@@ -1832,23 +1859,22 @@ grpc_error_handle ClientChannel::CallData::ApplyServiceConfigToCallLocked(
|
|
1832
1859
|
chand(), this);
|
1833
1860
|
}
|
1834
1861
|
if (!config_selector.ok()) return config_selector.status();
|
1835
|
-
// Use the ConfigSelector to determine the config for the call.
|
1836
|
-
auto call_config =
|
1837
|
-
(*config_selector)->GetCallConfig({send_initial_metadata(), arena()});
|
1838
|
-
if (!call_config.ok()) {
|
1839
|
-
return absl_status_to_grpc_error(
|
1840
|
-
MaybeRewriteIllegalStatusCode(call_config.status(), "ConfigSelector"));
|
1841
|
-
}
|
1842
1862
|
// Create a ClientChannelServiceConfigCallData for the call. This stores
|
1843
1863
|
// a ref to the ServiceConfig and caches the right set of parsed configs
|
1844
1864
|
// to use for the call. The ClientChannelServiceConfigCallData will store
|
1845
1865
|
// itself in the call context, so that it can be accessed by filters
|
1846
1866
|
// below us in the stack, and it will be cleaned up when the call ends.
|
1847
1867
|
auto* service_config_call_data =
|
1848
|
-
arena()->New<ClientChannelServiceConfigCallData>(
|
1849
|
-
|
1850
|
-
|
1851
|
-
|
1868
|
+
arena()->New<ClientChannelServiceConfigCallData>(arena(), call_context());
|
1869
|
+
// Use the ConfigSelector to determine the config for the call.
|
1870
|
+
absl::Status call_config_status =
|
1871
|
+
(*config_selector)
|
1872
|
+
->GetCallConfig(
|
1873
|
+
{send_initial_metadata(), arena(), service_config_call_data});
|
1874
|
+
if (!call_config_status.ok()) {
|
1875
|
+
return absl_status_to_grpc_error(
|
1876
|
+
MaybeRewriteIllegalStatusCode(call_config_status, "ConfigSelector"));
|
1877
|
+
}
|
1852
1878
|
// Apply our own method params to the call.
|
1853
1879
|
auto* method_params = static_cast<ClientChannelMethodParsedConfig*>(
|
1854
1880
|
service_config_call_data->GetMethodParsedConfig(
|
@@ -2355,7 +2381,8 @@ class ClientChannel::LoadBalancedCall::LbCallState
|
|
2355
2381
|
|
2356
2382
|
// Internal API to allow first-party LB policies to access per-call
|
2357
2383
|
// attributes set by the ConfigSelector.
|
2358
|
-
|
2384
|
+
ServiceConfigCallData::CallAttributeInterface* GetCallAttribute(
|
2385
|
+
UniqueTypeName type) const override;
|
2359
2386
|
|
2360
2387
|
private:
|
2361
2388
|
LoadBalancedCall* lb_call_;
|
@@ -2440,15 +2467,12 @@ class ClientChannel::LoadBalancedCall::Metadata
|
|
2440
2467
|
// ClientChannel::LoadBalancedCall::LbCallState
|
2441
2468
|
//
|
2442
2469
|
|
2443
|
-
|
2470
|
+
ServiceConfigCallData::CallAttributeInterface*
|
2444
2471
|
ClientChannel::LoadBalancedCall::LbCallState::GetCallAttribute(
|
2445
|
-
UniqueTypeName type) {
|
2472
|
+
UniqueTypeName type) const {
|
2446
2473
|
auto* service_config_call_data = static_cast<ServiceConfigCallData*>(
|
2447
2474
|
lb_call_->call_context()[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].value);
|
2448
|
-
|
2449
|
-
auto it = call_attributes.find(type);
|
2450
|
-
if (it == call_attributes.end()) return absl::string_view();
|
2451
|
-
return it->second;
|
2475
|
+
return service_config_call_data->GetCallAttribute(type);
|
2452
2476
|
}
|
2453
2477
|
|
2454
2478
|
//
|
@@ -3033,6 +3057,8 @@ void ClientChannel::FilterBasedLoadBalancedCall::RecvInitialMetadataReady(
|
|
3033
3057
|
// recv_initial_metadata_flags is not populated for clients
|
3034
3058
|
self->call_attempt_tracer()->RecordReceivedInitialMetadata(
|
3035
3059
|
self->recv_initial_metadata_);
|
3060
|
+
auto* peer_string = self->recv_initial_metadata_->get_pointer(PeerString());
|
3061
|
+
if (peer_string != nullptr) self->peer_string_ = peer_string->Ref();
|
3036
3062
|
}
|
3037
3063
|
Closure::Run(DEBUG_LOCATION, self->original_recv_initial_metadata_ready_,
|
3038
3064
|
error);
|
@@ -3076,12 +3102,8 @@ void ClientChannel::FilterBasedLoadBalancedCall::RecvTrailingMetadataReady(
|
|
3076
3102
|
}
|
3077
3103
|
}
|
3078
3104
|
absl::string_view peer_string;
|
3079
|
-
if (self->
|
3080
|
-
|
3081
|
-
self->recv_initial_metadata_->get_pointer(PeerString());
|
3082
|
-
if (peer_string_slice != nullptr) {
|
3083
|
-
peer_string = peer_string_slice->as_string_view();
|
3084
|
-
}
|
3105
|
+
if (self->peer_string_.has_value()) {
|
3106
|
+
peer_string = self->peer_string_->as_string_view();
|
3085
3107
|
}
|
3086
3108
|
self->RecordCallCompletion(status, self->recv_trailing_metadata_,
|
3087
3109
|
self->transport_stream_stats_, peer_string);
|
@@ -65,6 +65,7 @@
|
|
65
65
|
#include "src/core/lib/resolver/resolver.h"
|
66
66
|
#include "src/core/lib/resource_quota/arena.h"
|
67
67
|
#include "src/core/lib/service_config/service_config.h"
|
68
|
+
#include "src/core/lib/slice/slice.h"
|
68
69
|
#include "src/core/lib/surface/channel.h"
|
69
70
|
#include "src/core/lib/transport/connectivity_state.h"
|
70
71
|
#include "src/core/lib/transport/metadata_batch.h"
|
@@ -247,6 +248,10 @@ class ClientChannel {
|
|
247
248
|
OrphanablePtr<LoadBalancingPolicy> CreateLbPolicyLocked(
|
248
249
|
const ChannelArgs& args) ABSL_EXCLUSIVE_LOCKS_REQUIRED(*work_serializer_);
|
249
250
|
|
251
|
+
void UpdateStateLocked(grpc_connectivity_state state,
|
252
|
+
const absl::Status& status, const char* reason)
|
253
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*work_serializer_);
|
254
|
+
|
250
255
|
void UpdateStateAndPickerLocked(
|
251
256
|
grpc_connectivity_state state, const absl::Status& status,
|
252
257
|
const char* reason,
|
@@ -552,6 +557,7 @@ class ClientChannel::FilterBasedLoadBalancedCall
|
|
552
557
|
CallCombiner* call_combiner_;
|
553
558
|
grpc_polling_entity* pollent_;
|
554
559
|
grpc_closure* on_call_destruction_complete_;
|
560
|
+
absl::optional<Slice> peer_string_;
|
555
561
|
|
556
562
|
// Set when we get a cancel_stream op.
|
557
563
|
grpc_error_handle cancel_error_;
|