grpc 1.66.0.pre5 → 1.67.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Makefile +19 -10
- data/include/grpc/credentials.h +1 -1
- data/include/grpc/event_engine/README.md +1 -1
- data/include/grpc/event_engine/internal/slice_cast.h +1 -1
- data/include/grpc/event_engine/slice.h +0 -1
- data/include/grpc/event_engine/slice_buffer.h +0 -1
- data/include/grpc/grpc_crl_provider.h +1 -1
- data/include/grpc/impl/channel_arg_names.h +1 -1
- data/include/grpc/support/log.h +34 -32
- data/include/grpc/support/sync_generic.h +2 -4
- data/src/core/channelz/channelz.cc +0 -1
- data/src/core/channelz/channelz_registry.cc +0 -1
- data/src/core/client_channel/client_channel.cc +10 -7
- data/src/core/client_channel/client_channel.h +1 -1
- data/src/core/client_channel/client_channel_filter.cc +21 -18
- data/src/core/client_channel/client_channel_filter.h +1 -1
- data/src/core/client_channel/client_channel_internal.h +0 -2
- data/src/core/client_channel/config_selector.h +0 -1
- data/src/core/client_channel/dynamic_filters.cc +0 -2
- data/src/core/client_channel/local_subchannel_pool.cc +0 -2
- data/src/core/client_channel/retry_filter.h +0 -1
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +175 -257
- data/src/core/client_channel/subchannel.cc +21 -27
- data/src/core/client_channel/subchannel_stream_client.cc +1 -1
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +8 -9
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +0 -1
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +3 -4
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +167 -0
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +82 -0
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc +81 -0
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +87 -0
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +7 -9
- data/src/core/ext/filters/http/server/http_server_filter.cc +2 -4
- data/src/core/ext/filters/message_size/message_size_filter.cc +6 -7
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +0 -2
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +0 -1
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +6 -8
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +288 -265
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -1
- data/src/core/ext/transport/chttp2/transport/frame.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +0 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +37 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +27 -6
- data/src/core/ext/transport/chttp2/transport/internal.h +2 -3
- data/src/core/ext/transport/chttp2/transport/parsing.cc +21 -32
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +6 -8
- data/src/core/ext/transport/chttp2/transport/varint.h +0 -1
- data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/writing.cc +22 -22
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +431 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +129 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.h +33 -0
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +16 -0
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +13 -2
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +397 -22
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +94 -20
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.h +2 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.c +86 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.h +47 -0
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.c +108 -107
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.c +101 -78
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.h +10 -0
- data/src/core/handshaker/handshaker.cc +21 -29
- data/src/core/handshaker/security/secure_endpoint.cc +3 -3
- data/src/core/handshaker/security/security_handshaker.cc +60 -72
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +0 -1
- data/src/core/lib/backoff/backoff.cc +7 -10
- data/src/core/lib/backoff/backoff.h +4 -6
- data/src/core/lib/channel/channel_stack.cc +0 -1
- data/src/core/lib/channel/channel_stack.h +0 -1
- data/src/core/lib/channel/channel_stack_builder_impl.cc +0 -1
- data/src/core/lib/channel/connected_channel.cc +0 -1
- data/src/core/lib/channel/promise_based_filter.cc +146 -194
- data/src/core/lib/channel/promise_based_filter.h +1 -1
- data/src/core/lib/compression/compression_internal.cc +0 -1
- data/src/core/lib/config/config_vars.cc +11 -1
- data/src/core/lib/config/config_vars.h +8 -0
- data/src/core/lib/config/core_configuration.cc +0 -1
- data/src/core/lib/config/core_configuration.h +0 -1
- data/src/core/lib/debug/event_log.cc +0 -1
- data/src/core/lib/debug/trace_flags.cc +4 -18
- data/src/core/lib/debug/trace_flags.h +2 -5
- data/src/core/lib/debug/trace_impl.h +6 -0
- data/src/core/lib/event_engine/ares_resolver.cc +89 -56
- data/src/core/lib/event_engine/ares_resolver.h +0 -9
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +14 -1
- data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +1 -1
- data/src/core/lib/event_engine/forkable.cc +0 -1
- data/src/core/lib/event_engine/forkable.h +0 -1
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +4 -4
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +0 -1
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +0 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +9 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +0 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +2 -2
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +1 -2
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +4 -9
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +0 -1
- data/src/core/lib/event_engine/resolved_address.cc +0 -1
- data/src/core/lib/event_engine/slice.cc +0 -1
- data/src/core/lib/event_engine/thread_pool/thread_count.cc +0 -1
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +3 -5
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +121 -93
- data/src/core/lib/experiments/config.cc +12 -10
- data/src/core/lib/experiments/experiments.cc +45 -66
- data/src/core/lib/experiments/experiments.h +22 -27
- data/src/core/lib/gprpp/chunked_vector.h +0 -1
- data/src/core/lib/gprpp/down_cast.h +0 -1
- data/src/core/lib/gprpp/host_port.cc +0 -1
- data/src/core/lib/gprpp/load_file.cc +0 -1
- data/src/core/lib/gprpp/mpscq.h +0 -1
- data/src/core/lib/gprpp/single_set_ptr.h +0 -1
- data/src/core/lib/gprpp/status_helper.cc +0 -1
- data/src/core/lib/gprpp/sync.h +0 -1
- data/src/core/lib/gprpp/table.h +28 -0
- data/src/core/lib/gprpp/thd.h +0 -1
- data/src/core/lib/gprpp/time.h +0 -1
- data/src/core/lib/gprpp/time_util.cc +0 -1
- data/src/core/lib/gprpp/windows/directory_reader.cc +0 -2
- data/src/core/lib/gprpp/windows/thd.cc +0 -1
- data/src/core/lib/gprpp/work_serializer.cc +23 -34
- data/src/core/lib/iomgr/buffer_list.cc +0 -1
- data/src/core/lib/iomgr/call_combiner.h +6 -8
- data/src/core/lib/iomgr/cfstream_handle.cc +6 -8
- data/src/core/lib/iomgr/closure.h +5 -8
- data/src/core/lib/iomgr/combiner.cc +6 -8
- data/src/core/lib/iomgr/endpoint_cfstream.cc +17 -22
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +0 -1
- data/src/core/lib/iomgr/error.h +0 -1
- data/src/core/lib/iomgr/ev_apple.cc +13 -18
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +47 -85
- data/src/core/lib/iomgr/ev_poll_posix.cc +17 -24
- data/src/core/lib/iomgr/ev_posix.cc +55 -44
- data/src/core/lib/iomgr/ev_posix.h +0 -5
- data/src/core/lib/iomgr/event_engine_shims/closure.cc +7 -9
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +3 -4
- data/src/core/lib/iomgr/exec_ctx.cc +6 -9
- data/src/core/lib/iomgr/exec_ctx.h +26 -16
- data/src/core/lib/iomgr/executor.cc +43 -33
- data/src/core/lib/iomgr/fork_windows.cc +0 -1
- data/src/core/lib/iomgr/internal_errqueue.cc +0 -1
- data/src/core/lib/iomgr/iocp_windows.cc +0 -1
- data/src/core/lib/iomgr/iomgr_windows.cc +0 -2
- data/src/core/lib/iomgr/lockfree_event.cc +7 -11
- data/src/core/lib/iomgr/polling_entity.cc +10 -3
- data/src/core/lib/iomgr/pollset_windows.cc +0 -2
- data/src/core/lib/iomgr/resolve_address.cc +0 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +0 -1
- data/src/core/lib/iomgr/resolve_address_windows.cc +0 -1
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +0 -1
- data/src/core/lib/iomgr/socket_mutator.cc +0 -1
- data/src/core/lib/iomgr/socket_utils_linux.cc +0 -2
- data/src/core/lib/iomgr/socket_utils_posix.cc +0 -1
- data/src/core/lib/iomgr/socket_utils_windows.cc +0 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +7 -12
- data/src/core/lib/iomgr/tcp_client_posix.cc +8 -12
- data/src/core/lib/iomgr/tcp_client_windows.cc +0 -1
- data/src/core/lib/iomgr/tcp_posix.cc +32 -68
- data/src/core/lib/iomgr/tcp_server_posix.cc +7 -11
- data/src/core/lib/iomgr/tcp_windows.cc +4 -12
- data/src/core/lib/iomgr/timer_generic.cc +46 -65
- data/src/core/lib/iomgr/timer_manager.cc +4 -5
- data/src/core/lib/iomgr/unix_sockets_posix.cc +0 -1
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +0 -2
- data/src/core/lib/iomgr/vsock.cc +0 -1
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +0 -2
- data/src/core/lib/promise/activity.h +0 -1
- data/src/core/lib/promise/context.h +0 -1
- data/src/core/lib/promise/detail/join_state.h +44 -44
- data/src/core/lib/promise/detail/seq_state.h +1101 -1356
- data/src/core/lib/promise/for_each.h +8 -15
- data/src/core/lib/promise/interceptor_list.h +17 -27
- data/src/core/lib/promise/latch.h +16 -24
- data/src/core/lib/promise/map.h +1 -1
- data/src/core/lib/promise/party.cc +238 -114
- data/src/core/lib/promise/party.h +105 -308
- data/src/core/lib/promise/pipe.h +3 -4
- data/src/core/lib/promise/poll.h +0 -1
- data/src/core/lib/promise/status_flag.h +0 -1
- data/src/core/lib/resource_quota/connection_quota.cc +0 -1
- data/src/core/lib/resource_quota/memory_quota.cc +11 -19
- data/src/core/lib/resource_quota/memory_quota.h +2 -4
- data/src/core/lib/resource_quota/periodic_update.cc +2 -3
- data/src/core/lib/resource_quota/thread_quota.cc +0 -1
- data/src/core/lib/security/authorization/audit_logging.cc +0 -1
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +0 -1
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +14 -19
- data/src/core/lib/security/authorization/stdout_logger.cc +0 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +0 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +0 -1
- data/src/core/lib/security/credentials/call_creds_util.cc +0 -1
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +0 -1
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -0
- data/src/core/lib/security/credentials/credentials.h +1 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +322 -324
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +53 -42
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +391 -353
- data/src/core/lib/security/credentials/external/external_account_credentials.h +121 -51
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +83 -44
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +27 -7
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +91 -116
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +14 -17
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -0
- data/src/core/lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +196 -0
- data/src/core/lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.h +90 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +27 -41
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +0 -1
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -0
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +163 -259
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +34 -56
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +12 -16
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +0 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +0 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +0 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +0 -1
- data/src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.cc +298 -0
- data/src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.h +176 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +0 -1
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +0 -1
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +0 -1
- data/src/core/lib/security/security_connector/load_system_roots_windows.cc +0 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +4 -6
- data/src/core/lib/slice/percent_encoding.cc +0 -1
- data/src/core/lib/slice/slice.cc +0 -1
- data/src/core/lib/slice/slice.h +0 -1
- data/src/core/lib/slice/slice_buffer.cc +0 -1
- data/src/core/lib/slice/slice_internal.h +0 -1
- data/src/core/lib/slice/slice_refcount.h +6 -8
- data/src/core/lib/surface/byte_buffer_reader.cc +0 -1
- data/src/core/lib/surface/call.cc +3 -5
- data/src/core/lib/surface/call_utils.h +0 -1
- data/src/core/lib/surface/channel.cc +0 -1
- data/src/core/lib/surface/channel_create.cc +0 -1
- data/src/core/lib/surface/channel_init.h +0 -1
- data/src/core/lib/surface/client_call.cc +0 -1
- data/src/core/lib/surface/client_call.h +0 -1
- data/src/core/lib/surface/completion_queue.cc +28 -4
- data/src/core/lib/surface/completion_queue_factory.cc +0 -1
- data/src/core/lib/surface/filter_stack_call.cc +9 -9
- data/src/core/lib/surface/filter_stack_call.h +0 -1
- data/src/core/lib/surface/lame_client.cc +0 -1
- data/src/core/lib/surface/server_call.cc +0 -1
- data/src/core/lib/surface/server_call.h +0 -1
- data/src/core/lib/surface/validate_metadata.h +0 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +9 -12
- data/src/core/lib/transport/bdp_estimator.h +6 -8
- data/src/core/lib/transport/call_arena_allocator.cc +2 -16
- data/src/core/lib/transport/call_arena_allocator.h +20 -5
- data/src/core/lib/transport/call_filters.cc +6 -9
- data/src/core/lib/transport/call_spine.h +24 -13
- data/src/core/lib/transport/connectivity_state.cc +34 -42
- data/src/core/lib/transport/metadata_batch.h +41 -1
- data/src/core/lib/transport/timeout_encoding.cc +0 -1
- data/src/core/lib/transport/transport.h +6 -8
- data/src/core/lib/transport/transport_op_string.cc +0 -1
- data/src/core/lib/uri/uri_parser.cc +0 -1
- data/src/core/load_balancing/grpclb/grpclb.cc +55 -71
- data/src/core/load_balancing/health_check_client.cc +31 -42
- data/src/core/load_balancing/oob_backend_metric.cc +2 -4
- data/src/core/load_balancing/outlier_detection/outlier_detection.cc +99 -129
- data/src/core/load_balancing/pick_first/pick_first.cc +168 -228
- data/src/core/load_balancing/priority/priority.cc +77 -106
- data/src/core/load_balancing/ring_hash/ring_hash.cc +32 -46
- data/src/core/load_balancing/rls/rls.cc +142 -187
- data/src/core/load_balancing/round_robin/round_robin.cc +36 -55
- data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +0 -1
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +85 -110
- data/src/core/load_balancing/weighted_target/weighted_target.cc +52 -75
- data/src/core/load_balancing/xds/cds.cc +26 -43
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +57 -54
- data/src/core/load_balancing/xds/xds_cluster_manager.cc +36 -50
- data/src/core/load_balancing/xds/xds_override_host.cc +95 -131
- data/src/core/load_balancing/xds/xds_wrr_locality.cc +15 -23
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +3 -0
- data/src/core/resolver/binder/binder_resolver.cc +0 -2
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +62 -44
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +0 -2
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +110 -89
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +132 -96
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +0 -7
- data/src/core/resolver/dns/dns_resolver_plugin.cc +0 -1
- data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +40 -39
- data/src/core/resolver/dns/native/dns_resolver.cc +8 -14
- data/src/core/resolver/endpoint_addresses.cc +0 -1
- data/src/core/resolver/fake/fake_resolver.cc +0 -1
- data/src/core/resolver/polling_resolver.cc +6 -15
- data/src/core/resolver/polling_resolver.h +1 -1
- data/src/core/resolver/xds/xds_config.cc +96 -0
- data/src/core/resolver/xds/xds_config.h +109 -0
- data/src/core/resolver/xds/xds_dependency_manager.cc +59 -154
- data/src/core/resolver/xds/xds_dependency_manager.h +1 -69
- data/src/core/resolver/xds/xds_resolver.cc +51 -55
- data/src/core/server/server.cc +2 -2
- data/src/core/server/server_config_selector_filter.cc +0 -1
- data/src/core/server/xds_server_config_fetcher.cc +4 -6
- data/src/core/service_config/service_config_call_data.h +2 -3
- data/src/core/service_config/service_config_channel_arg_filter.cc +0 -1
- data/src/core/service_config/service_config_impl.h +0 -1
- data/src/core/telemetry/call_tracer.cc +0 -1
- data/src/core/telemetry/metrics.h +0 -1
- data/src/core/telemetry/stats_data.cc +67 -0
- data/src/core/telemetry/stats_data.h +48 -0
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +0 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +0 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +0 -1
- data/src/core/tsi/fake_transport_security.cc +6 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +0 -1
- data/src/core/util/alloc.cc +0 -1
- data/src/core/util/gcp_metadata_query.cc +0 -1
- data/src/core/util/http_client/httpcli.cc +12 -15
- data/src/core/util/http_client/httpcli.h +16 -11
- data/src/core/util/http_client/parser.cc +3 -4
- data/src/core/util/json/json_reader.cc +0 -1
- data/src/core/util/latent_see.cc +29 -9
- data/src/core/util/latent_see.h +122 -27
- data/src/core/util/log.cc +36 -55
- data/src/core/util/lru_cache.h +104 -0
- data/src/core/util/msys/tmpfile.cc +0 -1
- data/src/core/util/posix/sync.cc +0 -1
- data/src/core/util/posix/time.cc +0 -1
- data/src/core/util/ring_buffer.h +123 -0
- data/src/core/util/spinlock.h +1 -2
- data/src/core/util/string.cc +7 -7
- data/src/core/util/sync.cc +0 -1
- data/src/core/util/sync_abseil.cc +0 -1
- data/src/core/util/time.cc +0 -1
- data/src/core/util/unique_ptr_with_bitset.h +86 -0
- data/src/core/util/useful.h +0 -24
- data/src/core/util/windows/cpu.cc +0 -1
- data/src/core/util/windows/sync.cc +0 -1
- data/src/core/util/windows/time.cc +0 -1
- data/src/core/util/windows/tmpfile.cc +0 -1
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +0 -32
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +0 -5
- data/src/core/xds/grpc/xds_certificate_provider.cc +0 -1
- data/src/core/xds/grpc/xds_client_grpc.cc +11 -16
- data/src/core/xds/grpc/xds_cluster.cc +2 -8
- data/src/core/xds/grpc/xds_cluster.h +4 -4
- data/src/core/xds/grpc/xds_cluster_parser.cc +58 -96
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +0 -1
- data/src/core/xds/grpc/xds_common_types_parser.cc +4 -4
- data/src/core/xds/grpc/xds_common_types_parser.h +17 -0
- data/src/core/xds/grpc/xds_endpoint_parser.cc +14 -14
- data/src/core/xds/grpc/xds_http_fault_filter.cc +15 -6
- data/src/core/xds/grpc/xds_http_fault_filter.h +5 -1
- data/src/core/xds/grpc/xds_http_filter.h +11 -1
- data/src/core/xds/grpc/xds_http_filter_registry.cc +7 -1
- data/src/core/xds/grpc/xds_http_filter_registry.h +8 -1
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +142 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +61 -0
- data/src/core/xds/grpc/xds_http_rbac_filter.cc +14 -6
- data/src/core/xds/grpc/xds_http_rbac_filter.h +5 -1
- data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +9 -1
- data/src/core/xds/grpc/xds_http_stateful_session_filter.h +5 -1
- data/src/core/xds/grpc/xds_lb_policy_registry.cc +14 -16
- data/src/core/xds/grpc/xds_listener_parser.cc +10 -11
- data/src/core/xds/grpc/xds_metadata.cc +62 -0
- data/src/core/xds/grpc/xds_metadata.h +127 -0
- data/src/core/xds/grpc/xds_metadata_parser.cc +143 -0
- data/src/core/xds/grpc/xds_metadata_parser.h +36 -0
- data/src/core/xds/grpc/xds_route_config_parser.cc +12 -17
- data/src/core/xds/grpc/xds_routing.cc +57 -22
- data/src/core/xds/grpc/xds_routing.h +10 -2
- data/src/core/xds/grpc/xds_transport_grpc.cc +0 -1
- data/src/core/xds/xds_client/xds_client.cc +124 -165
- data/src/core/xds/xds_client/xds_client_stats.cc +20 -27
- data/src/ruby/ext/grpc/rb_call.c +1 -1
- data/src/ruby/ext/grpc/rb_call_credentials.c +34 -27
- data/src/ruby/ext/grpc/rb_channel.c +22 -16
- data/src/ruby/ext/grpc/rb_event_thread.c +3 -2
- data/src/ruby/ext/grpc/rb_grpc.c +9 -8
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -10
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +9 -15
- data/src/ruby/ext/grpc/rb_server.c +10 -8
- data/src/ruby/lib/grpc/generic/active_call.rb +8 -5
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/call_spec.rb +53 -40
- data/src/ruby/spec/channel_spec.rb +4 -2
- data/src/ruby/spec/client_server_spec.rb +148 -507
- data/src/ruby/spec/generic/active_call_spec.rb +64 -86
- data/src/ruby/spec/support/services.rb +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/rand/fork_detect.h → bcm_support.h} +51 -6
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +43 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.c +72 -23
- data/third_party/boringssl-with-bazel/src/crypto/crypto.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +160 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +79 -78
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm_interface.h +89 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{div.c → div.c.inc} +146 -179
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{random.c → random.c.inc} +6 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{sqrt.c → sqrt.c.inc} +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{e_aes.c → e_aes.c.inc} +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec_key.c → ec_key.c.inc} +11 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-nistz.c → p256-nistz.c.inc} +104 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.h +65 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/{ecdsa.c → ecdsa.c.inc} +52 -107
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +28 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -80
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/{rand.c → rand.c.inc} +26 -40
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{padding.c → padding.c.inc} +2 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{rsa_impl.c → rsa_impl.c.inc} +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/{self_check.c → self_check.c.inc} +9 -35
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/{service_indicator.c → service_indicator.c.inc} +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +293 -2
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +69 -14
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +7 -3
- data/third_party/boringssl-with-bazel/src/crypto/mldsa/internal.h +73 -0
- data/third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.c +1687 -0
- data/third_party/boringssl-with-bazel/src/crypto/mlkem/internal.h +90 -0
- data/third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc +1097 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +4 -1
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +4 -5
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/rand → rand_extra}/fork_detect.c +26 -28
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.c +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +19 -3
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +26 -23
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/sysrand_internal.h +37 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/rand → rand_extra}/urandom.c +19 -19
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +8 -1
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h +2 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +14 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +14 -9
- data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +13 -15
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +8 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/mldsa.h +136 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/mlkem.h +246 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +3 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +22 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +35 -5
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -6
- data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +6 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +6 -1
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +13 -1
- data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +289 -55
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +69 -38
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +14 -3
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +107 -14
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +44 -16
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +21 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +86 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +7 -4
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +97 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +31 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +6 -0
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +18 -4
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +96 -34
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +15 -5
- data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +3 -23
- metadata +113 -87
- data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc +0 -45
- data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.h +0 -67
- data/src/core/util/android/log.cc +0 -48
- data/src/core/util/linux/log.cc +0 -69
- data/src/core/util/posix/log.cc +0 -69
- data/src/core/util/windows/log.cc +0 -73
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{aes.c → aes.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{aes_nohw.c → aes_nohw.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{key_wrap.c → key_wrap.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{mode_wrappers.c → mode_wrappers.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{add.c → add.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/{x86_64-gcc.c → x86_64-gcc.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{bn.c → bn.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{bytes.c → bytes.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{cmp.c → cmp.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{ctx.c → ctx.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{div_extra.c → div_extra.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{exponentiation.c → exponentiation.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{gcd.c → gcd.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{gcd_extra.c → gcd_extra.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{generic.c → generic.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{jacobi.c → jacobi.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{montgomery.c → montgomery.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{montgomery_inv.c → montgomery_inv.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{mul.c → mul.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{prime.c → prime.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{rsaz_exp.c → rsaz_exp.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{shift.c → shift.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{aead.c → aead.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{cipher.c → cipher.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{e_aesccm.c → e_aesccm.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/{cmac.c → cmac.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/{check.c → check.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/{dh.c → dh.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/{digest.c → digest.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/{digests.c → digests.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/{digestsign.c → digestsign.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec.c → ec.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec_montgomery.c → ec_montgomery.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{felem.c → felem.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{oct.c → oct.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p224-64.c → p224-64.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256.c → p256.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{scalar.c → scalar.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{simple.c → simple.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{simple_mul.c → simple_mul.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{util.c → util.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{wnaf.c → wnaf.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/{ecdh.c → ecdh.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/{hkdf.c → hkdf.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/{hmac.c → hmac.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/{md4.c → md4.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/{md5.c → md5.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{cbc.c → cbc.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{cfb.c → cfb.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{ctr.c → ctr.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{gcm.c → gcm.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{gcm_nohw.c → gcm_nohw.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{ofb.c → ofb.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{polyval.c → polyval.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/{ctrdrbg.c → ctrdrbg.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{blinding.c → blinding.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{rsa.c → rsa.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/{fips.c → fips.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha1.c → sha1.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha256.c → sha256.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha512.c → sha512.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/{kdf.c → kdf.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/rand → rand_extra}/getrandom_fillin.h +0 -0
@@ -249,16 +249,14 @@ XdsClusterManagerLb::XdsClusterManagerLb(Args args)
|
|
249
249
|
: LoadBalancingPolicy(std::move(args)) {}
|
250
250
|
|
251
251
|
XdsClusterManagerLb::~XdsClusterManagerLb() {
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
}
|
252
|
+
GRPC_TRACE_LOG(xds_cluster_manager_lb, INFO)
|
253
|
+
<< "[xds_cluster_manager_lb " << this
|
254
|
+
<< "] destroying xds_cluster_manager LB policy";
|
256
255
|
}
|
257
256
|
|
258
257
|
void XdsClusterManagerLb::ShutdownLocked() {
|
259
|
-
|
260
|
-
|
261
|
-
}
|
258
|
+
GRPC_TRACE_LOG(xds_cluster_manager_lb, INFO)
|
259
|
+
<< "[xds_cluster_manager_lb " << this << "] shutting down";
|
262
260
|
shutting_down_ = true;
|
263
261
|
children_.clear();
|
264
262
|
}
|
@@ -273,9 +271,8 @@ void XdsClusterManagerLb::ResetBackoffLocked() {
|
|
273
271
|
|
274
272
|
absl::Status XdsClusterManagerLb::UpdateLocked(UpdateArgs args) {
|
275
273
|
if (shutting_down_) return absl::OkStatus();
|
276
|
-
|
277
|
-
|
278
|
-
}
|
274
|
+
GRPC_TRACE_LOG(xds_cluster_manager_lb, INFO)
|
275
|
+
<< "[xds_cluster_manager_lb " << this << "] Received update";
|
279
276
|
update_in_progress_ = true;
|
280
277
|
// Update config.
|
281
278
|
config_ = args.config.TakeAsSubclass<XdsClusterManagerLbConfig>();
|
@@ -366,22 +363,18 @@ void XdsClusterManagerLb::UpdateStateLocked() {
|
|
366
363
|
} else {
|
367
364
|
connectivity_state = GRPC_CHANNEL_TRANSIENT_FAILURE;
|
368
365
|
}
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
<< ConnectivityStateName(connectivity_state);
|
373
|
-
}
|
366
|
+
GRPC_TRACE_LOG(xds_cluster_manager_lb, INFO)
|
367
|
+
<< "[xds_cluster_manager_lb " << this << "] connectivity changed to "
|
368
|
+
<< ConnectivityStateName(connectivity_state);
|
374
369
|
ClusterPicker::ClusterMap cluster_map;
|
375
370
|
for (const auto& p : config_->cluster_map()) {
|
376
371
|
const std::string& cluster_name = p.first;
|
377
372
|
RefCountedPtr<SubchannelPicker>& child_picker = cluster_map[cluster_name];
|
378
373
|
child_picker = children_[cluster_name]->picker();
|
379
374
|
if (child_picker == nullptr) {
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
<< " has not yet returned a picker; creating a QueuePicker.";
|
384
|
-
}
|
375
|
+
GRPC_TRACE_LOG(xds_cluster_manager_lb, INFO)
|
376
|
+
<< "[xds_cluster_manager_lb " << this << "] child " << cluster_name
|
377
|
+
<< " has not yet returned a picker; creating a QueuePicker.";
|
385
378
|
child_picker =
|
386
379
|
MakeRefCounted<QueuePicker>(Ref(DEBUG_LOCATION, "QueuePicker"));
|
387
380
|
}
|
@@ -406,26 +399,22 @@ XdsClusterManagerLb::ClusterChild::ClusterChild(
|
|
406
399
|
: xds_cluster_manager_policy_(std::move(xds_cluster_manager_policy)),
|
407
400
|
name_(name),
|
408
401
|
picker_(MakeRefCounted<QueuePicker>(nullptr)) {
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
}
|
402
|
+
GRPC_TRACE_LOG(xds_cluster_manager_lb, INFO)
|
403
|
+
<< "[xds_cluster_manager_lb " << xds_cluster_manager_policy_.get()
|
404
|
+
<< "] created ClusterChild " << this << " for " << name_;
|
413
405
|
}
|
414
406
|
|
415
407
|
XdsClusterManagerLb::ClusterChild::~ClusterChild() {
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
}
|
408
|
+
GRPC_TRACE_LOG(xds_cluster_manager_lb, INFO)
|
409
|
+
<< "[xds_cluster_manager_lb " << xds_cluster_manager_policy_.get()
|
410
|
+
<< "] ClusterChild " << this << ": destroying child";
|
420
411
|
xds_cluster_manager_policy_.reset(DEBUG_LOCATION, "ClusterChild");
|
421
412
|
}
|
422
413
|
|
423
414
|
void XdsClusterManagerLb::ClusterChild::Orphan() {
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
<< ": shutting down child";
|
428
|
-
}
|
415
|
+
GRPC_TRACE_LOG(xds_cluster_manager_lb, INFO)
|
416
|
+
<< "[xds_cluster_manager_lb " << xds_cluster_manager_policy_.get()
|
417
|
+
<< "] ClusterChild " << this << " " << name_ << ": shutting down child";
|
429
418
|
// Remove the child policy's interested_parties pollset_set from the
|
430
419
|
// xDS policy.
|
431
420
|
grpc_pollset_set_del_pollset_set(
|
@@ -456,11 +445,10 @@ XdsClusterManagerLb::ClusterChild::CreateChildPolicyLocked(
|
|
456
445
|
OrphanablePtr<LoadBalancingPolicy> lb_policy =
|
457
446
|
MakeOrphanable<ChildPolicyHandler>(std::move(lb_policy_args),
|
458
447
|
&xds_cluster_manager_lb_trace);
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
}
|
448
|
+
GRPC_TRACE_LOG(xds_cluster_manager_lb, INFO)
|
449
|
+
<< "[xds_cluster_manager_lb " << xds_cluster_manager_policy_.get()
|
450
|
+
<< "] ClusterChild " << this << " " << name_
|
451
|
+
<< ": Created new child policy handler " << lb_policy.get();
|
464
452
|
// Add the xDS's interested_parties pollset_set to that of the newly created
|
465
453
|
// child policy. This will make the child policy progress upon activity on
|
466
454
|
// xDS LB, which in turn is tied to the application's call.
|
@@ -493,11 +481,10 @@ absl::Status XdsClusterManagerLb::ClusterChild::UpdateLocked(
|
|
493
481
|
update_args.addresses = addresses;
|
494
482
|
update_args.args = args;
|
495
483
|
// Update the policy.
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
}
|
484
|
+
GRPC_TRACE_LOG(xds_cluster_manager_lb, INFO)
|
485
|
+
<< "[xds_cluster_manager_lb " << xds_cluster_manager_policy_.get()
|
486
|
+
<< "] ClusterChild " << this << " " << name_
|
487
|
+
<< ": Updating child policy handler " << child_policy_.get();
|
501
488
|
return child_policy_->UpdateLocked(std::move(update_args));
|
502
489
|
}
|
503
490
|
|
@@ -544,13 +531,12 @@ void XdsClusterManagerLb::ClusterChild::OnDelayedRemovalTimerLocked() {
|
|
544
531
|
void XdsClusterManagerLb::ClusterChild::Helper::UpdateState(
|
545
532
|
grpc_connectivity_state state, const absl::Status& status,
|
546
533
|
RefCountedPtr<SubchannelPicker> picker) {
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
}
|
534
|
+
GRPC_TRACE_LOG(xds_cluster_manager_lb, INFO)
|
535
|
+
<< "[xds_cluster_manager_lb "
|
536
|
+
<< xds_cluster_manager_child_->xds_cluster_manager_policy_.get()
|
537
|
+
<< "] child " << xds_cluster_manager_child_->name_
|
538
|
+
<< ": received update: state=" << ConnectivityStateName(state) << " ("
|
539
|
+
<< status << ") picker=" << picker.get();
|
554
540
|
if (xds_cluster_manager_child_->xds_cluster_manager_policy_->shutting_down_) {
|
555
541
|
return;
|
556
542
|
}
|
@@ -77,7 +77,7 @@
|
|
77
77
|
#include "src/core/load_balancing/lb_policy_registry.h"
|
78
78
|
#include "src/core/load_balancing/subchannel_interface.h"
|
79
79
|
#include "src/core/resolver/endpoint_addresses.h"
|
80
|
-
#include "src/core/resolver/xds/
|
80
|
+
#include "src/core/resolver/xds/xds_config.h"
|
81
81
|
#include "src/core/util/json/json.h"
|
82
82
|
#include "src/core/util/json/json_args.h"
|
83
83
|
#include "src/core/util/json/json_object_loader.h"
|
@@ -464,10 +464,9 @@ XdsOverrideHostLb::Picker::Picker(
|
|
464
464
|
: policy_(std::move(xds_override_host_lb)),
|
465
465
|
picker_(std::move(picker)),
|
466
466
|
override_host_health_status_set_(override_host_health_status_set) {
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
}
|
467
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
468
|
+
<< "[xds_override_host_lb " << policy_.get()
|
469
|
+
<< "] constructed new picker " << this;
|
471
470
|
}
|
472
471
|
|
473
472
|
absl::optional<LoadBalancingPolicy::PickResult>
|
@@ -487,18 +486,15 @@ XdsOverrideHostLb::Picker::PickOverridenHost(
|
|
487
486
|
if (it == policy_->subchannel_map_.end()) continue;
|
488
487
|
if (!override_host_health_status_set_.Contains(
|
489
488
|
it->second->eds_health_status())) {
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
<< it->second->eds_health_status().ToString() << ")";
|
494
|
-
}
|
489
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
490
|
+
<< "Subchannel " << address << " health status is not overridden ("
|
491
|
+
<< it->second->eds_health_status().ToString() << ")";
|
495
492
|
continue;
|
496
493
|
}
|
497
494
|
auto subchannel = it->second->GetSubchannelRef();
|
498
495
|
if (subchannel == nullptr) {
|
499
|
-
|
500
|
-
|
501
|
-
}
|
496
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
497
|
+
<< "No subchannel for " << address;
|
502
498
|
if (address_with_no_subchannel.empty()) {
|
503
499
|
address_with_no_subchannel = it->first;
|
504
500
|
}
|
@@ -508,9 +504,8 @@ XdsOverrideHostLb::Picker::PickOverridenHost(
|
|
508
504
|
if (connectivity_state == GRPC_CHANNEL_READY) {
|
509
505
|
// Found a READY subchannel. Pass back the actual address list
|
510
506
|
// and return the subchannel.
|
511
|
-
|
512
|
-
|
513
|
-
}
|
507
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
508
|
+
<< "Picker override found READY subchannel " << address;
|
514
509
|
it->second->set_last_used_time();
|
515
510
|
override_host_attr->set_actual_address_list(it->second->address_list());
|
516
511
|
return PickResult::Complete(subchannel->wrapped_subchannel());
|
@@ -524,9 +519,8 @@ XdsOverrideHostLb::Picker::PickOverridenHost(
|
|
524
519
|
// No READY subchannel found. If we found an IDLE subchannel, trigger
|
525
520
|
// a connection attempt and queue the pick until that attempt completes.
|
526
521
|
if (idle_subchannel != nullptr) {
|
527
|
-
|
528
|
-
|
529
|
-
}
|
522
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
523
|
+
<< "Picker override found IDLE subchannel";
|
530
524
|
// Deletes itself after the connection is requested.
|
531
525
|
new SubchannelConnectionRequester(std::move(idle_subchannel));
|
532
526
|
return PickResult::Queue();
|
@@ -534,18 +528,16 @@ XdsOverrideHostLb::Picker::PickOverridenHost(
|
|
534
528
|
// No READY or IDLE subchannels. If we found a CONNECTING subchannel,
|
535
529
|
// queue the pick and wait for the connection attempt to complete.
|
536
530
|
if (found_connecting) {
|
537
|
-
|
538
|
-
|
539
|
-
}
|
531
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
532
|
+
<< "Picker override found CONNECTING subchannel";
|
540
533
|
return PickResult::Queue();
|
541
534
|
}
|
542
535
|
// No READY, IDLE, or CONNECTING subchannels found. If we found an
|
543
536
|
// entry that has no subchannel, then queue the pick and trigger
|
544
537
|
// creation of a subchannel for that entry.
|
545
538
|
if (!address_with_no_subchannel.empty()) {
|
546
|
-
|
547
|
-
|
548
|
-
}
|
539
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
540
|
+
<< "Picker override found entry with no subchannel";
|
549
541
|
if (!IsWorkSerializerDispatchEnabled()) {
|
550
542
|
new SubchannelCreationRequester(policy_, address_with_no_subchannel);
|
551
543
|
} else {
|
@@ -605,10 +597,9 @@ XdsOverrideHostLb::IdleTimer::IdleTimer(RefCountedPtr<XdsOverrideHostLb> policy,
|
|
605
597
|
// Min time between timer runs is 5s so that we don't kill ourselves
|
606
598
|
// with lock contention and CPU usage due to sweeps over the map.
|
607
599
|
duration = std::max(duration, Duration::Seconds(5));
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
}
|
600
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
601
|
+
<< "[xds_override_host_lb " << policy_.get() << "] idle timer " << this
|
602
|
+
<< ": subchannel cleanup pass will run in " << duration;
|
612
603
|
timer_handle_ = policy_->channel_control_helper()->GetEventEngine()->RunAfter(
|
613
604
|
duration, [self = RefAsSubclass<IdleTimer>()]() mutable {
|
614
605
|
ApplicationCallbackExecCtx callback_exec_ctx;
|
@@ -622,10 +613,9 @@ XdsOverrideHostLb::IdleTimer::IdleTimer(RefCountedPtr<XdsOverrideHostLb> policy,
|
|
622
613
|
|
623
614
|
void XdsOverrideHostLb::IdleTimer::Orphan() {
|
624
615
|
if (timer_handle_.has_value()) {
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
}
|
616
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
617
|
+
<< "[xds_override_host_lb " << policy_.get() << "] idle timer " << this
|
618
|
+
<< ": cancelling";
|
629
619
|
policy_->channel_control_helper()->GetEventEngine()->Cancel(*timer_handle_);
|
630
620
|
timer_handle_.reset();
|
631
621
|
}
|
@@ -635,10 +625,9 @@ void XdsOverrideHostLb::IdleTimer::Orphan() {
|
|
635
625
|
void XdsOverrideHostLb::IdleTimer::OnTimerLocked() {
|
636
626
|
if (timer_handle_.has_value()) {
|
637
627
|
timer_handle_.reset();
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
}
|
628
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
629
|
+
<< "[xds_override_host_lb " << policy_.get() << "] idle timer " << this
|
630
|
+
<< ": timer fired";
|
642
631
|
policy_->CleanupSubchannels();
|
643
632
|
}
|
644
633
|
}
|
@@ -649,22 +638,19 @@ void XdsOverrideHostLb::IdleTimer::OnTimerLocked() {
|
|
649
638
|
|
650
639
|
XdsOverrideHostLb::XdsOverrideHostLb(Args args)
|
651
640
|
: LoadBalancingPolicy(std::move(args)) {
|
652
|
-
|
653
|
-
|
654
|
-
}
|
641
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
642
|
+
<< "[xds_override_host_lb " << this << "] created";
|
655
643
|
}
|
656
644
|
|
657
645
|
XdsOverrideHostLb::~XdsOverrideHostLb() {
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
}
|
646
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
647
|
+
<< "[xds_override_host_lb " << this
|
648
|
+
<< "] destroying xds_override_host LB policy";
|
662
649
|
}
|
663
650
|
|
664
651
|
void XdsOverrideHostLb::ShutdownLocked() {
|
665
|
-
|
666
|
-
|
667
|
-
}
|
652
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
653
|
+
<< "[xds_override_host_lb " << this << "] shutting down";
|
668
654
|
shutting_down_ = true;
|
669
655
|
ResetState();
|
670
656
|
}
|
@@ -695,10 +681,9 @@ void XdsOverrideHostLb::ResetState() {
|
|
695
681
|
}
|
696
682
|
|
697
683
|
void XdsOverrideHostLb::ReportTransientFailure(absl::Status status) {
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
}
|
684
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
685
|
+
<< "[xds_override_host_lb " << this
|
686
|
+
<< "] reporting TRANSIENT_FAILURE: " << status;
|
702
687
|
ResetState();
|
703
688
|
channel_control_helper()->UpdateState(
|
704
689
|
GRPC_CHANNEL_TRANSIENT_FAILURE, status,
|
@@ -732,11 +717,9 @@ class ChildEndpointIterator final : public EndpointAddressesIterator {
|
|
732
717
|
parent_it_->ForEach([&](const EndpointAddresses& endpoint) {
|
733
718
|
XdsHealthStatus status = GetEndpointHealthStatus(endpoint);
|
734
719
|
if (status.status() != XdsHealthStatus::kDraining) {
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
<< ": not draining, passing to child";
|
739
|
-
}
|
720
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
721
|
+
<< "[xds_override_host_lb " << this << "] endpoint "
|
722
|
+
<< endpoint.ToString() << ": not draining, passing to child";
|
740
723
|
callback(endpoint);
|
741
724
|
}
|
742
725
|
});
|
@@ -747,17 +730,15 @@ class ChildEndpointIterator final : public EndpointAddressesIterator {
|
|
747
730
|
};
|
748
731
|
|
749
732
|
absl::Status XdsOverrideHostLb::UpdateLocked(UpdateArgs args) {
|
750
|
-
|
751
|
-
|
752
|
-
}
|
733
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
734
|
+
<< "[xds_override_host_lb " << this << "] Received update";
|
753
735
|
// Grab new LB policy config.
|
754
736
|
if (args.config == nullptr) {
|
755
737
|
return absl::InvalidArgumentError("Missing policy config");
|
756
738
|
}
|
757
739
|
auto new_config = args.config.TakeAsSubclass<XdsOverrideHostLbConfig>();
|
758
740
|
// Get xDS config.
|
759
|
-
auto new_xds_config =
|
760
|
-
args.args.GetObjectRef<XdsDependencyManager::XdsConfig>();
|
741
|
+
auto new_xds_config = args.args.GetObjectRef<XdsConfig>();
|
761
742
|
if (new_xds_config == nullptr) {
|
762
743
|
// Should never happen.
|
763
744
|
absl::Status status = absl::InternalError(
|
@@ -777,23 +758,19 @@ absl::Status XdsOverrideHostLb::UpdateLocked(UpdateArgs args) {
|
|
777
758
|
args_ = std::move(args.args);
|
778
759
|
override_host_status_set_ = it->second->cluster->override_host_statuses;
|
779
760
|
connection_idle_timeout_ = it->second->cluster->connection_idle_timeout;
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
<< " connection idle timeout: "
|
785
|
-
<< connection_idle_timeout_.ToString();
|
786
|
-
}
|
761
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
762
|
+
<< "[xds_override_host_lb " << this
|
763
|
+
<< "] override host status set: " << override_host_status_set_.ToString()
|
764
|
+
<< " connection idle timeout: " << connection_idle_timeout_.ToString();
|
787
765
|
// Update address map and wrap endpoint iterator for child policy.
|
788
766
|
if (args.addresses.ok()) {
|
789
767
|
UpdateAddressMap(**args.addresses);
|
790
768
|
args.addresses =
|
791
769
|
std::make_shared<ChildEndpointIterator>(std::move(*args.addresses));
|
792
770
|
} else {
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
}
|
771
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
772
|
+
<< "[xds_override_host_lb " << this
|
773
|
+
<< "] address error: " << args.addresses.status();
|
797
774
|
}
|
798
775
|
// Create child policy if needed.
|
799
776
|
if (child_policy_ == nullptr) {
|
@@ -805,10 +782,9 @@ absl::Status XdsOverrideHostLb::UpdateLocked(UpdateArgs args) {
|
|
805
782
|
update_args.resolution_note = std::move(args.resolution_note);
|
806
783
|
update_args.config = new_config->child_config();
|
807
784
|
update_args.args = args_;
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
}
|
785
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
786
|
+
<< "[xds_override_host_lb " << this << "] Updating child policy handler "
|
787
|
+
<< child_policy_.get();
|
812
788
|
return child_policy_->UpdateLocked(std::move(update_args));
|
813
789
|
}
|
814
790
|
|
@@ -816,12 +792,11 @@ void XdsOverrideHostLb::MaybeUpdatePickerLocked() {
|
|
816
792
|
if (picker_ != nullptr) {
|
817
793
|
auto xds_override_host_picker = MakeRefCounted<Picker>(
|
818
794
|
RefAsSubclass<XdsOverrideHostLb>(), picker_, override_host_status_set_);
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
}
|
795
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
796
|
+
<< "[xds_override_host_lb " << this
|
797
|
+
<< "] updating connectivity: state=" << ConnectivityStateName(state_)
|
798
|
+
<< " status=(" << status_
|
799
|
+
<< ") picker=" << xds_override_host_picker.get();
|
825
800
|
channel_control_helper()->UpdateState(state_, status_,
|
826
801
|
std::move(xds_override_host_picker));
|
827
802
|
}
|
@@ -837,10 +812,9 @@ OrphanablePtr<LoadBalancingPolicy> XdsOverrideHostLb::CreateChildPolicyLocked(
|
|
837
812
|
OrphanablePtr<LoadBalancingPolicy> lb_policy =
|
838
813
|
MakeOrphanable<ChildPolicyHandler>(std::move(lb_policy_args),
|
839
814
|
&xds_override_host_lb_trace);
|
840
|
-
|
841
|
-
|
842
|
-
|
843
|
-
}
|
815
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
816
|
+
<< "[xds_override_host_lb " << this
|
817
|
+
<< "] Created new child policy handler " << lb_policy.get();
|
844
818
|
// Add our interested_parties pollset_set to that of the newly created
|
845
819
|
// child policy. This will make the child policy progress upon activity on
|
846
820
|
// this policy, which in turn is tied to the application's call.
|
@@ -864,12 +838,11 @@ void XdsOverrideHostLb::UpdateAddressMap(
|
|
864
838
|
// Skip draining hosts if not in the override status set.
|
865
839
|
if (status.status() == XdsHealthStatus::kDraining &&
|
866
840
|
!override_host_status_set_.Contains(status)) {
|
867
|
-
|
868
|
-
|
869
|
-
|
870
|
-
|
871
|
-
|
872
|
-
}
|
841
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
842
|
+
<< "[xds_override_host_lb " << this << "] endpoint "
|
843
|
+
<< endpoint.ToString()
|
844
|
+
<< ": draining but not in override_host_status set -- "
|
845
|
+
"ignoring";
|
873
846
|
return;
|
874
847
|
}
|
875
848
|
std::vector<std::string> addresses;
|
@@ -877,10 +850,9 @@ void XdsOverrideHostLb::UpdateAddressMap(
|
|
877
850
|
for (const auto& address : endpoint.addresses()) {
|
878
851
|
auto key = grpc_sockaddr_to_string(&address, /*normalize=*/false);
|
879
852
|
if (!key.ok()) {
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
-
}
|
853
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
854
|
+
<< "[xds_override_host_lb " << this
|
855
|
+
<< "] no key for endpoint address; not adding to map";
|
884
856
|
} else {
|
885
857
|
addresses.push_back(*std::move(key));
|
886
858
|
}
|
@@ -907,10 +879,9 @@ void XdsOverrideHostLb::UpdateAddressMap(
|
|
907
879
|
MutexLock lock(&mu_);
|
908
880
|
for (auto it = subchannel_map_.begin(); it != subchannel_map_.end();) {
|
909
881
|
if (addresses_for_map.find(it->first) == addresses_for_map.end()) {
|
910
|
-
|
911
|
-
|
912
|
-
|
913
|
-
}
|
882
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
883
|
+
<< "[xds_override_host_lb " << this << "] removing map key "
|
884
|
+
<< it->first;
|
914
885
|
it->second->UnsetSubchannel(&subchannel_refs_to_drop);
|
915
886
|
it = subchannel_map_.erase(it);
|
916
887
|
} else {
|
@@ -922,20 +893,17 @@ void XdsOverrideHostLb::UpdateAddressMap(
|
|
922
893
|
auto& address_info = p.second;
|
923
894
|
auto it = subchannel_map_.find(address);
|
924
895
|
if (it == subchannel_map_.end()) {
|
925
|
-
|
926
|
-
|
927
|
-
|
928
|
-
}
|
896
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
897
|
+
<< "[xds_override_host_lb " << this << "] adding map key "
|
898
|
+
<< address;
|
929
899
|
it = subchannel_map_.emplace(address, MakeRefCounted<SubchannelEntry>())
|
930
900
|
.first;
|
931
901
|
}
|
932
|
-
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
<< " address_list=" << address_info.address_list.c_str();
|
938
|
-
}
|
902
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
903
|
+
<< "[xds_override_host_lb " << this << "] map key " << address
|
904
|
+
<< ": setting "
|
905
|
+
<< "eds_health_status=" << address_info.eds_health_status.ToString()
|
906
|
+
<< " address_list=" << address_info.address_list.c_str();
|
939
907
|
it->second->set_eds_health_status(address_info.eds_health_status);
|
940
908
|
it->second->set_address_list(std::move(address_info.address_list));
|
941
909
|
// Check the entry's last_used_time to determine the next time at
|
@@ -973,10 +941,9 @@ XdsOverrideHostLb::AdoptSubchannel(
|
|
973
941
|
}
|
974
942
|
|
975
943
|
void XdsOverrideHostLb::CreateSubchannelForAddress(absl::string_view address) {
|
976
|
-
|
977
|
-
|
978
|
-
|
979
|
-
}
|
944
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
945
|
+
<< "[xds_override_host_lb " << this << "] creating owned subchannel for "
|
946
|
+
<< address;
|
980
947
|
auto addr = StringToSockaddr(address);
|
981
948
|
CHECK(addr.ok());
|
982
949
|
// Note: We don't currently have any cases where per_address_args need to
|
@@ -1016,10 +983,9 @@ void XdsOverrideHostLb::CleanupSubchannels() {
|
|
1016
983
|
if (p.second->last_used_time() <= idle_threshold) {
|
1017
984
|
auto subchannel = p.second->TakeOwnedSubchannel();
|
1018
985
|
if (subchannel != nullptr) {
|
1019
|
-
|
1020
|
-
|
1021
|
-
|
1022
|
-
}
|
986
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
987
|
+
<< "[xds_override_host_lb " << this
|
988
|
+
<< "] dropping subchannel for " << p.first;
|
1023
989
|
subchannel_refs_to_drop.push_back(std::move(subchannel));
|
1024
990
|
}
|
1025
991
|
} else {
|
@@ -1093,10 +1059,9 @@ void XdsOverrideHostLb::SubchannelWrapper::CancelConnectivityStateWatch(
|
|
1093
1059
|
}
|
1094
1060
|
|
1095
1061
|
void XdsOverrideHostLb::SubchannelWrapper::Orphaned() {
|
1096
|
-
|
1097
|
-
|
1098
|
-
|
1099
|
-
}
|
1062
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
1063
|
+
<< "[xds_override_host_lb " << policy_.get() << "] subchannel wrapper "
|
1064
|
+
<< this << " orphaned";
|
1100
1065
|
if (!IsWorkSerializerDispatchEnabled()) {
|
1101
1066
|
wrapped_subchannel()->CancelConnectivityStateWatch(watcher_);
|
1102
1067
|
if (subchannel_entry_ != nullptr) {
|
@@ -1206,20 +1171,19 @@ void XdsOverrideHostLb::SubchannelEntry::OnSubchannelWrapperOrphan(
|
|
1206
1171
|
auto* subchannel = GetSubchannel();
|
1207
1172
|
if (subchannel != wrapper) return;
|
1208
1173
|
if (last_used_time_ < (Timestamp::Now() - connection_idle_timeout)) {
|
1209
|
-
|
1210
|
-
|
1211
|
-
|
1212
|
-
|
1174
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
1175
|
+
<< "[xds_override_host_lb] removing unowned subchannel "
|
1176
|
+
"wrapper "
|
1177
|
+
<< subchannel;
|
1213
1178
|
subchannel_ = nullptr;
|
1214
1179
|
} else {
|
1215
1180
|
// The subchannel is being released by the child policy, but it
|
1216
1181
|
// is still within its idle timeout, so we make a new copy of
|
1217
1182
|
// the wrapper with the same underlying subchannel, and we hold
|
1218
1183
|
// our own ref to it.
|
1219
|
-
|
1220
|
-
|
1221
|
-
|
1222
|
-
}
|
1184
|
+
GRPC_TRACE_LOG(xds_override_host_lb, INFO)
|
1185
|
+
<< "[xds_override_host_lb] subchannel wrapper " << subchannel
|
1186
|
+
<< ": cloning to gain ownership";
|
1223
1187
|
subchannel_ = wrapper->Clone();
|
1224
1188
|
}
|
1225
1189
|
}
|