grpc 1.37.0.pre1 → 1.39.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +96 -59
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/endpoint_config.h +48 -0
- data/include/grpc/event_engine/event_engine.h +334 -0
- data/include/grpc/event_engine/port.h +41 -0
- data/include/grpc/event_engine/slice_allocator.h +91 -0
- data/include/grpc/grpc.h +11 -4
- data/include/grpc/grpc_security.h +32 -0
- data/include/grpc/grpc_security_constants.h +15 -0
- data/include/grpc/impl/codegen/grpc_types.h +28 -13
- data/include/grpc/impl/codegen/port_platform.h +22 -0
- data/include/grpc/module.modulemap +14 -14
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +630 -3103
- data/src/core/ext/filters/client_channel/client_channel.h +489 -55
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +1 -1
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +28 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +30 -29
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
- data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +755 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +46 -54
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +146 -155
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +24 -18
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +18 -12
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +20 -13
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +60 -32
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2449 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +306 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
- data/src/core/ext/filters/client_channel/server_address.cc +1 -1
- data/src/core/ext/filters/client_channel/service_config.cc +15 -14
- data/src/core/ext/filters/client_channel/service_config.h +7 -6
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
- data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
- data/src/core/ext/filters/client_channel/subchannel.h +7 -6
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +17 -16
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +46 -34
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
- data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
- data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
- data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +3 -2
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -45
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +5 -4
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -120
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +32 -27
- data/src/core/ext/transport/chttp2/transport/parsing.cc +65 -58
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +72 -60
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/xds_api.cc +349 -200
- data/src/core/ext/xds/xds_api.h +21 -12
- data/src/core/ext/xds/xds_bootstrap.cc +97 -159
- data/src/core/ext/xds/xds_bootstrap.h +19 -24
- data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
- data/src/core/ext/xds/xds_certificate_provider.h +4 -4
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_client.cc +310 -178
- data/src/core/ext/xds/xds_client.h +41 -27
- data/src/core/ext/xds/xds_client_stats.h +3 -2
- data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +16 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +16 -11
- data/src/core/lib/channel/channel_stack.cc +10 -9
- data/src/core/lib/channel/channel_stack.h +10 -9
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channelz.cc +21 -13
- data/src/core/lib/channel/channelz.h +3 -0
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/handshaker.cc +7 -6
- data/src/core/lib/channel/handshaker.h +5 -5
- data/src/core/lib/event_engine/endpoint_config.cc +46 -0
- data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
- data/src/core/lib/event_engine/event_engine.cc +50 -0
- data/src/core/lib/event_engine/slice_allocator.cc +89 -0
- data/src/core/lib/event_engine/sockaddr.cc +40 -0
- data/src/core/lib/event_engine/sockaddr.h +44 -0
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +183 -0
- data/src/core/lib/http/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli_security_connector.cc +11 -7
- data/src/core/lib/http/parser.cc +16 -16
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +7 -9
- data/src/core/lib/iomgr/buffer_list.h +4 -5
- data/src/core/lib/iomgr/call_combiner.cc +15 -12
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +33 -0
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +168 -61
- data/src/core/lib/iomgr/error.h +217 -106
- data/src/core/lib/iomgr/error_cfstream.cc +3 -2
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +5 -1
- data/src/core/lib/iomgr/ev_apple.cc +5 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
- data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +9 -8
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/event_engine/closure.cc +54 -0
- data/src/core/lib/iomgr/event_engine/closure.h +33 -0
- data/src/core/lib/iomgr/event_engine/endpoint.cc +194 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
- data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
- data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
- data/src/core/lib/iomgr/event_engine/promise.h +51 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +243 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
- data/src/core/lib/iomgr/exec_ctx.cc +12 -4
- data/src/core/lib/iomgr/exec_ctx.h +4 -5
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
- data/src/core/lib/iomgr/executor/threadpool.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +2 -2
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +3 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -12
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +7 -7
- data/src/core/lib/iomgr/pollset_custom.h +3 -1
- data/src/core/lib/iomgr/pollset_uv.cc +3 -1
- data/src/core/lib/iomgr/pollset_uv.h +5 -1
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +7 -5
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +8 -4
- data/src/core/lib/iomgr/resolve_address.h +12 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +11 -10
- data/src/core/lib/iomgr/sockaddr.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.cc +15 -2
- data/src/core/lib/iomgr/socket_mutator.h +26 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +24 -22
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +22 -19
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +78 -73
- data/src/core/lib/iomgr/tcp_posix.h +8 -0
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +26 -25
- data/src/core/lib/iomgr/tcp_server_posix.cc +28 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -18
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +25 -23
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer.h +6 -1
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +6 -6
- data/src/core/lib/iomgr/udp_server.cc +21 -20
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_reader.cc +4 -4
- data/src/core/lib/matchers/matchers.cc +39 -39
- data/src/core/lib/matchers/matchers.h +28 -28
- data/src/core/lib/security/authorization/authorization_engine.h +44 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
- data/src/core/lib/security/authorization/evaluate_args.h +91 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.h +2 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +12 -10
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/tls/tls_utils.cc +32 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +13 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -9
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +27 -4
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +56 -60
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
- data/src/core/lib/security/transport/security_handshaker.cc +33 -32
- data/src/core/lib/security/transport/server_auth_filter.cc +24 -11
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +2 -2
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/surface/call.cc +67 -46
- data/src/core/lib/surface/call.h +13 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +3 -2
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +68 -69
- data/src/core/lib/surface/completion_queue.h +3 -2
- data/src/core/lib/surface/completion_queue_factory.cc +1 -2
- data/src/core/lib/surface/init.cc +1 -3
- data/src/core/lib/surface/init.h +10 -1
- data/src/core/lib/surface/lame_client.cc +11 -11
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +28 -22
- data/src/core/lib/surface/server.h +16 -15
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +4 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +21 -10
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +37 -37
- data/src/core/lib/transport/metadata_batch.h +19 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +6 -4
- data/src/core/lib/transport/transport_op_string.cc +6 -6
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/tsi/alts/crypt/gsec.h +6 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/ssl_transport_security.cc +32 -14
- data/src/core/tsi/ssl_transport_security.h +3 -4
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +11 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
- data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +37 -9
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +29 -22
- data/third_party/abseil-cpp/absl/status/status.h +81 -20
- data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
- data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +26 -24
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/boringssl-with-bazel/err_data.c +483 -461
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +9 -7
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +52 -65
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +26 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +61 -75
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +367 -315
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +47 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +6 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +20 -49
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +325 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +25 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +99 -63
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +283 -85
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +13 -19
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +445 -152
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +66 -30
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +189 -86
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +154 -24
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +414 -135
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +51 -60
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +8 -31
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +664 -702
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +65 -7
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -39
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +141 -94
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +213 -118
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- metadata +93 -45
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -246
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
@@ -19,9 +19,19 @@
|
|
19
19
|
|
20
20
|
#include <grpc/support/port_platform.h>
|
21
21
|
|
22
|
+
#include <stdlib.h>
|
23
|
+
|
24
|
+
#include "src/core/lib/iomgr/error.h"
|
25
|
+
#include "src/core/lib/json/json.h"
|
26
|
+
|
22
27
|
namespace grpc_core {
|
23
28
|
extern const char* kRequestRingHashAttribute;
|
24
29
|
|
30
|
+
// Helper Parsing method to parse ring hash policy configs; for example, ring
|
31
|
+
// hash size validity.
|
32
|
+
void ParseRingHashLbConfig(const Json& json, size_t* min_ring_size,
|
33
|
+
size_t* max_ring_size,
|
34
|
+
std::vector<grpc_error_handle>* error_list);
|
25
35
|
} // namespace grpc_core
|
26
36
|
|
27
37
|
#endif // GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_RING_HASH_RING_HASH_H
|
@@ -34,11 +34,11 @@
|
|
34
34
|
#include "src/core/ext/filters/client_channel/lb_policy/subchannel_list.h"
|
35
35
|
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
|
36
36
|
#include "src/core/ext/filters/client_channel/subchannel.h"
|
37
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
37
38
|
#include "src/core/lib/channel/channel_args.h"
|
38
39
|
#include "src/core/lib/debug/trace.h"
|
39
40
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
40
41
|
#include "src/core/lib/gprpp/sync.h"
|
41
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
42
42
|
#include "src/core/lib/transport/connectivity_state.h"
|
43
43
|
#include "src/core/lib/transport/error_utils.h"
|
44
44
|
#include "src/core/lib/transport/static_metadata.h"
|
@@ -331,7 +331,7 @@ void RoundRobin::RoundRobinSubchannelList::
|
|
331
331
|
absl::make_unique<QueuePicker>(p->Ref(DEBUG_LOCATION, "QueuePicker")));
|
332
332
|
} else if (num_transient_failure_ == num_subchannels()) {
|
333
333
|
/* 3) TRANSIENT_FAILURE */
|
334
|
-
|
334
|
+
grpc_error_handle error =
|
335
335
|
grpc_error_set_int(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
336
336
|
"connections to all backends failing"),
|
337
337
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
@@ -449,7 +449,7 @@ void RoundRobin::UpdateLocked(UpdateArgs args) {
|
|
449
449
|
if (latest_pending_subchannel_list_->num_subchannels() == 0) {
|
450
450
|
// If the new list is empty, immediately promote the new list to the
|
451
451
|
// current list and transition to TRANSIENT_FAILURE.
|
452
|
-
|
452
|
+
grpc_error_handle error =
|
453
453
|
grpc_error_set_int(GRPC_ERROR_CREATE_FROM_STATIC_STRING("Empty update"),
|
454
454
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
455
455
|
channel_control_helper()->UpdateState(
|
@@ -487,7 +487,7 @@ class RoundRobinFactory : public LoadBalancingPolicyFactory {
|
|
487
487
|
const char* name() const override { return kRoundRobin; }
|
488
488
|
|
489
489
|
RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
490
|
-
const Json& /*json*/,
|
490
|
+
const Json& /*json*/, grpc_error_handle* /*error*/) const override {
|
491
491
|
return MakeRefCounted<RoundRobinConfig>();
|
492
492
|
}
|
493
493
|
};
|
@@ -33,13 +33,13 @@
|
|
33
33
|
// that implementation should be hidden from the LB policy API.
|
34
34
|
#include "src/core/ext/filters/client_channel/subchannel.h"
|
35
35
|
#include "src/core/ext/filters/client_channel/subchannel_interface.h"
|
36
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
36
37
|
#include "src/core/lib/channel/channel_args.h"
|
37
38
|
#include "src/core/lib/debug/trace.h"
|
38
39
|
#include "src/core/lib/gprpp/orphanable.h"
|
39
40
|
#include "src/core/lib/gprpp/ref_counted.h"
|
40
41
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
41
42
|
#include "src/core/lib/iomgr/closure.h"
|
42
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
43
43
|
#include "src/core/lib/transport/connectivity_state.h"
|
44
44
|
|
45
45
|
// Code for maintaining a list of subchannels within an LB policy.
|
@@ -165,8 +165,8 @@ class WeightedTargetLb : public LoadBalancingPolicy {
|
|
165
165
|
grpc_connectivity_state state, const absl::Status& status,
|
166
166
|
std::unique_ptr<SubchannelPicker> picker);
|
167
167
|
|
168
|
-
static void OnDelayedRemovalTimer(void* arg,
|
169
|
-
void OnDelayedRemovalTimerLocked(
|
168
|
+
static void OnDelayedRemovalTimer(void* arg, grpc_error_handle error);
|
169
|
+
void OnDelayedRemovalTimerLocked(grpc_error_handle error);
|
170
170
|
|
171
171
|
// The owning LB policy.
|
172
172
|
RefCountedPtr<WeightedTargetLb> weighted_target_policy_;
|
@@ -387,7 +387,7 @@ void WeightedTargetLb::UpdateStateLocked() {
|
|
387
387
|
absl::make_unique<QueuePicker>(Ref(DEBUG_LOCATION, "QueuePicker"));
|
388
388
|
break;
|
389
389
|
default:
|
390
|
-
|
390
|
+
grpc_error_handle error = grpc_error_set_int(
|
391
391
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
392
392
|
"weighted_target: all children report state TRANSIENT_FAILURE"),
|
393
393
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
@@ -564,8 +564,8 @@ void WeightedTargetLb::WeightedChild::DeactivateLocked() {
|
|
564
564
|
&on_delayed_removal_timer_);
|
565
565
|
}
|
566
566
|
|
567
|
-
void WeightedTargetLb::WeightedChild::OnDelayedRemovalTimer(
|
568
|
-
|
567
|
+
void WeightedTargetLb::WeightedChild::OnDelayedRemovalTimer(
|
568
|
+
void* arg, grpc_error_handle error) {
|
569
569
|
WeightedChild* self = static_cast<WeightedChild*>(arg);
|
570
570
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
571
571
|
self->weighted_target_policy_->work_serializer()->Run(
|
@@ -574,7 +574,7 @@ void WeightedTargetLb::WeightedChild::OnDelayedRemovalTimer(void* arg,
|
|
574
574
|
}
|
575
575
|
|
576
576
|
void WeightedTargetLb::WeightedChild::OnDelayedRemovalTimerLocked(
|
577
|
-
|
577
|
+
grpc_error_handle error) {
|
578
578
|
if (error == GRPC_ERROR_NONE && delayed_removal_timer_callback_pending_ &&
|
579
579
|
!shutdown_ && weight_ == 0) {
|
580
580
|
delayed_removal_timer_callback_pending_ = false;
|
@@ -631,7 +631,7 @@ class WeightedTargetLbFactory : public LoadBalancingPolicyFactory {
|
|
631
631
|
const char* name() const override { return kWeightedTarget; }
|
632
632
|
|
633
633
|
RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
634
|
-
const Json& json,
|
634
|
+
const Json& json, grpc_error_handle* error) const override {
|
635
635
|
GPR_DEBUG_ASSERT(error != nullptr && *error == GRPC_ERROR_NONE);
|
636
636
|
if (json.type() == Json::Type::JSON_NULL) {
|
637
637
|
// weighted_target was mentioned as a policy in the deprecated
|
@@ -642,7 +642,7 @@ class WeightedTargetLbFactory : public LoadBalancingPolicyFactory {
|
|
642
642
|
"config instead.");
|
643
643
|
return nullptr;
|
644
644
|
}
|
645
|
-
std::vector<
|
645
|
+
std::vector<grpc_error_handle> error_list;
|
646
646
|
// Weight map.
|
647
647
|
WeightedTargetLbConfig::TargetMap target_map;
|
648
648
|
auto it = json.object_value().find("targets");
|
@@ -655,14 +655,14 @@ class WeightedTargetLbFactory : public LoadBalancingPolicyFactory {
|
|
655
655
|
} else {
|
656
656
|
for (const auto& p : it->second.object_value()) {
|
657
657
|
WeightedTargetLbConfig::ChildConfig child_config;
|
658
|
-
std::vector<
|
658
|
+
std::vector<grpc_error_handle> child_errors =
|
659
659
|
ParseChildConfig(p.second, &child_config);
|
660
660
|
if (!child_errors.empty()) {
|
661
661
|
// Can't use GRPC_ERROR_CREATE_FROM_VECTOR() here, because the error
|
662
662
|
// string is not static in this case.
|
663
|
-
|
663
|
+
grpc_error_handle error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
664
664
|
absl::StrCat("field:targets key:", p.first).c_str());
|
665
|
-
for (
|
665
|
+
for (grpc_error_handle child_error : child_errors) {
|
666
666
|
error = grpc_error_add_child(error, child_error);
|
667
667
|
}
|
668
668
|
error_list.push_back(error);
|
@@ -680,9 +680,9 @@ class WeightedTargetLbFactory : public LoadBalancingPolicyFactory {
|
|
680
680
|
}
|
681
681
|
|
682
682
|
private:
|
683
|
-
static std::vector<
|
683
|
+
static std::vector<grpc_error_handle> ParseChildConfig(
|
684
684
|
const Json& json, WeightedTargetLbConfig::ChildConfig* child_config) {
|
685
|
-
std::vector<
|
685
|
+
std::vector<grpc_error_handle> error_list;
|
686
686
|
if (json.type() != Json::Type::OBJECT) {
|
687
687
|
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
688
688
|
"value should be of type object"));
|
@@ -711,13 +711,13 @@ class WeightedTargetLbFactory : public LoadBalancingPolicyFactory {
|
|
711
711
|
// Child policy.
|
712
712
|
it = json.object_value().find("childPolicy");
|
713
713
|
if (it != json.object_value().end()) {
|
714
|
-
|
714
|
+
grpc_error_handle parse_error = GRPC_ERROR_NONE;
|
715
715
|
child_config->config =
|
716
716
|
LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(it->second,
|
717
717
|
&parse_error);
|
718
718
|
if (child_config->config == nullptr) {
|
719
719
|
GPR_DEBUG_ASSERT(parse_error != GRPC_ERROR_NONE);
|
720
|
-
std::vector<
|
720
|
+
std::vector<grpc_error_handle> child_errors;
|
721
721
|
child_errors.push_back(parse_error);
|
722
722
|
error_list.push_back(
|
723
723
|
GRPC_ERROR_CREATE_FROM_VECTOR("field:childPolicy", &child_errors));
|
@@ -75,7 +75,7 @@ class CdsLb : public LoadBalancingPolicy {
|
|
75
75
|
void OnClusterChanged(XdsApi::CdsUpdate cluster_data) override {
|
76
76
|
new Notifier(parent_, name_, std::move(cluster_data));
|
77
77
|
}
|
78
|
-
void OnError(
|
78
|
+
void OnError(grpc_error_handle error) override {
|
79
79
|
new Notifier(parent_, name_, error);
|
80
80
|
}
|
81
81
|
void OnResourceDoesNotExist() override { new Notifier(parent_, name_); }
|
@@ -86,14 +86,14 @@ class CdsLb : public LoadBalancingPolicy {
|
|
86
86
|
Notifier(RefCountedPtr<CdsLb> parent, std::string name,
|
87
87
|
XdsApi::CdsUpdate update);
|
88
88
|
Notifier(RefCountedPtr<CdsLb> parent, std::string name,
|
89
|
-
|
89
|
+
grpc_error_handle error);
|
90
90
|
explicit Notifier(RefCountedPtr<CdsLb> parent, std::string name);
|
91
91
|
|
92
92
|
private:
|
93
93
|
enum Type { kUpdate, kError, kDoesNotExist };
|
94
94
|
|
95
|
-
static void RunInExecCtx(void* arg,
|
96
|
-
void RunInWorkSerializer(
|
95
|
+
static void RunInExecCtx(void* arg, grpc_error_handle error);
|
96
|
+
void RunInWorkSerializer(grpc_error_handle error);
|
97
97
|
|
98
98
|
RefCountedPtr<CdsLb> parent_;
|
99
99
|
std::string name_;
|
@@ -139,10 +139,10 @@ class CdsLb : public LoadBalancingPolicy {
|
|
139
139
|
std::set<std::string>* clusters_needed);
|
140
140
|
void OnClusterChanged(const std::string& name,
|
141
141
|
XdsApi::CdsUpdate cluster_data);
|
142
|
-
void OnError(const std::string& name,
|
142
|
+
void OnError(const std::string& name, grpc_error_handle error);
|
143
143
|
void OnResourceDoesNotExist(const std::string& name);
|
144
144
|
|
145
|
-
|
145
|
+
grpc_error_handle UpdateXdsCertificateProvider(
|
146
146
|
const std::string& cluster_name, const XdsApi::CdsUpdate& cluster_data);
|
147
147
|
|
148
148
|
void CancelClusterDataWatch(absl::string_view cluster_name,
|
@@ -190,7 +190,8 @@ CdsLb::ClusterWatcher::Notifier::Notifier(RefCountedPtr<CdsLb> parent,
|
|
190
190
|
}
|
191
191
|
|
192
192
|
CdsLb::ClusterWatcher::Notifier::Notifier(RefCountedPtr<CdsLb> parent,
|
193
|
-
std::string name,
|
193
|
+
std::string name,
|
194
|
+
grpc_error_handle error)
|
194
195
|
: parent_(std::move(parent)), name_(std::move(name)), type_(kError) {
|
195
196
|
GRPC_CLOSURE_INIT(&closure_, &RunInExecCtx, this, nullptr);
|
196
197
|
ExecCtx::Run(DEBUG_LOCATION, &closure_, error);
|
@@ -204,14 +205,15 @@ CdsLb::ClusterWatcher::Notifier::Notifier(RefCountedPtr<CdsLb> parent,
|
|
204
205
|
}
|
205
206
|
|
206
207
|
void CdsLb::ClusterWatcher::Notifier::RunInExecCtx(void* arg,
|
207
|
-
|
208
|
+
grpc_error_handle error) {
|
208
209
|
Notifier* self = static_cast<Notifier*>(arg);
|
209
210
|
GRPC_ERROR_REF(error);
|
210
211
|
self->parent_->work_serializer()->Run(
|
211
212
|
[self, error]() { self->RunInWorkSerializer(error); }, DEBUG_LOCATION);
|
212
213
|
}
|
213
214
|
|
214
|
-
void CdsLb::ClusterWatcher::Notifier::RunInWorkSerializer(
|
215
|
+
void CdsLb::ClusterWatcher::Notifier::RunInWorkSerializer(
|
216
|
+
grpc_error_handle error) {
|
215
217
|
switch (type_) {
|
216
218
|
case kUpdate:
|
217
219
|
parent_->OnClusterChanged(name_, std::move(update_));
|
@@ -390,26 +392,25 @@ bool CdsLb::GenerateDiscoveryMechanismForCluster(
|
|
390
392
|
}
|
391
393
|
return !missing_cluster;
|
392
394
|
}
|
393
|
-
|
395
|
+
Json::Object mechanism = {
|
396
|
+
{"clusterName", name},
|
397
|
+
{"max_concurrent_requests", state.update->max_concurrent_requests},
|
398
|
+
};
|
394
399
|
switch (state.update->cluster_type) {
|
395
400
|
case XdsApi::CdsUpdate::ClusterType::EDS:
|
396
|
-
type = "EDS";
|
401
|
+
mechanism["type"] = "EDS";
|
402
|
+
if (!state.update->eds_service_name.empty()) {
|
403
|
+
mechanism["edsServiceName"] = state.update->eds_service_name;
|
404
|
+
}
|
397
405
|
break;
|
398
406
|
case XdsApi::CdsUpdate::ClusterType::LOGICAL_DNS:
|
399
|
-
type = "LOGICAL_DNS";
|
407
|
+
mechanism["type"] = "LOGICAL_DNS";
|
408
|
+
mechanism["dnsHostname"] = state.update->dns_hostname;
|
400
409
|
break;
|
401
410
|
default:
|
402
411
|
GPR_ASSERT(0);
|
403
412
|
break;
|
404
413
|
}
|
405
|
-
Json::Object mechanism = {
|
406
|
-
{"clusterName", name},
|
407
|
-
{"max_concurrent_requests", state.update->max_concurrent_requests},
|
408
|
-
{"type", std::move(type)},
|
409
|
-
};
|
410
|
-
if (!state.update->eds_service_name.empty()) {
|
411
|
-
mechanism["edsServiceName"] = state.update->eds_service_name;
|
412
|
-
}
|
413
414
|
if (state.update->lrs_load_reporting_server_name.has_value()) {
|
414
415
|
mechanism["lrsLoadReportingServerName"] =
|
415
416
|
state.update->lrs_load_reporting_server_name.value();
|
@@ -434,7 +435,7 @@ void CdsLb::OnClusterChanged(const std::string& name,
|
|
434
435
|
if (it == watchers_.end()) return;
|
435
436
|
it->second.update = cluster_data;
|
436
437
|
// Take care of integration with new certificate code.
|
437
|
-
|
438
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
438
439
|
error = UpdateXdsCertificateProvider(name, it->second.update.value());
|
439
440
|
if (error != GRPC_ERROR_NONE) {
|
440
441
|
return OnError(name, error);
|
@@ -450,22 +451,9 @@ void CdsLb::OnClusterChanged(const std::string& name,
|
|
450
451
|
// Construct config for child policy.
|
451
452
|
Json::Object xds_lb_policy;
|
452
453
|
if (cluster_data.lb_policy == "RING_HASH") {
|
453
|
-
std::string hash_function;
|
454
|
-
switch (cluster_data.hash_function) {
|
455
|
-
case XdsApi::CdsUpdate::HashFunction::XX_HASH:
|
456
|
-
hash_function = "XX_HASH";
|
457
|
-
break;
|
458
|
-
case XdsApi::CdsUpdate::HashFunction::MURMUR_HASH_2:
|
459
|
-
hash_function = "MURMUR_HASH_2";
|
460
|
-
break;
|
461
|
-
default:
|
462
|
-
GPR_ASSERT(0);
|
463
|
-
break;
|
464
|
-
}
|
465
454
|
xds_lb_policy["RING_HASH"] = Json::Object{
|
466
455
|
{"min_ring_size", cluster_data.min_ring_size},
|
467
456
|
{"max_ring_size", cluster_data.max_ring_size},
|
468
|
-
{"hash_function", hash_function},
|
469
457
|
};
|
470
458
|
} else {
|
471
459
|
xds_lb_policy["ROUND_ROBIN"] = Json::Object();
|
@@ -541,9 +529,9 @@ void CdsLb::OnClusterChanged(const std::string& name,
|
|
541
529
|
}
|
542
530
|
}
|
543
531
|
|
544
|
-
void CdsLb::OnError(const std::string& name,
|
532
|
+
void CdsLb::OnError(const std::string& name, grpc_error_handle error) {
|
545
533
|
gpr_log(GPR_ERROR, "[cdslb %p] xds error obtaining data for cluster %s: %s",
|
546
|
-
this, name.c_str(),
|
534
|
+
this, name.c_str(), grpc_error_std_string(error).c_str());
|
547
535
|
// Go into TRANSIENT_FAILURE if we have not yet created the child
|
548
536
|
// policy (i.e., we have not yet received data from xds). Otherwise,
|
549
537
|
// we keep running with the data we had previously.
|
@@ -561,7 +549,7 @@ void CdsLb::OnResourceDoesNotExist(const std::string& name) {
|
|
561
549
|
"[cdslb %p] CDS resource for %s does not exist -- reporting "
|
562
550
|
"TRANSIENT_FAILURE",
|
563
551
|
this, name.c_str());
|
564
|
-
|
552
|
+
grpc_error_handle error =
|
565
553
|
grpc_error_set_int(GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
566
554
|
absl::StrCat("CDS resource \"", config_->cluster(),
|
567
555
|
"\" does not exist")
|
@@ -573,7 +561,7 @@ void CdsLb::OnResourceDoesNotExist(const std::string& name) {
|
|
573
561
|
MaybeDestroyChildPolicyLocked();
|
574
562
|
}
|
575
563
|
|
576
|
-
|
564
|
+
grpc_error_handle CdsLb::UpdateXdsCertificateProvider(
|
577
565
|
const std::string& cluster_name, const XdsApi::CdsUpdate& cluster_data) {
|
578
566
|
// Early out if channel is not configured to use xds security.
|
579
567
|
grpc_channel_credentials* channel_credentials =
|
@@ -599,10 +587,12 @@ grpc_error* CdsLb::UpdateXdsCertificateProvider(
|
|
599
587
|
xds_client_->certificate_provider_store()
|
600
588
|
.CreateOrGetCertificateProvider(root_provider_instance_name);
|
601
589
|
if (new_root_provider == nullptr) {
|
602
|
-
return
|
603
|
-
|
604
|
-
|
605
|
-
|
590
|
+
return grpc_error_set_int(
|
591
|
+
GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
592
|
+
absl::StrCat("Certificate provider instance name: \"",
|
593
|
+
root_provider_instance_name, "\" not recognized.")
|
594
|
+
.c_str()),
|
595
|
+
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
606
596
|
}
|
607
597
|
}
|
608
598
|
if (root_certificate_provider_ != new_root_provider) {
|
@@ -637,10 +627,13 @@ grpc_error* CdsLb::UpdateXdsCertificateProvider(
|
|
637
627
|
xds_client_->certificate_provider_store()
|
638
628
|
.CreateOrGetCertificateProvider(identity_provider_instance_name);
|
639
629
|
if (new_identity_provider == nullptr) {
|
640
|
-
return
|
641
|
-
|
642
|
-
|
643
|
-
|
630
|
+
return grpc_error_set_int(
|
631
|
+
GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
632
|
+
absl::StrCat("Certificate provider instance name: \"",
|
633
|
+
identity_provider_instance_name,
|
634
|
+
"\" not recognized.")
|
635
|
+
.c_str()),
|
636
|
+
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
644
637
|
}
|
645
638
|
}
|
646
639
|
if (identity_certificate_provider_ != new_identity_provider) {
|
@@ -693,13 +686,12 @@ class CdsLbFactory : public LoadBalancingPolicyFactory {
|
|
693
686
|
public:
|
694
687
|
OrphanablePtr<LoadBalancingPolicy> CreateLoadBalancingPolicy(
|
695
688
|
LoadBalancingPolicy::Args args) const override {
|
696
|
-
|
697
|
-
|
698
|
-
if (
|
689
|
+
RefCountedPtr<XdsClient> xds_client =
|
690
|
+
XdsClient::GetFromChannelArgs(*args.args);
|
691
|
+
if (xds_client == nullptr) {
|
699
692
|
gpr_log(GPR_ERROR,
|
700
|
-
"
|
701
|
-
|
702
|
-
GRPC_ERROR_UNREF(error);
|
693
|
+
"XdsClient not present in channel args -- cannot instantiate "
|
694
|
+
"cds LB policy");
|
703
695
|
return nullptr;
|
704
696
|
}
|
705
697
|
return MakeOrphanable<CdsLb>(std::move(xds_client), std::move(args));
|
@@ -708,7 +700,7 @@ class CdsLbFactory : public LoadBalancingPolicyFactory {
|
|
708
700
|
const char* name() const override { return kCds; }
|
709
701
|
|
710
702
|
RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
711
|
-
const Json& json,
|
703
|
+
const Json& json, grpc_error_handle* error) const override {
|
712
704
|
GPR_DEBUG_ASSERT(error != nullptr && *error == GRPC_ERROR_NONE);
|
713
705
|
if (json.type() == Json::Type::JSON_NULL) {
|
714
706
|
// xds was mentioned as a policy in the deprecated loadBalancingPolicy
|
@@ -718,7 +710,7 @@ class CdsLbFactory : public LoadBalancingPolicyFactory {
|
|
718
710
|
"Please use loadBalancingConfig field of service config instead.");
|
719
711
|
return nullptr;
|
720
712
|
}
|
721
|
-
std::vector<
|
713
|
+
std::vector<grpc_error_handle> error_list;
|
722
714
|
// cluster name.
|
723
715
|
std::string cluster;
|
724
716
|
auto it = json.object_value().find("cluster");
|
@@ -31,6 +31,7 @@
|
|
31
31
|
#include "src/core/lib/channel/channel_args.h"
|
32
32
|
#include "src/core/lib/gpr/env.h"
|
33
33
|
#include "src/core/lib/gpr/string.h"
|
34
|
+
#include "src/core/lib/gprpp/atomic.h"
|
34
35
|
#include "src/core/lib/gprpp/orphanable.h"
|
35
36
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
36
37
|
#include "src/core/lib/gprpp/sync.h"
|
@@ -56,6 +57,7 @@ class CircuitBreakerCallCounterMap {
|
|
56
57
|
explicit CallCounter(Key key) : key_(std::move(key)) {}
|
57
58
|
~CallCounter() override;
|
58
59
|
|
60
|
+
uint32_t Load() { return concurrent_requests_.Load(MemoryOrder::SEQ_CST); }
|
59
61
|
uint32_t Increment() { return concurrent_requests_.FetchAdd(1); }
|
60
62
|
void Decrement() { concurrent_requests_.FetchSub(1); }
|
61
63
|
|
@@ -69,7 +71,7 @@ class CircuitBreakerCallCounterMap {
|
|
69
71
|
|
70
72
|
private:
|
71
73
|
Mutex mu_;
|
72
|
-
std::map<Key, CallCounter*> map_;
|
74
|
+
std::map<Key, CallCounter*> map_ ABSL_GUARDED_BY(mu_);
|
73
75
|
};
|
74
76
|
|
75
77
|
CircuitBreakerCallCounterMap* g_call_counter_map = nullptr;
|
@@ -287,15 +289,15 @@ LoadBalancingPolicy::PickResult XdsClusterImplLb::Picker::Pick(
|
|
287
289
|
return result;
|
288
290
|
}
|
289
291
|
// Handle circuit breaking.
|
290
|
-
uint32_t current = call_counter_->
|
292
|
+
uint32_t current = call_counter_->Load();
|
291
293
|
// Check and see if we exceeded the max concurrent requests count.
|
292
294
|
if (current >= max_concurrent_requests_) {
|
293
|
-
call_counter_->Decrement();
|
294
295
|
if (drop_stats_ != nullptr) drop_stats_->AddUncategorizedDrops();
|
295
296
|
PickResult result;
|
296
297
|
result.type = PickResult::PICK_COMPLETE;
|
297
298
|
return result;
|
298
299
|
}
|
300
|
+
call_counter_->Increment();
|
299
301
|
// If we're not dropping the call, we should always have a child picker.
|
300
302
|
if (picker_ == nullptr) { // Should never happen.
|
301
303
|
PickResult result;
|
@@ -329,7 +331,7 @@ LoadBalancingPolicy::PickResult XdsClusterImplLb::Picker::Pick(
|
|
329
331
|
// Note: This callback does not run in either the control plane
|
330
332
|
// work serializer or in the data plane mutex.
|
331
333
|
[locality_stats, original_recv_trailing_metadata_ready, call_counter](
|
332
|
-
|
334
|
+
grpc_error_handle error, MetadataInterface* metadata,
|
333
335
|
CallState* call_state) {
|
334
336
|
// Record call completion for load reporting.
|
335
337
|
if (locality_stats != nullptr) {
|
@@ -594,14 +596,12 @@ class XdsClusterImplLbFactory : public LoadBalancingPolicyFactory {
|
|
594
596
|
public:
|
595
597
|
OrphanablePtr<LoadBalancingPolicy> CreateLoadBalancingPolicy(
|
596
598
|
LoadBalancingPolicy::Args args) const override {
|
597
|
-
|
598
|
-
|
599
|
-
if (
|
600
|
-
gpr_log(
|
601
|
-
|
602
|
-
|
603
|
-
grpc_error_string(error));
|
604
|
-
GRPC_ERROR_UNREF(error);
|
599
|
+
RefCountedPtr<XdsClient> xds_client =
|
600
|
+
XdsClient::GetFromChannelArgs(*args.args);
|
601
|
+
if (xds_client == nullptr) {
|
602
|
+
gpr_log(GPR_ERROR,
|
603
|
+
"XdsClient not present in channel args -- cannot instantiate "
|
604
|
+
"xds_cluster_impl LB policy");
|
605
605
|
return nullptr;
|
606
606
|
}
|
607
607
|
return MakeOrphanable<XdsClusterImplLb>(std::move(xds_client),
|
@@ -611,7 +611,7 @@ class XdsClusterImplLbFactory : public LoadBalancingPolicyFactory {
|
|
611
611
|
const char* name() const override { return kXdsClusterImpl; }
|
612
612
|
|
613
613
|
RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
614
|
-
const Json& json,
|
614
|
+
const Json& json, grpc_error_handle* error) const override {
|
615
615
|
GPR_DEBUG_ASSERT(error != nullptr && *error == GRPC_ERROR_NONE);
|
616
616
|
if (json.type() == Json::Type::JSON_NULL) {
|
617
617
|
// This policy was configured in the deprecated loadBalancingPolicy
|
@@ -622,7 +622,7 @@ class XdsClusterImplLbFactory : public LoadBalancingPolicyFactory {
|
|
622
622
|
"config instead.");
|
623
623
|
return nullptr;
|
624
624
|
}
|
625
|
-
std::vector<
|
625
|
+
std::vector<grpc_error_handle> error_list;
|
626
626
|
// Child policy.
|
627
627
|
RefCountedPtr<LoadBalancingPolicy::Config> child_policy;
|
628
628
|
auto it = json.object_value().find("childPolicy");
|
@@ -630,12 +630,12 @@ class XdsClusterImplLbFactory : public LoadBalancingPolicyFactory {
|
|
630
630
|
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
631
631
|
"field:childPolicy error:required field missing"));
|
632
632
|
} else {
|
633
|
-
|
633
|
+
grpc_error_handle parse_error = GRPC_ERROR_NONE;
|
634
634
|
child_policy = LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(
|
635
635
|
it->second, &parse_error);
|
636
636
|
if (child_policy == nullptr) {
|
637
637
|
GPR_DEBUG_ASSERT(parse_error != GRPC_ERROR_NONE);
|
638
|
-
std::vector<
|
638
|
+
std::vector<grpc_error_handle> child_errors;
|
639
639
|
child_errors.push_back(parse_error);
|
640
640
|
error_list.push_back(
|
641
641
|
GRPC_ERROR_CREATE_FROM_VECTOR("field:childPolicy", &child_errors));
|
@@ -694,7 +694,7 @@ class XdsClusterImplLbFactory : public LoadBalancingPolicyFactory {
|
|
694
694
|
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
695
695
|
"field:dropCategories error:required field missing"));
|
696
696
|
} else {
|
697
|
-
std::vector<
|
697
|
+
std::vector<grpc_error_handle> child_errors =
|
698
698
|
ParseDropCategories(it->second, drop_config.get());
|
699
699
|
if (!child_errors.empty()) {
|
700
700
|
error_list.push_back(GRPC_ERROR_CREATE_FROM_VECTOR(
|
@@ -713,9 +713,9 @@ class XdsClusterImplLbFactory : public LoadBalancingPolicyFactory {
|
|
713
713
|
}
|
714
714
|
|
715
715
|
private:
|
716
|
-
static std::vector<
|
716
|
+
static std::vector<grpc_error_handle> ParseDropCategories(
|
717
717
|
const Json& json, XdsApi::EdsUpdate::DropConfig* drop_config) {
|
718
|
-
std::vector<
|
718
|
+
std::vector<grpc_error_handle> error_list;
|
719
719
|
if (json.type() != Json::Type::ARRAY) {
|
720
720
|
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
721
721
|
"dropCategories field is not an array"));
|
@@ -723,10 +723,10 @@ class XdsClusterImplLbFactory : public LoadBalancingPolicyFactory {
|
|
723
723
|
}
|
724
724
|
for (size_t i = 0; i < json.array_value().size(); ++i) {
|
725
725
|
const Json& entry = json.array_value()[i];
|
726
|
-
std::vector<
|
726
|
+
std::vector<grpc_error_handle> child_errors =
|
727
727
|
ParseDropCategory(entry, drop_config);
|
728
728
|
if (!child_errors.empty()) {
|
729
|
-
|
729
|
+
grpc_error_handle error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
730
730
|
absl::StrCat("errors parsing index ", i).c_str());
|
731
731
|
for (size_t i = 0; i < child_errors.size(); ++i) {
|
732
732
|
error = grpc_error_add_child(error, child_errors[i]);
|
@@ -737,9 +737,9 @@ class XdsClusterImplLbFactory : public LoadBalancingPolicyFactory {
|
|
737
737
|
return error_list;
|
738
738
|
}
|
739
739
|
|
740
|
-
static std::vector<
|
740
|
+
static std::vector<grpc_error_handle> ParseDropCategory(
|
741
741
|
const Json& json, XdsApi::EdsUpdate::DropConfig* drop_config) {
|
742
|
-
std::vector<
|
742
|
+
std::vector<grpc_error_handle> error_list;
|
743
743
|
if (json.type() != Json::Type::OBJECT) {
|
744
744
|
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
745
745
|
"dropCategories entry is not an object"));
|