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
@@ -24,12 +24,11 @@
|
|
24
24
|
#include <utility>
|
25
25
|
|
26
26
|
#include "absl/log/check.h"
|
27
|
+
#include "absl/log/log.h"
|
27
28
|
|
28
29
|
#include <grpc/status.h>
|
29
|
-
#include <grpc/support/log.h>
|
30
30
|
|
31
31
|
#include "src/core/lib/channel/channel_args.h"
|
32
|
-
#include "src/core/lib/gpr/time_precise.h"
|
33
32
|
#include "src/core/lib/gprpp/debug_location.h"
|
34
33
|
#include "src/core/lib/gprpp/status_helper.h"
|
35
34
|
#include "src/core/lib/gprpp/sync.h"
|
@@ -37,6 +36,7 @@
|
|
37
36
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
38
37
|
#include "src/core/lib/resource_quota/resource_quota.h"
|
39
38
|
#include "src/core/lib/transport/error_utils.h"
|
39
|
+
#include "src/core/util/time_precise.h"
|
40
40
|
|
41
41
|
#define SUBCHANNEL_STREAM_INITIAL_CONNECT_BACKOFF_SECONDS 1
|
42
42
|
#define SUBCHANNEL_STREAM_RECONNECT_BACKOFF_MULTIPLIER 1.6
|
@@ -59,12 +59,13 @@ SubchannelStreamClient::SubchannelStreamClient(
|
|
59
59
|
connected_subchannel_(std::move(connected_subchannel)),
|
60
60
|
interested_parties_(interested_parties),
|
61
61
|
tracer_(tracer),
|
62
|
-
call_allocator_(
|
62
|
+
call_allocator_(MakeRefCounted<CallArenaAllocator>(
|
63
63
|
connected_subchannel_->args()
|
64
64
|
.GetObject<ResourceQuota>()
|
65
65
|
->memory_quota()
|
66
66
|
->CreateMemoryAllocator(
|
67
|
-
(tracer != nullptr) ? tracer : "SubchannelStreamClient")
|
67
|
+
(tracer != nullptr) ? tracer : "SubchannelStreamClient"),
|
68
|
+
1024)),
|
68
69
|
event_handler_(std::move(event_handler)),
|
69
70
|
retry_backoff_(
|
70
71
|
BackOff::Options()
|
@@ -76,22 +77,22 @@ SubchannelStreamClient::SubchannelStreamClient(
|
|
76
77
|
SUBCHANNEL_STREAM_RECONNECT_MAX_BACKOFF_SECONDS))),
|
77
78
|
event_engine_(connected_subchannel_->args().GetObject<EventEngine>()) {
|
78
79
|
if (GPR_UNLIKELY(tracer_ != nullptr)) {
|
79
|
-
|
80
|
+
LOG(INFO) << tracer_ << " " << this << ": created SubchannelStreamClient";
|
80
81
|
}
|
81
82
|
StartCall();
|
82
83
|
}
|
83
84
|
|
84
85
|
SubchannelStreamClient::~SubchannelStreamClient() {
|
85
86
|
if (GPR_UNLIKELY(tracer_ != nullptr)) {
|
86
|
-
|
87
|
-
|
87
|
+
LOG(INFO) << tracer_ << " " << this
|
88
|
+
<< ": destroying SubchannelStreamClient";
|
88
89
|
}
|
89
90
|
}
|
90
91
|
|
91
92
|
void SubchannelStreamClient::Orphan() {
|
92
93
|
if (GPR_UNLIKELY(tracer_ != nullptr)) {
|
93
|
-
|
94
|
-
|
94
|
+
LOG(INFO) << tracer_ << " " << this
|
95
|
+
<< ": SubchannelStreamClient shutting down";
|
95
96
|
}
|
96
97
|
{
|
97
98
|
MutexLock lock(&mu_);
|
@@ -118,8 +119,9 @@ void SubchannelStreamClient::StartCallLocked() {
|
|
118
119
|
}
|
119
120
|
call_state_ = MakeOrphanable<CallState>(Ref(), interested_parties_);
|
120
121
|
if (GPR_UNLIKELY(tracer_ != nullptr)) {
|
121
|
-
|
122
|
-
|
122
|
+
LOG(INFO) << tracer_ << " " << this
|
123
|
+
<< ": SubchannelStreamClient created CallState "
|
124
|
+
<< call_state_.get();
|
123
125
|
}
|
124
126
|
call_state_->StartCallLocked();
|
125
127
|
}
|
@@ -130,13 +132,13 @@ void SubchannelStreamClient::StartRetryTimerLocked() {
|
|
130
132
|
}
|
131
133
|
const Duration timeout = retry_backoff_.NextAttemptTime() - Timestamp::Now();
|
132
134
|
if (GPR_UNLIKELY(tracer_ != nullptr)) {
|
133
|
-
|
134
|
-
|
135
|
+
LOG(INFO) << tracer_ << " " << this
|
136
|
+
<< ": SubchannelStreamClient health check call lost...";
|
135
137
|
if (timeout > Duration::Zero()) {
|
136
|
-
|
137
|
-
|
138
|
+
LOG(INFO) << tracer_ << " " << this << ": ... will retry in "
|
139
|
+
<< timeout.millis() << "ms.";
|
138
140
|
} else {
|
139
|
-
|
141
|
+
LOG(INFO) << tracer_ << " " << this << ": ... retrying immediately.";
|
140
142
|
}
|
141
143
|
}
|
142
144
|
retry_timer_handle_ = event_engine_->RunAfter(
|
@@ -153,9 +155,8 @@ void SubchannelStreamClient::OnRetryTimer() {
|
|
153
155
|
if (event_handler_ != nullptr && retry_timer_handle_.has_value() &&
|
154
156
|
call_state_ == nullptr) {
|
155
157
|
if (GPR_UNLIKELY(tracer_ != nullptr)) {
|
156
|
-
|
157
|
-
|
158
|
-
tracer_, this);
|
158
|
+
LOG(INFO) << tracer_ << " " << this
|
159
|
+
<< ": SubchannelStreamClient restarting health check call";
|
159
160
|
}
|
160
161
|
StartCallLocked();
|
161
162
|
}
|
@@ -171,21 +172,13 @@ SubchannelStreamClient::CallState::CallState(
|
|
171
172
|
grpc_pollset_set* interested_parties)
|
172
173
|
: subchannel_stream_client_(std::move(health_check_client)),
|
173
174
|
pollent_(grpc_polling_entity_create_from_pollset_set(interested_parties)),
|
174
|
-
arena_(
|
175
|
-
->GetInitialCallSizeEstimate(),
|
176
|
-
&subchannel_stream_client_->call_allocator_)),
|
177
|
-
payload_(context_) {}
|
175
|
+
arena_(subchannel_stream_client_->call_allocator_->MakeArena()) {}
|
178
176
|
|
179
177
|
SubchannelStreamClient::CallState::~CallState() {
|
180
178
|
if (GPR_UNLIKELY(subchannel_stream_client_->tracer_ != nullptr)) {
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
}
|
185
|
-
for (size_t i = 0; i < GRPC_CONTEXT_COUNT; ++i) {
|
186
|
-
if (context_[i].destroy != nullptr) {
|
187
|
-
context_[i].destroy(context_[i].value);
|
188
|
-
}
|
179
|
+
LOG(INFO) << subchannel_stream_client_->tracer_ << " "
|
180
|
+
<< subchannel_stream_client_.get()
|
181
|
+
<< ": SubchannelStreamClient destroying CallState " << this;
|
189
182
|
}
|
190
183
|
// Unset the call combiner cancellation closure. This has the
|
191
184
|
// effect of scheduling the previously set cancellation closure, if
|
@@ -207,7 +200,6 @@ void SubchannelStreamClient::CallState::StartCallLocked() {
|
|
207
200
|
gpr_get_cycle_counter(), // start_time
|
208
201
|
Timestamp::InfFuture(), // deadline
|
209
202
|
arena_.get(),
|
210
|
-
context_,
|
211
203
|
&call_combiner_,
|
212
204
|
};
|
213
205
|
grpc_error_handle error;
|
@@ -218,16 +210,14 @@ void SubchannelStreamClient::CallState::StartCallLocked() {
|
|
218
210
|
call_->SetAfterCallStackDestroy(&after_call_stack_destruction_);
|
219
211
|
// Check if creation failed.
|
220
212
|
if (!error.ok() || subchannel_stream_client_->event_handler_ == nullptr) {
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
StatusToString(error).c_str());
|
213
|
+
LOG(ERROR) << "SubchannelStreamClient " << subchannel_stream_client_.get()
|
214
|
+
<< " CallState " << this << ": error creating "
|
215
|
+
<< "stream on subchannel (" << StatusToString(error)
|
216
|
+
<< "); will retry";
|
226
217
|
CallEndedLocked(/*retry=*/true);
|
227
218
|
return;
|
228
219
|
}
|
229
220
|
// Initialize payload and batch.
|
230
|
-
payload_.context = context_;
|
231
221
|
batch_.payload = &payload_;
|
232
222
|
// on_complete callback takes ref, handled manually.
|
233
223
|
call_->Ref(DEBUG_LOCATION, "on_complete").release();
|
@@ -371,12 +361,10 @@ void SubchannelStreamClient::CallState::RecvMessageReady() {
|
|
371
361
|
subchannel_stream_client_.get(), recv_message_->JoinIntoString());
|
372
362
|
if (!status.ok()) {
|
373
363
|
if (GPR_UNLIKELY(subchannel_stream_client_->tracer_ != nullptr)) {
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
subchannel_stream_client_.get(), this,
|
379
|
-
status.ToString().c_str());
|
364
|
+
LOG(INFO) << subchannel_stream_client_->tracer_ << " "
|
365
|
+
<< subchannel_stream_client_.get()
|
366
|
+
<< ": SubchannelStreamClient CallState " << this
|
367
|
+
<< ": failed to parse response message: " << status;
|
380
368
|
}
|
381
369
|
Cancel();
|
382
370
|
}
|
@@ -419,11 +407,10 @@ void SubchannelStreamClient::CallState::RecvTrailingMetadataReady(
|
|
419
407
|
nullptr /* error_string */);
|
420
408
|
}
|
421
409
|
if (GPR_UNLIKELY(self->subchannel_stream_client_->tracer_ != nullptr)) {
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
self->subchannel_stream_client_.get(), self, status);
|
410
|
+
LOG(INFO) << self->subchannel_stream_client_->tracer_ << " "
|
411
|
+
<< self->subchannel_stream_client_.get()
|
412
|
+
<< ": SubchannelStreamClient CallState " << self
|
413
|
+
<< ": health watch failed with status " << status;
|
427
414
|
}
|
428
415
|
// Clean up.
|
429
416
|
self->recv_trailing_metadata_.Clear();
|
@@ -34,7 +34,6 @@
|
|
34
34
|
|
35
35
|
#include "src/core/client_channel/subchannel.h"
|
36
36
|
#include "src/core/lib/backoff/backoff.h"
|
37
|
-
#include "src/core/lib/channel/context.h"
|
38
37
|
#include "src/core/lib/gprpp/orphanable.h"
|
39
38
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
40
39
|
#include "src/core/lib/gprpp/sync.h"
|
@@ -146,9 +145,8 @@ class SubchannelStreamClient final
|
|
146
145
|
RefCountedPtr<SubchannelStreamClient> subchannel_stream_client_;
|
147
146
|
grpc_polling_entity pollent_;
|
148
147
|
|
149
|
-
|
148
|
+
RefCountedPtr<Arena> arena_;
|
150
149
|
CallCombiner call_combiner_;
|
151
|
-
grpc_call_context_element context_[GRPC_CONTEXT_COUNT] = {};
|
152
150
|
|
153
151
|
// The streaming call to the backend. Always non-null.
|
154
152
|
// Refs are tracked manually; when the last ref is released, the
|
@@ -201,7 +199,7 @@ class SubchannelStreamClient final
|
|
201
199
|
RefCountedPtr<ConnectedSubchannel> connected_subchannel_;
|
202
200
|
grpc_pollset_set* interested_parties_; // Do not own.
|
203
201
|
const char* tracer_;
|
204
|
-
|
202
|
+
RefCountedPtr<CallArenaAllocator> call_allocator_;
|
205
203
|
|
206
204
|
Mutex mu_;
|
207
205
|
std::unique_ptr<CallEventHandler> event_handler_ ABSL_GUARDED_BY(mu_);
|
@@ -33,7 +33,6 @@
|
|
33
33
|
#include <grpc/support/log.h>
|
34
34
|
|
35
35
|
#include "src/core/lib/channel/channel_stack.h"
|
36
|
-
#include "src/core/lib/channel/context.h"
|
37
36
|
#include "src/core/lib/channel/promise_based_filter.h"
|
38
37
|
#include "src/core/lib/config/core_configuration.h"
|
39
38
|
#include "src/core/lib/debug/trace.h"
|
@@ -47,11 +46,10 @@
|
|
47
46
|
|
48
47
|
namespace grpc_core {
|
49
48
|
|
50
|
-
TraceFlag grpc_backend_metric_filter_trace(false, "backend_metric_filter");
|
51
|
-
|
52
49
|
const NoInterceptor BackendMetricFilter::Call::OnClientInitialMetadata;
|
53
50
|
const NoInterceptor BackendMetricFilter::Call::OnServerInitialMetadata;
|
54
51
|
const NoInterceptor BackendMetricFilter::Call::OnClientToServerMessage;
|
52
|
+
const NoInterceptor BackendMetricFilter::Call::OnClientToServerHalfClose;
|
55
53
|
const NoInterceptor BackendMetricFilter::Call::OnServerToClientMessage;
|
56
54
|
const NoInterceptor BackendMetricFilter::Call::OnFinalize;
|
57
55
|
|
@@ -128,24 +126,23 @@ BackendMetricFilter::Create(const ChannelArgs&, ChannelFilter::Args) {
|
|
128
126
|
}
|
129
127
|
|
130
128
|
void BackendMetricFilter::Call::OnServerTrailingMetadata(ServerMetadata& md) {
|
131
|
-
|
132
|
-
|
129
|
+
if (md.get(GrpcCallWasCancelled()).value_or(false)) return;
|
130
|
+
auto* ctx = MaybeGetContext<BackendMetricProvider>();
|
133
131
|
if (ctx == nullptr) {
|
134
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
132
|
+
if (GRPC_TRACE_FLAG_ENABLED(backend_metric_filter)) {
|
135
133
|
gpr_log(GPR_INFO, "[%p] No BackendMetricProvider.", this);
|
136
134
|
}
|
137
135
|
return;
|
138
136
|
}
|
139
|
-
absl::optional<std::string> serialized = MaybeSerializeBackendMetrics(
|
140
|
-
reinterpret_cast<BackendMetricProvider*>(ctx->value));
|
137
|
+
absl::optional<std::string> serialized = MaybeSerializeBackendMetrics(ctx);
|
141
138
|
if (serialized.has_value() && !serialized->empty()) {
|
142
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
139
|
+
if (GRPC_TRACE_FLAG_ENABLED(backend_metric_filter)) {
|
143
140
|
gpr_log(GPR_INFO, "[%p] Backend metrics serialized. size: %" PRIuPTR,
|
144
141
|
this, serialized->size());
|
145
142
|
}
|
146
143
|
md.Set(EndpointLoadMetricsBinMetadata(),
|
147
144
|
Slice::FromCopiedString(std::move(*serialized)));
|
148
|
-
} else if (GRPC_TRACE_FLAG_ENABLED(
|
145
|
+
} else if (GRPC_TRACE_FLAG_ENABLED(backend_metric_filter)) {
|
149
146
|
gpr_log(GPR_INFO, "[%p] No backend metrics.", this);
|
150
147
|
}
|
151
148
|
}
|
@@ -44,6 +44,7 @@ class BackendMetricFilter : public ImplementChannelFilter<BackendMetricFilter> {
|
|
44
44
|
static const NoInterceptor OnServerInitialMetadata;
|
45
45
|
void OnServerTrailingMetadata(ServerMetadata& md);
|
46
46
|
static const NoInterceptor OnClientToServerMessage;
|
47
|
+
static const NoInterceptor OnClientToServerHalfClose;
|
47
48
|
static const NoInterceptor OnServerToClientMessage;
|
48
49
|
static const NoInterceptor OnFinalize;
|
49
50
|
};
|
@@ -15,6 +15,8 @@
|
|
15
15
|
#ifndef GRPC_SRC_CORE_EXT_FILTERS_BACKEND_METRICS_BACKEND_METRIC_PROVIDER_H
|
16
16
|
#define GRPC_SRC_CORE_EXT_FILTERS_BACKEND_METRICS_BACKEND_METRIC_PROVIDER_H
|
17
17
|
|
18
|
+
#include "src/core/lib/resource_quota/arena.h"
|
19
|
+
|
18
20
|
namespace grpc_core {
|
19
21
|
|
20
22
|
struct BackendMetricData;
|
@@ -24,6 +26,11 @@ class BackendMetricProvider {
|
|
24
26
|
virtual BackendMetricData GetBackendMetricData() = 0;
|
25
27
|
};
|
26
28
|
|
29
|
+
template <>
|
30
|
+
struct ArenaContextType<BackendMetricProvider> {
|
31
|
+
static void Destroy(BackendMetricProvider*) {}
|
32
|
+
};
|
33
|
+
|
27
34
|
} // namespace grpc_core
|
28
35
|
|
29
36
|
#endif // GRPC_SRC_CORE_EXT_FILTERS_BACKEND_METRICS_BACKEND_METRIC_PROVIDER_H
|
@@ -21,7 +21,6 @@
|
|
21
21
|
#include <grpc/census.h>
|
22
22
|
#include <grpc/grpc.h>
|
23
23
|
|
24
|
-
#include "src/core/lib/channel/context.h"
|
25
24
|
#include "src/core/lib/debug/trace.h"
|
26
25
|
#include "src/core/lib/surface/api_trace.h"
|
27
26
|
#include "src/core/lib/surface/call.h"
|
@@ -30,12 +29,11 @@ void grpc_census_call_set_context(grpc_call* call, census_context* context) {
|
|
30
29
|
GRPC_API_TRACE("grpc_census_call_set_context(call=%p, census_context=%p)", 2,
|
31
30
|
(call, context));
|
32
31
|
if (context != nullptr) {
|
33
|
-
|
32
|
+
grpc_call_get_arena(call)->SetContext<census_context>(context);
|
34
33
|
}
|
35
34
|
}
|
36
35
|
|
37
36
|
census_context* grpc_census_call_get_context(grpc_call* call) {
|
38
37
|
GRPC_API_TRACE("grpc_census_call_get_context(call=%p)", 1, (call));
|
39
|
-
return
|
40
|
-
grpc_call_context_get(call, GRPC_CONTEXT_TRACING));
|
38
|
+
return grpc_call_get_arena(call)->GetContext<census_context>();
|
41
39
|
}
|
@@ -68,25 +68,20 @@ const auto kDefaultMaxConnectionAgeGrace = Duration::Infinity();
|
|
68
68
|
const auto kDefaultMaxConnectionIdle = Duration::Infinity();
|
69
69
|
const auto kMaxConnectionAgeJitter = 0.1;
|
70
70
|
|
71
|
-
TraceFlag grpc_trace_client_idle_filter(false, "client_idle_filter");
|
72
71
|
} // namespace
|
73
72
|
|
74
73
|
#define GRPC_IDLE_FILTER_LOG(format, ...) \
|
75
74
|
do { \
|
76
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
75
|
+
if (GRPC_TRACE_FLAG_ENABLED(client_idle_filter)) { \
|
77
76
|
gpr_log(GPR_INFO, "(client idle filter) " format, ##__VA_ARGS__); \
|
78
77
|
} \
|
79
78
|
} while (0)
|
80
79
|
|
81
|
-
namespace {
|
82
|
-
|
83
80
|
Duration GetClientIdleTimeout(const ChannelArgs& args) {
|
84
81
|
return args.GetDurationFromIntMillis(GRPC_ARG_CLIENT_IDLE_TIMEOUT_MS)
|
85
82
|
.value_or(kDefaultIdleTimeout);
|
86
83
|
}
|
87
84
|
|
88
|
-
} // namespace
|
89
|
-
|
90
85
|
struct LegacyMaxAgeFilter::Config {
|
91
86
|
Duration max_connection_age;
|
92
87
|
Duration max_connection_idle;
|
@@ -307,15 +302,13 @@ void RegisterLegacyChannelIdleFilters(CoreConfiguration::Builder* builder) {
|
|
307
302
|
.If([](const ChannelArgs& channel_args) {
|
308
303
|
return GetClientIdleTimeout(channel_args) != Duration::Infinity();
|
309
304
|
});
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
});
|
318
|
-
}
|
305
|
+
builder->channel_init()
|
306
|
+
->RegisterV2Filter<LegacyMaxAgeFilter>(GRPC_SERVER_CHANNEL)
|
307
|
+
.ExcludeFromMinimalStack()
|
308
|
+
.If([](const ChannelArgs& channel_args) {
|
309
|
+
return LegacyMaxAgeFilter::Config::FromChannelArgs(channel_args)
|
310
|
+
.enable();
|
311
|
+
});
|
319
312
|
}
|
320
313
|
|
321
314
|
LegacyMaxAgeFilter::LegacyMaxAgeFilter(grpc_channel_stack* channel_stack,
|
@@ -40,7 +40,6 @@
|
|
40
40
|
|
41
41
|
#include "src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h"
|
42
42
|
#include "src/core/lib/channel/channel_stack.h"
|
43
|
-
#include "src/core/lib/channel/context.h"
|
44
43
|
#include "src/core/lib/channel/status_util.h"
|
45
44
|
#include "src/core/lib/config/core_configuration.h"
|
46
45
|
#include "src/core/lib/debug/trace.h"
|
@@ -54,10 +53,10 @@
|
|
54
53
|
|
55
54
|
namespace grpc_core {
|
56
55
|
|
57
|
-
TraceFlag grpc_fault_injection_filter_trace(false, "fault_injection_filter");
|
58
56
|
const NoInterceptor FaultInjectionFilter::Call::OnServerInitialMetadata;
|
59
57
|
const NoInterceptor FaultInjectionFilter::Call::OnServerTrailingMetadata;
|
60
58
|
const NoInterceptor FaultInjectionFilter::Call::OnClientToServerMessage;
|
59
|
+
const NoInterceptor FaultInjectionFilter::Call::OnClientToServerHalfClose;
|
61
60
|
const NoInterceptor FaultInjectionFilter::Call::OnServerToClientMessage;
|
62
61
|
const NoInterceptor FaultInjectionFilter::Call::OnFinalize;
|
63
62
|
|
@@ -151,7 +150,7 @@ FaultInjectionFilter::FaultInjectionFilter(ChannelFilter::Args filter_args)
|
|
151
150
|
ArenaPromise<absl::Status> FaultInjectionFilter::Call::OnClientInitialMetadata(
|
152
151
|
ClientMetadata& md, FaultInjectionFilter* filter) {
|
153
152
|
auto decision = filter->MakeInjectionDecision(md);
|
154
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
153
|
+
if (GRPC_TRACE_FLAG_ENABLED(fault_injection_filter)) {
|
155
154
|
gpr_log(GPR_INFO, "chand=%p: Fault injection triggered %s", this,
|
156
155
|
decision.ToString().c_str());
|
157
156
|
}
|
@@ -166,10 +165,7 @@ FaultInjectionFilter::MakeInjectionDecision(
|
|
166
165
|
const ClientMetadata& initial_metadata) {
|
167
166
|
// Fetch the fault injection policy from the service config, based on the
|
168
167
|
// relative index for which policy should this CallData use.
|
169
|
-
auto* service_config_call_data =
|
170
|
-
GetContext<
|
171
|
-
grpc_call_context_element>()[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA]
|
172
|
-
.value);
|
168
|
+
auto* service_config_call_data = GetContext<ServiceConfigCallData>();
|
173
169
|
auto* method_params = static_cast<FaultInjectionMethodParsedConfig*>(
|
174
170
|
service_config_call_data->GetMethodParsedConfig(
|
175
171
|
service_config_parser_index_));
|
@@ -58,6 +58,7 @@ class FaultInjectionFilter
|
|
58
58
|
static const NoInterceptor OnServerInitialMetadata;
|
59
59
|
static const NoInterceptor OnServerTrailingMetadata;
|
60
60
|
static const NoInterceptor OnClientToServerMessage;
|
61
|
+
static const NoInterceptor OnClientToServerHalfClose;
|
61
62
|
static const NoInterceptor OnServerToClientMessage;
|
62
63
|
static const NoInterceptor OnFinalize;
|
63
64
|
};
|
@@ -35,10 +35,10 @@
|
|
35
35
|
#include "src/core/lib/config/core_configuration.h"
|
36
36
|
#include "src/core/lib/gprpp/time.h"
|
37
37
|
#include "src/core/lib/gprpp/validation_errors.h"
|
38
|
-
#include "src/core/lib/json/json.h"
|
39
|
-
#include "src/core/lib/json/json_args.h"
|
40
|
-
#include "src/core/lib/json/json_object_loader.h"
|
41
38
|
#include "src/core/service_config/service_config_parser.h"
|
39
|
+
#include "src/core/util/json/json.h"
|
40
|
+
#include "src/core/util/json/json_args.h"
|
41
|
+
#include "src/core/util/json/json_object_loader.h"
|
42
42
|
|
43
43
|
// Channel arg key for enabling parsing fault injection via method config.
|
44
44
|
#define GRPC_ARG_PARSE_FAULT_INJECTION_METHOD_CONFIG \
|
@@ -54,6 +54,7 @@ namespace grpc_core {
|
|
54
54
|
|
55
55
|
const NoInterceptor HttpClientFilter::Call::OnServerToClientMessage;
|
56
56
|
const NoInterceptor HttpClientFilter::Call::OnClientToServerMessage;
|
57
|
+
const NoInterceptor HttpClientFilter::Call::OnClientToServerHalfClose;
|
57
58
|
const NoInterceptor HttpClientFilter::Call::OnFinalize;
|
58
59
|
|
59
60
|
const grpc_channel_filter HttpClientFilter::kFilter =
|
@@ -47,6 +47,7 @@ class HttpClientFilter : public ImplementChannelFilter<HttpClientFilter> {
|
|
47
47
|
absl::Status OnServerInitialMetadata(ServerMetadata& md);
|
48
48
|
absl::Status OnServerTrailingMetadata(ServerMetadata& md);
|
49
49
|
static const NoInterceptor OnClientToServerMessage;
|
50
|
+
static const NoInterceptor OnClientToServerHalfClose;
|
50
51
|
static const NoInterceptor OnServerToClientMessage;
|
51
52
|
static const NoInterceptor OnFinalize;
|
52
53
|
};
|
@@ -40,6 +40,7 @@ namespace grpc_core {
|
|
40
40
|
const NoInterceptor ClientAuthorityFilter::Call::OnServerInitialMetadata;
|
41
41
|
const NoInterceptor ClientAuthorityFilter::Call::OnServerTrailingMetadata;
|
42
42
|
const NoInterceptor ClientAuthorityFilter::Call::OnClientToServerMessage;
|
43
|
+
const NoInterceptor ClientAuthorityFilter::Call::OnClientToServerHalfClose;
|
43
44
|
const NoInterceptor ClientAuthorityFilter::Call::OnServerToClientMessage;
|
44
45
|
const NoInterceptor ClientAuthorityFilter::Call::OnFinalize;
|
45
46
|
|
@@ -52,6 +52,7 @@ class ClientAuthorityFilter final
|
|
52
52
|
static const NoInterceptor OnServerInitialMetadata;
|
53
53
|
static const NoInterceptor OnServerTrailingMetadata;
|
54
54
|
static const NoInterceptor OnClientToServerMessage;
|
55
|
+
static const NoInterceptor OnClientToServerHalfClose;
|
55
56
|
static const NoInterceptor OnServerToClientMessage;
|
56
57
|
static const NoInterceptor OnFinalize;
|
57
58
|
};
|
@@ -35,10 +35,8 @@
|
|
35
35
|
#include <grpc/support/log.h>
|
36
36
|
|
37
37
|
#include "src/core/ext/filters/message_size/message_size_filter.h"
|
38
|
-
#include "src/core/lib/channel/call_tracer.h"
|
39
38
|
#include "src/core/lib/channel/channel_args.h"
|
40
39
|
#include "src/core/lib/channel/channel_stack.h"
|
41
|
-
#include "src/core/lib/channel/context.h"
|
42
40
|
#include "src/core/lib/channel/promise_based_filter.h"
|
43
41
|
#include "src/core/lib/compression/compression_internal.h"
|
44
42
|
#include "src/core/lib/compression/message_compress.h"
|
@@ -51,14 +49,16 @@
|
|
51
49
|
#include "src/core/lib/resource_quota/arena.h"
|
52
50
|
#include "src/core/lib/slice/slice_buffer.h"
|
53
51
|
#include "src/core/lib/surface/call.h"
|
54
|
-
#include "src/core/lib/surface/call_trace.h"
|
55
52
|
#include "src/core/lib/transport/metadata_batch.h"
|
56
53
|
#include "src/core/lib/transport/transport.h"
|
54
|
+
#include "src/core/telemetry/call_tracer.h"
|
57
55
|
|
58
56
|
namespace grpc_core {
|
59
57
|
|
58
|
+
const NoInterceptor ServerCompressionFilter::Call::OnClientToServerHalfClose;
|
60
59
|
const NoInterceptor ServerCompressionFilter::Call::OnServerTrailingMetadata;
|
61
60
|
const NoInterceptor ServerCompressionFilter::Call::OnFinalize;
|
61
|
+
const NoInterceptor ClientCompressionFilter::Call::OnClientToServerHalfClose;
|
62
62
|
const NoInterceptor ClientCompressionFilter::Call::OnServerTrailingMetadata;
|
63
63
|
const NoInterceptor ClientCompressionFilter::Call::OnFinalize;
|
64
64
|
|
@@ -113,13 +113,11 @@ ChannelCompression::ChannelCompression(const ChannelArgs& args)
|
|
113
113
|
|
114
114
|
MessageHandle ChannelCompression::CompressMessage(
|
115
115
|
MessageHandle message, grpc_compression_algorithm algorithm) const {
|
116
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
116
|
+
if (GRPC_TRACE_FLAG_ENABLED(compression)) {
|
117
117
|
gpr_log(GPR_INFO, "CompressMessage: len=%" PRIdPTR " alg=%d flags=%d",
|
118
118
|
message->payload()->Length(), algorithm, message->flags());
|
119
119
|
}
|
120
|
-
auto*
|
121
|
-
auto* call_tracer = static_cast<CallTracerInterface*>(
|
122
|
-
call_context[GRPC_CONTEXT_CALL_TRACER].value);
|
120
|
+
auto* call_tracer = MaybeGetContext<CallTracerInterface>();
|
123
121
|
if (call_tracer != nullptr) {
|
124
122
|
call_tracer->RecordSendMessage(*message->payload());
|
125
123
|
}
|
@@ -139,7 +137,7 @@ MessageHandle ChannelCompression::CompressMessage(
|
|
139
137
|
// If we achieved compression send it as compressed, otherwise send it as (to
|
140
138
|
// avoid spending cycles on the receiver decompressing).
|
141
139
|
if (did_compress) {
|
142
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
140
|
+
if (GRPC_TRACE_FLAG_ENABLED(compression)) {
|
143
141
|
const char* algo_name;
|
144
142
|
const size_t before_size = payload->Length();
|
145
143
|
const size_t after_size = tmp.Length();
|
@@ -157,7 +155,7 @@ MessageHandle ChannelCompression::CompressMessage(
|
|
157
155
|
call_tracer->RecordSendCompressedMessage(*message->payload());
|
158
156
|
}
|
159
157
|
} else {
|
160
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
158
|
+
if (GRPC_TRACE_FLAG_ENABLED(compression)) {
|
161
159
|
const char* algo_name;
|
162
160
|
CHECK(grpc_compression_algorithm_name(algorithm, &algo_name));
|
163
161
|
gpr_log(GPR_INFO,
|
@@ -171,14 +169,12 @@ MessageHandle ChannelCompression::CompressMessage(
|
|
171
169
|
|
172
170
|
absl::StatusOr<MessageHandle> ChannelCompression::DecompressMessage(
|
173
171
|
bool is_client, MessageHandle message, DecompressArgs args) const {
|
174
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
172
|
+
if (GRPC_TRACE_FLAG_ENABLED(compression)) {
|
175
173
|
gpr_log(GPR_INFO, "DecompressMessage: len=%" PRIdPTR " max=%d alg=%d",
|
176
174
|
message->payload()->Length(),
|
177
175
|
args.max_recv_message_length.value_or(-1), args.algorithm);
|
178
176
|
}
|
179
|
-
auto*
|
180
|
-
auto* call_tracer = static_cast<CallTracerInterface*>(
|
181
|
-
call_context[GRPC_CONTEXT_CALL_TRACER].value);
|
177
|
+
auto* call_tracer = MaybeGetContext<CallTracerInterface>();
|
182
178
|
if (call_tracer != nullptr) {
|
183
179
|
call_tracer->RecordReceivedMessage(*message->payload());
|
184
180
|
}
|
@@ -234,8 +230,7 @@ ChannelCompression::DecompressArgs ChannelCompression::HandleIncomingMetadata(
|
|
234
230
|
auto max_recv_message_length = max_recv_size_;
|
235
231
|
const MessageSizeParsedConfig* limits =
|
236
232
|
MessageSizeParsedConfig::GetFromCallContext(
|
237
|
-
GetContext<
|
238
|
-
message_size_service_config_parser_index_);
|
233
|
+
GetContext<Arena>(), message_size_service_config_parser_index_);
|
239
234
|
if (limits != nullptr && limits->max_recv_size().has_value() &&
|
240
235
|
(!max_recv_message_length.has_value() ||
|
241
236
|
*limits->max_recv_size() < *max_recv_message_length)) {
|
@@ -129,6 +129,7 @@ class ClientCompressionFilter final
|
|
129
129
|
absl::StatusOr<MessageHandle> OnServerToClientMessage(
|
130
130
|
MessageHandle message, ClientCompressionFilter* filter);
|
131
131
|
|
132
|
+
static const NoInterceptor OnClientToServerHalfClose;
|
132
133
|
static const NoInterceptor OnServerTrailingMetadata;
|
133
134
|
static const NoInterceptor OnFinalize;
|
134
135
|
|
@@ -165,6 +166,7 @@ class ServerCompressionFilter final
|
|
165
166
|
MessageHandle OnServerToClientMessage(MessageHandle message,
|
166
167
|
ServerCompressionFilter* filter);
|
167
168
|
|
169
|
+
static const NoInterceptor OnClientToServerHalfClose;
|
168
170
|
static const NoInterceptor OnServerTrailingMetadata;
|
169
171
|
static const NoInterceptor OnFinalize;
|
170
172
|
|
@@ -44,12 +44,12 @@
|
|
44
44
|
#include "src/core/lib/resource_quota/arena.h"
|
45
45
|
#include "src/core/lib/slice/percent_encoding.h"
|
46
46
|
#include "src/core/lib/slice/slice.h"
|
47
|
-
#include "src/core/lib/surface/call_trace.h"
|
48
47
|
#include "src/core/lib/transport/metadata_batch.h"
|
49
48
|
|
50
49
|
namespace grpc_core {
|
51
50
|
|
52
51
|
const NoInterceptor HttpServerFilter::Call::OnClientToServerMessage;
|
52
|
+
const NoInterceptor HttpServerFilter::Call::OnClientToServerHalfClose;
|
53
53
|
const NoInterceptor HttpServerFilter::Call::OnServerToClientMessage;
|
54
54
|
const NoInterceptor HttpServerFilter::Call::OnFinalize;
|
55
55
|
|
@@ -139,7 +139,7 @@ ServerMetadataHandle HttpServerFilter::Call::OnClientInitialMetadata(
|
|
139
139
|
}
|
140
140
|
|
141
141
|
void HttpServerFilter::Call::OnServerInitialMetadata(ServerMetadata& md) {
|
142
|
-
if (
|
142
|
+
if (GRPC_TRACE_FLAG_ENABLED(call)) {
|
143
143
|
gpr_log(GPR_INFO, "%s[http-server] Write metadata",
|
144
144
|
GetContext<Activity>()->DebugTag().c_str());
|
145
145
|
}
|
@@ -50,6 +50,7 @@ class HttpServerFilter : public ImplementChannelFilter<HttpServerFilter> {
|
|
50
50
|
void OnServerInitialMetadata(ServerMetadata& md);
|
51
51
|
void OnServerTrailingMetadata(ServerMetadata& md);
|
52
52
|
static const NoInterceptor OnClientToServerMessage;
|
53
|
+
static const NoInterceptor OnClientToServerHalfClose;
|
53
54
|
static const NoInterceptor OnServerToClientMessage;
|
54
55
|
static const NoInterceptor OnFinalize;
|
55
56
|
};
|