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
@@ -39,7 +39,6 @@
|
|
39
39
|
#include <grpc/support/port_platform.h>
|
40
40
|
#include <grpc/support/time.h>
|
41
41
|
|
42
|
-
#include "src/core/lib/channel/context.h"
|
43
42
|
#include "src/core/lib/debug/trace.h"
|
44
43
|
#include "src/core/lib/gprpp/orphanable.h"
|
45
44
|
#include "src/core/lib/gprpp/ref_counted.h"
|
@@ -55,6 +54,7 @@
|
|
55
54
|
#include "src/core/lib/promise/pipe.h"
|
56
55
|
#include "src/core/lib/resource_quota/arena.h"
|
57
56
|
#include "src/core/lib/slice/slice_buffer.h"
|
57
|
+
#include "src/core/lib/transport/call_destination.h"
|
58
58
|
#include "src/core/lib/transport/call_final_info.h"
|
59
59
|
#include "src/core/lib/transport/call_spine.h"
|
60
60
|
#include "src/core/lib/transport/connectivity_state.h"
|
@@ -163,8 +163,6 @@ using NextPromiseFactory =
|
|
163
163
|
// for a stream.
|
164
164
|
typedef struct grpc_stream grpc_stream;
|
165
165
|
|
166
|
-
extern grpc_core::DebugOnlyTraceFlag grpc_trace_stream_refcount;
|
167
|
-
|
168
166
|
typedef struct grpc_stream_refcount {
|
169
167
|
grpc_core::RefCount refs;
|
170
168
|
grpc_closure destroy;
|
@@ -192,7 +190,7 @@ void grpc_stream_ref_init(grpc_stream_refcount* refcount, int initial_refs,
|
|
192
190
|
#ifndef NDEBUG
|
193
191
|
inline void grpc_stream_ref(grpc_stream_refcount* refcount,
|
194
192
|
const char* reason) {
|
195
|
-
if (
|
193
|
+
if (GRPC_TRACE_FLAG_ENABLED(stream_refcount)) {
|
196
194
|
gpr_log(GPR_DEBUG, "%s %p:%p REF %s", refcount->object_type, refcount,
|
197
195
|
refcount->destroy.cb_arg, reason);
|
198
196
|
}
|
@@ -209,7 +207,7 @@ void grpc_stream_destroy(grpc_stream_refcount* refcount);
|
|
209
207
|
#ifndef NDEBUG
|
210
208
|
inline void grpc_stream_unref(grpc_stream_refcount* refcount,
|
211
209
|
const char* reason) {
|
212
|
-
if (
|
210
|
+
if (GRPC_TRACE_FLAG_ENABLED(stream_refcount)) {
|
213
211
|
gpr_log(GPR_DEBUG, "%s %p:%p UNREF %s", refcount->object_type, refcount,
|
214
212
|
refcount->destroy.cb_arg, reason);
|
215
213
|
}
|
@@ -318,9 +316,6 @@ struct grpc_transport_stream_op_batch {
|
|
318
316
|
};
|
319
317
|
|
320
318
|
struct grpc_transport_stream_op_batch_payload {
|
321
|
-
explicit grpc_transport_stream_op_batch_payload(
|
322
|
-
grpc_call_context_element* context)
|
323
|
-
: context(context) {}
|
324
319
|
struct {
|
325
320
|
grpc_metadata_batch* send_initial_metadata = nullptr;
|
326
321
|
} send_initial_metadata;
|
@@ -410,9 +405,6 @@ struct grpc_transport_stream_op_batch_payload {
|
|
410
405
|
// initial metadata.
|
411
406
|
bool tarpit = false;
|
412
407
|
} cancel_stream;
|
413
|
-
|
414
|
-
// Indexes correspond to grpc_context_index enum values
|
415
|
-
grpc_call_context_element* context;
|
416
408
|
};
|
417
409
|
|
418
410
|
/// Transport op: a set of operations to perform on a transport as a whole
|
@@ -481,6 +473,15 @@ typedef struct grpc_transport_op {
|
|
481
473
|
grpc_handler_private_op_data handler_private;
|
482
474
|
} grpc_transport_op;
|
483
475
|
|
476
|
+
// Allocate a grpc_transport_op, and preconfigure the on_complete closure to
|
477
|
+
// \a on_complete and then delete the returned transport op
|
478
|
+
grpc_transport_op* grpc_make_transport_op(grpc_closure* on_complete);
|
479
|
+
// Allocate a grpc_transport_stream_op_batch, and preconfigure the on_complete
|
480
|
+
// closure
|
481
|
+
// to \a on_complete and then delete the returned transport op
|
482
|
+
grpc_transport_stream_op_batch* grpc_make_transport_stream_op(
|
483
|
+
grpc_closure* on_complete);
|
484
|
+
|
484
485
|
void grpc_transport_stream_op_batch_finish_with_failure(
|
485
486
|
grpc_transport_stream_op_batch* batch, grpc_error_handle error,
|
486
487
|
grpc_core::CallCombiner* call_combiner);
|
@@ -502,11 +503,26 @@ class FilterStackTransport;
|
|
502
503
|
class ClientTransport;
|
503
504
|
class ServerTransport;
|
504
505
|
|
505
|
-
class Transport : public
|
506
|
+
class Transport : public InternallyRefCounted<Transport> {
|
506
507
|
public:
|
507
508
|
struct RawPointerChannelArgTag {};
|
508
509
|
static absl::string_view ChannelArgName() { return GRPC_ARG_TRANSPORT; }
|
509
510
|
|
511
|
+
// Though internally ref counted transports expose their "Ref" method to
|
512
|
+
// create a RefCountedPtr to themselves. The OrphanablePtr owner is the
|
513
|
+
// singleton decision maker on whether the transport should be destroyed or
|
514
|
+
// not.
|
515
|
+
// TODO(ctiller): consider moving to a DualRefCounted model (with the
|
516
|
+
// disadvantage that we would accidentally have many strong owners which is
|
517
|
+
// unnecessary for this type).
|
518
|
+
RefCountedPtr<Transport> Ref() {
|
519
|
+
return InternallyRefCounted<Transport>::Ref();
|
520
|
+
}
|
521
|
+
template <typename T>
|
522
|
+
RefCountedPtr<T> RefAsSubclass() {
|
523
|
+
return InternallyRefCounted<Transport>::RefAsSubclass<T>();
|
524
|
+
}
|
525
|
+
|
510
526
|
virtual FilterStackTransport* filter_stack_transport() = 0;
|
511
527
|
virtual ClientTransport* client_transport() = 0;
|
512
528
|
virtual ServerTransport* server_transport() = 0;
|
@@ -527,8 +543,19 @@ class Transport : public Orphanable {
|
|
527
543
|
// implementation of grpc_transport_perform_op
|
528
544
|
virtual void PerformOp(grpc_transport_op* op) = 0;
|
529
545
|
|
530
|
-
|
531
|
-
|
546
|
+
void StartConnectivityWatch(
|
547
|
+
OrphanablePtr<ConnectivityStateWatcherInterface> watcher) {
|
548
|
+
grpc_transport_op* op = grpc_make_transport_op(nullptr);
|
549
|
+
op->start_connectivity_watch = std::move(watcher);
|
550
|
+
PerformOp(op);
|
551
|
+
}
|
552
|
+
|
553
|
+
void DisconnectWithError(grpc_error_handle error) {
|
554
|
+
CHECK(!error.ok()) << error;
|
555
|
+
grpc_transport_op* op = grpc_make_transport_op(nullptr);
|
556
|
+
op->disconnect_with_error = error;
|
557
|
+
PerformOp(op);
|
558
|
+
}
|
532
559
|
};
|
533
560
|
|
534
561
|
class FilterStackTransport : public Transport {
|
@@ -582,24 +609,9 @@ class ClientTransport : public Transport {
|
|
582
609
|
|
583
610
|
class ServerTransport : public Transport {
|
584
611
|
public:
|
585
|
-
// Acceptor helps transports create calls.
|
586
|
-
class Acceptor {
|
587
|
-
public:
|
588
|
-
// Returns an arena that can be used to allocate memory for initial metadata
|
589
|
-
// parsing, and later passed to CreateCall() as the underlying arena for
|
590
|
-
// that call.
|
591
|
-
virtual Arena* CreateArena() = 0;
|
592
|
-
// Create a call at the server (or fail)
|
593
|
-
// arena must have been previously allocated by CreateArena()
|
594
|
-
virtual absl::StatusOr<CallInitiator> CreateCall(
|
595
|
-
ClientMetadataHandle client_initial_metadata, Arena* arena) = 0;
|
596
|
-
|
597
|
-
protected:
|
598
|
-
~Acceptor() = default;
|
599
|
-
};
|
600
|
-
|
601
612
|
// Called once slightly after transport setup to register the accept function.
|
602
|
-
virtual void
|
613
|
+
virtual void SetCallDestination(
|
614
|
+
RefCountedPtr<UnstartedCallDestination> unstarted_call_handler) = 0;
|
603
615
|
|
604
616
|
protected:
|
605
617
|
~ServerTransport() override = default;
|
@@ -607,15 +619,6 @@ class ServerTransport : public Transport {
|
|
607
619
|
|
608
620
|
} // namespace grpc_core
|
609
621
|
|
610
|
-
// Allocate a grpc_transport_op, and preconfigure the on_complete closure to
|
611
|
-
// \a on_complete and then delete the returned transport op
|
612
|
-
grpc_transport_op* grpc_make_transport_op(grpc_closure* on_complete);
|
613
|
-
// Allocate a grpc_transport_stream_op_batch, and preconfigure the on_complete
|
614
|
-
// closure
|
615
|
-
// to \a on_complete and then delete the returned transport op
|
616
|
-
grpc_transport_stream_op_batch* grpc_make_transport_stream_op(
|
617
|
-
grpc_closure* on_complete);
|
618
|
-
|
619
622
|
namespace grpc_core {
|
620
623
|
// This is the key to be used for loading/storing keepalive_throttling in the
|
621
624
|
// absl::Status object.
|
@@ -67,7 +67,7 @@ class ChildPolicyHandler::Helper final
|
|
67
67
|
// it reports something other than CONNECTING, at which point we swap it
|
68
68
|
// into place.
|
69
69
|
if (CalledByPendingChild()) {
|
70
|
-
if (
|
70
|
+
if (GRPC_TRACE_FLAG_ENABLED_OBJ(*(parent()->tracer_))) {
|
71
71
|
gpr_log(GPR_INFO,
|
72
72
|
"[child_policy_handler %p] helper %p: pending child policy %p "
|
73
73
|
"reports state=%s (%s)",
|
@@ -97,7 +97,7 @@ class ChildPolicyHandler::Helper final
|
|
97
97
|
? parent()->pending_child_policy_.get()
|
98
98
|
: parent()->child_policy_.get();
|
99
99
|
if (child_ != latest_child_policy) return;
|
100
|
-
if (
|
100
|
+
if (GRPC_TRACE_FLAG_ENABLED_OBJ(*(parent()->tracer_))) {
|
101
101
|
gpr_log(GPR_INFO, "[child_policy_handler %p] requesting re-resolution",
|
102
102
|
parent());
|
103
103
|
}
|
@@ -132,12 +132,12 @@ class ChildPolicyHandler::Helper final
|
|
132
132
|
//
|
133
133
|
|
134
134
|
void ChildPolicyHandler::ShutdownLocked() {
|
135
|
-
if (
|
135
|
+
if (GRPC_TRACE_FLAG_ENABLED_OBJ(*tracer_)) {
|
136
136
|
gpr_log(GPR_INFO, "[child_policy_handler %p] shutting down", this);
|
137
137
|
}
|
138
138
|
shutting_down_ = true;
|
139
139
|
if (child_policy_ != nullptr) {
|
140
|
-
if (
|
140
|
+
if (GRPC_TRACE_FLAG_ENABLED_OBJ(*tracer_)) {
|
141
141
|
gpr_log(GPR_INFO, "[child_policy_handler %p] shutting down lb_policy %p",
|
142
142
|
this, child_policy_.get());
|
143
143
|
}
|
@@ -146,7 +146,7 @@ void ChildPolicyHandler::ShutdownLocked() {
|
|
146
146
|
child_policy_.reset();
|
147
147
|
}
|
148
148
|
if (pending_child_policy_ != nullptr) {
|
149
|
-
if (
|
149
|
+
if (GRPC_TRACE_FLAG_ENABLED_OBJ(*tracer_)) {
|
150
150
|
gpr_log(GPR_INFO,
|
151
151
|
"[child_policy_handler %p] shutting down pending lb_policy %p",
|
152
152
|
this, pending_child_policy_.get());
|
@@ -223,7 +223,7 @@ absl::Status ChildPolicyHandler::UpdateLocked(UpdateArgs args) {
|
|
223
223
|
// that there's an upper bound on the amount of time it takes us to
|
224
224
|
// switch to the new policy, even if the new policy stays in
|
225
225
|
// CONNECTING for a very long period of time.
|
226
|
-
if (
|
226
|
+
if (GRPC_TRACE_FLAG_ENABLED_OBJ(*tracer_)) {
|
227
227
|
gpr_log(GPR_INFO,
|
228
228
|
"[child_policy_handler %p] creating new %schild policy %s", this,
|
229
229
|
child_policy_ == nullptr ? "" : "pending ",
|
@@ -243,7 +243,7 @@ absl::Status ChildPolicyHandler::UpdateLocked(UpdateArgs args) {
|
|
243
243
|
}
|
244
244
|
CHECK_NE(policy_to_update, nullptr);
|
245
245
|
// Update the policy.
|
246
|
-
if (
|
246
|
+
if (GRPC_TRACE_FLAG_ENABLED_OBJ(*tracer_)) {
|
247
247
|
gpr_log(GPR_INFO, "[child_policy_handler %p] updating %schild policy %p",
|
248
248
|
this,
|
249
249
|
policy_to_update == pending_child_policy_.get() ? "pending " : "",
|
@@ -287,7 +287,7 @@ OrphanablePtr<LoadBalancingPolicy> ChildPolicyHandler::CreateChildPolicy(
|
|
287
287
|
return nullptr;
|
288
288
|
}
|
289
289
|
helper->set_child(lb_policy.get());
|
290
|
-
if (
|
290
|
+
if (GRPC_TRACE_FLAG_ENABLED_OBJ(*tracer_)) {
|
291
291
|
gpr_log(GPR_INFO,
|
292
292
|
"[child_policy_handler %p] created new LB policy \"%s\" (%p)", this,
|
293
293
|
std::string(child_policy_name).c_str(), lb_policy.get());
|
@@ -23,13 +23,13 @@
|
|
23
23
|
#include <vector>
|
24
24
|
|
25
25
|
#include "absl/log/check.h"
|
26
|
+
#include "absl/log/log.h"
|
26
27
|
#include "absl/status/status.h"
|
27
28
|
#include "absl/status/statusor.h"
|
28
29
|
#include "absl/types/optional.h"
|
29
30
|
|
30
31
|
#include <grpc/impl/connectivity_state.h>
|
31
32
|
#include <grpc/support/json.h>
|
32
|
-
#include <grpc/support/log.h>
|
33
33
|
#include <grpc/support/port_platform.h>
|
34
34
|
|
35
35
|
#include "src/core/lib/channel/channel_args.h"
|
@@ -38,12 +38,12 @@
|
|
38
38
|
#include "src/core/lib/gprpp/orphanable.h"
|
39
39
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
40
40
|
#include "src/core/lib/iomgr/pollset_set.h"
|
41
|
-
#include "src/core/lib/json/json.h"
|
42
41
|
#include "src/core/load_balancing/delegating_helper.h"
|
43
42
|
#include "src/core/load_balancing/lb_policy.h"
|
44
43
|
#include "src/core/load_balancing/lb_policy_registry.h"
|
45
44
|
#include "src/core/load_balancing/pick_first/pick_first.h"
|
46
45
|
#include "src/core/resolver/endpoint_addresses.h"
|
46
|
+
#include "src/core/util/json/json.h"
|
47
47
|
|
48
48
|
namespace grpc_core {
|
49
49
|
|
@@ -103,9 +103,9 @@ absl::Status EndpointList::Endpoint::Init(
|
|
103
103
|
CoreConfiguration::Get().lb_policy_registry().CreateLoadBalancingPolicy(
|
104
104
|
"pick_first", std::move(lb_policy_args));
|
105
105
|
if (GPR_UNLIKELY(endpoint_list_->tracer_ != nullptr)) {
|
106
|
-
|
107
|
-
|
108
|
-
|
106
|
+
LOG(INFO) << "[" << endpoint_list_->tracer_ << " "
|
107
|
+
<< endpoint_list_->policy_.get() << "] endpoint " << this
|
108
|
+
<< ": created child policy " << child_policy_.get();
|
109
109
|
}
|
110
110
|
// Add our interested_parties pollset_set to that of the newly created
|
111
111
|
// child policy. This will make the child policy progress upon activity on
|
@@ -56,7 +56,7 @@ class MyEndpointList : public EndpointList {
|
|
56
56
|
const ChannelArgs& args,
|
57
57
|
std::vector<std::string>* errors)
|
58
58
|
: EndpointList(std::move(lb_policy),
|
59
|
-
GRPC_TRACE_FLAG_ENABLED(
|
59
|
+
GRPC_TRACE_FLAG_ENABLED(my_tracer)
|
60
60
|
? "MyEndpointList"
|
61
61
|
: nullptr) {
|
62
62
|
Init(endpoints, args,
|
@@ -41,6 +41,7 @@ namespace grpc_core {
|
|
41
41
|
|
42
42
|
const NoInterceptor ClientLoadReportingFilter::Call::OnServerToClientMessage;
|
43
43
|
const NoInterceptor ClientLoadReportingFilter::Call::OnClientToServerMessage;
|
44
|
+
const NoInterceptor ClientLoadReportingFilter::Call::OnClientToServerHalfClose;
|
44
45
|
const NoInterceptor ClientLoadReportingFilter::Call::OnFinalize;
|
45
46
|
|
46
47
|
const grpc_channel_filter ClientLoadReportingFilter::kFilter =
|
@@ -43,6 +43,7 @@ class ClientLoadReportingFilter final
|
|
43
43
|
void OnServerTrailingMetadata(ServerMetadata& server_trailing_metadata);
|
44
44
|
static const NoInterceptor OnServerToClientMessage;
|
45
45
|
static const NoInterceptor OnClientToServerMessage;
|
46
|
+
static const NoInterceptor OnClientToServerHalfClose;
|
46
47
|
static const NoInterceptor OnFinalize;
|
47
48
|
|
48
49
|
private:
|
@@ -101,8 +101,6 @@
|
|
101
101
|
#include "src/core/lib/config/core_configuration.h"
|
102
102
|
#include "src/core/lib/debug/trace.h"
|
103
103
|
#include "src/core/lib/experiments/experiments.h"
|
104
|
-
#include "src/core/lib/gpr/string.h"
|
105
|
-
#include "src/core/lib/gpr/useful.h"
|
106
104
|
#include "src/core/lib/gprpp/crash.h"
|
107
105
|
#include "src/core/lib/gprpp/debug_location.h"
|
108
106
|
#include "src/core/lib/gprpp/orphanable.h"
|
@@ -119,9 +117,6 @@
|
|
119
117
|
#include "src/core/lib/iomgr/resolved_address.h"
|
120
118
|
#include "src/core/lib/iomgr/sockaddr.h"
|
121
119
|
#include "src/core/lib/iomgr/socket_utils.h"
|
122
|
-
#include "src/core/lib/json/json.h"
|
123
|
-
#include "src/core/lib/json/json_args.h"
|
124
|
-
#include "src/core/lib/json/json_object_loader.h"
|
125
120
|
#include "src/core/lib/security/credentials/credentials.h"
|
126
121
|
#include "src/core/lib/slice/slice.h"
|
127
122
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
@@ -143,6 +138,11 @@
|
|
143
138
|
#include "src/core/resolver/endpoint_addresses.h"
|
144
139
|
#include "src/core/resolver/fake/fake_resolver.h"
|
145
140
|
#include "src/core/resolver/resolver.h"
|
141
|
+
#include "src/core/util/json/json.h"
|
142
|
+
#include "src/core/util/json/json_args.h"
|
143
|
+
#include "src/core/util/json/json_object_loader.h"
|
144
|
+
#include "src/core/util/string.h"
|
145
|
+
#include "src/core/util/useful.h"
|
146
146
|
|
147
147
|
#define GRPC_GRPCLB_INITIAL_CONNECT_BACKOFF_SECONDS 1
|
148
148
|
#define GRPC_GRPCLB_RECONNECT_BACKOFF_MULTIPLIER 1.6
|
@@ -157,8 +157,6 @@
|
|
157
157
|
|
158
158
|
namespace grpc_core {
|
159
159
|
|
160
|
-
TraceFlag grpc_lb_glb_trace(false, "glb");
|
161
|
-
|
162
160
|
namespace {
|
163
161
|
|
164
162
|
using ::grpc_event_engine::experimental::EventEngine;
|
@@ -550,7 +548,7 @@ class GrpcLb final : public LoadBalancingPolicy {
|
|
550
548
|
bool shutting_down_ = false;
|
551
549
|
|
552
550
|
// The channel for communicating with the LB server.
|
553
|
-
|
551
|
+
RefCountedPtr<Channel> lb_channel_;
|
554
552
|
StateWatcher* watcher_ = nullptr;
|
555
553
|
// Response generator to inject address updates into lb_channel_.
|
556
554
|
RefCountedPtr<FakeResolverResponseGenerator> response_generator_;
|
@@ -853,7 +851,7 @@ void GrpcLb::Helper::UpdateState(grpc_connectivity_state state,
|
|
853
851
|
parent()->lb_calld_->client_stats() != nullptr) {
|
854
852
|
client_stats = parent()->lb_calld_->client_stats()->Ref();
|
855
853
|
}
|
856
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
854
|
+
if (GRPC_TRACE_FLAG_ENABLED(glb)) {
|
857
855
|
gpr_log(GPR_INFO,
|
858
856
|
"[grpclb %p helper %p] state=%s (%s) wrapping child "
|
859
857
|
"picker %p (serverlist=%p, client_stats=%p)",
|
@@ -882,8 +880,7 @@ void GrpcLb::Helper::RequestReresolution() {
|
|
882
880
|
GrpcLb::BalancerCallState::BalancerCallState(
|
883
881
|
RefCountedPtr<LoadBalancingPolicy> parent_grpclb_policy)
|
884
882
|
: InternallyRefCounted<BalancerCallState>(
|
885
|
-
GRPC_TRACE_FLAG_ENABLED(
|
886
|
-
: nullptr),
|
883
|
+
GRPC_TRACE_FLAG_ENABLED(glb) ? "BalancerCallState" : nullptr),
|
887
884
|
grpclb_policy_(std::move(parent_grpclb_policy)) {
|
888
885
|
CHECK(grpclb_policy_ != nullptr);
|
889
886
|
CHECK(!grpclb_policy()->shutting_down_);
|
@@ -951,7 +948,7 @@ void GrpcLb::BalancerCallState::Orphan() {
|
|
951
948
|
|
952
949
|
void GrpcLb::BalancerCallState::StartQuery() {
|
953
950
|
CHECK_NE(lb_call_, nullptr);
|
954
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
951
|
+
if (GRPC_TRACE_FLAG_ENABLED(glb)) {
|
955
952
|
gpr_log(GPR_INFO, "[grpclb %p] lb_calld=%p: Starting LB call %p",
|
956
953
|
grpclb_policy_.get(), this, lb_call_);
|
957
954
|
}
|
@@ -1180,7 +1177,7 @@ void GrpcLb::BalancerCallState::OnBalancerMessageReceivedLocked() {
|
|
1180
1177
|
if (response.client_stats_report_interval != Duration::Zero()) {
|
1181
1178
|
client_stats_report_interval_ = std::max(
|
1182
1179
|
Duration::Seconds(1), response.client_stats_report_interval);
|
1183
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1180
|
+
if (GRPC_TRACE_FLAG_ENABLED(glb)) {
|
1184
1181
|
gpr_log(GPR_INFO,
|
1185
1182
|
"[grpclb %p] lb_calld=%p: Received initial LB response "
|
1186
1183
|
"message; client load reporting interval = %" PRId64
|
@@ -1188,7 +1185,7 @@ void GrpcLb::BalancerCallState::OnBalancerMessageReceivedLocked() {
|
|
1188
1185
|
grpclb_policy(), this,
|
1189
1186
|
client_stats_report_interval_.millis());
|
1190
1187
|
}
|
1191
|
-
} else if (GRPC_TRACE_FLAG_ENABLED(
|
1188
|
+
} else if (GRPC_TRACE_FLAG_ENABLED(glb)) {
|
1192
1189
|
gpr_log(GPR_INFO,
|
1193
1190
|
"[grpclb %p] lb_calld=%p: Received initial LB response "
|
1194
1191
|
"message; client load reporting NOT enabled",
|
@@ -1201,7 +1198,7 @@ void GrpcLb::BalancerCallState::OnBalancerMessageReceivedLocked() {
|
|
1201
1198
|
CHECK_NE(lb_call_, nullptr);
|
1202
1199
|
auto serverlist_wrapper =
|
1203
1200
|
MakeRefCounted<Serverlist>(std::move(response.serverlist));
|
1204
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1201
|
+
if (GRPC_TRACE_FLAG_ENABLED(glb)) {
|
1205
1202
|
gpr_log(GPR_INFO,
|
1206
1203
|
"[grpclb %p] lb_calld=%p: Serverlist with %" PRIuPTR
|
1207
1204
|
" servers received:\n%s",
|
@@ -1222,7 +1219,7 @@ void GrpcLb::BalancerCallState::OnBalancerMessageReceivedLocked() {
|
|
1222
1219
|
// Check if the serverlist differs from the previous one.
|
1223
1220
|
if (grpclb_policy()->serverlist_ != nullptr &&
|
1224
1221
|
*grpclb_policy()->serverlist_ == *serverlist_wrapper) {
|
1225
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1222
|
+
if (GRPC_TRACE_FLAG_ENABLED(glb)) {
|
1226
1223
|
gpr_log(GPR_INFO,
|
1227
1224
|
"[grpclb %p] lb_calld=%p: Incoming server list identical "
|
1228
1225
|
"to current, ignoring.",
|
@@ -1320,7 +1317,7 @@ void GrpcLb::BalancerCallState::OnBalancerStatusReceived(
|
|
1320
1317
|
void GrpcLb::BalancerCallState::OnBalancerStatusReceivedLocked(
|
1321
1318
|
grpc_error_handle error) {
|
1322
1319
|
CHECK_NE(lb_call_, nullptr);
|
1323
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1320
|
+
if (GRPC_TRACE_FLAG_ENABLED(glb)) {
|
1324
1321
|
char* status_details = grpc_slice_to_c_string(lb_call_status_details_);
|
1325
1322
|
gpr_log(GPR_INFO,
|
1326
1323
|
"[grpclb %p] lb_calld=%p: Status from LB server received. "
|
@@ -1470,7 +1467,7 @@ GrpcLb::GrpcLb(Args args)
|
|
1470
1467
|
GRPC_ARG_GRPCLB_SUBCHANNEL_CACHE_INTERVAL_MS)
|
1471
1468
|
.value_or(Duration::Milliseconds(
|
1472
1469
|
GRPC_GRPCLB_DEFAULT_SUBCHANNEL_DELETION_DELAY_MS)))) {
|
1473
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1470
|
+
if (GRPC_TRACE_FLAG_ENABLED(glb)) {
|
1474
1471
|
gpr_log(GPR_INFO,
|
1475
1472
|
"[grpclb %p] Will use '%s' as the server name for LB request.",
|
1476
1473
|
this,
|
@@ -1540,7 +1537,7 @@ class GrpcLb::NullLbTokenEndpointIterator final
|
|
1540
1537
|
void ForEach(absl::FunctionRef<void(const EndpointAddresses&)> callback)
|
1541
1538
|
const override {
|
1542
1539
|
parent_it_->ForEach([&](const EndpointAddresses& endpoint) {
|
1543
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1540
|
+
if (GRPC_TRACE_FLAG_ENABLED(glb)) {
|
1544
1541
|
gpr_log(GPR_INFO, "[grpclb %p] fallback address: %s", this,
|
1545
1542
|
endpoint.ToString().c_str());
|
1546
1543
|
}
|
@@ -1556,7 +1553,7 @@ class GrpcLb::NullLbTokenEndpointIterator final
|
|
1556
1553
|
};
|
1557
1554
|
|
1558
1555
|
absl::Status GrpcLb::UpdateLocked(UpdateArgs args) {
|
1559
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1556
|
+
if (GRPC_TRACE_FLAG_ENABLED(glb)) {
|
1560
1557
|
gpr_log(GPR_INFO, "[grpclb %p] received update", this);
|
1561
1558
|
}
|
1562
1559
|
const bool is_initial_update = lb_channel_ == nullptr;
|
@@ -1613,7 +1610,7 @@ absl::Status GrpcLb::UpdateLocked(UpdateArgs args) {
|
|
1613
1610
|
absl::Status GrpcLb::UpdateBalancerChannelLocked() {
|
1614
1611
|
// Get balancer addresses.
|
1615
1612
|
EndpointAddressesList balancer_addresses = ExtractBalancerAddresses(args_);
|
1616
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1613
|
+
if (GRPC_TRACE_FLAG_ENABLED(glb)) {
|
1617
1614
|
for (const auto& endpoint : balancer_addresses) {
|
1618
1615
|
gpr_log(GPR_INFO, "[grpclb %p] balancer address: %s", this,
|
1619
1616
|
endpoint.ToString().c_str());
|
@@ -1670,7 +1667,7 @@ void GrpcLb::StartBalancerCallLocked() {
|
|
1670
1667
|
// Init the LB call data.
|
1671
1668
|
CHECK(lb_calld_ == nullptr);
|
1672
1669
|
lb_calld_ = MakeOrphanable<BalancerCallState>(Ref());
|
1673
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1670
|
+
if (GRPC_TRACE_FLAG_ENABLED(glb)) {
|
1674
1671
|
gpr_log(GPR_INFO,
|
1675
1672
|
"[grpclb %p] Query for backends (lb_channel: %p, lb_calld: %p)",
|
1676
1673
|
this, lb_channel_.get(), lb_calld_.get());
|
@@ -1680,7 +1677,7 @@ void GrpcLb::StartBalancerCallLocked() {
|
|
1680
1677
|
|
1681
1678
|
void GrpcLb::StartBalancerCallRetryTimerLocked() {
|
1682
1679
|
Duration timeout = lb_call_backoff_.NextAttemptTime() - Timestamp::Now();
|
1683
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1680
|
+
if (GRPC_TRACE_FLAG_ENABLED(glb)) {
|
1684
1681
|
gpr_log(GPR_INFO, "[grpclb %p] Connection to LB server lost...", this);
|
1685
1682
|
if (timeout > Duration::Zero()) {
|
1686
1683
|
gpr_log(GPR_INFO, "[grpclb %p] ... retry_timer_active in %" PRId64 "ms.",
|
@@ -1709,7 +1706,7 @@ void GrpcLb::StartBalancerCallRetryTimerLocked() {
|
|
1709
1706
|
void GrpcLb::OnBalancerCallRetryTimerLocked() {
|
1710
1707
|
lb_call_retry_timer_handle_.reset();
|
1711
1708
|
if (!shutting_down_ && lb_calld_ == nullptr) {
|
1712
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1709
|
+
if (GRPC_TRACE_FLAG_ENABLED(glb)) {
|
1713
1710
|
gpr_log(GPR_INFO, "[grpclb %p] Restarting call to LB server", this);
|
1714
1711
|
}
|
1715
1712
|
StartBalancerCallLocked();
|
@@ -1778,9 +1775,8 @@ OrphanablePtr<LoadBalancingPolicy> GrpcLb::CreateChildPolicyLocked(
|
|
1778
1775
|
lb_policy_args.channel_control_helper =
|
1779
1776
|
std::make_unique<Helper>(RefAsSubclass<GrpcLb>(DEBUG_LOCATION, "Helper"));
|
1780
1777
|
OrphanablePtr<LoadBalancingPolicy> lb_policy =
|
1781
|
-
MakeOrphanable<ChildPolicyHandler>(std::move(lb_policy_args),
|
1782
|
-
|
1783
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
1778
|
+
MakeOrphanable<ChildPolicyHandler>(std::move(lb_policy_args), &glb_trace);
|
1779
|
+
if (GRPC_TRACE_FLAG_ENABLED(glb)) {
|
1784
1780
|
gpr_log(GPR_INFO, "[grpclb %p] Created new child policy handler (%p)", this,
|
1785
1781
|
lb_policy.get());
|
1786
1782
|
}
|
@@ -1834,7 +1830,7 @@ void GrpcLb::CreateOrUpdateChildPolicyLocked() {
|
|
1834
1830
|
child_policy_ = CreateChildPolicyLocked(update_args.args);
|
1835
1831
|
}
|
1836
1832
|
// Update the policy.
|
1837
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1833
|
+
if (GRPC_TRACE_FLAG_ENABLED(glb)) {
|
1838
1834
|
gpr_log(GPR_INFO, "[grpclb %p] Updating child policy handler %p", this,
|
1839
1835
|
child_policy_.get());
|
1840
1836
|
}
|
@@ -1879,7 +1875,7 @@ void GrpcLb::OnSubchannelCacheTimerLocked() {
|
|
1879
1875
|
subchannel_cache_timer_handle_.reset();
|
1880
1876
|
auto it = cached_subchannels_.begin();
|
1881
1877
|
if (it != cached_subchannels_.end()) {
|
1882
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1878
|
+
if (GRPC_TRACE_FLAG_ENABLED(glb)) {
|
1883
1879
|
gpr_log(GPR_INFO,
|
1884
1880
|
"[grpclb %p] removing %" PRIuPTR " subchannels from cache",
|
1885
1881
|
this, it->second.size());
|
@@ -23,7 +23,7 @@
|
|
23
23
|
#include <grpc/support/port_platform.h>
|
24
24
|
|
25
25
|
#include "src/core/lib/channel/channel_args.h"
|
26
|
-
#include "src/core/
|
26
|
+
#include "src/core/util/useful.h"
|
27
27
|
|
28
28
|
// Channel arg key for the list of balancer addresses.
|
29
29
|
#define GRPC_ARG_GRPCLB_BALANCER_ADDRESSES \
|
@@ -22,11 +22,11 @@
|
|
22
22
|
|
23
23
|
#include <algorithm>
|
24
24
|
|
25
|
+
#include "absl/log/log.h"
|
25
26
|
#include "google/protobuf/duration.upb.h"
|
26
27
|
#include "google/protobuf/timestamp.upb.h"
|
27
28
|
#include "upb/base/string_view.h"
|
28
29
|
|
29
|
-
#include <grpc/support/log.h>
|
30
30
|
#include <grpc/support/port_platform.h>
|
31
31
|
#include <grpc/support/time.h>
|
32
32
|
|
@@ -145,9 +145,8 @@ bool ParseServerList(const grpc_lb_v1_LoadBalanceResponse& response,
|
|
145
145
|
} else if (token.size <= GRPC_GRPCLB_SERVER_LOAD_BALANCE_TOKEN_MAX_SIZE) {
|
146
146
|
memcpy(cur.load_balance_token, token.data, token.size);
|
147
147
|
} else {
|
148
|
-
|
149
|
-
|
150
|
-
token.size);
|
148
|
+
LOG(ERROR) << "grpc_lb_v1_LoadBalanceResponse has too long token. len="
|
149
|
+
<< token.size;
|
151
150
|
}
|
152
151
|
cur.drop = grpc_lb_v1_Server_drop(servers[i]);
|
153
152
|
}
|
@@ -65,8 +65,6 @@
|
|
65
65
|
|
66
66
|
namespace grpc_core {
|
67
67
|
|
68
|
-
TraceFlag grpc_health_check_client_trace(false, "health_check_client");
|
69
|
-
|
70
68
|
namespace {
|
71
69
|
|
72
70
|
// A fire-and-forget class to asynchronously drain a WorkSerializer queue.
|
@@ -147,7 +145,7 @@ void HealthProducer::HealthChecker::OnConnectivityStateChangeLocked(
|
|
147
145
|
}
|
148
146
|
|
149
147
|
void HealthProducer::HealthChecker::StartHealthStreamLocked() {
|
150
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
148
|
+
if (GRPC_TRACE_FLAG_ENABLED(health_check_client)) {
|
151
149
|
gpr_log(GPR_INFO,
|
152
150
|
"HealthProducer %p HealthChecker %p: "
|
153
151
|
"creating HealthClient for \"%s\"",
|
@@ -157,13 +155,12 @@ void HealthProducer::HealthChecker::StartHealthStreamLocked() {
|
|
157
155
|
stream_client_ = MakeOrphanable<SubchannelStreamClient>(
|
158
156
|
producer_->connected_subchannel_, producer_->subchannel_->pollset_set(),
|
159
157
|
std::make_unique<HealthStreamEventHandler>(Ref()),
|
160
|
-
GRPC_TRACE_FLAG_ENABLED(
|
161
|
-
: nullptr);
|
158
|
+
GRPC_TRACE_FLAG_ENABLED(health_check_client) ? "HealthClient" : nullptr);
|
162
159
|
}
|
163
160
|
|
164
161
|
void HealthProducer::HealthChecker::NotifyWatchersLocked(
|
165
162
|
grpc_connectivity_state state, absl::Status status) {
|
166
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
163
|
+
if (GRPC_TRACE_FLAG_ENABLED(health_check_client)) {
|
167
164
|
gpr_log(
|
168
165
|
GPR_INFO,
|
169
166
|
"HealthProducer %p HealthChecker %p: reporting state %s to watchers",
|
@@ -303,7 +300,7 @@ class HealthProducer::HealthChecker::HealthStreamEventHandler final
|
|
303
300
|
void SetHealthStatusLocked(SubchannelStreamClient* client,
|
304
301
|
grpc_connectivity_state state,
|
305
302
|
const char* reason) {
|
306
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
303
|
+
if (GRPC_TRACE_FLAG_ENABLED(health_check_client)) {
|
307
304
|
gpr_log(GPR_INFO, "HealthCheckClient %p: setting state=%s reason=%s",
|
308
305
|
client, ConnectivityStateName(state), reason);
|
309
306
|
}
|
@@ -346,7 +343,7 @@ class HealthProducer::ConnectivityWatcher final
|
|
346
343
|
//
|
347
344
|
|
348
345
|
void HealthProducer::Start(RefCountedPtr<Subchannel> subchannel) {
|
349
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
346
|
+
if (GRPC_TRACE_FLAG_ENABLED(health_check_client)) {
|
350
347
|
gpr_log(GPR_INFO, "HealthProducer %p: starting with subchannel %p", this,
|
351
348
|
subchannel.get());
|
352
349
|
}
|
@@ -362,7 +359,7 @@ void HealthProducer::Start(RefCountedPtr<Subchannel> subchannel) {
|
|
362
359
|
}
|
363
360
|
|
364
361
|
void HealthProducer::Orphaned() {
|
365
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
362
|
+
if (GRPC_TRACE_FLAG_ENABLED(health_check_client)) {
|
366
363
|
gpr_log(GPR_INFO, "HealthProducer %p: shutting down", this);
|
367
364
|
}
|
368
365
|
{
|
@@ -412,7 +409,7 @@ void HealthProducer::RemoveWatcher(
|
|
412
409
|
|
413
410
|
void HealthProducer::OnConnectivityStateChange(grpc_connectivity_state state,
|
414
411
|
const absl::Status& status) {
|
415
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
412
|
+
if (GRPC_TRACE_FLAG_ENABLED(health_check_client)) {
|
416
413
|
gpr_log(GPR_INFO,
|
417
414
|
"HealthProducer %p: subchannel state update: state=%s status=%s",
|
418
415
|
this, ConnectivityStateName(state), status.ToString().c_str());
|
@@ -438,7 +435,7 @@ void HealthProducer::OnConnectivityStateChange(grpc_connectivity_state state,
|
|
438
435
|
//
|
439
436
|
|
440
437
|
HealthWatcher::~HealthWatcher() {
|
441
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
438
|
+
if (GRPC_TRACE_FLAG_ENABLED(health_check_client)) {
|
442
439
|
gpr_log(GPR_INFO,
|
443
440
|
"HealthWatcher %p: unregistering from producer %p "
|
444
441
|
"(health_check_service_name=\"%s\")",
|
@@ -474,7 +471,7 @@ void HealthWatcher::SetSubchannel(Subchannel* subchannel) {
|
|
474
471
|
if (created) producer_->Start(subchannel->Ref());
|
475
472
|
// Register ourself with the producer.
|
476
473
|
producer_->AddWatcher(this, health_check_service_name_);
|
477
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
474
|
+
if (GRPC_TRACE_FLAG_ENABLED(health_check_client)) {
|
478
475
|
gpr_log(GPR_INFO,
|
479
476
|
"HealthWatcher %p: registered with producer %p (created=%d, "
|
480
477
|
"health_check_service_name=\"%s\")",
|
@@ -506,7 +503,7 @@ MakeHealthCheckWatcher(
|
|
506
503
|
health_check_service_name =
|
507
504
|
args.GetOwnedString(GRPC_ARG_HEALTH_CHECK_SERVICE_NAME);
|
508
505
|
}
|
509
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
506
|
+
if (GRPC_TRACE_FLAG_ENABLED(health_check_client)) {
|
510
507
|
gpr_log(GPR_INFO,
|
511
508
|
"creating HealthWatcher -- health_check_service_name=\"%s\"",
|
512
509
|
health_check_service_name.value_or("N/A").c_str());
|