grpc 1.37.1 → 1.38.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 +64 -58
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/channel_args.h +28 -0
- data/include/grpc/event_engine/event_engine.h +336 -0
- data/include/grpc/event_engine/port.h +39 -0
- data/include/grpc/event_engine/slice_allocator.h +81 -0
- data/include/grpc/grpc.h +2 -2
- data/include/grpc/grpc_security_constants.h +14 -0
- data/include/grpc/impl/codegen/grpc_types.h +11 -0
- data/include/grpc/impl/codegen/port_platform.h +5 -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 +628 -3101
- 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 +26 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +27 -26
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- 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/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 +36 -30
- 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 +84 -61
- 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 +23 -15
- 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_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_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 +17 -9
- 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 +13 -11
- 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 +43 -28
- 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 +2188 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +287 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +90 -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 +16 -15
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -18
- 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 +1 -1
- 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 +2 -2
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +129 -116
- 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 +31 -27
- data/src/core/ext/transport/chttp2/transport/parsing.cc +63 -56
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +30 -29
- 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 +101 -93
- data/src/core/ext/xds/xds_api.h +6 -6
- 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 +3 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +6 -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/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/slice_allocator.cc +59 -0
- data/src/core/lib/event_engine/sockaddr.cc +38 -0
- 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 +180 -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_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +167 -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/exec_ctx.cc +4 -4
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +1 -1
- 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 +1 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
- 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 +5 -5
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +1 -1
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +3 -3
- data/src/core/lib/iomgr/resolve_address.h +6 -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/socket_utils_common_posix.cc +22 -20
- 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 +15 -17
- 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 +36 -34
- 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 +23 -21
- data/src/core/lib/iomgr/tcp_server_posix.cc +22 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -17
- 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_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/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 +9 -9
- 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/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 +14 -4
- 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 +22 -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 +19 -13
- 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 +46 -45
- data/src/core/lib/surface/call.h +2 -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 +46 -47
- data/src/core/lib/surface/completion_queue.h +2 -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 +19 -8
- 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 +4 -4
- data/src/core/lib/transport/transport_op_string.cc +5 -5
- data/src/core/tsi/alts/crypt/gsec.h +4 -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/rb_grpc_imports.generated.h +1 -1
- 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 +477 -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 +1 -1
- 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/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/err/err.c +87 -80
- 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/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/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +4 -43
- 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 +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +43 -46
- 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/urandom.c +26 -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 +45 -48
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +38 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +37 -45
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +103 -42
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +58 -37
- 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 +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +19 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -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 +39 -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_vfy.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- 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_val.c +2 -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/include/openssl/aead.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -0
- 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/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +19 -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 +1 -38
- 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/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +2 -0
- 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/ssl.h +185 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +416 -121
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -0
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +444 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +244 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +43 -12
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +149 -8
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +220 -46
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +7 -1
- 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 +74 -15
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +98 -64
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +34 -4
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +205 -100
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- metadata +68 -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
@@ -113,7 +113,7 @@ LoadBalancingPolicy::PickResult LoadBalancingPolicy::QueuePicker::Pick(
|
|
113
113
|
auto* parent = parent_->Ref().release(); // ref held by lambda.
|
114
114
|
ExecCtx::Run(DEBUG_LOCATION,
|
115
115
|
GRPC_CLOSURE_CREATE(
|
116
|
-
[](void* arg,
|
116
|
+
[](void* arg, grpc_error_handle /*error*/) {
|
117
117
|
auto* parent = static_cast<LoadBalancingPolicy*>(arg);
|
118
118
|
parent->work_serializer()->Run(
|
119
119
|
[parent]() {
|
@@ -230,7 +230,7 @@ class LoadBalancingPolicy : public InternallyRefCounted<LoadBalancingPolicy> {
|
|
230
230
|
/// Error to be set when returning a failure.
|
231
231
|
// TODO(roth): Replace this with something similar to grpc::Status,
|
232
232
|
// so that we don't expose grpc_error to this API.
|
233
|
-
|
233
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
234
234
|
|
235
235
|
/// Used only if type is PICK_COMPLETE.
|
236
236
|
/// Callback set by LB policy to be notified of trailing metadata.
|
@@ -243,7 +243,7 @@ class LoadBalancingPolicy : public InternallyRefCounted<LoadBalancingPolicy> {
|
|
243
243
|
// TODO(roth): The arguments to this callback should be moved into a
|
244
244
|
// struct, so that we can later add new fields without breaking
|
245
245
|
// existing implementations.
|
246
|
-
std::function<void(
|
246
|
+
std::function<void(grpc_error_handle, MetadataInterface*, CallState*)>
|
247
247
|
recv_trailing_metadata_ready;
|
248
248
|
};
|
249
249
|
|
@@ -387,13 +387,13 @@ class LoadBalancingPolicy : public InternallyRefCounted<LoadBalancingPolicy> {
|
|
387
387
|
// A picker that returns PICK_TRANSIENT_FAILURE for all picks.
|
388
388
|
class TransientFailurePicker : public SubchannelPicker {
|
389
389
|
public:
|
390
|
-
explicit TransientFailurePicker(
|
390
|
+
explicit TransientFailurePicker(grpc_error_handle error) : error_(error) {}
|
391
391
|
~TransientFailurePicker() override { GRPC_ERROR_UNREF(error_); }
|
392
392
|
|
393
393
|
PickResult Pick(PickArgs args) override;
|
394
394
|
|
395
395
|
private:
|
396
|
-
|
396
|
+
grpc_error_handle error_;
|
397
397
|
};
|
398
398
|
|
399
399
|
protected:
|
@@ -30,8 +30,8 @@
|
|
30
30
|
#include "src/core/lib/iomgr/error.h"
|
31
31
|
#include "src/core/lib/profiling/timers.h"
|
32
32
|
|
33
|
-
static
|
34
|
-
|
33
|
+
static grpc_error_handle clr_init_channel_elem(
|
34
|
+
grpc_channel_element* /*elem*/, grpc_channel_element_args* /*args*/) {
|
35
35
|
return GRPC_ERROR_NONE;
|
36
36
|
}
|
37
37
|
|
@@ -54,7 +54,7 @@ struct call_data {
|
|
54
54
|
|
55
55
|
} // namespace
|
56
56
|
|
57
|
-
static void on_complete_for_send(void* arg,
|
57
|
+
static void on_complete_for_send(void* arg, grpc_error_handle error) {
|
58
58
|
call_data* calld = static_cast<call_data*>(arg);
|
59
59
|
if (error == GRPC_ERROR_NONE) {
|
60
60
|
calld->send_initial_metadata_succeeded = true;
|
@@ -63,7 +63,7 @@ static void on_complete_for_send(void* arg, grpc_error* error) {
|
|
63
63
|
GRPC_ERROR_REF(error));
|
64
64
|
}
|
65
65
|
|
66
|
-
static void recv_initial_metadata_ready(void* arg,
|
66
|
+
static void recv_initial_metadata_ready(void* arg, grpc_error_handle error) {
|
67
67
|
call_data* calld = static_cast<call_data*>(arg);
|
68
68
|
if (error == GRPC_ERROR_NONE) {
|
69
69
|
calld->recv_initial_metadata_succeeded = true;
|
@@ -73,8 +73,8 @@ static void recv_initial_metadata_ready(void* arg, grpc_error* error) {
|
|
73
73
|
GRPC_ERROR_REF(error));
|
74
74
|
}
|
75
75
|
|
76
|
-
static
|
77
|
-
|
76
|
+
static grpc_error_handle clr_init_call_elem(
|
77
|
+
grpc_call_element* elem, const grpc_call_element_args* args) {
|
78
78
|
GPR_ASSERT(args->context != nullptr);
|
79
79
|
new (elem->call_data) call_data();
|
80
80
|
return GRPC_ERROR_NONE;
|
@@ -90,6 +90,8 @@
|
|
90
90
|
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
|
91
91
|
#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h"
|
92
92
|
#include "src/core/ext/filters/client_channel/server_address.h"
|
93
|
+
#include "src/core/lib/address_utils/parse_address.h"
|
94
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
93
95
|
#include "src/core/lib/backoff/backoff.h"
|
94
96
|
#include "src/core/lib/channel/channel_args.h"
|
95
97
|
#include "src/core/lib/channel/channel_stack.h"
|
@@ -98,9 +100,7 @@
|
|
98
100
|
#include "src/core/lib/gprpp/memory.h"
|
99
101
|
#include "src/core/lib/gprpp/orphanable.h"
|
100
102
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
101
|
-
#include "src/core/lib/iomgr/parse_address.h"
|
102
103
|
#include "src/core/lib/iomgr/sockaddr.h"
|
103
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
104
104
|
#include "src/core/lib/iomgr/timer.h"
|
105
105
|
#include "src/core/lib/slice/slice_internal.h"
|
106
106
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
@@ -186,17 +186,17 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
186
186
|
void ScheduleNextClientLoadReportLocked();
|
187
187
|
void SendClientLoadReportLocked();
|
188
188
|
|
189
|
-
static void MaybeSendClientLoadReport(void* arg,
|
190
|
-
static void ClientLoadReportDone(void* arg,
|
191
|
-
static void OnInitialRequestSent(void* arg,
|
192
|
-
static void OnBalancerMessageReceived(void* arg,
|
193
|
-
static void OnBalancerStatusReceived(void* arg,
|
189
|
+
static void MaybeSendClientLoadReport(void* arg, grpc_error_handle error);
|
190
|
+
static void ClientLoadReportDone(void* arg, grpc_error_handle error);
|
191
|
+
static void OnInitialRequestSent(void* arg, grpc_error_handle error);
|
192
|
+
static void OnBalancerMessageReceived(void* arg, grpc_error_handle error);
|
193
|
+
static void OnBalancerStatusReceived(void* arg, grpc_error_handle error);
|
194
194
|
|
195
|
-
void MaybeSendClientLoadReportLocked(
|
196
|
-
void ClientLoadReportDoneLocked(
|
195
|
+
void MaybeSendClientLoadReportLocked(grpc_error_handle error);
|
196
|
+
void ClientLoadReportDoneLocked(grpc_error_handle error);
|
197
197
|
void OnInitialRequestSentLocked();
|
198
198
|
void OnBalancerMessageReceivedLocked();
|
199
|
-
void OnBalancerStatusReceivedLocked(
|
199
|
+
void OnBalancerStatusReceivedLocked(grpc_error_handle error);
|
200
200
|
|
201
201
|
// The owning LB policy.
|
202
202
|
RefCountedPtr<LoadBalancingPolicy> grpclb_policy_;
|
@@ -410,14 +410,14 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
410
410
|
|
411
411
|
// Methods for dealing with fallback state.
|
412
412
|
void MaybeEnterFallbackModeAfterStartup();
|
413
|
-
static void OnFallbackTimer(void* arg,
|
414
|
-
void OnFallbackTimerLocked(
|
413
|
+
static void OnFallbackTimer(void* arg, grpc_error_handle error);
|
414
|
+
void OnFallbackTimerLocked(grpc_error_handle error);
|
415
415
|
|
416
416
|
// Methods for dealing with the balancer call.
|
417
417
|
void StartBalancerCallLocked();
|
418
418
|
void StartBalancerCallRetryTimerLocked();
|
419
|
-
static void OnBalancerCallRetryTimer(void* arg,
|
420
|
-
void OnBalancerCallRetryTimerLocked(
|
419
|
+
static void OnBalancerCallRetryTimer(void* arg, grpc_error_handle error);
|
420
|
+
void OnBalancerCallRetryTimerLocked(grpc_error_handle error);
|
421
421
|
|
422
422
|
// Methods for dealing with the child policy.
|
423
423
|
grpc_channel_args* CreateChildPolicyArgsLocked(
|
@@ -893,6 +893,10 @@ void GrpcLb::BalancerCallState::StartQuery() {
|
|
893
893
|
}
|
894
894
|
|
895
895
|
void GrpcLb::BalancerCallState::ScheduleNextClientLoadReportLocked() {
|
896
|
+
// InvalidateNow to avoid getting stuck re-initializing this timer
|
897
|
+
// in a loop while draining the currently-held WorkSerializer.
|
898
|
+
// Also see https://github.com/grpc/grpc/issues/26079.
|
899
|
+
ExecCtx::Get()->InvalidateNow();
|
896
900
|
const grpc_millis next_client_load_report_time =
|
897
901
|
ExecCtx::Get()->Now() + client_stats_report_interval_;
|
898
902
|
GRPC_CLOSURE_INIT(&client_load_report_closure_, MaybeSendClientLoadReport,
|
@@ -902,8 +906,8 @@ void GrpcLb::BalancerCallState::ScheduleNextClientLoadReportLocked() {
|
|
902
906
|
client_load_report_timer_callback_pending_ = true;
|
903
907
|
}
|
904
908
|
|
905
|
-
void GrpcLb::BalancerCallState::MaybeSendClientLoadReport(
|
906
|
-
|
909
|
+
void GrpcLb::BalancerCallState::MaybeSendClientLoadReport(
|
910
|
+
void* arg, grpc_error_handle error) {
|
907
911
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
908
912
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
909
913
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
@@ -912,7 +916,7 @@ void GrpcLb::BalancerCallState::MaybeSendClientLoadReport(void* arg,
|
|
912
916
|
}
|
913
917
|
|
914
918
|
void GrpcLb::BalancerCallState::MaybeSendClientLoadReportLocked(
|
915
|
-
|
919
|
+
grpc_error_handle error) {
|
916
920
|
client_load_report_timer_callback_pending_ = false;
|
917
921
|
if (error != GRPC_ERROR_NONE || this != grpclb_policy()->lb_calld_.get()) {
|
918
922
|
Unref(DEBUG_LOCATION, "client_load_report");
|
@@ -982,7 +986,7 @@ void GrpcLb::BalancerCallState::SendClientLoadReportLocked() {
|
|
982
986
|
}
|
983
987
|
|
984
988
|
void GrpcLb::BalancerCallState::ClientLoadReportDone(void* arg,
|
985
|
-
|
989
|
+
grpc_error_handle error) {
|
986
990
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
987
991
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
988
992
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
@@ -990,7 +994,8 @@ void GrpcLb::BalancerCallState::ClientLoadReportDone(void* arg,
|
|
990
994
|
DEBUG_LOCATION);
|
991
995
|
}
|
992
996
|
|
993
|
-
void GrpcLb::BalancerCallState::ClientLoadReportDoneLocked(
|
997
|
+
void GrpcLb::BalancerCallState::ClientLoadReportDoneLocked(
|
998
|
+
grpc_error_handle error) {
|
994
999
|
grpc_byte_buffer_destroy(send_message_payload_);
|
995
1000
|
send_message_payload_ = nullptr;
|
996
1001
|
if (error != GRPC_ERROR_NONE || this != grpclb_policy()->lb_calld_.get()) {
|
@@ -1001,8 +1006,8 @@ void GrpcLb::BalancerCallState::ClientLoadReportDoneLocked(grpc_error* error) {
|
|
1001
1006
|
ScheduleNextClientLoadReportLocked();
|
1002
1007
|
}
|
1003
1008
|
|
1004
|
-
void GrpcLb::BalancerCallState::OnInitialRequestSent(
|
1005
|
-
|
1009
|
+
void GrpcLb::BalancerCallState::OnInitialRequestSent(
|
1010
|
+
void* arg, grpc_error_handle /*error*/) {
|
1006
1011
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
1007
1012
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
1008
1013
|
[lb_calld]() { lb_calld->OnInitialRequestSentLocked(); }, DEBUG_LOCATION);
|
@@ -1021,7 +1026,7 @@ void GrpcLb::BalancerCallState::OnInitialRequestSentLocked() {
|
|
1021
1026
|
}
|
1022
1027
|
|
1023
1028
|
void GrpcLb::BalancerCallState::OnBalancerMessageReceived(
|
1024
|
-
void* arg,
|
1029
|
+
void* arg, grpc_error_handle /*error*/) {
|
1025
1030
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
1026
1031
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
1027
1032
|
[lb_calld]() { lb_calld->OnBalancerMessageReceivedLocked(); },
|
@@ -1183,8 +1188,8 @@ void GrpcLb::BalancerCallState::OnBalancerMessageReceivedLocked() {
|
|
1183
1188
|
}
|
1184
1189
|
}
|
1185
1190
|
|
1186
|
-
void GrpcLb::BalancerCallState::OnBalancerStatusReceived(
|
1187
|
-
|
1191
|
+
void GrpcLb::BalancerCallState::OnBalancerStatusReceived(
|
1192
|
+
void* arg, grpc_error_handle error) {
|
1188
1193
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
1189
1194
|
GRPC_ERROR_REF(error); // owned by lambda
|
1190
1195
|
lb_calld->grpclb_policy()->work_serializer()->Run(
|
@@ -1193,7 +1198,7 @@ void GrpcLb::BalancerCallState::OnBalancerStatusReceived(void* arg,
|
|
1193
1198
|
}
|
1194
1199
|
|
1195
1200
|
void GrpcLb::BalancerCallState::OnBalancerStatusReceivedLocked(
|
1196
|
-
|
1201
|
+
grpc_error_handle error) {
|
1197
1202
|
GPR_ASSERT(lb_call_ != nullptr);
|
1198
1203
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
1199
1204
|
char* status_details = grpc_slice_to_c_string(lb_call_status_details_);
|
@@ -1201,7 +1206,7 @@ void GrpcLb::BalancerCallState::OnBalancerStatusReceivedLocked(
|
|
1201
1206
|
"[grpclb %p] lb_calld=%p: Status from LB server received. "
|
1202
1207
|
"Status = %d, details = '%s', (lb_call: %p), error '%s'",
|
1203
1208
|
grpclb_policy(), this, lb_call_status_, status_details, lb_call_,
|
1204
|
-
|
1209
|
+
grpc_error_std_string(error).c_str());
|
1205
1210
|
gpr_free(status_details);
|
1206
1211
|
}
|
1207
1212
|
GRPC_ERROR_UNREF(error);
|
@@ -1420,13 +1425,12 @@ void GrpcLb::UpdateLocked(UpdateArgs args) {
|
|
1420
1425
|
// Start watching the channel's connectivity state. If the channel
|
1421
1426
|
// goes into state TRANSIENT_FAILURE before the timer fires, we go into
|
1422
1427
|
// fallback mode even if the fallback timeout has not elapsed.
|
1423
|
-
|
1424
|
-
|
1425
|
-
GPR_ASSERT(client_channel_elem->filter == &grpc_client_channel_filter);
|
1428
|
+
ClientChannel* client_channel = ClientChannel::GetFromChannel(lb_channel_);
|
1429
|
+
GPR_ASSERT(client_channel != nullptr);
|
1426
1430
|
// Ref held by callback.
|
1427
1431
|
watcher_ = new StateWatcher(Ref(DEBUG_LOCATION, "StateWatcher"));
|
1428
|
-
|
1429
|
-
|
1432
|
+
client_channel->AddConnectivityWatcher(
|
1433
|
+
GRPC_CHANNEL_IDLE,
|
1430
1434
|
OrphanablePtr<AsyncConnectivityStateWatcherInterface>(watcher_));
|
1431
1435
|
// Start balancer call.
|
1432
1436
|
StartBalancerCallLocked();
|
@@ -1490,10 +1494,9 @@ void GrpcLb::ProcessAddressesAndChannelArgsLocked(
|
|
1490
1494
|
}
|
1491
1495
|
|
1492
1496
|
void GrpcLb::CancelBalancerChannelConnectivityWatchLocked() {
|
1493
|
-
|
1494
|
-
|
1495
|
-
|
1496
|
-
grpc_client_channel_stop_connectivity_watch(client_channel_elem, watcher_);
|
1497
|
+
ClientChannel* client_channel = ClientChannel::GetFromChannel(lb_channel_);
|
1498
|
+
GPR_ASSERT(client_channel != nullptr);
|
1499
|
+
client_channel->RemoveConnectivityWatcher(watcher_);
|
1497
1500
|
}
|
1498
1501
|
|
1499
1502
|
//
|
@@ -1536,7 +1539,7 @@ void GrpcLb::StartBalancerCallRetryTimerLocked() {
|
|
1536
1539
|
grpc_timer_init(&lb_call_retry_timer_, next_try, &lb_on_call_retry_);
|
1537
1540
|
}
|
1538
1541
|
|
1539
|
-
void GrpcLb::OnBalancerCallRetryTimer(void* arg,
|
1542
|
+
void GrpcLb::OnBalancerCallRetryTimer(void* arg, grpc_error_handle error) {
|
1540
1543
|
GrpcLb* grpclb_policy = static_cast<GrpcLb*>(arg);
|
1541
1544
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
1542
1545
|
grpclb_policy->work_serializer()->Run(
|
@@ -1546,7 +1549,7 @@ void GrpcLb::OnBalancerCallRetryTimer(void* arg, grpc_error* error) {
|
|
1546
1549
|
DEBUG_LOCATION);
|
1547
1550
|
}
|
1548
1551
|
|
1549
|
-
void GrpcLb::OnBalancerCallRetryTimerLocked(
|
1552
|
+
void GrpcLb::OnBalancerCallRetryTimerLocked(grpc_error_handle error) {
|
1550
1553
|
retry_timer_callback_pending_ = false;
|
1551
1554
|
if (!shutting_down_ && error == GRPC_ERROR_NONE && lb_calld_ == nullptr) {
|
1552
1555
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
@@ -1580,7 +1583,7 @@ void GrpcLb::MaybeEnterFallbackModeAfterStartup() {
|
|
1580
1583
|
}
|
1581
1584
|
}
|
1582
1585
|
|
1583
|
-
void GrpcLb::OnFallbackTimer(void* arg,
|
1586
|
+
void GrpcLb::OnFallbackTimer(void* arg, grpc_error_handle error) {
|
1584
1587
|
GrpcLb* grpclb_policy = static_cast<GrpcLb*>(arg);
|
1585
1588
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
1586
1589
|
grpclb_policy->work_serializer()->Run(
|
@@ -1588,7 +1591,7 @@ void GrpcLb::OnFallbackTimer(void* arg, grpc_error* error) {
|
|
1588
1591
|
DEBUG_LOCATION);
|
1589
1592
|
}
|
1590
1593
|
|
1591
|
-
void GrpcLb::OnFallbackTimerLocked(
|
1594
|
+
void GrpcLb::OnFallbackTimerLocked(grpc_error_handle error) {
|
1592
1595
|
// If we receive a serverlist after the timer fires but before this callback
|
1593
1596
|
// actually runs, don't fall back.
|
1594
1597
|
if (fallback_at_startup_checks_pending_ && !shutting_down_ &&
|
@@ -1692,12 +1695,12 @@ class GrpcLbFactory : public LoadBalancingPolicyFactory {
|
|
1692
1695
|
const char* name() const override { return kGrpclb; }
|
1693
1696
|
|
1694
1697
|
RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
1695
|
-
const Json& json,
|
1698
|
+
const Json& json, grpc_error_handle* error) const override {
|
1696
1699
|
GPR_DEBUG_ASSERT(error != nullptr && *error == GRPC_ERROR_NONE);
|
1697
1700
|
if (json.type() == Json::Type::JSON_NULL) {
|
1698
1701
|
return MakeRefCounted<GrpcLbConfig>(nullptr, "");
|
1699
1702
|
}
|
1700
|
-
std::vector<
|
1703
|
+
std::vector<grpc_error_handle> error_list;
|
1701
1704
|
Json child_policy_config_json_tmp;
|
1702
1705
|
const Json* child_policy_config_json;
|
1703
1706
|
std::string service_name;
|
@@ -1720,12 +1723,12 @@ class GrpcLbFactory : public LoadBalancingPolicyFactory {
|
|
1720
1723
|
} else {
|
1721
1724
|
child_policy_config_json = &it->second;
|
1722
1725
|
}
|
1723
|
-
|
1726
|
+
grpc_error_handle parse_error = GRPC_ERROR_NONE;
|
1724
1727
|
RefCountedPtr<LoadBalancingPolicy::Config> child_policy_config =
|
1725
1728
|
LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(
|
1726
1729
|
*child_policy_config_json, &parse_error);
|
1727
1730
|
if (parse_error != GRPC_ERROR_NONE) {
|
1728
|
-
std::vector<
|
1731
|
+
std::vector<grpc_error_handle> child_errors;
|
1729
1732
|
child_errors.push_back(parse_error);
|
1730
1733
|
error_list.push_back(
|
1731
1734
|
GRPC_ERROR_CREATE_FROM_VECTOR("field:childPolicy", &child_errors));
|
@@ -31,9 +31,9 @@
|
|
31
31
|
#include "src/core/ext/filters/client_channel/client_channel.h"
|
32
32
|
#include "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h"
|
33
33
|
#include "src/core/ext/filters/client_channel/server_address.h"
|
34
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
34
35
|
#include "src/core/lib/channel/channel_args.h"
|
35
36
|
#include "src/core/lib/gpr/string.h"
|
36
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
37
37
|
#include "src/core/lib/security/credentials/credentials.h"
|
38
38
|
#include "src/core/lib/slice/slice_internal.h"
|
39
39
|
|
@@ -66,7 +66,8 @@ class GrpcLbClientStats : public RefCounted<GrpcLbClientStats> {
|
|
66
66
|
gpr_atm num_calls_finished_with_client_failed_to_send_ = 0;
|
67
67
|
gpr_atm num_calls_finished_known_received_ = 0;
|
68
68
|
Mutex drop_count_mu_; // Guards drop_token_counts_.
|
69
|
-
std::unique_ptr<DroppedCallCounts> drop_token_counts_
|
69
|
+
std::unique_ptr<DroppedCallCounts> drop_token_counts_
|
70
|
+
ABSL_GUARDED_BY(drop_count_mu_);
|
70
71
|
};
|
71
72
|
|
72
73
|
} // namespace grpc_core
|
@@ -26,9 +26,9 @@
|
|
26
26
|
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
|
27
27
|
#include "src/core/ext/filters/client_channel/server_address.h"
|
28
28
|
#include "src/core/ext/filters/client_channel/subchannel.h"
|
29
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
29
30
|
#include "src/core/lib/channel/channel_args.h"
|
30
31
|
#include "src/core/lib/gprpp/sync.h"
|
31
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
32
32
|
#include "src/core/lib/transport/connectivity_state.h"
|
33
33
|
#include "src/core/lib/transport/error_utils.h"
|
34
34
|
|
@@ -197,7 +197,7 @@ void PickFirst::AttemptToConnectUsingLatestUpdateArgsLocked() {
|
|
197
197
|
// (If we are idle, then this will happen in ExitIdleLocked() if we
|
198
198
|
// haven't gotten a non-empty update by the time the application tries
|
199
199
|
// to start a new call.)
|
200
|
-
|
200
|
+
grpc_error_handle error =
|
201
201
|
grpc_error_set_int(GRPC_ERROR_CREATE_FROM_STATIC_STRING("Empty update"),
|
202
202
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
203
203
|
channel_control_helper()->UpdateState(
|
@@ -314,7 +314,7 @@ void PickFirst::PickFirstSubchannelData::ProcessConnectivityChangeLocked(
|
|
314
314
|
p->subchannel_list_ = std::move(p->latest_pending_subchannel_list_);
|
315
315
|
// Set our state to that of the pending subchannel list.
|
316
316
|
if (p->subchannel_list_->in_transient_failure()) {
|
317
|
-
|
317
|
+
grpc_error_handle error = grpc_error_set_int(
|
318
318
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
319
319
|
"selected subchannel failed; switching to pending update"),
|
320
320
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
@@ -393,7 +393,7 @@ void PickFirst::PickFirstSubchannelData::ProcessConnectivityChangeLocked(
|
|
393
393
|
subchannel_list()->set_in_transient_failure(true);
|
394
394
|
// Only report new state in case 1.
|
395
395
|
if (subchannel_list() == p->subchannel_list_.get()) {
|
396
|
-
|
396
|
+
grpc_error_handle error = grpc_error_set_int(
|
397
397
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
398
398
|
"failed to connect to all addresses"),
|
399
399
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
@@ -497,7 +497,7 @@ class PickFirstFactory : public LoadBalancingPolicyFactory {
|
|
497
497
|
const char* name() const override { return kPickFirst; }
|
498
498
|
|
499
499
|
RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
500
|
-
const Json& /*json*/,
|
500
|
+
const Json& /*json*/, grpc_error_handle* /*error*/) const override {
|
501
501
|
return MakeRefCounted<PickFirstConfig>();
|
502
502
|
}
|
503
503
|
};
|
@@ -179,10 +179,10 @@ class PriorityLb : public LoadBalancingPolicy {
|
|
179
179
|
|
180
180
|
void StartFailoverTimerLocked();
|
181
181
|
|
182
|
-
static void OnFailoverTimer(void* arg,
|
183
|
-
void OnFailoverTimerLocked(
|
184
|
-
static void OnDeactivationTimer(void* arg,
|
185
|
-
void OnDeactivationTimerLocked(
|
182
|
+
static void OnFailoverTimer(void* arg, grpc_error_handle error);
|
183
|
+
void OnFailoverTimerLocked(grpc_error_handle error);
|
184
|
+
static void OnDeactivationTimer(void* arg, grpc_error_handle error);
|
185
|
+
void OnDeactivationTimerLocked(grpc_error_handle error);
|
186
186
|
|
187
187
|
RefCountedPtr<PriorityLb> priority_policy_;
|
188
188
|
const std::string name_;
|
@@ -472,7 +472,7 @@ void PriorityLb::TryNextPriorityLocked(bool report_connecting) {
|
|
472
472
|
this);
|
473
473
|
}
|
474
474
|
current_child_from_before_update_ = nullptr;
|
475
|
-
|
475
|
+
grpc_error_handle error = grpc_error_set_int(
|
476
476
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("no ready priority"),
|
477
477
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
478
478
|
channel_control_helper()->UpdateState(
|
@@ -655,14 +655,15 @@ void PriorityLb::ChildPriority::MaybeCancelFailoverTimerLocked() {
|
|
655
655
|
}
|
656
656
|
}
|
657
657
|
|
658
|
-
void PriorityLb::ChildPriority::OnFailoverTimer(void* arg,
|
658
|
+
void PriorityLb::ChildPriority::OnFailoverTimer(void* arg,
|
659
|
+
grpc_error_handle error) {
|
659
660
|
ChildPriority* self = static_cast<ChildPriority*>(arg);
|
660
661
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
661
662
|
self->priority_policy_->work_serializer()->Run(
|
662
663
|
[self, error]() { self->OnFailoverTimerLocked(error); }, DEBUG_LOCATION);
|
663
664
|
}
|
664
665
|
|
665
|
-
void PriorityLb::ChildPriority::OnFailoverTimerLocked(
|
666
|
+
void PriorityLb::ChildPriority::OnFailoverTimerLocked(grpc_error_handle error) {
|
666
667
|
if (error == GRPC_ERROR_NONE && failover_timer_callback_pending_ &&
|
667
668
|
!priority_policy_->shutting_down_) {
|
668
669
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_priority_trace)) {
|
@@ -712,7 +713,7 @@ void PriorityLb::ChildPriority::MaybeReactivateLocked() {
|
|
712
713
|
}
|
713
714
|
|
714
715
|
void PriorityLb::ChildPriority::OnDeactivationTimer(void* arg,
|
715
|
-
|
716
|
+
grpc_error_handle error) {
|
716
717
|
ChildPriority* self = static_cast<ChildPriority*>(arg);
|
717
718
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
718
719
|
self->priority_policy_->work_serializer()->Run(
|
@@ -720,7 +721,8 @@ void PriorityLb::ChildPriority::OnDeactivationTimer(void* arg,
|
|
720
721
|
DEBUG_LOCATION);
|
721
722
|
}
|
722
723
|
|
723
|
-
void PriorityLb::ChildPriority::OnDeactivationTimerLocked(
|
724
|
+
void PriorityLb::ChildPriority::OnDeactivationTimerLocked(
|
725
|
+
grpc_error_handle error) {
|
724
726
|
if (error == GRPC_ERROR_NONE && deactivation_timer_callback_pending_ &&
|
725
727
|
!priority_policy_->shutting_down_) {
|
726
728
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_priority_trace)) {
|
@@ -785,7 +787,7 @@ class PriorityLbFactory : public LoadBalancingPolicyFactory {
|
|
785
787
|
const char* name() const override { return kPriority; }
|
786
788
|
|
787
789
|
RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
788
|
-
const Json& json,
|
790
|
+
const Json& json, grpc_error_handle* error) const override {
|
789
791
|
GPR_DEBUG_ASSERT(error != nullptr && *error == GRPC_ERROR_NONE);
|
790
792
|
if (json.type() == Json::Type::JSON_NULL) {
|
791
793
|
// priority was mentioned as a policy in the deprecated
|
@@ -796,7 +798,7 @@ class PriorityLbFactory : public LoadBalancingPolicyFactory {
|
|
796
798
|
"config instead.");
|
797
799
|
return nullptr;
|
798
800
|
}
|
799
|
-
std::vector<
|
801
|
+
std::vector<grpc_error_handle> error_list;
|
800
802
|
// Children.
|
801
803
|
std::map<std::string, PriorityLbConfig::PriorityLbChild> children;
|
802
804
|
auto it = json.object_value().find("children");
|
@@ -824,7 +826,7 @@ class PriorityLbFactory : public LoadBalancingPolicyFactory {
|
|
824
826
|
" error:missing 'config' field")
|
825
827
|
.c_str()));
|
826
828
|
} else {
|
827
|
-
|
829
|
+
grpc_error_handle parse_error = GRPC_ERROR_NONE;
|
828
830
|
auto config = LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(
|
829
831
|
it2->second, &parse_error);
|
830
832
|
bool ignore_resolution_requests = false;
|