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
@@ -70,7 +70,6 @@
|
|
70
70
|
#include "src/core/client_channel/client_channel_filter.h"
|
71
71
|
#include "src/core/lib/backoff/backoff.h"
|
72
72
|
#include "src/core/lib/channel/channel_args.h"
|
73
|
-
#include "src/core/lib/channel/metrics.h"
|
74
73
|
#include "src/core/lib/config/core_configuration.h"
|
75
74
|
#include "src/core/lib/debug/trace.h"
|
76
75
|
#include "src/core/lib/gprpp/debug_location.h"
|
@@ -88,10 +87,6 @@
|
|
88
87
|
#include "src/core/lib/iomgr/error.h"
|
89
88
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
90
89
|
#include "src/core/lib/iomgr/pollset_set.h"
|
91
|
-
#include "src/core/lib/json/json.h"
|
92
|
-
#include "src/core/lib/json/json_args.h"
|
93
|
-
#include "src/core/lib/json/json_object_loader.h"
|
94
|
-
#include "src/core/lib/json/json_writer.h"
|
95
90
|
#include "src/core/lib/security/credentials/fake/fake_credentials.h"
|
96
91
|
#include "src/core/lib/slice/slice.h"
|
97
92
|
#include "src/core/lib/slice/slice_internal.h"
|
@@ -107,14 +102,17 @@
|
|
107
102
|
#include "src/core/resolver/endpoint_addresses.h"
|
108
103
|
#include "src/core/resolver/resolver_registry.h"
|
109
104
|
#include "src/core/service_config/service_config_impl.h"
|
105
|
+
#include "src/core/telemetry/metrics.h"
|
106
|
+
#include "src/core/util/json/json.h"
|
107
|
+
#include "src/core/util/json/json_args.h"
|
108
|
+
#include "src/core/util/json/json_object_loader.h"
|
109
|
+
#include "src/core/util/json/json_writer.h"
|
110
110
|
#include "src/proto/grpc/lookup/v1/rls.upb.h"
|
111
111
|
|
112
112
|
using ::grpc_event_engine::experimental::EventEngine;
|
113
113
|
|
114
114
|
namespace grpc_core {
|
115
115
|
|
116
|
-
TraceFlag grpc_lb_rls_trace(false, "rls_lb");
|
117
|
-
|
118
116
|
namespace {
|
119
117
|
|
120
118
|
constexpr absl::string_view kMetricLabelRlsServerTarget =
|
@@ -128,26 +126,27 @@ constexpr absl::string_view kMetricLabelPickResult = "grpc.lb.pick_result";
|
|
128
126
|
const auto kMetricCacheSize =
|
129
127
|
GlobalInstrumentsRegistry::RegisterCallbackInt64Gauge(
|
130
128
|
"grpc.lb.rls.cache_size", "EXPERIMENTAL. Size of the RLS cache.", "By",
|
131
|
-
|
132
|
-
|
133
|
-
|
129
|
+
false)
|
130
|
+
.Labels(kMetricLabelTarget, kMetricLabelRlsServerTarget,
|
131
|
+
kMetricLabelRlsInstanceUuid)
|
132
|
+
.Build();
|
134
133
|
|
135
134
|
const auto kMetricCacheEntries =
|
136
135
|
GlobalInstrumentsRegistry::RegisterCallbackInt64Gauge(
|
137
136
|
"grpc.lb.rls.cache_entries",
|
138
|
-
"EXPERIMENTAL. Number of entries in the RLS cache.", "{entry}",
|
139
|
-
|
140
|
-
|
141
|
-
|
137
|
+
"EXPERIMENTAL. Number of entries in the RLS cache.", "{entry}", false)
|
138
|
+
.Labels(kMetricLabelTarget, kMetricLabelRlsServerTarget,
|
139
|
+
kMetricLabelRlsInstanceUuid)
|
140
|
+
.Build();
|
142
141
|
|
143
142
|
const auto kMetricDefaultTargetPicks =
|
144
143
|
GlobalInstrumentsRegistry::RegisterUInt64Counter(
|
145
144
|
"grpc.lb.rls.default_target_picks",
|
146
145
|
"EXPERIMENTAL. Number of LB picks sent to the default target.",
|
147
|
-
"{pick}",
|
148
|
-
|
149
|
-
|
150
|
-
|
146
|
+
"{pick}", false)
|
147
|
+
.Labels(kMetricLabelTarget, kMetricLabelRlsServerTarget,
|
148
|
+
kMetricRlsDataPlaneTarget, kMetricLabelPickResult)
|
149
|
+
.Build();
|
151
150
|
|
152
151
|
const auto kMetricTargetPicks =
|
153
152
|
GlobalInstrumentsRegistry::RegisterUInt64Counter(
|
@@ -156,17 +155,19 @@ const auto kMetricTargetPicks =
|
|
156
155
|
"if the default target is also returned by the RLS server, RPCs sent "
|
157
156
|
"to that target from the cache will be counted in this metric, not "
|
158
157
|
"in grpc.rls.default_target_picks.",
|
159
|
-
"{pick}",
|
160
|
-
|
161
|
-
|
162
|
-
|
158
|
+
"{pick}", false)
|
159
|
+
.Labels(kMetricLabelTarget, kMetricLabelRlsServerTarget,
|
160
|
+
kMetricRlsDataPlaneTarget, kMetricLabelPickResult)
|
161
|
+
.Build();
|
163
162
|
|
164
163
|
const auto kMetricFailedPicks =
|
165
164
|
GlobalInstrumentsRegistry::RegisterUInt64Counter(
|
166
165
|
"grpc.lb.rls.failed_picks",
|
167
166
|
"EXPERIMENTAL. Number of LB picks failed due to either a failed RLS "
|
168
167
|
"request or the RLS channel being throttled.",
|
169
|
-
"{pick}",
|
168
|
+
"{pick}", false)
|
169
|
+
.Labels(kMetricLabelTarget, kMetricLabelRlsServerTarget)
|
170
|
+
.Build();
|
170
171
|
|
171
172
|
constexpr absl::string_view kRls = "rls_experimental";
|
172
173
|
const char kGrpc[] = "grpc";
|
@@ -684,7 +685,7 @@ class RlsLb final : public LoadBalancingPolicy {
|
|
684
685
|
RefCountedPtr<RlsLb> lb_policy_;
|
685
686
|
bool is_shutdown_ = false;
|
686
687
|
|
687
|
-
|
688
|
+
RefCountedPtr<Channel> channel_;
|
688
689
|
RefCountedPtr<channelz::ChannelNode> parent_channelz_node_;
|
689
690
|
StateWatcher* watcher_ = nullptr;
|
690
691
|
Throttle throttle_ ABSL_GUARDED_BY(&RlsLb::mu_);
|
@@ -754,9 +755,9 @@ class RlsLb final : public LoadBalancingPolicy {
|
|
754
755
|
// Updates the picker in the work serializer.
|
755
756
|
void UpdatePickerLocked() ABSL_LOCKS_EXCLUDED(&mu_);
|
756
757
|
|
757
|
-
|
758
|
-
|
759
|
-
|
758
|
+
template <typename HandleType>
|
759
|
+
void MaybeExportPickCount(HandleType handle, absl::string_view target,
|
760
|
+
const PickResult& pick_result);
|
760
761
|
|
761
762
|
const std::string instance_uuid_;
|
762
763
|
|
@@ -794,8 +795,7 @@ class RlsLb final : public LoadBalancingPolicy {
|
|
794
795
|
RlsLb::ChildPolicyWrapper::ChildPolicyWrapper(RefCountedPtr<RlsLb> lb_policy,
|
795
796
|
std::string target)
|
796
797
|
: DualRefCounted<ChildPolicyWrapper>(
|
797
|
-
GRPC_TRACE_FLAG_ENABLED(
|
798
|
-
: nullptr),
|
798
|
+
GRPC_TRACE_FLAG_ENABLED(rls_lb) ? "ChildPolicyWrapper" : nullptr),
|
799
799
|
lb_policy_(std::move(lb_policy)),
|
800
800
|
target_(std::move(target)),
|
801
801
|
picker_(MakeRefCounted<QueuePicker>(nullptr)) {
|
@@ -803,7 +803,7 @@ RlsLb::ChildPolicyWrapper::ChildPolicyWrapper(RefCountedPtr<RlsLb> lb_policy,
|
|
803
803
|
}
|
804
804
|
|
805
805
|
void RlsLb::ChildPolicyWrapper::Orphaned() {
|
806
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
806
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
807
807
|
gpr_log(GPR_INFO, "[rlslb %p] ChildPolicyWrapper=%p [%s]: shutdown",
|
808
808
|
lb_policy_.get(), this, target_.c_str());
|
809
809
|
}
|
@@ -862,7 +862,7 @@ void RlsLb::ChildPolicyWrapper::StartUpdate() {
|
|
862
862
|
lb_policy_->config_->child_policy_config_target_field_name(), target_,
|
863
863
|
lb_policy_->config_->child_policy_config(), &errors);
|
864
864
|
CHECK(child_policy_config.has_value());
|
865
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
865
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
866
866
|
gpr_log(
|
867
867
|
GPR_INFO,
|
868
868
|
"[rlslb %p] ChildPolicyWrapper=%p [%s]: validating update, config: %s",
|
@@ -874,7 +874,7 @@ void RlsLb::ChildPolicyWrapper::StartUpdate() {
|
|
874
874
|
*child_policy_config);
|
875
875
|
// Returned RLS target fails the validation.
|
876
876
|
if (!config.ok()) {
|
877
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
877
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
878
878
|
gpr_log(GPR_INFO,
|
879
879
|
"[rlslb %p] ChildPolicyWrapper=%p [%s]: config failed to parse: "
|
880
880
|
"%s",
|
@@ -902,8 +902,8 @@ absl::Status RlsLb::ChildPolicyWrapper::MaybeFinishUpdate() {
|
|
902
902
|
WeakRef(DEBUG_LOCATION, "ChildPolicyHelper"));
|
903
903
|
create_args.args = lb_policy_->channel_args_;
|
904
904
|
child_policy_ = MakeOrphanable<ChildPolicyHandler>(std::move(create_args),
|
905
|
-
&
|
906
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
905
|
+
&rls_lb_trace);
|
906
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
907
907
|
gpr_log(GPR_INFO,
|
908
908
|
"[rlslb %p] ChildPolicyWrapper=%p [%s], created new child policy "
|
909
909
|
"handler %p",
|
@@ -913,7 +913,7 @@ absl::Status RlsLb::ChildPolicyWrapper::MaybeFinishUpdate() {
|
|
913
913
|
lb_policy_->interested_parties());
|
914
914
|
}
|
915
915
|
// Send the child the updated config.
|
916
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
916
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
917
917
|
gpr_log(GPR_INFO,
|
918
918
|
"[rlslb %p] ChildPolicyWrapper=%p [%s], updating child policy "
|
919
919
|
"handler %p",
|
@@ -933,7 +933,7 @@ absl::Status RlsLb::ChildPolicyWrapper::MaybeFinishUpdate() {
|
|
933
933
|
void RlsLb::ChildPolicyWrapper::ChildPolicyHelper::UpdateState(
|
934
934
|
grpc_connectivity_state state, const absl::Status& status,
|
935
935
|
RefCountedPtr<SubchannelPicker> picker) {
|
936
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
936
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
937
937
|
gpr_log(GPR_INFO,
|
938
938
|
"[rlslb %p] ChildPolicyWrapper=%p [%s] ChildPolicyHelper=%p: "
|
939
939
|
"UpdateState(state=%s, status=%s, picker=%p)",
|
@@ -1041,7 +1041,7 @@ LoadBalancingPolicy::PickResult RlsLb::Picker::Pick(PickArgs args) {
|
|
1041
1041
|
BuildKeyMap(config_->key_builder_map(), args.path,
|
1042
1042
|
lb_policy_->channel_control_helper()->GetAuthority(),
|
1043
1043
|
args.initial_metadata)};
|
1044
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1044
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1045
1045
|
gpr_log(GPR_INFO, "[rlslb %p] picker=%p: request keys: %s",
|
1046
1046
|
lb_policy_.get(), this, key.ToString().c_str());
|
1047
1047
|
}
|
@@ -1079,7 +1079,7 @@ LoadBalancingPolicy::PickResult RlsLb::Picker::Pick(PickArgs args) {
|
|
1079
1079
|
if (entry != nullptr) {
|
1080
1080
|
// If the entry has non-expired data, use it.
|
1081
1081
|
if (entry->data_expiration_time() >= now) {
|
1082
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1082
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1083
1083
|
gpr_log(GPR_INFO, "[rlslb %p] picker=%p: using cache entry %p",
|
1084
1084
|
lb_policy_.get(), this, entry);
|
1085
1085
|
}
|
@@ -1095,7 +1095,7 @@ LoadBalancingPolicy::PickResult RlsLb::Picker::Pick(PickArgs args) {
|
|
1095
1095
|
}
|
1096
1096
|
}
|
1097
1097
|
// RLS call pending. Queue the pick.
|
1098
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1098
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1099
1099
|
gpr_log(GPR_INFO, "[rlslb %p] picker=%p: RLS request pending; queuing pick",
|
1100
1100
|
lb_policy_.get(), this);
|
1101
1101
|
}
|
@@ -1105,7 +1105,7 @@ LoadBalancingPolicy::PickResult RlsLb::Picker::Pick(PickArgs args) {
|
|
1105
1105
|
LoadBalancingPolicy::PickResult RlsLb::Picker::PickFromDefaultTargetOrFail(
|
1106
1106
|
const char* reason, PickArgs args, absl::Status status) {
|
1107
1107
|
if (default_child_policy_ != nullptr) {
|
1108
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1108
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1109
1109
|
gpr_log(GPR_INFO, "[rlslb %p] picker=%p: %s; using default target",
|
1110
1110
|
lb_policy_.get(), this, reason);
|
1111
1111
|
}
|
@@ -1114,7 +1114,7 @@ LoadBalancingPolicy::PickResult RlsLb::Picker::PickFromDefaultTargetOrFail(
|
|
1114
1114
|
config_->default_target(), pick_result);
|
1115
1115
|
return pick_result;
|
1116
1116
|
}
|
1117
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1117
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1118
1118
|
gpr_log(GPR_INFO, "[rlslb %p] picker=%p: %s; failing pick",
|
1119
1119
|
lb_policy_.get(), this, reason);
|
1120
1120
|
}
|
@@ -1151,7 +1151,7 @@ void RlsLb::Cache::Entry::BackoffTimer::Orphan() {
|
|
1151
1151
|
if (backoff_timer_task_handle_.has_value() &&
|
1152
1152
|
entry_->lb_policy_->channel_control_helper()->GetEventEngine()->Cancel(
|
1153
1153
|
*backoff_timer_task_handle_)) {
|
1154
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1154
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1155
1155
|
gpr_log(GPR_INFO, "[rlslb %p] cache entry=%p %s, backoff timer canceled",
|
1156
1156
|
entry_->lb_policy_.get(), entry_.get(),
|
1157
1157
|
entry_->is_shutdown_ ? "(shut down)"
|
@@ -1165,7 +1165,7 @@ void RlsLb::Cache::Entry::BackoffTimer::Orphan() {
|
|
1165
1165
|
void RlsLb::Cache::Entry::BackoffTimer::OnBackoffTimerLocked() {
|
1166
1166
|
{
|
1167
1167
|
MutexLock lock(&entry_->lb_policy_->mu_);
|
1168
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1168
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1169
1169
|
gpr_log(GPR_INFO, "[rlslb %p] cache entry=%p %s, backoff timer fired",
|
1170
1170
|
entry_->lb_policy_.get(), entry_.get(),
|
1171
1171
|
entry_->is_shutdown_ ? "(shut down)"
|
@@ -1195,8 +1195,8 @@ std::unique_ptr<BackOff> MakeCacheEntryBackoff() {
|
|
1195
1195
|
|
1196
1196
|
RlsLb::Cache::Entry::Entry(RefCountedPtr<RlsLb> lb_policy,
|
1197
1197
|
const RequestKey& key)
|
1198
|
-
: InternallyRefCounted<Entry>(
|
1199
|
-
|
1198
|
+
: InternallyRefCounted<Entry>(GRPC_TRACE_FLAG_ENABLED(rls_lb) ? "CacheEntry"
|
1199
|
+
: nullptr),
|
1200
1200
|
lb_policy_(std::move(lb_policy)),
|
1201
1201
|
backoff_state_(MakeCacheEntryBackoff()),
|
1202
1202
|
min_expiration_time_(Timestamp::Now() + kMinExpirationTime),
|
@@ -1204,7 +1204,7 @@ RlsLb::Cache::Entry::Entry(RefCountedPtr<RlsLb> lb_policy,
|
|
1204
1204
|
lb_policy_->cache_.lru_list_.end(), key)) {}
|
1205
1205
|
|
1206
1206
|
void RlsLb::Cache::Entry::Orphan() {
|
1207
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1207
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1208
1208
|
gpr_log(GPR_INFO, "[rlslb %p] cache entry=%p %s: cache entry evicted",
|
1209
1209
|
lb_policy_.get(), this, lru_iterator_->ToString().c_str());
|
1210
1210
|
}
|
@@ -1235,7 +1235,7 @@ LoadBalancingPolicy::PickResult RlsLb::Cache::Entry::Pick(PickArgs args) {
|
|
1235
1235
|
if (child_policy_wrapper->connectivity_state() ==
|
1236
1236
|
GRPC_CHANNEL_TRANSIENT_FAILURE &&
|
1237
1237
|
i < child_policy_wrappers_.size() - 1) {
|
1238
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1238
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1239
1239
|
gpr_log(GPR_INFO,
|
1240
1240
|
"[rlslb %p] cache entry=%p %s: target %s (%" PRIuPTR
|
1241
1241
|
" of %" PRIuPTR ") in state TRANSIENT_FAILURE; skipping",
|
@@ -1249,7 +1249,7 @@ LoadBalancingPolicy::PickResult RlsLb::Cache::Entry::Pick(PickArgs args) {
|
|
1249
1249
|
}
|
1250
1250
|
// Child policy not in TRANSIENT_FAILURE or is the last target in
|
1251
1251
|
// the list, so delegate.
|
1252
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1252
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1253
1253
|
gpr_log(GPR_INFO,
|
1254
1254
|
"[rlslb %p] cache entry=%p %s: target %s (%" PRIuPTR " of %" PRIuPTR
|
1255
1255
|
") in state %s; delegating",
|
@@ -1406,14 +1406,14 @@ RlsLb::Cache::Entry* RlsLb::Cache::FindOrInsert(const RequestKey& key) {
|
|
1406
1406
|
lb_policy_->RefAsSubclass<RlsLb>(DEBUG_LOCATION, "CacheEntry"), key);
|
1407
1407
|
map_.emplace(key, OrphanablePtr<Entry>(entry));
|
1408
1408
|
size_ += entry_size;
|
1409
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1409
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1410
1410
|
gpr_log(GPR_INFO, "[rlslb %p] key=%s: cache entry added, entry=%p",
|
1411
1411
|
lb_policy_, key.ToString().c_str(), entry);
|
1412
1412
|
}
|
1413
1413
|
return entry;
|
1414
1414
|
}
|
1415
1415
|
// Entry found, so use it.
|
1416
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1416
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1417
1417
|
gpr_log(GPR_INFO, "[rlslb %p] key=%s: found cache entry %p", lb_policy_,
|
1418
1418
|
key.ToString().c_str(), it->second.get());
|
1419
1419
|
}
|
@@ -1422,7 +1422,7 @@ RlsLb::Cache::Entry* RlsLb::Cache::FindOrInsert(const RequestKey& key) {
|
|
1422
1422
|
}
|
1423
1423
|
|
1424
1424
|
void RlsLb::Cache::Resize(size_t bytes) {
|
1425
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1425
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1426
1426
|
gpr_log(GPR_INFO, "[rlslb %p] resizing cache to %" PRIuPTR " bytes",
|
1427
1427
|
lb_policy_, bytes);
|
1428
1428
|
}
|
@@ -1443,7 +1443,7 @@ void RlsLb::Cache::Shutdown() {
|
|
1443
1443
|
if (cleanup_timer_handle_.has_value() &&
|
1444
1444
|
lb_policy_->channel_control_helper()->GetEventEngine()->Cancel(
|
1445
1445
|
*cleanup_timer_handle_)) {
|
1446
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1446
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1447
1447
|
gpr_log(GPR_INFO, "[rlslb %p] cache cleanup timer canceled", lb_policy_);
|
1448
1448
|
}
|
1449
1449
|
}
|
@@ -1481,7 +1481,7 @@ void RlsLb::Cache::StartCleanupTimer() {
|
|
1481
1481
|
}
|
1482
1482
|
|
1483
1483
|
void RlsLb::Cache::OnCleanupTimer() {
|
1484
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1484
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1485
1485
|
gpr_log(GPR_INFO, "[rlslb %p] cache cleanup timer fired", lb_policy_);
|
1486
1486
|
}
|
1487
1487
|
MutexLock lock(&lb_policy_->mu_);
|
@@ -1510,14 +1510,14 @@ void RlsLb::Cache::MaybeShrinkSize(size_t bytes) {
|
|
1510
1510
|
auto map_it = map_.find(*lru_it);
|
1511
1511
|
CHECK(map_it != map_.end());
|
1512
1512
|
if (!map_it->second->CanEvict()) break;
|
1513
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1513
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1514
1514
|
gpr_log(GPR_INFO, "[rlslb %p] LRU eviction: removing entry %p %s",
|
1515
1515
|
lb_policy_, map_it->second.get(), lru_it->ToString().c_str());
|
1516
1516
|
}
|
1517
1517
|
size_ -= map_it->second->Size();
|
1518
1518
|
map_.erase(map_it);
|
1519
1519
|
}
|
1520
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1520
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1521
1521
|
gpr_log(GPR_INFO,
|
1522
1522
|
"[rlslb %p] LRU pass complete: desired size=%" PRIuPTR
|
1523
1523
|
" size=%" PRIuPTR,
|
@@ -1532,7 +1532,7 @@ void RlsLb::Cache::MaybeShrinkSize(size_t bytes) {
|
|
1532
1532
|
void RlsLb::RlsChannel::StateWatcher::OnConnectivityStateChange(
|
1533
1533
|
grpc_connectivity_state new_state, const absl::Status& status) {
|
1534
1534
|
auto* lb_policy = rls_channel_->lb_policy_.get();
|
1535
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1535
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1536
1536
|
gpr_log(GPR_INFO,
|
1537
1537
|
"[rlslb %p] RlsChannel=%p StateWatcher=%p: "
|
1538
1538
|
"state changed to %s (%s)",
|
@@ -1597,7 +1597,7 @@ void RlsLb::RlsChannel::Throttle::RegisterResponse(bool success) {
|
|
1597
1597
|
|
1598
1598
|
RlsLb::RlsChannel::RlsChannel(RefCountedPtr<RlsLb> lb_policy)
|
1599
1599
|
: InternallyRefCounted<RlsChannel>(
|
1600
|
-
GRPC_TRACE_FLAG_ENABLED(
|
1600
|
+
GRPC_TRACE_FLAG_ENABLED(rls_lb) ? "RlsChannel" : nullptr),
|
1601
1601
|
lb_policy_(std::move(lb_policy)) {
|
1602
1602
|
// Get channel creds from parent channel.
|
1603
1603
|
// Note that we are using the "unsafe" channel creds here, which do
|
@@ -1631,7 +1631,7 @@ RlsLb::RlsChannel::RlsChannel(RefCountedPtr<RlsLb> lb_policy)
|
|
1631
1631
|
channel_.reset(Channel::FromC(
|
1632
1632
|
grpc_channel_create(lb_policy_->config_->lookup_service().c_str(),
|
1633
1633
|
creds.get(), args.ToC().get())));
|
1634
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1634
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1635
1635
|
gpr_log(GPR_INFO, "[rlslb %p] RlsChannel=%p: created channel %p for %s",
|
1636
1636
|
lb_policy_.get(), this, channel_.get(),
|
1637
1637
|
lb_policy_->config_->lookup_service().c_str());
|
@@ -1654,7 +1654,7 @@ RlsLb::RlsChannel::RlsChannel(RefCountedPtr<RlsLb> lb_policy)
|
|
1654
1654
|
}
|
1655
1655
|
|
1656
1656
|
void RlsLb::RlsChannel::Orphan() {
|
1657
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1657
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1658
1658
|
gpr_log(GPR_INFO, "[rlslb %p] RlsChannel=%p, channel=%p: shutdown",
|
1659
1659
|
lb_policy_.get(), this, channel_.get());
|
1660
1660
|
}
|
@@ -1713,14 +1713,14 @@ RlsLb::RlsRequest::RlsRequest(RefCountedPtr<RlsLb> lb_policy, RequestKey key,
|
|
1713
1713
|
grpc_lookup_v1_RouteLookupRequest_Reason reason,
|
1714
1714
|
std::string stale_header_data)
|
1715
1715
|
: InternallyRefCounted<RlsRequest>(
|
1716
|
-
GRPC_TRACE_FLAG_ENABLED(
|
1716
|
+
GRPC_TRACE_FLAG_ENABLED(rls_lb) ? "RlsRequest" : nullptr),
|
1717
1717
|
lb_policy_(std::move(lb_policy)),
|
1718
1718
|
key_(std::move(key)),
|
1719
1719
|
rls_channel_(std::move(rls_channel)),
|
1720
1720
|
backoff_state_(std::move(backoff_state)),
|
1721
1721
|
reason_(reason),
|
1722
1722
|
stale_header_data_(std::move(stale_header_data)) {
|
1723
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1723
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1724
1724
|
gpr_log(GPR_INFO,
|
1725
1725
|
"[rlslb %p] rls_request=%p: RLS request created for key %s",
|
1726
1726
|
lb_policy_.get(), this, key_.ToString().c_str());
|
@@ -1737,7 +1737,7 @@ RlsLb::RlsRequest::~RlsRequest() { CHECK_EQ(call_, nullptr); }
|
|
1737
1737
|
|
1738
1738
|
void RlsLb::RlsRequest::Orphan() {
|
1739
1739
|
if (call_ != nullptr) {
|
1740
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1740
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1741
1741
|
gpr_log(GPR_INFO, "[rlslb %p] rls_request=%p %s: cancelling RLS call",
|
1742
1742
|
lb_policy_.get(), this, key_.ToString().c_str());
|
1743
1743
|
}
|
@@ -1810,7 +1810,7 @@ void RlsLb::RlsRequest::OnRlsCallComplete(void* arg, grpc_error_handle error) {
|
|
1810
1810
|
}
|
1811
1811
|
|
1812
1812
|
void RlsLb::RlsRequest::OnRlsCallCompleteLocked(grpc_error_handle error) {
|
1813
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1813
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1814
1814
|
std::string status_message(StringViewFromSlice(status_details_recv_));
|
1815
1815
|
gpr_log(GPR_INFO,
|
1816
1816
|
"[rlslb %p] rls_request=%p %s, error=%s, status={%d, %s} RLS call "
|
@@ -1843,7 +1843,7 @@ void RlsLb::RlsRequest::OnRlsCallCompleteLocked(grpc_error_handle error) {
|
|
1843
1843
|
grpc_call_unref(call_);
|
1844
1844
|
call_ = nullptr;
|
1845
1845
|
// Return result to cache.
|
1846
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1846
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1847
1847
|
gpr_log(GPR_INFO, "[rlslb %p] rls_request=%p %s: response info: %s",
|
1848
1848
|
lb_policy_.get(), this, key_.ToString().c_str(),
|
1849
1849
|
response.ToString().c_str());
|
@@ -1961,8 +1961,8 @@ RlsLb::RlsLb(Args args)
|
|
1961
1961
|
MutexLock lock(&mu_);
|
1962
1962
|
cache_.ReportMetricsLocked(reporter);
|
1963
1963
|
},
|
1964
|
-
|
1965
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1964
|
+
Duration::Seconds(5), kMetricCacheSize, kMetricCacheEntries)) {
|
1965
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1966
1966
|
gpr_log(GPR_INFO, "[rlslb %p] policy created", this);
|
1967
1967
|
}
|
1968
1968
|
}
|
@@ -1989,14 +1989,14 @@ bool EndpointsEqual(
|
|
1989
1989
|
}
|
1990
1990
|
|
1991
1991
|
absl::Status RlsLb::UpdateLocked(UpdateArgs args) {
|
1992
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1992
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
1993
1993
|
gpr_log(GPR_INFO, "[rlslb %p] policy updated", this);
|
1994
1994
|
}
|
1995
1995
|
update_in_progress_ = true;
|
1996
1996
|
// Swap out config.
|
1997
1997
|
RefCountedPtr<RlsLbConfig> old_config = std::move(config_);
|
1998
1998
|
config_ = args.config.TakeAsSubclass<RlsLbConfig>();
|
1999
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1999
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb) &&
|
2000
2000
|
(old_config == nullptr ||
|
2001
2001
|
old_config->child_policy_config() != config_->child_policy_config())) {
|
2002
2002
|
gpr_log(GPR_INFO, "[rlslb %p] updated child policy config: %s", this,
|
@@ -2024,14 +2024,14 @@ absl::Status RlsLb::UpdateLocked(UpdateArgs args) {
|
|
2024
2024
|
if (old_config == nullptr ||
|
2025
2025
|
config_->default_target() != old_config->default_target()) {
|
2026
2026
|
if (config_->default_target().empty()) {
|
2027
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2027
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
2028
2028
|
gpr_log(GPR_INFO, "[rlslb %p] unsetting default target", this);
|
2029
2029
|
}
|
2030
2030
|
default_child_policy_.reset();
|
2031
2031
|
} else {
|
2032
2032
|
auto it = child_policy_map_.find(config_->default_target());
|
2033
2033
|
if (it == child_policy_map_.end()) {
|
2034
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2034
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
2035
2035
|
gpr_log(GPR_INFO, "[rlslb %p] creating new default target", this);
|
2036
2036
|
}
|
2037
2037
|
default_child_policy_ = MakeRefCounted<ChildPolicyWrapper>(
|
@@ -2039,7 +2039,7 @@ absl::Status RlsLb::UpdateLocked(UpdateArgs args) {
|
|
2039
2039
|
config_->default_target());
|
2040
2040
|
created_default_child = true;
|
2041
2041
|
} else {
|
2042
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2042
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
2043
2043
|
gpr_log(GPR_INFO,
|
2044
2044
|
"[rlslb %p] using existing child for default target", this);
|
2045
2045
|
}
|
@@ -2064,14 +2064,14 @@ absl::Status RlsLb::UpdateLocked(UpdateArgs args) {
|
|
2064
2064
|
}
|
2065
2065
|
// Start update of child policies if needed.
|
2066
2066
|
if (update_child_policies) {
|
2067
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2067
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
2068
2068
|
gpr_log(GPR_INFO, "[rlslb %p] starting child policy updates", this);
|
2069
2069
|
}
|
2070
2070
|
for (auto& p : child_policy_map_) {
|
2071
2071
|
p.second->StartUpdate();
|
2072
2072
|
}
|
2073
2073
|
} else if (created_default_child) {
|
2074
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2074
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
2075
2075
|
gpr_log(GPR_INFO, "[rlslb %p] starting default child policy update",
|
2076
2076
|
this);
|
2077
2077
|
}
|
@@ -2081,7 +2081,7 @@ absl::Status RlsLb::UpdateLocked(UpdateArgs args) {
|
|
2081
2081
|
// Now that we've released the lock, finish update of child policies.
|
2082
2082
|
std::vector<std::string> errors;
|
2083
2083
|
if (update_child_policies) {
|
2084
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2084
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
2085
2085
|
gpr_log(GPR_INFO, "[rlslb %p] finishing child policy updates", this);
|
2086
2086
|
}
|
2087
2087
|
for (auto& p : child_policy_map_) {
|
@@ -2092,7 +2092,7 @@ absl::Status RlsLb::UpdateLocked(UpdateArgs args) {
|
|
2092
2092
|
}
|
2093
2093
|
}
|
2094
2094
|
} else if (created_default_child) {
|
2095
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2095
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
2096
2096
|
gpr_log(GPR_INFO, "[rlslb %p] finishing default child policy update",
|
2097
2097
|
this);
|
2098
2098
|
}
|
@@ -2137,7 +2137,7 @@ void RlsLb::ResetBackoffLocked() {
|
|
2137
2137
|
}
|
2138
2138
|
|
2139
2139
|
void RlsLb::ShutdownLocked() {
|
2140
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2140
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
2141
2141
|
gpr_log(GPR_INFO, "[rlslb %p] policy shutdown", this);
|
2142
2142
|
}
|
2143
2143
|
registered_metric_callback_.reset();
|
@@ -2181,7 +2181,7 @@ void RlsLb::UpdatePickerLocked() {
|
|
2181
2181
|
// all children. This avoids unnecessary picker churn while an update
|
2182
2182
|
// is being propagated to our children.
|
2183
2183
|
if (update_in_progress_) return;
|
2184
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2184
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
2185
2185
|
gpr_log(GPR_INFO, "[rlslb %p] updating picker", this);
|
2186
2186
|
}
|
2187
2187
|
grpc_connectivity_state state = GRPC_CHANNEL_IDLE;
|
@@ -2194,7 +2194,7 @@ void RlsLb::UpdatePickerLocked() {
|
|
2194
2194
|
if (is_shutdown_) return;
|
2195
2195
|
for (auto& p : child_policy_map_) {
|
2196
2196
|
grpc_connectivity_state child_state = p.second->connectivity_state();
|
2197
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2197
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
2198
2198
|
gpr_log(GPR_INFO, "[rlslb %p] target %s in state %s", this,
|
2199
2199
|
p.second->target().c_str(),
|
2200
2200
|
ConnectivityStateName(child_state));
|
@@ -2217,7 +2217,7 @@ void RlsLb::UpdatePickerLocked() {
|
|
2217
2217
|
}
|
2218
2218
|
}
|
2219
2219
|
}
|
2220
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2220
|
+
if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
|
2221
2221
|
gpr_log(GPR_INFO, "[rlslb %p] reporting state %s", this,
|
2222
2222
|
ConnectivityStateName(state));
|
2223
2223
|
}
|
@@ -2230,9 +2230,9 @@ void RlsLb::UpdatePickerLocked() {
|
|
2230
2230
|
MakeRefCounted<Picker>(RefAsSubclass<RlsLb>(DEBUG_LOCATION, "Picker")));
|
2231
2231
|
}
|
2232
2232
|
|
2233
|
-
|
2234
|
-
|
2235
|
-
|
2233
|
+
template <typename HandleType>
|
2234
|
+
void RlsLb::MaybeExportPickCount(HandleType handle, absl::string_view target,
|
2235
|
+
const PickResult& pick_result) {
|
2236
2236
|
absl::string_view pick_result_string = Match(
|
2237
2237
|
pick_result.result,
|
2238
2238
|
[](const LoadBalancingPolicy::PickResult::Complete&) {
|