grpc 1.64.3 → 1.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +57 -58
- data/include/grpc/event_engine/event_engine.h +13 -6
- data/include/grpc/impl/channel_arg_names.h +7 -3
- data/include/grpc/module.modulemap +1 -0
- data/include/grpc/passive_listener.h +62 -0
- data/include/grpc/support/log.h +7 -17
- data/include/grpc/support/port_platform.h +3 -0
- data/src/core/channelz/channel_trace.cc +1 -1
- data/src/core/channelz/channel_trace.h +1 -1
- data/src/core/channelz/channelz.cc +3 -3
- data/src/core/channelz/channelz.h +7 -7
- data/src/core/channelz/channelz_registry.cc +4 -3
- data/src/core/client_channel/backup_poller.cc +4 -5
- data/src/core/client_channel/client_channel.cc +1324 -0
- data/src/core/client_channel/client_channel.h +243 -0
- data/src/core/client_channel/client_channel_filter.cc +266 -709
- data/src/core/client_channel/client_channel_filter.h +11 -64
- data/src/core/client_channel/client_channel_internal.h +16 -5
- data/src/core/client_channel/client_channel_plugin.cc +1 -14
- data/src/core/client_channel/client_channel_service_config.h +3 -3
- data/src/core/client_channel/config_selector.cc +1 -1
- data/src/core/client_channel/config_selector.h +1 -1
- data/src/core/client_channel/dynamic_filters.cc +3 -3
- data/src/core/client_channel/dynamic_filters.h +1 -3
- data/src/core/client_channel/load_balanced_call_destination.cc +336 -0
- data/src/core/client_channel/load_balanced_call_destination.h +49 -0
- data/src/core/client_channel/retry_filter.cc +2 -9
- data/src/core/client_channel/retry_filter.h +2 -7
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +65 -72
- data/src/core/client_channel/retry_filter_legacy_call_data.h +0 -2
- data/src/core/client_channel/retry_service_config.cc +4 -5
- data/src/core/client_channel/retry_service_config.h +3 -3
- data/src/core/client_channel/subchannel.cc +220 -112
- data/src/core/client_channel/subchannel.h +31 -18
- data/src/core/client_channel/subchannel_pool_interface.cc +0 -2
- data/src/core/client_channel/subchannel_pool_interface.h +2 -4
- data/src/core/client_channel/subchannel_stream_client.cc +36 -49
- data/src/core/client_channel/subchannel_stream_client.h +2 -4
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +7 -10
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +1 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +7 -0
- data/src/core/ext/filters/census/grpc_context.cc +2 -4
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +8 -15
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +2 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +3 -7
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +1 -0
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +3 -3
- data/src/core/ext/filters/http/client/http_client_filter.cc +1 -0
- data/src/core/ext/filters/http/client/http_client_filter.h +1 -0
- data/src/core/ext/filters/http/client_authority_filter.cc +1 -0
- data/src/core/ext/filters/http/client_authority_filter.h +1 -0
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +10 -15
- data/src/core/ext/filters/http/message_compress/compression_filter.h +2 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +2 -2
- data/src/core/ext/filters/http/server/http_server_filter.h +1 -0
- data/src/core/ext/filters/message_size/message_size_filter.cc +6 -9
- data/src/core/ext/filters/message_size/message_size_filter.h +6 -6
- data/src/core/ext/filters/rbac/rbac_filter.cc +2 -5
- data/src/core/ext/filters/rbac/rbac_filter.h +1 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +2 -2
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +1 -1
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +2 -6
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +1 -0
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +3 -3
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +8 -25
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +223 -148
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +33 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +131 -107
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +8 -8
- data/src/core/ext/transport/chttp2/transport/context_list_entry.h +1 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -2
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +1 -2
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +9 -5
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +5 -4
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +9 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +32 -43
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +3 -8
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +1 -1
- data/src/core/ext/transport/chttp2/transport/internal.h +29 -19
- data/src/core/ext/transport/chttp2/transport/parsing.cc +15 -25
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +0 -2
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +0 -2
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +29 -13
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +5 -4
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +3 -5
- data/src/core/ext/transport/chttp2/transport/writing.cc +24 -25
- data/src/core/ext/transport/inproc/inproc_transport.cc +56 -32
- data/src/core/ext/transport/inproc/inproc_transport.h +1 -3
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +13 -15
- data/src/core/ext/transport/inproc/legacy_inproc_transport.h +0 -2
- data/src/core/handshaker/handshaker.cc +6 -14
- data/src/core/handshaker/http_connect/http_connect_handshaker.cc +9 -17
- data/src/core/handshaker/http_connect/http_proxy_mapper.cc +3 -2
- data/src/core/handshaker/security/secure_endpoint.cc +38 -32
- data/src/core/handshaker/security/secure_endpoint.h +0 -2
- data/src/core/handshaker/security/security_handshaker.cc +25 -37
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +2 -1
- data/src/core/lib/address_utils/parse_address.cc +27 -39
- data/src/core/lib/address_utils/sockaddr_utils.cc +5 -6
- data/src/core/lib/avl/avl.h +1 -1
- data/src/core/lib/channel/channel_args.cc +13 -17
- data/src/core/lib/channel/channel_args.h +19 -8
- data/src/core/lib/channel/channel_stack.cc +5 -63
- data/src/core/lib/channel/channel_stack.h +13 -37
- data/src/core/lib/channel/channel_stack_builder.h +0 -5
- data/src/core/lib/channel/channel_stack_builder_impl.cc +0 -142
- data/src/core/lib/channel/channel_stack_builder_impl.h +0 -2
- data/src/core/lib/channel/connected_channel.cc +37 -676
- data/src/core/lib/channel/promise_based_filter.cc +41 -47
- data/src/core/lib/channel/promise_based_filter.h +124 -477
- data/src/core/lib/channel/status_util.cc +1 -1
- data/src/core/lib/compression/compression.cc +1 -1
- data/src/core/lib/compression/message_compress.cc +6 -6
- data/src/core/lib/config/config_vars.cc +3 -8
- data/src/core/lib/config/config_vars.h +1 -5
- data/src/core/lib/debug/event_log.h +1 -1
- data/src/core/lib/debug/trace.cc +43 -59
- data/src/core/lib/debug/trace.h +2 -97
- data/src/core/lib/debug/trace_flags.cc +255 -0
- data/src/core/lib/debug/trace_flags.h +133 -0
- data/src/core/lib/debug/trace_impl.h +115 -0
- data/src/core/lib/event_engine/ares_resolver.cc +5 -7
- data/src/core/lib/event_engine/ares_resolver.h +1 -3
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +1 -1
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +17 -22
- data/src/core/lib/event_engine/event_engine.cc +29 -4
- data/src/core/lib/event_engine/extensions/supports_fd.h +7 -0
- data/src/core/lib/event_engine/extensions/tcp_trace.h +43 -0
- data/src/core/lib/event_engine/forkable.cc +4 -5
- data/src/core/lib/event_engine/forkable.h +0 -11
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +10 -11
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +4 -3
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +19 -33
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +3 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +24 -7
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +2 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +14 -16
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +18 -22
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +13 -17
- data/src/core/lib/event_engine/posix_engine/timer.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +4 -6
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +2 -1
- data/src/core/lib/event_engine/shim.cc +1 -1
- data/src/core/lib/event_engine/tcp_socket_utils.cc +6 -8
- data/src/core/lib/event_engine/thread_local.h +1 -1
- data/src/core/lib/event_engine/thread_pool/thread_count.h +1 -1
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +19 -21
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -6
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +14 -13
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +4 -3
- data/src/core/lib/event_engine/trace.h +6 -17
- data/src/core/lib/event_engine/windows/iocp.h +1 -1
- data/src/core/lib/event_engine/windows/win_socket.cc +23 -17
- data/src/core/lib/event_engine/windows/win_socket.h +4 -5
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +6 -9
- data/src/core/lib/event_engine/windows/windows_engine.cc +201 -87
- data/src/core/lib/event_engine/windows/windows_engine.h +136 -25
- data/src/core/lib/event_engine/windows/windows_listener.cc +12 -23
- data/src/core/lib/experiments/experiments.cc +35 -151
- data/src/core/lib/experiments/experiments.h +12 -45
- data/src/core/lib/gprpp/bitset.h +1 -1
- data/src/core/lib/gprpp/crash.cc +2 -3
- data/src/core/lib/gprpp/dual_ref_counted.h +45 -33
- data/src/core/lib/gprpp/dump_args.cc +54 -0
- data/src/core/lib/gprpp/dump_args.h +69 -0
- data/src/core/lib/gprpp/glob.cc +70 -0
- data/src/core/lib/gprpp/glob.h +29 -0
- data/src/core/lib/gprpp/per_cpu.cc +1 -1
- data/src/core/lib/gprpp/posix/stat.cc +3 -4
- data/src/core/lib/gprpp/posix/thd.cc +8 -9
- data/src/core/lib/gprpp/ref_counted.h +30 -22
- data/src/core/lib/gprpp/single_set_ptr.h +5 -3
- data/src/core/lib/gprpp/status_helper.cc +11 -30
- data/src/core/lib/gprpp/status_helper.h +3 -31
- data/src/core/lib/gprpp/time.cc +3 -4
- data/src/core/lib/gprpp/time.h +3 -2
- data/src/core/lib/gprpp/unique_type_name.h +1 -1
- data/src/core/lib/gprpp/validation_errors.cc +10 -1
- data/src/core/lib/gprpp/validation_errors.h +11 -0
- data/src/core/lib/gprpp/windows/stat.cc +3 -4
- data/src/core/lib/gprpp/windows/thd.cc +3 -2
- data/src/core/lib/gprpp/work_serializer.cc +48 -57
- data/src/core/lib/iomgr/buffer_list.cc +4 -2
- data/src/core/lib/iomgr/call_combiner.cc +18 -27
- data/src/core/lib/iomgr/call_combiner.h +1 -3
- data/src/core/lib/iomgr/cfstream_handle.cc +4 -6
- data/src/core/lib/iomgr/closure.h +2 -4
- data/src/core/lib/iomgr/combiner.cc +6 -8
- data/src/core/lib/iomgr/combiner.h +0 -2
- data/src/core/lib/iomgr/endpoint.cc +0 -6
- data/src/core/lib/iomgr/endpoint.h +0 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +19 -41
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +1 -1
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -6
- data/src/core/lib/iomgr/error.cc +13 -21
- data/src/core/lib/iomgr/error.h +1 -1
- data/src/core/lib/iomgr/ev_apple.cc +3 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +43 -42
- data/src/core/lib/iomgr/ev_poll_posix.cc +38 -29
- data/src/core/lib/iomgr/ev_posix.cc +8 -9
- data/src/core/lib/iomgr/ev_posix.h +10 -7
- data/src/core/lib/iomgr/event_engine_shims/closure.cc +2 -2
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +14 -28
- data/src/core/lib/iomgr/exec_ctx.cc +2 -2
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +6 -15
- data/src/core/lib/iomgr/executor.h +1 -1
- data/src/core/lib/iomgr/fork_posix.cc +8 -10
- data/src/core/lib/iomgr/fork_windows.cc +3 -1
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -3
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +3 -5
- data/src/core/lib/iomgr/internal_errqueue.cc +4 -2
- data/src/core/lib/iomgr/iocp_windows.cc +4 -3
- data/src/core/lib/iomgr/iomgr.cc +13 -17
- data/src/core/lib/iomgr/lockfree_event.cc +3 -5
- data/src/core/lib/iomgr/pollset.h +0 -2
- data/src/core/lib/iomgr/pollset_windows.cc +0 -2
- data/src/core/lib/iomgr/resolve_address_posix.cc +7 -14
- data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_mutator.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +11 -17
- data/src/core/lib/iomgr/socket_windows.cc +4 -6
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +3 -5
- data/src/core/lib/iomgr/tcp_client_posix.cc +9 -15
- data/src/core/lib/iomgr/tcp_client_windows.cc +2 -4
- data/src/core/lib/iomgr/tcp_posix.cc +57 -84
- data/src/core/lib/iomgr/tcp_posix.h +0 -2
- data/src/core/lib/iomgr/tcp_server_posix.cc +3 -3
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +4 -6
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +7 -7
- data/src/core/lib/iomgr/tcp_server_windows.cc +10 -16
- data/src/core/lib/iomgr/tcp_windows.cc +25 -41
- data/src/core/lib/iomgr/timer_generic.cc +17 -20
- data/src/core/lib/iomgr/timer_heap.cc +1 -1
- data/src/core/lib/iomgr/timer_manager.cc +17 -30
- data/src/core/lib/iomgr/unix_sockets_posix.cc +1 -1
- data/src/core/lib/iomgr/vsock.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +3 -3
- data/src/core/lib/promise/activity.h +27 -4
- data/src/core/lib/promise/cancel_callback.h +24 -0
- data/src/core/lib/promise/context.h +11 -0
- data/src/core/lib/promise/detail/basic_seq.h +1 -2
- data/src/core/lib/promise/detail/join_state.h +354 -398
- data/src/core/lib/promise/detail/promise_like.h +6 -5
- data/src/core/lib/promise/detail/seq_state.h +1178 -1178
- data/src/core/lib/promise/for_each.h +6 -6
- data/src/core/lib/promise/interceptor_list.h +6 -7
- data/src/core/lib/promise/latch.h +9 -9
- data/src/core/lib/promise/map.h +17 -0
- data/src/core/lib/promise/observable.h +182 -0
- data/src/core/lib/promise/party.cc +7 -8
- data/src/core/lib/promise/party.h +10 -8
- data/src/core/lib/promise/pipe.h +16 -35
- data/src/core/lib/promise/promise.h +1 -0
- data/src/core/lib/promise/status_flag.h +2 -0
- data/src/core/lib/resource_quota/arena.cc +56 -79
- data/src/core/lib/resource_quota/arena.h +118 -209
- data/src/core/lib/resource_quota/memory_quota.cc +12 -13
- data/src/core/lib/resource_quota/memory_quota.h +2 -3
- data/src/core/lib/resource_quota/periodic_update.cc +1 -1
- data/src/core/lib/resource_quota/resource_quota.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
- data/src/core/lib/security/authorization/evaluate_args.cc +6 -8
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +5 -6
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -0
- data/src/core/lib/security/authorization/matchers.cc +3 -3
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +2 -2
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +2 -3
- data/src/core/lib/security/context/security_context.cc +12 -13
- data/src/core/lib/security/context/security_context.h +31 -8
- data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +3 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -3
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +5 -5
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +3 -3
- data/src/core/lib/security/credentials/call_creds_util.cc +2 -1
- data/src/core/lib/security/credentials/channel_creds_registry.h +2 -2
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +5 -3
- data/src/core/lib/security/credentials/composite/composite_credentials.h +1 -1
- data/src/core/lib/security/credentials/credentials.cc +6 -6
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +4 -4
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +2 -2
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +9 -11
- data/src/core/lib/security/credentials/external/external_account_credentials.h +3 -3
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +2 -2
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -4
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +1 -1
- data/src/core/lib/security/credentials/fake/fake_credentials.h +1 -1
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -3
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +11 -11
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -1
- data/src/core/lib/security/credentials/iam/iam_credentials.h +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.cc +14 -15
- data/src/core/lib/security/credentials/jwt/json_token.h +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +6 -5
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +50 -54
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
- data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +12 -11
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +4 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -7
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +1 -3
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +15 -21
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +21 -30
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +3 -5
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +14 -16
- data/src/core/lib/security/credentials/tls/tls_utils.cc +4 -4
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +1 -1
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -16
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +15 -12
- data/src/core/lib/security/security_connector/load_system_roots_supported.cc +6 -6
- data/src/core/lib/security/security_connector/load_system_roots_windows.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +8 -12
- data/src/core/lib/security/security_connector/security_connector.cc +1 -4
- data/src/core/lib/security/security_connector/security_connector.h +1 -3
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +17 -19
- data/src/core/lib/security/security_connector/ssl_utils.cc +19 -21
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +29 -40
- data/src/core/lib/security/transport/auth_filters.h +1 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +7 -13
- data/src/core/lib/security/transport/server_auth_filter.cc +3 -8
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/slice/slice.h +1 -1
- data/src/core/lib/slice/slice_refcount.h +2 -4
- data/src/core/lib/slice/slice_string_helpers.cc +1 -1
- data/src/core/lib/surface/api_trace.h +1 -3
- data/src/core/lib/surface/call.cc +64 -3738
- data/src/core/lib/surface/call.h +41 -143
- data/src/core/lib/surface/call_log_batch.cc +1 -1
- data/src/core/lib/surface/call_utils.cc +276 -0
- data/src/core/lib/surface/call_utils.h +449 -0
- data/src/core/lib/surface/channel.cc +8 -3
- data/src/core/lib/surface/channel.h +10 -7
- data/src/core/lib/surface/channel_create.cc +14 -6
- data/src/core/lib/surface/channel_create.h +3 -2
- data/src/core/lib/surface/channel_init.cc +21 -77
- data/src/core/lib/surface/channel_init.h +19 -97
- data/src/core/lib/surface/client_call.cc +419 -0
- data/src/core/lib/surface/client_call.h +180 -0
- data/src/core/lib/surface/completion_queue.cc +28 -33
- data/src/core/lib/surface/completion_queue.h +0 -8
- data/src/core/lib/surface/filter_stack_call.cc +1157 -0
- data/src/core/lib/surface/filter_stack_call.h +369 -0
- data/src/core/lib/surface/init.cc +7 -6
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/legacy_channel.cc +40 -27
- data/src/core/lib/surface/legacy_channel.h +9 -18
- data/src/core/lib/surface/server_call.cc +222 -0
- data/src/core/lib/surface/server_call.h +167 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +3 -5
- data/src/core/lib/transport/bdp_estimator.h +2 -4
- data/src/core/lib/transport/call_arena_allocator.h +9 -7
- data/src/core/lib/transport/call_destination.h +76 -0
- data/src/core/lib/transport/call_filters.cc +28 -10
- data/src/core/lib/transport/call_filters.h +128 -22
- data/src/core/lib/transport/call_spine.cc +5 -6
- data/src/core/lib/transport/call_spine.h +159 -334
- data/src/core/lib/transport/connectivity_state.cc +8 -10
- data/src/core/lib/transport/connectivity_state.h +0 -2
- data/src/core/lib/transport/interception_chain.cc +155 -0
- data/src/core/lib/transport/interception_chain.h +236 -0
- data/src/core/lib/transport/metadata_batch.h +10 -1
- data/src/core/lib/transport/metadata_info.h +1 -1
- data/src/core/lib/transport/transport.cc +3 -6
- data/src/core/lib/transport/transport.h +43 -40
- data/src/core/load_balancing/child_policy_handler.cc +8 -8
- data/src/core/load_balancing/endpoint_list.cc +5 -5
- data/src/core/load_balancing/endpoint_list.h +1 -1
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +1 -0
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +1 -0
- data/src/core/load_balancing/grpclb/grpclb.cc +25 -29
- data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc +1 -1
- data/src/core/load_balancing/grpclb/load_balancer_api.cc +3 -4
- data/src/core/load_balancing/health_check_client.cc +10 -13
- data/src/core/load_balancing/lb_policy.cc +5 -8
- data/src/core/load_balancing/lb_policy.h +19 -3
- data/src/core/load_balancing/lb_policy_factory.h +1 -1
- data/src/core/load_balancing/lb_policy_registry.cc +2 -3
- data/src/core/load_balancing/lb_policy_registry.h +1 -1
- data/src/core/load_balancing/oob_backend_metric.cc +2 -4
- data/src/core/load_balancing/outlier_detection/outlier_detection.cc +33 -35
- data/src/core/load_balancing/outlier_detection/outlier_detection.h +3 -3
- data/src/core/load_balancing/pick_first/pick_first.cc +65 -65
- data/src/core/load_balancing/priority/priority.cc +26 -28
- data/src/core/load_balancing/ring_hash/ring_hash.cc +11 -13
- data/src/core/load_balancing/ring_hash/ring_hash.h +3 -3
- data/src/core/load_balancing/rls/rls.cc +82 -82
- data/src/core/load_balancing/round_robin/round_robin.cc +17 -20
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +54 -43
- data/src/core/load_balancing/weighted_target/weighted_target.cc +21 -24
- data/src/core/load_balancing/xds/cds.cc +14 -16
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +16 -18
- data/src/core/load_balancing/xds/xds_cluster_manager.cc +15 -17
- data/src/core/load_balancing/xds/xds_override_host.cc +40 -41
- data/src/core/load_balancing/xds/xds_override_host.h +3 -3
- data/src/core/load_balancing/xds/xds_wrr_locality.cc +10 -12
- data/src/core/plugin_registry/grpc_plugin_registry.cc +5 -1
- data/src/core/resolver/binder/binder_resolver.cc +3 -2
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +3 -2
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +1 -1
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +7 -14
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -5
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/resolver/dns/dns_resolver_plugin.cc +6 -5
- data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +4 -9
- data/src/core/resolver/dns/event_engine/service_config_helper.cc +5 -5
- data/src/core/resolver/dns/native/dns_resolver.cc +8 -9
- data/src/core/resolver/endpoint_addresses.cc +1 -1
- data/src/core/resolver/fake/fake_resolver.cc +1 -1
- data/src/core/resolver/fake/fake_resolver.h +1 -1
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +13 -14
- data/src/core/resolver/polling_resolver.cc +30 -35
- data/src/core/resolver/resolver.cc +2 -6
- data/src/core/resolver/resolver.h +0 -2
- data/src/core/resolver/resolver_registry.cc +6 -8
- data/src/core/resolver/sockaddr/sockaddr_resolver.cc +3 -3
- data/src/core/resolver/xds/xds_dependency_manager.cc +22 -23
- data/src/core/resolver/xds/xds_resolver.cc +13 -15
- data/src/core/server/server.cc +269 -389
- data/src/core/server/server.h +37 -19
- data/src/core/server/server_call_tracer_filter.cc +7 -14
- data/src/core/server/server_config_selector.h +1 -1
- data/src/core/server/server_config_selector_filter.cc +3 -3
- data/src/core/server/server_interface.h +2 -0
- data/src/core/server/xds_channel_stack_modifier.cc +1 -1
- data/src/core/server/xds_channel_stack_modifier.h +1 -1
- data/src/core/server/xds_server_config_fetcher.cc +1 -4
- data/src/core/service_config/service_config.h +1 -1
- data/src/core/service_config/service_config_call_data.h +13 -11
- data/src/core/service_config/service_config_channel_arg_filter.cc +6 -4
- data/src/core/service_config/service_config_impl.cc +5 -5
- data/src/core/service_config/service_config_impl.h +1 -1
- data/src/core/service_config/service_config_parser.cc +3 -6
- data/src/core/service_config/service_config_parser.h +1 -1
- data/src/core/{lib/channel → telemetry}/call_tracer.cc +20 -30
- data/src/core/{lib/channel → telemetry}/call_tracer.h +32 -9
- data/src/core/{lib/debug → telemetry}/histogram_view.cc +1 -1
- data/src/core/{lib/debug → telemetry}/histogram_view.h +3 -3
- data/src/core/telemetry/metrics.cc +178 -0
- data/src/core/telemetry/metrics.h +562 -0
- data/src/core/{lib/debug → telemetry}/stats.cc +1 -1
- data/src/core/{lib/debug → telemetry}/stats.h +5 -5
- data/src/core/{lib/debug → telemetry}/stats_data.cc +1 -1
- data/src/core/{lib/debug → telemetry}/stats_data.h +4 -4
- data/src/core/{lib/channel → telemetry}/tcp_tracer.h +3 -3
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +12 -13
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +25 -27
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +32 -33
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +5 -4
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +5 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -3
- data/src/core/tsi/fake_transport_security.cc +14 -17
- data/src/core/tsi/local_transport_security.cc +6 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +4 -4
- data/src/core/tsi/ssl_transport_security.cc +76 -81
- data/src/core/tsi/ssl_transport_security_utils.cc +74 -18
- data/src/core/tsi/ssl_transport_security_utils.h +11 -0
- data/src/core/tsi/transport_security.cc +0 -4
- data/src/core/tsi/transport_security.h +0 -2
- data/src/core/tsi/transport_security_interface.h +0 -4
- data/src/core/{lib/gpr → util}/alloc.h +3 -3
- data/src/core/{lib/gpr → util}/android/log.cc +0 -19
- data/src/core/{lib/gpr → util}/atm.cc +1 -1
- data/src/core/{ext/gcp/metadata_query.cc → util/gcp_metadata_query.cc} +25 -26
- data/src/core/{ext/gcp/metadata_query.h → util/gcp_metadata_query.h} +11 -11
- data/src/core/{lib/http → util/http_client}/format_request.cc +4 -3
- data/src/core/{lib/http → util/http_client}/format_request.h +6 -5
- data/src/core/{lib/http → util/http_client}/httpcli.cc +9 -10
- data/src/core/{lib/http → util/http_client}/httpcli.h +6 -5
- data/src/core/{lib/http → util/http_client}/httpcli_security_connector.cc +9 -9
- data/src/core/{lib/http → util/http_client}/httpcli_ssl_credentials.h +5 -4
- data/src/core/{lib/http → util/http_client}/parser.cc +4 -5
- data/src/core/{lib/http → util/http_client}/parser.h +5 -6
- data/src/core/{lib → util}/json/json.h +5 -4
- data/src/core/{lib → util}/json/json_args.h +5 -5
- data/src/core/{lib → util}/json/json_channel_args.h +6 -6
- data/src/core/{lib → util}/json/json_object_loader.cc +3 -2
- data/src/core/{lib → util}/json/json_object_loader.h +7 -7
- data/src/core/{lib → util}/json/json_reader.cc +3 -2
- data/src/core/{lib → util}/json/json_reader.h +6 -6
- data/src/core/{lib → util}/json/json_util.cc +4 -4
- data/src/core/{lib → util}/json/json_util.h +6 -6
- data/src/core/{lib → util}/json/json_writer.cc +3 -3
- data/src/core/{lib → util}/json/json_writer.h +6 -6
- data/src/core/{lib/gpr → util}/linux/log.cc +0 -45
- data/src/core/util/log.cc +165 -0
- data/src/core/{lib/gpr → util}/msys/tmpfile.cc +2 -2
- data/src/core/{lib/gpr → util}/posix/cpu.cc +1 -1
- data/src/core/{lib/gpr → util}/posix/log.cc +0 -42
- data/src/core/{lib/gpr → util}/posix/time.cc +1 -1
- data/src/core/{lib/gpr → util}/posix/tmpfile.cc +2 -2
- data/src/core/{lib/gpr → util}/spinlock.h +3 -3
- data/src/core/{lib/gpr → util}/string.cc +2 -2
- data/src/core/{lib/gpr → util}/string.h +3 -3
- data/src/core/{lib/gpr → util}/time_precise.cc +1 -1
- data/src/core/{lib/gpr → util}/time_precise.h +3 -3
- data/src/core/{lib/gpr → util}/tmpfile.h +3 -3
- data/src/core/{lib/gpr → util}/useful.h +3 -3
- data/src/core/{lib/gpr → util}/windows/log.cc +1 -44
- data/src/core/{lib/gpr → util}/windows/string.cc +1 -1
- data/src/core/{lib/gpr → util}/windows/string_util.cc +1 -1
- data/src/core/{lib/gpr → util}/windows/time.cc +1 -1
- data/src/core/{lib/gpr → util}/windows/tmpfile.cc +1 -1
- data/src/core/xds/grpc/certificate_provider_store.cc +3 -3
- data/src/core/xds/grpc/certificate_provider_store.h +4 -4
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +3 -3
- data/src/core/xds/grpc/xds_audit_logger_registry.h +1 -1
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +5 -5
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +3 -3
- data/src/core/xds/grpc/xds_certificate_provider.h +1 -1
- data/src/core/xds/grpc/xds_client_grpc.cc +27 -23
- data/src/core/xds/grpc/xds_client_grpc.h +2 -2
- data/src/core/xds/grpc/xds_cluster.cc +4 -5
- data/src/core/xds/grpc/xds_cluster.h +1 -1
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +1 -1
- data/src/core/xds/grpc/xds_common_types.cc +1 -1
- data/src/core/xds/grpc/xds_common_types.h +1 -1
- data/src/core/xds/grpc/xds_endpoint.cc +4 -5
- data/src/core/xds/grpc/xds_http_fault_filter.cc +2 -2
- data/src/core/xds/grpc/xds_http_filters.h +2 -2
- data/src/core/xds/grpc/xds_http_rbac_filter.cc +3 -3
- data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +2 -2
- data/src/core/xds/grpc/xds_lb_policy_registry.h +1 -1
- data/src/core/xds/grpc/xds_listener.cc +4 -6
- data/src/core/xds/grpc/xds_route_config.cc +7 -8
- data/src/core/xds/grpc/xds_transport_grpc.cc +2 -2
- data/src/core/xds/grpc/xds_transport_grpc.h +1 -1
- data/src/core/xds/xds_client/xds_api.cc +5 -9
- data/src/core/xds/xds_client/xds_bootstrap.cc +1 -1
- data/src/core/xds/xds_client/xds_bootstrap.h +1 -1
- data/src/core/xds/xds_client/xds_client.cc +39 -45
- data/src/core/xds/xds_client/xds_client.h +0 -3
- data/src/core/xds/xds_client/xds_client_stats.cc +6 -6
- data/src/core/xds/xds_client/xds_client_stats.h +2 -2
- data/src/ruby/bin/math_pb.rb +1 -22
- data/src/ruby/ext/grpc/rb_call.c +8 -1
- data/src/ruby/ext/grpc/rb_completion_queue.c +15 -32
- data/src/ruby/ext/grpc/rb_completion_queue.h +7 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -2
- data/src/ruby/ext/grpc/rb_server.c +39 -22
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -22
- data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +5 -5
- data/src/ruby/pb/grpc/testing/metrics_pb.rb +10 -19
- data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +5 -5
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -22
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -22
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +12 -12
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +66 -41
- data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +1497 -0
- data/third_party/boringssl-with-bazel/src/crypto/dilithium/internal.h +58 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -3
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +45 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +33 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +3 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +9 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +6 -0
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c +49 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +7 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +8 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +125 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +0 -23
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +4 -10
- metadata +103 -93
- data/src/core/ext/transport/chttp2/transport/http_trace.cc +0 -19
- data/src/core/ext/transport/chttp2/transport/http_trace.h +0 -24
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -23
- data/src/core/handshaker/security/tsi_error.cc +0 -31
- data/src/core/handshaker/security/tsi_error.h +0 -30
- data/src/core/lib/channel/channel_stack_trace.cc +0 -19
- data/src/core/lib/channel/channel_stack_trace.h +0 -24
- data/src/core/lib/channel/context.h +0 -105
- data/src/core/lib/channel/metrics.cc +0 -334
- data/src/core/lib/channel/metrics.h +0 -365
- data/src/core/lib/event_engine/trace.cc +0 -25
- data/src/core/lib/gpr/log.cc +0 -166
- data/src/core/lib/iomgr/ev_windows.cc +0 -30
- data/src/core/lib/promise/trace.cc +0 -20
- data/src/core/lib/promise/trace.h +0 -24
- data/src/core/lib/resource_quota/trace.cc +0 -19
- data/src/core/lib/resource_quota/trace.h +0 -24
- data/src/core/lib/slice/slice_refcount.cc +0 -20
- data/src/core/lib/surface/api_trace.cc +0 -25
- data/src/core/lib/surface/call_trace.h +0 -24
- data/src/core/lib/surface/wait_for_cq_end_op.cc +0 -75
- data/src/core/lib/surface/wait_for_cq_end_op.h +0 -72
- data/src/core/lib/transport/batch_builder.cc +0 -172
- data/src/core/lib/transport/batch_builder.h +0 -474
- data/src/core/resolver/xds/xds_resolver_trace.cc +0 -25
- data/src/core/resolver/xds/xds_resolver_trace.h +0 -30
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -122
- /data/src/core/{lib/gpr → util}/alloc.cc +0 -0
- /data/src/core/{lib/gpr → util}/iphone/cpu.cc +0 -0
- /data/src/core/{lib/gpr → util}/linux/cpu.cc +0 -0
- /data/src/core/{lib/gpr → util}/posix/string.cc +0 -0
- /data/src/core/{lib/gpr → util}/posix/sync.cc +0 -0
- /data/src/core/{lib/gpr → util}/sync.cc +0 -0
- /data/src/core/{lib/gpr → util}/sync_abseil.cc +0 -0
- /data/src/core/{lib/gpr → util}/time.cc +0 -0
- /data/src/core/{lib/gpr → util}/windows/cpu.cc +0 -0
- /data/src/core/{lib/gpr → util}/windows/sync.cc +0 -0
@@ -43,11 +43,9 @@
|
|
43
43
|
|
44
44
|
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
45
45
|
#include "src/core/lib/channel/channel_args.h"
|
46
|
-
#include "src/core/lib/channel/metrics.h"
|
47
46
|
#include "src/core/lib/config/core_configuration.h"
|
48
47
|
#include "src/core/lib/debug/trace.h"
|
49
48
|
#include "src/core/lib/experiments/experiments.h"
|
50
|
-
#include "src/core/lib/gpr/useful.h"
|
51
49
|
#include "src/core/lib/gprpp/crash.h"
|
52
50
|
#include "src/core/lib/gprpp/debug_location.h"
|
53
51
|
#include "src/core/lib/gprpp/orphanable.h"
|
@@ -57,20 +55,20 @@
|
|
57
55
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
58
56
|
#include "src/core/lib/iomgr/iomgr_fwd.h"
|
59
57
|
#include "src/core/lib/iomgr/resolved_address.h"
|
60
|
-
#include "src/core/lib/json/json.h"
|
61
|
-
#include "src/core/lib/json/json_args.h"
|
62
|
-
#include "src/core/lib/json/json_object_loader.h"
|
63
58
|
#include "src/core/lib/transport/connectivity_state.h"
|
64
59
|
#include "src/core/load_balancing/health_check_client.h"
|
65
60
|
#include "src/core/load_balancing/lb_policy.h"
|
66
61
|
#include "src/core/load_balancing/lb_policy_factory.h"
|
67
62
|
#include "src/core/load_balancing/subchannel_interface.h"
|
68
63
|
#include "src/core/resolver/endpoint_addresses.h"
|
64
|
+
#include "src/core/telemetry/metrics.h"
|
65
|
+
#include "src/core/util/json/json.h"
|
66
|
+
#include "src/core/util/json/json_args.h"
|
67
|
+
#include "src/core/util/json/json_object_loader.h"
|
68
|
+
#include "src/core/util/useful.h"
|
69
69
|
|
70
70
|
namespace grpc_core {
|
71
71
|
|
72
|
-
TraceFlag grpc_lb_pick_first_trace(false, "pick_first");
|
73
|
-
|
74
72
|
namespace {
|
75
73
|
|
76
74
|
//
|
@@ -84,19 +82,25 @@ const auto kMetricDisconnections =
|
|
84
82
|
"grpc.lb.pick_first.disconnections",
|
85
83
|
"EXPERIMENTAL. Number of times the selected subchannel becomes "
|
86
84
|
"disconnected.",
|
87
|
-
"{disconnection}",
|
85
|
+
"{disconnection}", false)
|
86
|
+
.Labels(kMetricLabelTarget)
|
87
|
+
.Build();
|
88
88
|
|
89
89
|
const auto kMetricConnectionAttemptsSucceeded =
|
90
90
|
GlobalInstrumentsRegistry::RegisterUInt64Counter(
|
91
91
|
"grpc.lb.pick_first.connection_attempts_succeeded",
|
92
92
|
"EXPERIMENTAL. Number of successful connection attempts.", "{attempt}",
|
93
|
-
|
93
|
+
false)
|
94
|
+
.Labels(kMetricLabelTarget)
|
95
|
+
.Build();
|
94
96
|
|
95
97
|
const auto kMetricConnectionAttemptsFailed =
|
96
98
|
GlobalInstrumentsRegistry::RegisterUInt64Counter(
|
97
99
|
"grpc.lb.pick_first.connection_attempts_failed",
|
98
100
|
"EXPERIMENTAL. Number of failed connection attempts.", "{attempt}",
|
99
|
-
|
101
|
+
false)
|
102
|
+
.Labels(kMetricLabelTarget)
|
103
|
+
.Build();
|
100
104
|
|
101
105
|
class PickFirstConfig final : public LoadBalancingPolicy::Config {
|
102
106
|
public:
|
@@ -416,20 +420,20 @@ PickFirst::PickFirst(Args args)
|
|
416
420
|
.GetInt(GRPC_ARG_HAPPY_EYEBALLS_CONNECTION_ATTEMPT_DELAY_MS)
|
417
421
|
.value_or(250),
|
418
422
|
100, 2000))) {
|
419
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
423
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
420
424
|
gpr_log(GPR_INFO, "Pick First %p created.", this);
|
421
425
|
}
|
422
426
|
}
|
423
427
|
|
424
428
|
PickFirst::~PickFirst() {
|
425
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
429
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
426
430
|
gpr_log(GPR_INFO, "Destroying Pick First %p", this);
|
427
431
|
}
|
428
432
|
CHECK(subchannel_list_ == nullptr);
|
429
433
|
}
|
430
434
|
|
431
435
|
void PickFirst::ShutdownLocked() {
|
432
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
436
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
433
437
|
gpr_log(GPR_INFO, "Pick First %p Shutting down", this);
|
434
438
|
}
|
435
439
|
shutdown_ = true;
|
@@ -440,7 +444,7 @@ void PickFirst::ShutdownLocked() {
|
|
440
444
|
void PickFirst::ExitIdleLocked() {
|
441
445
|
if (shutdown_) return;
|
442
446
|
if (IsIdle()) {
|
443
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
447
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
444
448
|
gpr_log(GPR_INFO, "Pick First %p exiting idle", this);
|
445
449
|
}
|
446
450
|
AttemptToConnectUsingLatestUpdateArgsLocked();
|
@@ -458,8 +462,7 @@ void PickFirst::AttemptToConnectUsingLatestUpdateArgsLocked() {
|
|
458
462
|
addresses = latest_update_args_.addresses->get();
|
459
463
|
}
|
460
464
|
// Replace subchannel_list_.
|
461
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
462
|
-
subchannel_list_ != nullptr) {
|
465
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first) && subchannel_list_ != nullptr) {
|
463
466
|
gpr_log(GPR_INFO, "[PF %p] Shutting down previous subchannel list %p", this,
|
464
467
|
subchannel_list_.get());
|
465
468
|
}
|
@@ -512,7 +515,7 @@ class AddressFamilyIterator final {
|
|
512
515
|
};
|
513
516
|
|
514
517
|
absl::Status PickFirst::UpdateLocked(UpdateArgs args) {
|
515
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
518
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
516
519
|
if (args.addresses.ok()) {
|
517
520
|
gpr_log(GPR_INFO, "Pick First %p received update", this);
|
518
521
|
} else {
|
@@ -627,7 +630,7 @@ void PickFirst::GoIdle() {
|
|
627
630
|
void PickFirst::HealthWatcher::OnConnectivityStateChange(
|
628
631
|
grpc_connectivity_state new_state, absl::Status status) {
|
629
632
|
if (policy_->health_watcher_ != this) return;
|
630
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
633
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
631
634
|
gpr_log(GPR_INFO, "[PF %p] health watch state update: %s (%s)",
|
632
635
|
policy_.get(), ConnectivityStateName(new_state),
|
633
636
|
status.ToString().c_str());
|
@@ -669,7 +672,7 @@ PickFirst::SubchannelList::SubchannelData::SubchannelState::SubchannelState(
|
|
669
672
|
: subchannel_data_(subchannel_data),
|
670
673
|
pick_first_(subchannel_data_->subchannel_list_->policy_),
|
671
674
|
subchannel_(std::move(subchannel)) {
|
672
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
675
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
673
676
|
gpr_log(GPR_INFO,
|
674
677
|
"[PF %p] subchannel state %p (subchannel %p): starting watch",
|
675
678
|
pick_first_.get(), this, subchannel_.get());
|
@@ -680,7 +683,7 @@ PickFirst::SubchannelList::SubchannelData::SubchannelState::SubchannelState(
|
|
680
683
|
}
|
681
684
|
|
682
685
|
void PickFirst::SubchannelList::SubchannelData::SubchannelState::Orphan() {
|
683
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
686
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
684
687
|
gpr_log(GPR_INFO,
|
685
688
|
"[PF %p] subchannel state %p (subchannel %p): "
|
686
689
|
"cancelling watch and unreffing subchannel",
|
@@ -695,7 +698,7 @@ void PickFirst::SubchannelList::SubchannelData::SubchannelState::Orphan() {
|
|
695
698
|
}
|
696
699
|
|
697
700
|
void PickFirst::SubchannelList::SubchannelData::SubchannelState::Select() {
|
698
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
701
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
699
702
|
gpr_log(GPR_INFO, "Pick First %p selected subchannel %p", pick_first_.get(),
|
700
703
|
subchannel_.get());
|
701
704
|
}
|
@@ -707,7 +710,7 @@ void PickFirst::SubchannelList::SubchannelData::SubchannelState::Select() {
|
|
707
710
|
// for the health status notification.
|
708
711
|
// If health checking is NOT enabled, report READY.
|
709
712
|
if (pick_first_->enable_health_watch_) {
|
710
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
713
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
711
714
|
gpr_log(GPR_INFO, "[PF %p] starting health watch", pick_first_.get());
|
712
715
|
}
|
713
716
|
auto watcher = std::make_unique<HealthWatcher>(
|
@@ -745,7 +748,7 @@ void PickFirst::SubchannelList::SubchannelData::SubchannelState::
|
|
745
748
|
OnConnectivityStateChange(grpc_connectivity_state new_state,
|
746
749
|
absl::Status status) {
|
747
750
|
if (watcher_ == nullptr) return;
|
748
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
751
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
749
752
|
gpr_log(GPR_INFO,
|
750
753
|
"[PF %p] subchannel state %p (subchannel %p): connectivity "
|
751
754
|
"changed: new_state=%s, status=%s, watcher=%p, "
|
@@ -768,7 +771,7 @@ void PickFirst::SubchannelList::SubchannelData::SubchannelState::
|
|
768
771
|
}
|
769
772
|
// We aren't trying to connect, so we must be the selected subchannel.
|
770
773
|
CHECK(pick_first_->selected_.get() == this);
|
771
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
774
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
772
775
|
gpr_log(GPR_INFO,
|
773
776
|
"Pick First %p selected subchannel connectivity changed to %s",
|
774
777
|
pick_first_.get(), ConnectivityStateName(new_state));
|
@@ -792,7 +795,7 @@ PickFirst::SubchannelList::SubchannelData::SubchannelData(
|
|
792
795
|
SubchannelList* subchannel_list, size_t index,
|
793
796
|
RefCountedPtr<SubchannelInterface> subchannel)
|
794
797
|
: subchannel_list_(subchannel_list), index_(index) {
|
795
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
798
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
796
799
|
gpr_log(GPR_INFO,
|
797
800
|
"[PF %p] subchannel list %p index %" PRIuPTR
|
798
801
|
": creating subchannel data",
|
@@ -805,7 +808,7 @@ PickFirst::SubchannelList::SubchannelData::SubchannelData(
|
|
805
808
|
void PickFirst::SubchannelList::SubchannelData::OnConnectivityStateChange(
|
806
809
|
grpc_connectivity_state new_state, absl::Status status) {
|
807
810
|
PickFirst* p = subchannel_list_->policy_.get();
|
808
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
811
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
809
812
|
gpr_log(
|
810
813
|
GPR_INFO,
|
811
814
|
"[PF %p] subchannel list %p index %" PRIuPTR " of %" PRIuPTR
|
@@ -858,7 +861,7 @@ void PickFirst::SubchannelList::SubchannelData::OnConnectivityStateChange(
|
|
858
861
|
// is not in the new list. In that case, we drop the current
|
859
862
|
// connection and report IDLE.
|
860
863
|
if (p->selected_ != nullptr) {
|
861
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
864
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
862
865
|
gpr_log(GPR_INFO,
|
863
866
|
"[PF %p] subchannel list %p: new update has no subchannels in "
|
864
867
|
"state READY; dropping existing connection and going IDLE",
|
@@ -959,7 +962,7 @@ void PickFirst::SubchannelList::SubchannelData::RequestConnectionWithTimer() {
|
|
959
962
|
// If this is not the last subchannel in the list, start the timer.
|
960
963
|
if (index_ != subchannel_list_->size() - 1) {
|
961
964
|
PickFirst* p = subchannel_list_->policy_.get();
|
962
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
965
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
963
966
|
gpr_log(GPR_INFO,
|
964
967
|
"Pick First %p subchannel list %p: starting Connection "
|
965
968
|
"Attempt Delay timer for %" PRId64 "ms for index %" PRIuPTR,
|
@@ -976,7 +979,7 @@ void PickFirst::SubchannelList::SubchannelData::RequestConnectionWithTimer() {
|
|
976
979
|
auto* sl = subchannel_list.get();
|
977
980
|
sl->policy_->work_serializer()->Run(
|
978
981
|
[subchannel_list = std::move(subchannel_list)]() {
|
979
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
982
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
980
983
|
gpr_log(GPR_INFO,
|
981
984
|
"Pick First %p subchannel list %p: Connection "
|
982
985
|
"Attempt Delay timer fired (shutting_down=%d, "
|
@@ -1004,13 +1007,12 @@ PickFirst::SubchannelList::SubchannelList(RefCountedPtr<PickFirst> policy,
|
|
1004
1007
|
EndpointAddressesIterator* addresses,
|
1005
1008
|
const ChannelArgs& args)
|
1006
1009
|
: InternallyRefCounted<SubchannelList>(
|
1007
|
-
GRPC_TRACE_FLAG_ENABLED(
|
1008
|
-
: nullptr),
|
1010
|
+
GRPC_TRACE_FLAG_ENABLED(pick_first) ? "SubchannelList" : nullptr),
|
1009
1011
|
policy_(std::move(policy)),
|
1010
1012
|
args_(args.Remove(GRPC_ARG_INTERNAL_PICK_FIRST_ENABLE_HEALTH_CHECKING)
|
1011
1013
|
.Remove(
|
1012
1014
|
GRPC_ARG_INTERNAL_PICK_FIRST_OMIT_STATUS_MESSAGE_PREFIX)) {
|
1013
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1015
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1014
1016
|
gpr_log(GPR_INFO, "[PF %p] Creating subchannel list %p - channel args: %s",
|
1015
1017
|
policy_.get(), this, args_.ToString().c_str());
|
1016
1018
|
}
|
@@ -1023,14 +1025,14 @@ PickFirst::SubchannelList::SubchannelList(RefCountedPtr<PickFirst> policy,
|
|
1023
1025
|
address.address(), address.args(), args_);
|
1024
1026
|
if (subchannel == nullptr) {
|
1025
1027
|
// Subchannel could not be created.
|
1026
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1028
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1027
1029
|
gpr_log(GPR_INFO,
|
1028
1030
|
"[PF %p] could not create subchannel for address %s, ignoring",
|
1029
1031
|
policy_.get(), address.ToString().c_str());
|
1030
1032
|
}
|
1031
1033
|
return;
|
1032
1034
|
}
|
1033
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1035
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1034
1036
|
gpr_log(GPR_INFO,
|
1035
1037
|
"[PF %p] subchannel list %p index %" PRIuPTR
|
1036
1038
|
": Created subchannel %p for address %s",
|
@@ -1043,14 +1045,14 @@ PickFirst::SubchannelList::SubchannelList(RefCountedPtr<PickFirst> policy,
|
|
1043
1045
|
}
|
1044
1046
|
|
1045
1047
|
PickFirst::SubchannelList::~SubchannelList() {
|
1046
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1048
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1047
1049
|
gpr_log(GPR_INFO, "[PF %p] Destroying subchannel_list %p", policy_.get(),
|
1048
1050
|
this);
|
1049
1051
|
}
|
1050
1052
|
}
|
1051
1053
|
|
1052
1054
|
void PickFirst::SubchannelList::Orphan() {
|
1053
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1055
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1054
1056
|
gpr_log(GPR_INFO, "[PF %p] Shutting down subchannel_list %p", policy_.get(),
|
1055
1057
|
this);
|
1056
1058
|
}
|
@@ -1095,7 +1097,7 @@ void PickFirst::SubchannelList::MaybeFinishHappyEyeballsPass() {
|
|
1095
1097
|
// We didn't find another subchannel not in state TRANSIENT_FAILURE,
|
1096
1098
|
// so report TRANSIENT_FAILURE and switch to a mode in which we try to
|
1097
1099
|
// connect to all addresses in parallel.
|
1098
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1100
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1099
1101
|
gpr_log(GPR_INFO,
|
1100
1102
|
"Pick First %p subchannel list %p failed to connect to "
|
1101
1103
|
"all subchannels",
|
@@ -1390,13 +1392,13 @@ OldPickFirst::OldPickFirst(Args args)
|
|
1390
1392
|
.GetInt(GRPC_ARG_HAPPY_EYEBALLS_CONNECTION_ATTEMPT_DELAY_MS)
|
1391
1393
|
.value_or(250),
|
1392
1394
|
100, 2000))) {
|
1393
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1395
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1394
1396
|
gpr_log(GPR_INFO, "Pick First %p created.", this);
|
1395
1397
|
}
|
1396
1398
|
}
|
1397
1399
|
|
1398
1400
|
OldPickFirst::~OldPickFirst() {
|
1399
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1401
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1400
1402
|
gpr_log(GPR_INFO, "Destroying Pick First %p", this);
|
1401
1403
|
}
|
1402
1404
|
CHECK(subchannel_list_ == nullptr);
|
@@ -1404,7 +1406,7 @@ OldPickFirst::~OldPickFirst() {
|
|
1404
1406
|
}
|
1405
1407
|
|
1406
1408
|
void OldPickFirst::ShutdownLocked() {
|
1407
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1409
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1408
1410
|
gpr_log(GPR_INFO, "Pick First %p Shutting down", this);
|
1409
1411
|
}
|
1410
1412
|
shutdown_ = true;
|
@@ -1416,7 +1418,7 @@ void OldPickFirst::ShutdownLocked() {
|
|
1416
1418
|
void OldPickFirst::ExitIdleLocked() {
|
1417
1419
|
if (shutdown_) return;
|
1418
1420
|
if (IsIdle()) {
|
1419
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1421
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1420
1422
|
gpr_log(GPR_INFO, "Pick First %p exiting idle", this);
|
1421
1423
|
}
|
1422
1424
|
AttemptToConnectUsingLatestUpdateArgsLocked();
|
@@ -1437,7 +1439,7 @@ void OldPickFirst::AttemptToConnectUsingLatestUpdateArgsLocked() {
|
|
1437
1439
|
addresses = latest_update_args_.addresses->get();
|
1438
1440
|
}
|
1439
1441
|
// Replace latest_pending_subchannel_list_.
|
1440
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1442
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first) &&
|
1441
1443
|
latest_pending_subchannel_list_ != nullptr) {
|
1442
1444
|
gpr_log(GPR_INFO,
|
1443
1445
|
"[PF %p] Shutting down previous pending subchannel list %p", this,
|
@@ -1461,8 +1463,7 @@ void OldPickFirst::AttemptToConnectUsingLatestUpdateArgsLocked() {
|
|
1461
1463
|
// the current list, replace the current subchannel list immediately.
|
1462
1464
|
if (latest_pending_subchannel_list_->size() == 0 || selected_ == nullptr) {
|
1463
1465
|
UnsetSelectedSubchannel();
|
1464
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1465
|
-
subchannel_list_ != nullptr) {
|
1466
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first) && subchannel_list_ != nullptr) {
|
1466
1467
|
gpr_log(GPR_INFO, "[PF %p] Shutting down previous subchannel list %p",
|
1467
1468
|
this, subchannel_list_.get());
|
1468
1469
|
}
|
@@ -1471,7 +1472,7 @@ void OldPickFirst::AttemptToConnectUsingLatestUpdateArgsLocked() {
|
|
1471
1472
|
}
|
1472
1473
|
|
1473
1474
|
absl::Status OldPickFirst::UpdateLocked(UpdateArgs args) {
|
1474
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1475
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1475
1476
|
if (args.addresses.ok()) {
|
1476
1477
|
gpr_log(GPR_INFO, "Pick First %p received update", this);
|
1477
1478
|
} else {
|
@@ -1572,7 +1573,7 @@ void OldPickFirst::UnsetSelectedSubchannel() {
|
|
1572
1573
|
void OldPickFirst::HealthWatcher::OnConnectivityStateChange(
|
1573
1574
|
grpc_connectivity_state new_state, absl::Status status) {
|
1574
1575
|
if (policy_->health_watcher_ != this) return;
|
1575
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1576
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1576
1577
|
gpr_log(GPR_INFO, "[PF %p] health watch state update: %s (%s)",
|
1577
1578
|
policy_.get(), ConnectivityStateName(new_state),
|
1578
1579
|
status.ToString().c_str());
|
@@ -1614,7 +1615,7 @@ OldPickFirst::SubchannelList::SubchannelData::SubchannelData(
|
|
1614
1615
|
: subchannel_list_(subchannel_list),
|
1615
1616
|
index_(index),
|
1616
1617
|
subchannel_(std::move(subchannel)) {
|
1617
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1618
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1618
1619
|
gpr_log(GPR_INFO,
|
1619
1620
|
"[PF %p] subchannel list %p index %" PRIuPTR
|
1620
1621
|
" (subchannel %p): starting watch",
|
@@ -1629,7 +1630,7 @@ OldPickFirst::SubchannelList::SubchannelData::SubchannelData(
|
|
1629
1630
|
|
1630
1631
|
void OldPickFirst::SubchannelList::SubchannelData::ShutdownLocked() {
|
1631
1632
|
if (subchannel_ != nullptr) {
|
1632
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1633
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1633
1634
|
gpr_log(GPR_INFO,
|
1634
1635
|
"[PF %p] subchannel list %p index %" PRIuPTR " of %" PRIuPTR
|
1635
1636
|
" (subchannel %p): cancelling watch and unreffing subchannel",
|
@@ -1645,7 +1646,7 @@ void OldPickFirst::SubchannelList::SubchannelData::ShutdownLocked() {
|
|
1645
1646
|
void OldPickFirst::SubchannelList::SubchannelData::OnConnectivityStateChange(
|
1646
1647
|
grpc_connectivity_state new_state, absl::Status status) {
|
1647
1648
|
OldPickFirst* p = subchannel_list_->policy_.get();
|
1648
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1649
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1649
1650
|
gpr_log(
|
1650
1651
|
GPR_INFO,
|
1651
1652
|
"[PF %p] subchannel list %p index %" PRIuPTR " of %" PRIuPTR
|
@@ -1677,7 +1678,7 @@ void OldPickFirst::SubchannelList::SubchannelData::OnConnectivityStateChange(
|
|
1677
1678
|
// Handle updates for the currently selected subchannel.
|
1678
1679
|
if (p->selected_ == this) {
|
1679
1680
|
CHECK(subchannel_list_ == p->subchannel_list_.get());
|
1680
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1681
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1681
1682
|
gpr_log(GPR_INFO,
|
1682
1683
|
"Pick First %p selected subchannel connectivity changed to %s", p,
|
1683
1684
|
ConnectivityStateName(new_state));
|
@@ -1696,7 +1697,7 @@ void OldPickFirst::SubchannelList::SubchannelData::OnConnectivityStateChange(
|
|
1696
1697
|
p->channel_control_helper()->RequestReresolution();
|
1697
1698
|
// If there is a pending update, switch to the pending update.
|
1698
1699
|
if (p->latest_pending_subchannel_list_ != nullptr) {
|
1699
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1700
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1700
1701
|
gpr_log(GPR_INFO,
|
1701
1702
|
"Pick First %p promoting pending subchannel list %p to "
|
1702
1703
|
"replace %p",
|
@@ -1860,7 +1861,7 @@ void OldPickFirst::SubchannelList::SubchannelData::
|
|
1860
1861
|
// If this is not the last subchannel in the list, start the timer.
|
1861
1862
|
if (index_ != subchannel_list_->size() - 1) {
|
1862
1863
|
OldPickFirst* p = subchannel_list_->policy_.get();
|
1863
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1864
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1864
1865
|
gpr_log(GPR_INFO,
|
1865
1866
|
"Pick First %p subchannel list %p: starting Connection "
|
1866
1867
|
"Attempt Delay timer for %" PRId64 "ms for index %" PRIuPTR,
|
@@ -1877,7 +1878,7 @@ void OldPickFirst::SubchannelList::SubchannelData::
|
|
1877
1878
|
auto* sl = subchannel_list.get();
|
1878
1879
|
sl->policy_->work_serializer()->Run(
|
1879
1880
|
[subchannel_list = std::move(subchannel_list)]() {
|
1880
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1881
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1881
1882
|
gpr_log(GPR_INFO,
|
1882
1883
|
"Pick First %p subchannel list %p: Connection "
|
1883
1884
|
"Attempt Delay timer fired (shutting_down=%d, "
|
@@ -1918,7 +1919,7 @@ void OldPickFirst::SubchannelList::SubchannelData::
|
|
1918
1919
|
subchannel_list_ == p->latest_pending_subchannel_list_.get());
|
1919
1920
|
// Case 2. Promote p->latest_pending_subchannel_list_ to p->subchannel_list_.
|
1920
1921
|
if (subchannel_list_ == p->latest_pending_subchannel_list_.get()) {
|
1921
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1922
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1922
1923
|
gpr_log(GPR_INFO,
|
1923
1924
|
"Pick First %p promoting pending subchannel list %p to "
|
1924
1925
|
"replace %p",
|
@@ -1929,7 +1930,7 @@ void OldPickFirst::SubchannelList::SubchannelData::
|
|
1929
1930
|
p->subchannel_list_ = std::move(p->latest_pending_subchannel_list_);
|
1930
1931
|
}
|
1931
1932
|
// Cases 1 and 2.
|
1932
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1933
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1933
1934
|
gpr_log(GPR_INFO, "Pick First %p selected subchannel %p", p,
|
1934
1935
|
subchannel_.get());
|
1935
1936
|
}
|
@@ -1939,7 +1940,7 @@ void OldPickFirst::SubchannelList::SubchannelData::
|
|
1939
1940
|
// for the health status notification.
|
1940
1941
|
// If health checking is NOT enabled, report READY.
|
1941
1942
|
if (p->enable_health_watch_) {
|
1942
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1943
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1943
1944
|
gpr_log(GPR_INFO, "[PF %p] starting health watch", p);
|
1944
1945
|
}
|
1945
1946
|
auto watcher = std::make_unique<HealthWatcher>(
|
@@ -1969,13 +1970,12 @@ OldPickFirst::SubchannelList::SubchannelList(
|
|
1969
1970
|
RefCountedPtr<OldPickFirst> policy, EndpointAddressesIterator* addresses,
|
1970
1971
|
const ChannelArgs& args)
|
1971
1972
|
: InternallyRefCounted<SubchannelList>(
|
1972
|
-
GRPC_TRACE_FLAG_ENABLED(
|
1973
|
-
: nullptr),
|
1973
|
+
GRPC_TRACE_FLAG_ENABLED(pick_first) ? "SubchannelList" : nullptr),
|
1974
1974
|
policy_(std::move(policy)),
|
1975
1975
|
args_(args.Remove(GRPC_ARG_INTERNAL_PICK_FIRST_ENABLE_HEALTH_CHECKING)
|
1976
1976
|
.Remove(
|
1977
1977
|
GRPC_ARG_INTERNAL_PICK_FIRST_OMIT_STATUS_MESSAGE_PREFIX)) {
|
1978
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1978
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1979
1979
|
gpr_log(GPR_INFO, "[PF %p] Creating subchannel list %p - channel args: %s",
|
1980
1980
|
policy_.get(), this, args_.ToString().c_str());
|
1981
1981
|
}
|
@@ -1988,14 +1988,14 @@ OldPickFirst::SubchannelList::SubchannelList(
|
|
1988
1988
|
address.address(), address.args(), args_);
|
1989
1989
|
if (subchannel == nullptr) {
|
1990
1990
|
// Subchannel could not be created.
|
1991
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1991
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1992
1992
|
gpr_log(GPR_INFO,
|
1993
1993
|
"[PF %p] could not create subchannel for address %s, ignoring",
|
1994
1994
|
policy_.get(), address.ToString().c_str());
|
1995
1995
|
}
|
1996
1996
|
return;
|
1997
1997
|
}
|
1998
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1998
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
1999
1999
|
gpr_log(GPR_INFO,
|
2000
2000
|
"[PF %p] subchannel list %p index %" PRIuPTR
|
2001
2001
|
": Created subchannel %p for address %s",
|
@@ -2007,14 +2007,14 @@ OldPickFirst::SubchannelList::SubchannelList(
|
|
2007
2007
|
}
|
2008
2008
|
|
2009
2009
|
OldPickFirst::SubchannelList::~SubchannelList() {
|
2010
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2010
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
2011
2011
|
gpr_log(GPR_INFO, "[PF %p] Destroying subchannel_list %p", policy_.get(),
|
2012
2012
|
this);
|
2013
2013
|
}
|
2014
2014
|
}
|
2015
2015
|
|
2016
2016
|
void OldPickFirst::SubchannelList::Orphan() {
|
2017
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2017
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
2018
2018
|
gpr_log(GPR_INFO, "[PF %p] Shutting down subchannel_list %p", policy_.get(),
|
2019
2019
|
this);
|
2020
2020
|
}
|
@@ -2061,7 +2061,7 @@ void OldPickFirst::SubchannelList::MaybeFinishHappyEyeballsPass() {
|
|
2061
2061
|
// We didn't find another subchannel not in state TRANSIENT_FAILURE,
|
2062
2062
|
// so report TRANSIENT_FAILURE and switch to a mode in which we try to
|
2063
2063
|
// connect to all addresses in parallel.
|
2064
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2064
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
2065
2065
|
gpr_log(GPR_INFO,
|
2066
2066
|
"Pick First %p subchannel list %p failed to connect to "
|
2067
2067
|
"all subchannels",
|
@@ -2071,7 +2071,7 @@ void OldPickFirst::SubchannelList::MaybeFinishHappyEyeballsPass() {
|
|
2071
2071
|
// TRANSIENT_FAILURE and dropping the existing (working) connection,
|
2072
2072
|
// but we can't ignore what the control plane has told us.
|
2073
2073
|
if (policy_->latest_pending_subchannel_list_.get() == this) {
|
2074
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2074
|
+
if (GRPC_TRACE_FLAG_ENABLED(pick_first)) {
|
2075
2075
|
gpr_log(GPR_INFO,
|
2076
2076
|
"Pick First %p promoting pending subchannel list %p to "
|
2077
2077
|
"replace %p",
|