grpc 1.47.0 → 1.48.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 +105 -47
- data/include/grpc/compression.h +1 -1
- data/include/grpc/event_engine/event_engine.h +20 -11
- data/include/grpc/event_engine/slice_buffer.h +8 -2
- data/include/grpc/grpc.h +3 -3
- data/include/grpc/impl/codegen/compression_types.h +2 -1
- data/include/grpc/impl/codegen/connectivity_state.h +2 -1
- data/include/grpc/impl/codegen/gpr_types.h +2 -1
- data/include/grpc/impl/codegen/grpc_types.h +2 -1
- data/include/grpc/impl/codegen/port_platform.h +6 -3
- data/src/core/ext/filters/census/grpc_context.cc +3 -0
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +17 -5
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +16 -0
- data/src/core/ext/filters/channel_idle/idle_filter_state.h +2 -0
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -1
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +2 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +51 -65
- data/src/core/ext/filters/client_channel/client_channel.h +19 -4
- 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 +6 -4
- data/src/core/ext/filters/client_channel/dynamic_filters.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +73 -43
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +0 -1
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +33 -35
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +106 -112
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +91 -42
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +177 -138
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +4 -1
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +47 -44
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +118 -103
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +83 -78
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +57 -67
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +5 -7
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +13 -17
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +3 -3
- data/src/core/ext/filters/client_channel/lb_policy.h +0 -7
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +3 -5
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +0 -1
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +3 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +6 -6
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +10 -5
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +12 -3
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +3 -4
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -0
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +24 -15
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +3 -1
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +7 -7
- data/src/core/ext/filters/client_channel/retry_filter.cc +35 -36
- data/src/core/ext/filters/client_channel/retry_filter.h +1 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +4 -4
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +2 -1
- data/src/core/ext/filters/client_channel/subchannel.cc +53 -50
- data/src/core/ext/filters/client_channel/subchannel.h +6 -22
- data/src/core/ext/filters/client_channel/subchannel_interface.h +10 -18
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +12 -97
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +5 -9
- data/src/core/ext/filters/deadline/deadline_filter.cc +12 -7
- data/src/core/ext/filters/deadline/deadline_filter.h +8 -1
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +21 -2
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +8 -3
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +7 -4
- data/src/core/ext/filters/fault_injection/service_config_parser.h +17 -3
- data/src/core/ext/filters/http/client/http_client_filter.cc +16 -5
- data/src/core/ext/filters/http/client/http_client_filter.h +8 -1
- data/src/core/ext/filters/http/client_authority_filter.cc +11 -10
- data/src/core/ext/filters/http/client_authority_filter.h +5 -2
- data/src/core/ext/filters/http/http_filters_plugin.cc +9 -1
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +64 -187
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +1 -2
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +42 -106
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +1 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +16 -9
- data/src/core/ext/filters/http/server/http_server_filter.h +6 -1
- data/src/core/ext/filters/message_size/message_size_filter.cc +25 -15
- data/src/core/ext/filters/message_size/message_size_filter.h +13 -0
- data/src/core/ext/filters/rbac/rbac_filter.cc +14 -3
- data/src/core/ext/filters/rbac/rbac_filter.h +8 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +13 -2
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +14 -2
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +1 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +9 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +22 -2
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +1 -0
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +4 -4
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +15 -15
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +196 -476
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +141 -261
- data/src/core/ext/transport/chttp2/transport/flow_control.h +176 -289
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +57 -215
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -36
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +0 -41
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +7 -12
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +7 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +0 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +9 -111
- data/src/core/ext/transport/chttp2/transport/parsing.cc +51 -38
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +0 -4
- data/src/core/ext/transport/chttp2/transport/writing.cc +18 -21
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -1
- data/src/core/ext/transport/inproc/inproc_transport.cc +85 -81
- data/src/core/ext/transport/inproc/inproc_transport.h +3 -1
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +52 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +164 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +94 -0
- data/src/core/ext/xds/certificate_provider_factory.h +6 -1
- data/src/core/ext/xds/certificate_provider_registry.cc +8 -8
- data/src/core/ext/xds/certificate_provider_registry.h +3 -1
- data/src/core/ext/xds/certificate_provider_store.cc +2 -0
- data/src/core/ext/xds/certificate_provider_store.h +9 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +9 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +8 -0
- data/src/core/ext/xds/upb_utils.h +1 -2
- data/src/core/ext/xds/xds_api.cc +16 -18
- data/src/core/ext/xds/xds_api.h +12 -5
- data/src/core/ext/xds/xds_bootstrap.cc +37 -24
- data/src/core/ext/xds/xds_bootstrap.h +9 -11
- data/src/core/ext/xds/xds_certificate_provider.cc +12 -3
- data/src/core/ext/xds/xds_certificate_provider.h +16 -1
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +9 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.h +5 -1
- data/src/core/ext/xds/xds_client.cc +71 -22
- data/src/core/ext/xds/xds_client.h +17 -3
- data/src/core/ext/xds/xds_client_stats.cc +3 -4
- data/src/core/ext/xds/xds_client_stats.h +4 -3
- data/src/core/ext/xds/xds_cluster.cc +21 -10
- data/src/core/ext/xds/xds_cluster.h +9 -1
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +16 -7
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +1 -8
- data/src/core/ext/xds/xds_common_types.cc +36 -22
- data/src/core/ext/xds/xds_common_types.h +12 -4
- data/src/core/ext/xds/xds_endpoint.cc +25 -15
- data/src/core/ext/xds/xds_endpoint.h +13 -5
- data/src/core/ext/xds/xds_http_fault_filter.cc +7 -5
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -1
- data/src/core/ext/xds/xds_http_filters.cc +7 -0
- data/src/core/ext/xds/xds_http_filters.h +3 -3
- data/src/core/ext/xds/xds_http_rbac_filter.cc +16 -0
- data/src/core/ext/xds/xds_http_rbac_filter.h +7 -0
- data/src/core/ext/xds/xds_lb_policy_registry.cc +291 -0
- data/src/core/ext/xds/xds_lb_policy_registry.h +72 -0
- data/src/core/ext/xds/xds_listener.cc +51 -33
- data/src/core/ext/xds/xds_listener.h +10 -1
- data/src/core/ext/xds/xds_resource_type.h +3 -3
- data/src/core/ext/xds/xds_resource_type_impl.h +7 -3
- data/src/core/ext/xds/xds_route_config.cc +56 -28
- data/src/core/ext/xds/xds_route_config.h +11 -2
- data/src/core/ext/xds/xds_routing.cc +16 -0
- data/src/core/ext/xds/xds_routing.h +7 -2
- data/src/core/ext/xds/xds_server_config_fetcher.cc +54 -6
- data/src/core/lib/address_utils/parse_address.cc +5 -8
- data/src/core/lib/address_utils/parse_address.h +3 -2
- data/src/core/lib/address_utils/sockaddr_utils.cc +8 -7
- data/src/core/lib/address_utils/sockaddr_utils.h +2 -0
- data/src/core/lib/avl/avl.h +3 -3
- data/src/core/lib/backoff/backoff.cc +1 -1
- data/src/core/lib/backoff/backoff.h +1 -1
- data/src/core/lib/channel/call_tracer.h +3 -3
- data/src/core/lib/channel/channel_args.h +1 -0
- data/src/core/lib/channel/channel_args_preconditioning.cc +1 -0
- data/src/core/lib/channel/channel_fwd.h +26 -0
- data/src/core/lib/channel/channel_stack.cc +4 -4
- data/src/core/lib/channel/channel_stack.h +1 -11
- data/src/core/lib/channel/channel_stack_builder.h +2 -5
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
- data/src/core/lib/channel/channel_stack_builder_impl.h +1 -0
- data/src/core/lib/channel/channelz.cc +2 -1
- data/src/core/lib/channel/channelz.h +2 -3
- data/src/core/lib/channel/channelz_registry.cc +4 -5
- data/src/core/lib/channel/connected_channel.cc +1 -0
- data/src/core/lib/channel/connected_channel.h +1 -0
- data/src/core/lib/channel/promise_based_filter.cc +11 -5
- data/src/core/lib/channel/promise_based_filter.h +2 -0
- data/src/core/lib/compression/compression.cc +6 -1
- data/src/core/lib/compression/compression_internal.cc +3 -6
- data/src/core/lib/compression/compression_internal.h +3 -2
- data/src/core/lib/compression/message_compress.cc +3 -1
- data/src/core/lib/compression/message_compress.h +2 -3
- data/src/core/lib/debug/stats.cc +9 -9
- data/src/core/lib/debug/stats.h +2 -1
- data/src/core/lib/debug/stats_data.cc +2 -1
- data/src/core/lib/debug/stats_data.h +0 -4
- data/src/core/lib/debug/trace.h +13 -12
- data/src/core/lib/event_engine/default_event_engine_factory.cc +1 -1
- data/src/core/lib/event_engine/event_engine.cc +24 -19
- data/src/core/lib/event_engine/event_engine_factory.h +2 -2
- data/src/core/lib/event_engine/{iomgr_engine.cc → iomgr_engine/iomgr_engine.cc} +44 -91
- data/src/core/lib/event_engine/{iomgr_engine.h → iomgr_engine/iomgr_engine.h} +20 -16
- data/src/core/lib/event_engine/iomgr_engine/thread_pool.cc +123 -0
- data/src/core/lib/event_engine/iomgr_engine/thread_pool.h +70 -0
- data/src/core/lib/event_engine/iomgr_engine/time_averaged_stats.cc +62 -0
- data/src/core/lib/event_engine/iomgr_engine/time_averaged_stats.h +81 -0
- data/src/core/lib/event_engine/iomgr_engine/timer.cc +312 -0
- data/src/core/lib/event_engine/iomgr_engine/timer.h +193 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_heap.cc +107 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_heap.h +56 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_manager.cc +254 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_manager.h +111 -0
- data/src/core/lib/event_engine/promise.h +69 -0
- data/src/core/lib/gpr/time_posix.cc +6 -9
- data/src/core/lib/gpr/time_windows.cc +10 -7
- data/src/core/lib/gprpp/manual_constructor.h +0 -67
- data/src/core/lib/gprpp/status_helper.cc +44 -30
- data/src/core/lib/gprpp/time.cc +8 -0
- data/src/core/lib/gprpp/time.h +4 -0
- data/src/core/lib/http/format_request.cc +5 -4
- data/src/core/lib/http/format_request.h +1 -1
- data/src/core/lib/http/httpcli.cc +18 -12
- data/src/core/lib/http/httpcli.h +19 -3
- data/src/core/lib/http/httpcli_security_connector.cc +16 -4
- data/src/core/lib/http/httpcli_ssl_credentials.h +3 -1
- data/src/core/lib/http/parser.cc +6 -7
- data/src/core/lib/http/parser.h +3 -0
- data/src/core/lib/iomgr/call_combiner.cc +2 -2
- data/src/core/lib/iomgr/endpoint.h +1 -1
- data/src/core/lib/iomgr/endpoint_cfstream.cc +2 -2
- data/src/core/lib/iomgr/error.cc +11 -9
- data/src/core/lib/iomgr/error.h +9 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +57 -18
- data/src/core/lib/iomgr/ev_epoll1_linux.h +1 -1
- data/src/core/lib/iomgr/ev_poll_posix.cc +77 -52
- data/src/core/lib/iomgr/ev_poll_posix.h +2 -2
- data/src/core/lib/iomgr/ev_posix.cc +54 -92
- data/src/core/lib/iomgr/ev_posix.h +5 -3
- data/src/core/lib/iomgr/fork_posix.cc +1 -1
- data/src/core/lib/iomgr/iomgr.cc +7 -0
- data/src/core/lib/iomgr/iomgr_posix.cc +1 -0
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +1 -0
- data/src/core/lib/iomgr/load_file.cc +1 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +1 -1
- data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
- data/src/core/lib/iomgr/tcp_client.cc +12 -7
- data/src/core/lib/iomgr/tcp_client.h +24 -13
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +15 -9
- data/src/core/lib/iomgr/tcp_client_posix.cc +143 -25
- data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_client_windows.cc +14 -10
- data/src/core/lib/iomgr/tcp_posix.cc +91 -29
- data/src/core/lib/iomgr/tcp_server_posix.cc +7 -7
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +12 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +2 -2
- data/src/core/lib/iomgr/tcp_server_windows.cc +7 -7
- data/src/core/lib/iomgr/tcp_windows.cc +5 -5
- data/src/core/lib/iomgr/unix_sockets_posix.cc +2 -2
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -2
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +15 -12
- data/src/core/lib/iomgr/wakeup_fd_posix.h +0 -2
- data/src/core/lib/iomgr/work_serializer.h +2 -3
- data/src/core/lib/matchers/matchers.cc +6 -3
- data/src/core/lib/matchers/matchers.h +2 -0
- data/src/core/lib/promise/activity.cc +0 -1
- data/src/core/lib/promise/activity.h +7 -13
- data/src/core/lib/promise/loop.h +1 -0
- data/src/core/lib/promise/promise.h +1 -0
- data/src/core/lib/promise/sleep.cc +36 -31
- data/src/core/lib/promise/sleep.h +25 -25
- data/src/core/lib/resolver/resolver.cc +5 -0
- data/src/core/lib/resolver/resolver.h +3 -0
- data/src/core/lib/resolver/resolver_factory.h +5 -2
- data/src/core/lib/resolver/resolver_registry.cc +2 -9
- data/src/core/lib/resolver/resolver_registry.h +12 -1
- data/src/core/lib/resolver/server_address.cc +8 -0
- data/src/core/lib/resolver/server_address.h +9 -2
- data/src/core/lib/resource_quota/memory_quota.cc +18 -60
- data/src/core/lib/resource_quota/memory_quota.h +11 -25
- data/src/core/lib/security/authorization/authorization_policy_provider.h +7 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +4 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +9 -3
- data/src/core/lib/security/authorization/evaluate_args.h +6 -3
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +6 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +7 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +12 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +12 -1
- data/src/core/lib/security/authorization/matchers.cc +9 -1
- data/src/core/lib/security/authorization/matchers.h +7 -0
- data/src/core/lib/security/authorization/rbac_policy.cc +5 -0
- data/src/core/lib/security/authorization/rbac_policy.h +7 -0
- data/src/core/lib/security/context/security_context.cc +5 -2
- data/src/core/lib/security/context/security_context.h +14 -2
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +4 -2
- data/src/core/lib/security/credentials/alts/alts_credentials.h +6 -1
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +1 -3
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -4
- data/src/core/lib/security/credentials/call_creds_util.cc +8 -0
- data/src/core/lib/security/credentials/call_creds_util.h +1 -0
- data/src/core/lib/security/credentials/channel_creds_registry.h +6 -1
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +10 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +16 -2
- data/src/core/lib/security/credentials/credentials.cc +4 -8
- data/src/core/lib/security/credentials/credentials.h +10 -8
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +28 -10
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +10 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +9 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +24 -9
- data/src/core/lib/security/credentials/external/external_account_credentials.h +11 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +12 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +6 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +20 -4
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +10 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +8 -6
- data/src/core/lib/security/credentials/fake/fake_credentials.h +13 -1
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +27 -10
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +10 -1
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +9 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.h +10 -0
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +4 -0
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +5 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +5 -2
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +11 -5
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +14 -0
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +28 -3
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +4 -2
- data/src/core/lib/security/credentials/local/local_credentials.cc +4 -3
- data/src/core/lib/security/credentials/local/local_credentials.h +7 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +26 -13
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +20 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +8 -7
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +24 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +5 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +13 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +6 -6
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +29 -10
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +9 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +9 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +6 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -5
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +7 -2
- data/src/core/lib/security/credentials/tls/tls_credentials.h +5 -1
- data/src/core/lib/security/credentials/tls/tls_utils.cc +2 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +1 -1
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +8 -1
- data/src/core/lib/security/credentials/xds/xds_credentials.h +14 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +22 -2
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +6 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +17 -1
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +9 -0
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +17 -2
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +5 -3
- data/src/core/lib/security/security_connector/{load_system_roots_linux.cc → load_system_roots_supported.cc} +27 -19
- data/src/core/lib/security/security_connector/{load_system_roots_linux.h → load_system_roots_supported.h} +5 -5
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -3
- data/src/core/lib/security/security_connector/local/local_security_connector.h +6 -2
- data/src/core/lib/security/security_connector/security_connector.cc +20 -18
- data/src/core/lib/security/security_connector/security_connector.h +18 -6
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +18 -6
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -2
- data/src/core/lib/security/security_connector/ssl_utils.cc +12 -2
- data/src/core/lib/security/security_connector/ssl_utils.h +10 -7
- data/src/core/lib/security/security_connector/ssl_utils_config.h +1 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +21 -13
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +23 -3
- data/src/core/lib/security/transport/auth_filters.h +7 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -9
- data/src/core/lib/security/transport/secure_endpoint.cc +63 -13
- data/src/core/lib/security/transport/secure_endpoint.h +4 -3
- data/src/core/lib/security/transport/security_handshaker.cc +44 -11
- data/src/core/lib/security/transport/security_handshaker.h +4 -0
- data/src/core/lib/security/transport/server_auth_filter.cc +26 -4
- data/src/core/lib/security/util/json_util.cc +3 -2
- data/src/core/lib/security/util/json_util.h +0 -2
- data/src/core/lib/service_config/service_config_call_data.h +2 -1
- data/src/core/lib/service_config/service_config_impl.cc +6 -6
- data/src/core/lib/service_config/service_config_impl.h +1 -3
- data/src/core/lib/service_config/service_config_parser.cc +2 -4
- data/src/core/lib/slice/slice_buffer.cc +30 -1
- data/src/core/lib/slice/slice_buffer.h +37 -6
- data/src/core/lib/slice/slice_string_helpers.cc +0 -20
- data/src/core/lib/slice/slice_string_helpers.h +0 -4
- data/src/core/lib/surface/call.cc +53 -115
- data/src/core/lib/surface/call.h +5 -1
- data/src/core/lib/surface/channel.h +2 -0
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +15 -14
- data/src/core/lib/surface/completion_queue.h +2 -1
- data/src/core/lib/surface/init.cc +0 -1
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +14 -8
- data/src/core/lib/surface/server.h +4 -1
- data/src/core/lib/surface/validate_metadata.cc +1 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/error_utils.cc +13 -7
- data/src/core/lib/transport/handshaker.cc +3 -3
- data/src/core/lib/transport/http_connect_handshaker.cc +4 -4
- data/src/core/lib/transport/tcp_connect_handshaker.cc +2 -2
- data/src/core/lib/transport/transport.cc +0 -3
- data/src/core/lib/transport/transport.h +20 -14
- data/src/core/lib/transport/transport_fwd.h +20 -0
- data/src/core/lib/transport/transport_impl.h +1 -0
- data/src/core/lib/transport/transport_op_string.cc +9 -9
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +9 -1
- data/src/core/tsi/fake_transport_security.cc +13 -1
- data/src/core/tsi/fake_transport_security.h +6 -0
- data/src/core/tsi/ssl_transport_security.cc +1 -1
- data/src/core/tsi/transport_security_grpc.cc +3 -2
- data/src/core/tsi/transport_security_grpc.h +5 -2
- data/src/ruby/ext/grpc/ext-export-truffleruby.clang +2 -0
- data/src/ruby/ext/grpc/ext-export-truffleruby.gcc +7 -0
- data/src/ruby/ext/grpc/ext-export.clang +1 -0
- data/src/ruby/ext/grpc/ext-export.gcc +1 -0
- data/src/ruby/ext/grpc/extconf.rb +49 -18
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/lib/grpc/errors.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +23 -23
- data/third_party/abseil-cpp/absl/algorithm/container.h +1 -1
- data/third_party/abseil-cpp/absl/base/attributes.h +49 -22
- data/third_party/abseil-cpp/absl/base/casts.h +61 -68
- data/third_party/abseil-cpp/absl/base/config.h +182 -41
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +12 -42
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +67 -2
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +3 -3
- data/third_party/abseil-cpp/absl/base/internal/endian.h +17 -62
- data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +2 -0
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +54 -0
- data/third_party/abseil-cpp/absl/base/internal/prefetch.h +138 -0
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +29 -22
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +13 -12
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +3 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +8 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +2 -5
- data/third_party/abseil-cpp/absl/base/internal/strerror.cc +88 -0
- data/third_party/abseil-cpp/absl/base/internal/strerror.h +39 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +0 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +2 -1
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +6 -7
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +12 -3
- data/third_party/abseil-cpp/absl/base/log_severity.cc +28 -0
- data/third_party/abseil-cpp/absl/base/log_severity.h +51 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +19 -11
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +2 -2
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +11 -4
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +15 -9
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +20 -9
- data/third_party/abseil-cpp/absl/container/internal/common.h +6 -5
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +10 -28
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +68 -20
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +29 -11
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +59 -38
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +4 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +515 -184
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +45 -88
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +4 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +3 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +2 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +20 -18
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +15 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +6 -1
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +46 -7
- data/third_party/abseil-cpp/absl/functional/bind_front.h +10 -1
- data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -1
- data/third_party/abseil-cpp/absl/hash/hash.h +82 -8
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +218 -23
- data/third_party/abseil-cpp/absl/numeric/bits.h +2 -1
- data/third_party/abseil-cpp/absl/numeric/int128.cc +4 -2
- data/third_party/abseil-cpp/absl/numeric/int128.h +2 -2
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +21 -6
- data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +4 -4
- data/third_party/abseil-cpp/absl/random/distributions.h +3 -3
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +3 -0
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +2 -1
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +59 -48
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/randen.h +5 -11
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +6 -2
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +48 -23
- data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +24 -26
- data/third_party/abseil-cpp/absl/random/internal/traits.h +53 -5
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +5 -5
- data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +33 -48
- data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +9 -10
- data/third_party/abseil-cpp/absl/random/poisson_distribution.h +7 -4
- data/third_party/abseil-cpp/absl/random/seed_sequences.h +1 -0
- data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +2 -2
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/zipf_distribution.h +4 -3
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +17 -0
- data/third_party/abseil-cpp/absl/status/status.cc +174 -2
- data/third_party/abseil-cpp/absl/status/status.h +22 -12
- data/third_party/abseil-cpp/absl/status/statusor.h +9 -3
- data/third_party/abseil-cpp/absl/strings/ascii.h +4 -4
- data/third_party/abseil-cpp/absl/strings/cord.cc +194 -913
- data/third_party/abseil-cpp/absl/strings/cord.h +202 -81
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +188 -0
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +44 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.cc +30 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.h +572 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h +63 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +20 -32
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +123 -88
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +149 -49
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +44 -59
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +3 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +3 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +5 -4
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +7 -74
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +54 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +102 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +58 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +13 -11
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +11 -38
- data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +1 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +6 -5
- data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +38 -7
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +7 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +4 -5
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +5 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +2 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +9 -6
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +10 -2
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/numbers.cc +8 -8
- data/third_party/abseil-cpp/absl/strings/numbers.h +26 -23
- data/third_party/abseil-cpp/absl/strings/str_cat.h +20 -13
- data/third_party/abseil-cpp/absl/strings/str_join.h +9 -15
- data/third_party/abseil-cpp/absl/strings/str_split.h +1 -2
- data/third_party/abseil-cpp/absl/strings/string_view.cc +2 -13
- data/third_party/abseil-cpp/absl/strings/string_view.h +3 -2
- data/third_party/abseil-cpp/absl/strings/strip.h +8 -6
- data/third_party/abseil-cpp/absl/strings/substitute.h +10 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +9 -6
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +1 -6
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +0 -25
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +10 -4
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +75 -40
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +17 -9
- data/third_party/abseil-cpp/absl/synchronization/notification.h +3 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +5 -4
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +11 -7
- data/third_party/abseil-cpp/absl/time/time.h +16 -12
- data/third_party/abseil-cpp/absl/types/internal/optional.h +8 -0
- data/third_party/abseil-cpp/absl/types/internal/variant.h +3 -3
- data/third_party/abseil-cpp/absl/types/optional.h +17 -14
- data/third_party/abseil-cpp/absl/types/span.h +2 -1
- metadata +39 -15
- data/src/core/lib/slice/slice_split.cc +0 -103
- data/src/core/lib/slice/slice_split.h +0 -36
- data/src/core/lib/transport/byte_stream.cc +0 -165
- data/src/core/lib/transport/byte_stream.h +0 -170
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +0 -140
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +0 -100
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +0 -50
@@ -24,6 +24,8 @@
|
|
24
24
|
#include <string>
|
25
25
|
#include <utility>
|
26
26
|
|
27
|
+
#include "absl/status/status.h"
|
28
|
+
|
27
29
|
#include <grpc/support/alloc.h>
|
28
30
|
#include <grpc/support/log.h>
|
29
31
|
|
@@ -63,7 +65,7 @@ DynamicFilters::Call::Call(Args args, grpc_error_handle* error)
|
|
63
65
|
};
|
64
66
|
*error = grpc_call_stack_init(channel_stack_->channel_stack_, 1, Destroy,
|
65
67
|
this, &call_args);
|
66
|
-
if (GPR_UNLIKELY(*error
|
68
|
+
if (GPR_UNLIKELY(!GRPC_ERROR_IS_NONE(*error))) {
|
67
69
|
gpr_log(GPR_ERROR, "error: %s", grpc_error_std_string(*error).c_str());
|
68
70
|
return;
|
69
71
|
}
|
@@ -152,7 +154,7 @@ std::pair<grpc_channel_stack*, grpc_error_handle> CreateChannelStack(
|
|
152
154
|
grpc_error_handle error = grpc_channel_stack_init(
|
153
155
|
/*initial_refs=*/1, DestroyChannelStack, channel_stack, filters.data(),
|
154
156
|
filters.size(), args, "DynamicFilters", channel_stack);
|
155
|
-
if (error
|
157
|
+
if (!GRPC_ERROR_IS_NONE(error)) {
|
156
158
|
gpr_log(GPR_ERROR, "error initializing client internal stack: %s",
|
157
159
|
grpc_error_std_string(error).c_str());
|
158
160
|
grpc_channel_stack_destroy(channel_stack);
|
@@ -169,7 +171,7 @@ RefCountedPtr<DynamicFilters> DynamicFilters::Create(
|
|
169
171
|
std::vector<const grpc_channel_filter*> filters) {
|
170
172
|
// Attempt to create channel stack from requested filters.
|
171
173
|
auto p = CreateChannelStack(args, std::move(filters));
|
172
|
-
if (p.second
|
174
|
+
if (!GRPC_ERROR_IS_NONE(p.second)) {
|
173
175
|
// Channel stack creation failed with requested filters.
|
174
176
|
// Create with lame filter instead.
|
175
177
|
grpc_error_handle error = p.second;
|
@@ -178,7 +180,7 @@ RefCountedPtr<DynamicFilters> DynamicFilters::Create(
|
|
178
180
|
grpc_channel_args_copy_and_add(args, &error_arg, 1);
|
179
181
|
GRPC_ERROR_UNREF(error);
|
180
182
|
p = CreateChannelStack(new_args, {&LameClientFilter::kFilter});
|
181
|
-
GPR_ASSERT(p.second
|
183
|
+
GPR_ASSERT(GRPC_ERROR_IS_NONE(p.second));
|
182
184
|
grpc_channel_args_destroy(new_args);
|
183
185
|
}
|
184
186
|
return MakeRefCounted<DynamicFilters>(p.first);
|
@@ -24,7 +24,7 @@
|
|
24
24
|
#include <grpc/impl/codegen/grpc_types.h>
|
25
25
|
#include <grpc/slice.h>
|
26
26
|
|
27
|
-
#include "src/core/lib/channel/
|
27
|
+
#include "src/core/lib/channel/channel_fwd.h"
|
28
28
|
#include "src/core/lib/channel/context.h"
|
29
29
|
#include "src/core/lib/gpr/time_precise.h"
|
30
30
|
#include "src/core/lib/gprpp/debug_location.h"
|
@@ -61,7 +61,7 @@ struct call_data {
|
|
61
61
|
|
62
62
|
static void on_complete_for_send(void* arg, grpc_error_handle error) {
|
63
63
|
call_data* calld = static_cast<call_data*>(arg);
|
64
|
-
if (error
|
64
|
+
if (GRPC_ERROR_IS_NONE(error)) {
|
65
65
|
calld->send_initial_metadata_succeeded = true;
|
66
66
|
}
|
67
67
|
grpc_core::Closure::Run(DEBUG_LOCATION, calld->original_on_complete_for_send,
|
@@ -70,7 +70,7 @@ static void on_complete_for_send(void* arg, grpc_error_handle error) {
|
|
70
70
|
|
71
71
|
static void recv_initial_metadata_ready(void* arg, grpc_error_handle error) {
|
72
72
|
call_data* calld = static_cast<call_data*>(arg);
|
73
|
-
if (error
|
73
|
+
if (GRPC_ERROR_IS_NONE(error)) {
|
74
74
|
calld->recv_initial_metadata_succeeded = true;
|
75
75
|
}
|
76
76
|
grpc_core::Closure::Run(DEBUG_LOCATION,
|
@@ -53,6 +53,8 @@
|
|
53
53
|
|
54
54
|
#include "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h"
|
55
55
|
|
56
|
+
#include <grpc/event_engine/event_engine.h>
|
57
|
+
|
56
58
|
// IWYU pragma: no_include <sys/socket.h>
|
57
59
|
|
58
60
|
#include <inttypes.h>
|
@@ -109,6 +111,7 @@
|
|
109
111
|
#include "src/core/lib/channel/channelz.h"
|
110
112
|
#include "src/core/lib/config/core_configuration.h"
|
111
113
|
#include "src/core/lib/debug/trace.h"
|
114
|
+
#include "src/core/lib/event_engine/event_engine_factory.h"
|
112
115
|
#include "src/core/lib/gpr/string.h"
|
113
116
|
#include "src/core/lib/gpr/useful.h"
|
114
117
|
#include "src/core/lib/gprpp/debug_location.h"
|
@@ -155,6 +158,9 @@ const char kGrpcLbAddressAttributeKey[] = "grpclb";
|
|
155
158
|
|
156
159
|
namespace {
|
157
160
|
|
161
|
+
using ::grpc_event_engine::experimental::EventEngine;
|
162
|
+
using ::grpc_event_engine::experimental::GetDefaultEventEngine;
|
163
|
+
|
158
164
|
constexpr char kGrpclb[] = "grpclb";
|
159
165
|
|
160
166
|
class GrpcLbConfig : public LoadBalancingPolicy::Config {
|
@@ -212,13 +218,15 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
212
218
|
void ScheduleNextClientLoadReportLocked();
|
213
219
|
void SendClientLoadReportLocked();
|
214
220
|
|
215
|
-
|
221
|
+
// EventEngine callbacks
|
222
|
+
void MaybeSendClientLoadReport();
|
223
|
+
void MaybeSendClientLoadReportLocked();
|
224
|
+
|
216
225
|
static void ClientLoadReportDone(void* arg, grpc_error_handle error);
|
217
226
|
static void OnInitialRequestSent(void* arg, grpc_error_handle error);
|
218
227
|
static void OnBalancerMessageReceived(void* arg, grpc_error_handle error);
|
219
228
|
static void OnBalancerStatusReceived(void* arg, grpc_error_handle error);
|
220
229
|
|
221
|
-
void MaybeSendClientLoadReportLocked(grpc_error_handle error);
|
222
230
|
void ClientLoadReportDoneLocked(grpc_error_handle error);
|
223
231
|
void OnInitialRequestSentLocked();
|
224
232
|
void OnBalancerMessageReceivedLocked();
|
@@ -253,13 +261,11 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
253
261
|
// Created after the first serverlist is received.
|
254
262
|
RefCountedPtr<GrpcLbClientStats> client_stats_;
|
255
263
|
Duration client_stats_report_interval_;
|
256
|
-
|
257
|
-
bool client_load_report_timer_callback_pending_ = false;
|
264
|
+
absl::optional<EventEngine::TaskHandle> client_load_report_handle_;
|
258
265
|
bool last_client_load_report_counters_were_zero_ = false;
|
259
266
|
bool client_load_report_is_due_ = false;
|
260
|
-
// The closure used for
|
261
|
-
|
262
|
-
grpc_closure client_load_report_closure_;
|
267
|
+
// The closure used for the completion of sending the load report.
|
268
|
+
grpc_closure client_load_report_done_closure_;
|
263
269
|
};
|
264
270
|
|
265
271
|
class SubchannelWrapper : public DelegatingSubchannel {
|
@@ -374,6 +380,39 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
374
380
|
PickResult Pick(PickArgs args) override;
|
375
381
|
|
376
382
|
private:
|
383
|
+
// A subchannel call tracker that unrefs the GrpcLbClientStats object
|
384
|
+
// in the case where the subchannel call is never actually started,
|
385
|
+
// since the client load reporting filter will not be able to do it
|
386
|
+
// in that case.
|
387
|
+
class SubchannelCallTracker : public SubchannelCallTrackerInterface {
|
388
|
+
public:
|
389
|
+
SubchannelCallTracker(
|
390
|
+
RefCountedPtr<GrpcLbClientStats> client_stats,
|
391
|
+
std::unique_ptr<SubchannelCallTrackerInterface> original_call_tracker)
|
392
|
+
: client_stats_(std::move(client_stats)),
|
393
|
+
original_call_tracker_(std::move(original_call_tracker)) {}
|
394
|
+
|
395
|
+
void Start() override {
|
396
|
+
if (original_call_tracker_ != nullptr) {
|
397
|
+
original_call_tracker_->Start();
|
398
|
+
}
|
399
|
+
// If we're actually starting the subchannel call, then the
|
400
|
+
// client load reporting filter will take ownership of the ref
|
401
|
+
// passed down to it via metadata.
|
402
|
+
client_stats_.release();
|
403
|
+
}
|
404
|
+
|
405
|
+
void Finish(FinishArgs args) override {
|
406
|
+
if (original_call_tracker_ != nullptr) {
|
407
|
+
original_call_tracker_->Finish(args);
|
408
|
+
}
|
409
|
+
}
|
410
|
+
|
411
|
+
private:
|
412
|
+
RefCountedPtr<GrpcLbClientStats> client_stats_;
|
413
|
+
std::unique_ptr<SubchannelCallTrackerInterface> original_call_tracker_;
|
414
|
+
};
|
415
|
+
|
377
416
|
// Serverlist to be used for determining drops.
|
378
417
|
RefCountedPtr<Serverlist> serverlist_;
|
379
418
|
|
@@ -686,7 +725,10 @@ GrpcLb::PickResult GrpcLb::Picker::Pick(PickArgs args) {
|
|
686
725
|
// client_load_reporting filter.
|
687
726
|
GrpcLbClientStats* client_stats = subchannel_wrapper->client_stats();
|
688
727
|
if (client_stats != nullptr) {
|
689
|
-
|
728
|
+
complete_pick->subchannel_call_tracker =
|
729
|
+
absl::make_unique<SubchannelCallTracker>(
|
730
|
+
client_stats->Ref(),
|
731
|
+
std::move(complete_pick->subchannel_call_tracker));
|
690
732
|
// The metadata value is a hack: we pretend the pointer points to
|
691
733
|
// a string and rely on the client_load_reporting filter to know
|
692
734
|
// how to interpret it.
|
@@ -823,7 +865,7 @@ GrpcLb::BalancerCallState::BalancerCallState(
|
|
823
865
|
OnBalancerMessageReceived, this, grpc_schedule_on_exec_ctx);
|
824
866
|
GRPC_CLOSURE_INIT(&lb_on_balancer_status_received_, OnBalancerStatusReceived,
|
825
867
|
this, grpc_schedule_on_exec_ctx);
|
826
|
-
GRPC_CLOSURE_INIT(&
|
868
|
+
GRPC_CLOSURE_INIT(&client_load_report_done_closure_, ClientLoadReportDone,
|
827
869
|
this, grpc_schedule_on_exec_ctx);
|
828
870
|
const Timestamp deadline =
|
829
871
|
grpclb_policy()->lb_call_timeout_ == Duration::Zero()
|
@@ -866,8 +908,9 @@ void GrpcLb::BalancerCallState::Orphan() {
|
|
866
908
|
// up. Otherwise, we are here because grpclb_policy has to orphan a failed
|
867
909
|
// call, then the following cancellation will be a no-op.
|
868
910
|
grpc_call_cancel_internal(lb_call_);
|
869
|
-
if (
|
870
|
-
|
911
|
+
if (client_load_report_handle_.has_value() &&
|
912
|
+
GetDefaultEventEngine()->Cancel(client_load_report_handle_.value())) {
|
913
|
+
Unref(DEBUG_LOCATION, "client_load_report cancelled");
|
871
914
|
}
|
872
915
|
// Note that the initial ref is hold by lb_on_balancer_status_received_
|
873
916
|
// instead of the caller of this function. So the corresponding unref happens
|
@@ -951,34 +994,23 @@ void GrpcLb::BalancerCallState::StartQuery() {
|
|
951
994
|
}
|
952
995
|
|
953
996
|
void GrpcLb::BalancerCallState::ScheduleNextClientLoadReportLocked() {
|
954
|
-
|
955
|
-
|
956
|
-
|
957
|
-
|
958
|
-
|
959
|
-
|
960
|
-
GRPC_CLOSURE_INIT(&client_load_report_closure_, MaybeSendClientLoadReport,
|
961
|
-
this, grpc_schedule_on_exec_ctx);
|
962
|
-
grpc_timer_init(&client_load_report_timer_, next_client_load_report_time,
|
963
|
-
&client_load_report_closure_);
|
964
|
-
client_load_report_timer_callback_pending_ = true;
|
997
|
+
client_load_report_handle_ =
|
998
|
+
GetDefaultEventEngine()->RunAfter(client_stats_report_interval_, [this] {
|
999
|
+
ApplicationCallbackExecCtx callback_exec_ctx;
|
1000
|
+
ExecCtx exec_ctx;
|
1001
|
+
MaybeSendClientLoadReport();
|
1002
|
+
});
|
965
1003
|
}
|
966
1004
|
|
967
|
-
void GrpcLb::BalancerCallState::MaybeSendClientLoadReport(
|
968
|
-
|
969
|
-
|
970
|
-
(void)GRPC_ERROR_REF(error); // ref owned by lambda
|
971
|
-
lb_calld->grpclb_policy()->work_serializer()->Run(
|
972
|
-
[lb_calld, error]() { lb_calld->MaybeSendClientLoadReportLocked(error); },
|
973
|
-
DEBUG_LOCATION);
|
1005
|
+
void GrpcLb::BalancerCallState::MaybeSendClientLoadReport() {
|
1006
|
+
grpclb_policy()->work_serializer()->Run(
|
1007
|
+
[this] { MaybeSendClientLoadReportLocked(); }, DEBUG_LOCATION);
|
974
1008
|
}
|
975
1009
|
|
976
|
-
void GrpcLb::BalancerCallState::MaybeSendClientLoadReportLocked(
|
977
|
-
|
978
|
-
|
979
|
-
if (error != GRPC_ERROR_NONE || this != grpclb_policy()->lb_calld_.get()) {
|
1010
|
+
void GrpcLb::BalancerCallState::MaybeSendClientLoadReportLocked() {
|
1011
|
+
client_load_report_handle_.reset();
|
1012
|
+
if (this != grpclb_policy()->lb_calld_.get()) {
|
980
1013
|
Unref(DEBUG_LOCATION, "client_load_report");
|
981
|
-
GRPC_ERROR_UNREF(error);
|
982
1014
|
return;
|
983
1015
|
}
|
984
1016
|
// If we've already sent the initial request, then we can go ahead and send
|
@@ -1031,10 +1063,8 @@ void GrpcLb::BalancerCallState::SendClientLoadReportLocked() {
|
|
1031
1063
|
memset(&op, 0, sizeof(op));
|
1032
1064
|
op.op = GRPC_OP_SEND_MESSAGE;
|
1033
1065
|
op.data.send_message.send_message = send_message_payload_;
|
1034
|
-
GRPC_CLOSURE_INIT(&client_load_report_closure_, ClientLoadReportDone, this,
|
1035
|
-
grpc_schedule_on_exec_ctx);
|
1036
1066
|
grpc_call_error call_error = grpc_call_start_batch_and_execute(
|
1037
|
-
lb_call_, &op, 1, &
|
1067
|
+
lb_call_, &op, 1, &client_load_report_done_closure_);
|
1038
1068
|
if (GPR_UNLIKELY(call_error != GRPC_CALL_OK)) {
|
1039
1069
|
gpr_log(GPR_ERROR,
|
1040
1070
|
"[grpclb %p] lb_calld=%p call_error=%d sending client load report",
|
@@ -1056,7 +1086,7 @@ void GrpcLb::BalancerCallState::ClientLoadReportDoneLocked(
|
|
1056
1086
|
grpc_error_handle error) {
|
1057
1087
|
grpc_byte_buffer_destroy(send_message_payload_);
|
1058
1088
|
send_message_payload_ = nullptr;
|
1059
|
-
if (error
|
1089
|
+
if (!GRPC_ERROR_IS_NONE(error) || this != grpclb_policy()->lb_calld_.get()) {
|
1060
1090
|
Unref(DEBUG_LOCATION, "client_load_report");
|
1061
1091
|
GRPC_ERROR_UNREF(error);
|
1062
1092
|
return;
|
@@ -1642,7 +1672,7 @@ void GrpcLb::OnBalancerCallRetryTimer(void* arg, grpc_error_handle error) {
|
|
1642
1672
|
|
1643
1673
|
void GrpcLb::OnBalancerCallRetryTimerLocked(grpc_error_handle error) {
|
1644
1674
|
retry_timer_callback_pending_ = false;
|
1645
|
-
if (!shutting_down_ && error
|
1675
|
+
if (!shutting_down_ && GRPC_ERROR_IS_NONE(error) && lb_calld_ == nullptr) {
|
1646
1676
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
1647
1677
|
gpr_log(GPR_INFO, "[grpclb %p] Restarting call to LB server", this);
|
1648
1678
|
}
|
@@ -1686,7 +1716,7 @@ void GrpcLb::OnFallbackTimerLocked(grpc_error_handle error) {
|
|
1686
1716
|
// If we receive a serverlist after the timer fires but before this callback
|
1687
1717
|
// actually runs, don't fall back.
|
1688
1718
|
if (fallback_at_startup_checks_pending_ && !shutting_down_ &&
|
1689
|
-
error
|
1719
|
+
GRPC_ERROR_IS_NONE(error)) {
|
1690
1720
|
gpr_log(GPR_INFO,
|
1691
1721
|
"[grpclb %p] No response from balancer after fallback timeout; "
|
1692
1722
|
"entering fallback mode",
|
@@ -1807,7 +1837,7 @@ void GrpcLb::OnSubchannelCacheTimer(void* arg, grpc_error_handle error) {
|
|
1807
1837
|
}
|
1808
1838
|
|
1809
1839
|
void GrpcLb::OnSubchannelCacheTimerLocked(grpc_error_handle error) {
|
1810
|
-
if (subchannel_cache_timer_pending_ && error
|
1840
|
+
if (subchannel_cache_timer_pending_ && GRPC_ERROR_IS_NONE(error)) {
|
1811
1841
|
auto it = cached_subchannels_.begin();
|
1812
1842
|
if (it != cached_subchannels_.end()) {
|
1813
1843
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
@@ -1842,7 +1872,7 @@ class GrpcLbFactory : public LoadBalancingPolicyFactory {
|
|
1842
1872
|
|
1843
1873
|
RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
1844
1874
|
const Json& json, grpc_error_handle* error) const override {
|
1845
|
-
GPR_DEBUG_ASSERT(error != nullptr && *error
|
1875
|
+
GPR_DEBUG_ASSERT(error != nullptr && GRPC_ERROR_IS_NONE(*error));
|
1846
1876
|
if (json.type() == Json::Type::JSON_NULL) {
|
1847
1877
|
return MakeRefCounted<GrpcLbConfig>(nullptr, "");
|
1848
1878
|
}
|
@@ -1873,7 +1903,7 @@ class GrpcLbFactory : public LoadBalancingPolicyFactory {
|
|
1873
1903
|
RefCountedPtr<LoadBalancingPolicy::Config> child_policy_config =
|
1874
1904
|
LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(
|
1875
1905
|
*child_policy_config_json, &parse_error);
|
1876
|
-
if (parse_error
|
1906
|
+
if (!GRPC_ERROR_IS_NONE(parse_error)) {
|
1877
1907
|
std::vector<grpc_error_handle> child_errors;
|
1878
1908
|
child_errors.push_back(parse_error);
|
1879
1909
|
error_list.push_back(
|
@@ -295,7 +295,6 @@ OrcaProducer::OrcaProducer(RefCountedPtr<Subchannel> subchannel)
|
|
295
295
|
auto connectivity_watcher = MakeRefCounted<ConnectivityWatcher>(WeakRef());
|
296
296
|
connectivity_watcher_ = connectivity_watcher.get();
|
297
297
|
subchannel_->WatchConnectivityState(
|
298
|
-
connected_subchannel_ == nullptr ? GRPC_CHANNEL_IDLE : GRPC_CHANNEL_READY,
|
299
298
|
/*health_check_service_name=*/absl::nullopt,
|
300
299
|
std::move(connectivity_watcher));
|
301
300
|
}
|
@@ -31,7 +31,6 @@
|
|
31
31
|
#include <utility>
|
32
32
|
#include <vector>
|
33
33
|
|
34
|
-
#include "absl/container/inlined_vector.h"
|
35
34
|
#include "absl/memory/memory.h"
|
36
35
|
#include "absl/random/random.h"
|
37
36
|
#include "absl/status/status.h"
|
@@ -49,6 +48,7 @@
|
|
49
48
|
#include "src/core/ext/filters/client_channel/lb_policy_factory.h"
|
50
49
|
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
|
51
50
|
#include "src/core/ext/filters/client_channel/subchannel_interface.h"
|
51
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
52
52
|
#include "src/core/lib/channel/channel_args.h"
|
53
53
|
#include "src/core/lib/debug/trace.h"
|
54
54
|
#include "src/core/lib/gpr/env.h"
|
@@ -154,10 +154,7 @@ class OutlierDetectionLb : public LoadBalancingPolicy {
|
|
154
154
|
|
155
155
|
void Uneject();
|
156
156
|
|
157
|
-
grpc_connectivity_state CheckConnectivityState() override;
|
158
|
-
|
159
157
|
void WatchConnectivityState(
|
160
|
-
grpc_connectivity_state initial_state,
|
161
158
|
std::unique_ptr<ConnectivityStateWatcherInterface> watcher) override;
|
162
159
|
|
163
160
|
void CancelConnectivityStateWatch(
|
@@ -174,30 +171,39 @@ class OutlierDetectionLb : public LoadBalancingPolicy {
|
|
174
171
|
WatcherWrapper(std::unique_ptr<
|
175
172
|
SubchannelInterface::ConnectivityStateWatcherInterface>
|
176
173
|
watcher,
|
177
|
-
|
178
|
-
: watcher_(std::move(watcher)),
|
179
|
-
last_seen_state_(initial_state),
|
180
|
-
ejected_(ejected) {}
|
174
|
+
bool ejected)
|
175
|
+
: watcher_(std::move(watcher)), ejected_(ejected) {}
|
181
176
|
|
182
177
|
void Eject() {
|
183
178
|
ejected_ = true;
|
184
|
-
if (last_seen_state_
|
185
|
-
watcher_->OnConnectivityStateChange(
|
179
|
+
if (last_seen_state_.has_value()) {
|
180
|
+
watcher_->OnConnectivityStateChange(
|
181
|
+
GRPC_CHANNEL_TRANSIENT_FAILURE,
|
182
|
+
absl::UnavailableError(
|
183
|
+
"subchannel ejected by outlier detection"));
|
186
184
|
}
|
187
185
|
}
|
188
186
|
|
189
187
|
void Uneject() {
|
190
188
|
ejected_ = false;
|
191
|
-
if (last_seen_state_
|
192
|
-
watcher_->OnConnectivityStateChange(last_seen_state_
|
189
|
+
if (last_seen_state_.has_value()) {
|
190
|
+
watcher_->OnConnectivityStateChange(*last_seen_state_,
|
191
|
+
last_seen_status_);
|
193
192
|
}
|
194
193
|
}
|
195
194
|
|
196
|
-
void OnConnectivityStateChange(
|
197
|
-
|
195
|
+
void OnConnectivityStateChange(grpc_connectivity_state new_state,
|
196
|
+
absl::Status status) override {
|
197
|
+
const bool send_update = !last_seen_state_.has_value() || !ejected_;
|
198
198
|
last_seen_state_ = new_state;
|
199
|
-
|
200
|
-
|
199
|
+
last_seen_status_ = status;
|
200
|
+
if (send_update) {
|
201
|
+
if (ejected_) {
|
202
|
+
new_state = GRPC_CHANNEL_TRANSIENT_FAILURE;
|
203
|
+
status = absl::UnavailableError(
|
204
|
+
"subchannel ejected by outlier detection");
|
205
|
+
}
|
206
|
+
watcher_->OnConnectivityStateChange(new_state, status);
|
201
207
|
}
|
202
208
|
}
|
203
209
|
|
@@ -208,7 +214,8 @@ class OutlierDetectionLb : public LoadBalancingPolicy {
|
|
208
214
|
private:
|
209
215
|
std::unique_ptr<SubchannelInterface::ConnectivityStateWatcherInterface>
|
210
216
|
watcher_;
|
211
|
-
grpc_connectivity_state last_seen_state_;
|
217
|
+
absl::optional<grpc_connectivity_state> last_seen_state_;
|
218
|
+
absl::Status last_seen_status_;
|
212
219
|
bool ejected_;
|
213
220
|
};
|
214
221
|
|
@@ -418,21 +425,13 @@ void OutlierDetectionLb::SubchannelWrapper::Uneject() {
|
|
418
425
|
}
|
419
426
|
}
|
420
427
|
|
421
|
-
grpc_connectivity_state
|
422
|
-
OutlierDetectionLb::SubchannelWrapper::CheckConnectivityState() {
|
423
|
-
if (ejected_) return GRPC_CHANNEL_TRANSIENT_FAILURE;
|
424
|
-
return wrapped_subchannel()->CheckConnectivityState();
|
425
|
-
}
|
426
|
-
|
427
428
|
void OutlierDetectionLb::SubchannelWrapper::WatchConnectivityState(
|
428
|
-
grpc_connectivity_state initial_state,
|
429
429
|
std::unique_ptr<ConnectivityStateWatcherInterface> watcher) {
|
430
430
|
ConnectivityStateWatcherInterface* watcher_ptr = watcher.get();
|
431
|
-
auto watcher_wrapper =
|
432
|
-
std::move(watcher),
|
431
|
+
auto watcher_wrapper =
|
432
|
+
absl::make_unique<WatcherWrapper>(std::move(watcher), ejected_);
|
433
433
|
watchers_.emplace(watcher_ptr, watcher_wrapper.get());
|
434
|
-
wrapped_subchannel()->WatchConnectivityState(
|
435
|
-
std::move(watcher_wrapper));
|
434
|
+
wrapped_subchannel()->WatchConnectivityState(std::move(watcher_wrapper));
|
436
435
|
}
|
437
436
|
|
438
437
|
void OutlierDetectionLb::SubchannelWrapper::CancelConnectivityStateWatch(
|
@@ -556,10 +555,9 @@ OutlierDetectionLb::~OutlierDetectionLb() {
|
|
556
555
|
|
557
556
|
std::string OutlierDetectionLb::MakeKeyForAddress(
|
558
557
|
const ServerAddress& address) {
|
559
|
-
//
|
560
|
-
|
561
|
-
|
562
|
-
.ToString();
|
558
|
+
// Use only the address, not the attributes.
|
559
|
+
auto addr_str = grpc_sockaddr_to_string(&address.address(), false);
|
560
|
+
return addr_str.ok() ? addr_str.value() : addr_str.status().ToString();
|
563
561
|
}
|
564
562
|
|
565
563
|
void OutlierDetectionLb::ShutdownLocked() {
|
@@ -785,7 +783,7 @@ void OutlierDetectionLb::EjectionTimer::OnTimer(void* arg,
|
|
785
783
|
}
|
786
784
|
|
787
785
|
void OutlierDetectionLb::EjectionTimer::OnTimerLocked(grpc_error_handle error) {
|
788
|
-
if (error
|
786
|
+
if (GRPC_ERROR_IS_NONE(error) && timer_pending_) {
|
789
787
|
std::map<SubchannelState*, double> success_rate_ejection_candidates;
|
790
788
|
std::map<SubchannelState*, double> failure_percentage_ejection_candidates;
|
791
789
|
size_t ejected_host_count = 0;
|
@@ -918,7 +916,7 @@ class OutlierDetectionLbFactory : public LoadBalancingPolicyFactory {
|
|
918
916
|
|
919
917
|
RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
920
918
|
const Json& json, grpc_error_handle* error) const override {
|
921
|
-
GPR_DEBUG_ASSERT(error != nullptr && *error
|
919
|
+
GPR_DEBUG_ASSERT(error != nullptr && GRPC_ERROR_IS_NONE(*error));
|
922
920
|
if (json.type() == Json::Type::JSON_NULL) {
|
923
921
|
// This policy was configured in the deprecated loadBalancingPolicy
|
924
922
|
// field or in the client API.
|
@@ -1002,7 +1000,7 @@ class OutlierDetectionLbFactory : public LoadBalancingPolicyFactory {
|
|
1002
1000
|
child_policy = LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(
|
1003
1001
|
it->second, &parse_error);
|
1004
1002
|
if (child_policy == nullptr) {
|
1005
|
-
GPR_DEBUG_ASSERT(parse_error
|
1003
|
+
GPR_DEBUG_ASSERT(!GRPC_ERROR_IS_NONE(parse_error));
|
1006
1004
|
std::vector<grpc_error_handle> child_errors;
|
1007
1005
|
child_errors.push_back(parse_error);
|
1008
1006
|
error_list.push_back(
|