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
@@ -32,10 +32,8 @@
|
|
32
32
|
#include "src/core/client_channel/retry_throttle.h"
|
33
33
|
#include "src/core/lib/backoff/backoff.h"
|
34
34
|
#include "src/core/lib/channel/channel_stack.h"
|
35
|
-
#include "src/core/lib/channel/context.h"
|
36
35
|
#include "src/core/lib/channel/status_util.h"
|
37
36
|
#include "src/core/lib/debug/trace.h"
|
38
|
-
#include "src/core/lib/gpr/useful.h"
|
39
37
|
#include "src/core/lib/gprpp/construct_destruct.h"
|
40
38
|
#include "src/core/lib/gprpp/debug_location.h"
|
41
39
|
#include "src/core/lib/gprpp/orphanable.h"
|
@@ -54,6 +52,7 @@
|
|
54
52
|
#include "src/core/lib/transport/error_utils.h"
|
55
53
|
#include "src/core/lib/transport/metadata_batch.h"
|
56
54
|
#include "src/core/lib/transport/transport.h"
|
55
|
+
#include "src/core/util/useful.h"
|
57
56
|
|
58
57
|
namespace grpc_core {
|
59
58
|
|
@@ -117,10 +116,8 @@ class RetryFilter::LegacyCallData::CallStackDestructionBarrier final
|
|
117
116
|
|
118
117
|
RetryFilter::LegacyCallData::CallAttempt::CallAttempt(
|
119
118
|
RetryFilter::LegacyCallData* calld, bool is_transparent_retry)
|
120
|
-
: RefCounted(GRPC_TRACE_FLAG_ENABLED(
|
121
|
-
: nullptr),
|
119
|
+
: RefCounted(GRPC_TRACE_FLAG_ENABLED(retry) ? "CallAttempt" : nullptr),
|
122
120
|
calld_(calld),
|
123
|
-
batch_payload_(calld->call_context_),
|
124
121
|
started_send_initial_metadata_(false),
|
125
122
|
completed_send_initial_metadata_(false),
|
126
123
|
started_send_trailing_metadata_(false),
|
@@ -137,14 +134,13 @@ RetryFilter::LegacyCallData::CallAttempt::CallAttempt(
|
|
137
134
|
lb_call_committed_ = true;
|
138
135
|
if (calld_->retry_committed_) {
|
139
136
|
auto* service_config_call_data =
|
140
|
-
|
141
|
-
calld_->
|
142
|
-
.value);
|
137
|
+
DownCast<ClientChannelServiceConfigCallData*>(
|
138
|
+
calld_->arena_->GetContext<ServiceConfigCallData>());
|
143
139
|
service_config_call_data->Commit();
|
144
140
|
}
|
145
141
|
},
|
146
142
|
is_transparent_retry);
|
147
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
143
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
148
144
|
gpr_log(GPR_INFO,
|
149
145
|
"chand=%p calld=%p attempt=%p: created attempt, lb_call=%p",
|
150
146
|
calld->chand_, calld, this, lb_call_.get());
|
@@ -154,7 +150,7 @@ RetryFilter::LegacyCallData::CallAttempt::CallAttempt(
|
|
154
150
|
calld->retry_policy_->per_attempt_recv_timeout().has_value()) {
|
155
151
|
const Duration per_attempt_recv_timeout =
|
156
152
|
*calld->retry_policy_->per_attempt_recv_timeout();
|
157
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
153
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
158
154
|
gpr_log(GPR_INFO,
|
159
155
|
"chand=%p calld=%p attempt=%p: per-attempt timeout in %" PRId64
|
160
156
|
" ms",
|
@@ -173,7 +169,7 @@ RetryFilter::LegacyCallData::CallAttempt::CallAttempt(
|
|
173
169
|
}
|
174
170
|
|
175
171
|
RetryFilter::LegacyCallData::CallAttempt::~CallAttempt() {
|
176
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
172
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
177
173
|
gpr_log(GPR_INFO, "chand=%p calld=%p attempt=%p: destroying call attempt",
|
178
174
|
calld_->chand_, calld_, this);
|
179
175
|
}
|
@@ -240,7 +236,7 @@ void RetryFilter::LegacyCallData::CallAttempt::MaybeSwitchToFastPath() {
|
|
240
236
|
// yet seen that op from the surface, we can't switch yet.
|
241
237
|
if (recv_trailing_metadata_internal_batch_ != nullptr) return;
|
242
238
|
// Switch to fast path.
|
243
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
239
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
244
240
|
gpr_log(GPR_INFO,
|
245
241
|
"chand=%p calld=%p attempt=%p: retry state no longer needed; "
|
246
242
|
"moving LB call to parent and unreffing the call attempt",
|
@@ -259,7 +255,7 @@ RetryFilter::LegacyCallData::CallAttempt::MaybeCreateBatchForReplay() {
|
|
259
255
|
// send_initial_metadata.
|
260
256
|
if (calld_->seen_send_initial_metadata_ && !started_send_initial_metadata_ &&
|
261
257
|
!calld_->pending_send_initial_metadata_) {
|
262
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
258
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
263
259
|
gpr_log(GPR_INFO,
|
264
260
|
"chand=%p calld=%p attempt=%p: replaying previously completed "
|
265
261
|
"send_initial_metadata op",
|
@@ -273,7 +269,7 @@ RetryFilter::LegacyCallData::CallAttempt::MaybeCreateBatchForReplay() {
|
|
273
269
|
if (started_send_message_count_ < calld_->send_messages_.size() &&
|
274
270
|
started_send_message_count_ == completed_send_message_count_ &&
|
275
271
|
!calld_->pending_send_message_) {
|
276
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
272
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
277
273
|
gpr_log(GPR_INFO,
|
278
274
|
"chand=%p calld=%p attempt=%p: replaying previously completed "
|
279
275
|
"send_message op",
|
@@ -292,7 +288,7 @@ RetryFilter::LegacyCallData::CallAttempt::MaybeCreateBatchForReplay() {
|
|
292
288
|
started_send_message_count_ == calld_->send_messages_.size() &&
|
293
289
|
!started_send_trailing_metadata_ &&
|
294
290
|
!calld_->pending_send_trailing_metadata_) {
|
295
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
291
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
296
292
|
gpr_log(GPR_INFO,
|
297
293
|
"chand=%p calld=%p attempt=%p: replaying previously completed "
|
298
294
|
"send_trailing_metadata op",
|
@@ -323,7 +319,7 @@ void StartBatchInCallCombiner(void* arg, grpc_error_handle /*ignored*/) {
|
|
323
319
|
void RetryFilter::LegacyCallData::CallAttempt::AddClosureForBatch(
|
324
320
|
grpc_transport_stream_op_batch* batch, const char* reason,
|
325
321
|
CallCombinerClosureList* closures) {
|
326
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
322
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
327
323
|
gpr_log(GPR_INFO, "chand=%p calld=%p attempt=%p: adding batch (%s): %s",
|
328
324
|
calld_->chand_, calld_, this, reason,
|
329
325
|
grpc_transport_stream_op_batch_string(batch, false).c_str());
|
@@ -336,7 +332,7 @@ void RetryFilter::LegacyCallData::CallAttempt::AddClosureForBatch(
|
|
336
332
|
|
337
333
|
void RetryFilter::LegacyCallData::CallAttempt::
|
338
334
|
AddBatchForInternalRecvTrailingMetadata(CallCombinerClosureList* closures) {
|
339
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
335
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
340
336
|
gpr_log(GPR_INFO,
|
341
337
|
"chand=%p calld=%p attempt=%p: call failed but "
|
342
338
|
"recv_trailing_metadata not started; starting it internally",
|
@@ -526,7 +522,7 @@ void RetryFilter::LegacyCallData::CallAttempt::AddRetriableBatches(
|
|
526
522
|
}
|
527
523
|
|
528
524
|
void RetryFilter::LegacyCallData::CallAttempt::StartRetriableBatches() {
|
529
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
525
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
530
526
|
gpr_log(GPR_INFO,
|
531
527
|
"chand=%p calld=%p attempt=%p: constructing retriable batches",
|
532
528
|
calld_->chand_, calld_, this);
|
@@ -536,7 +532,7 @@ void RetryFilter::LegacyCallData::CallAttempt::StartRetriableBatches() {
|
|
536
532
|
AddRetriableBatches(&closures);
|
537
533
|
// Note: This will yield the call combiner.
|
538
534
|
// Start batches on LB call.
|
539
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
535
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
540
536
|
gpr_log(GPR_INFO,
|
541
537
|
"chand=%p calld=%p attempt=%p: starting %" PRIuPTR
|
542
538
|
" retriable batches on lb_call=%p",
|
@@ -564,7 +560,7 @@ bool RetryFilter::LegacyCallData::CallAttempt::ShouldRetry(
|
|
564
560
|
if (calld_->retry_throttle_data_ != nullptr) {
|
565
561
|
calld_->retry_throttle_data_->RecordSuccess();
|
566
562
|
}
|
567
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
563
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
568
564
|
gpr_log(GPR_INFO, "chand=%p calld=%p attempt=%p: call succeeded",
|
569
565
|
calld_->chand_, calld_, this);
|
570
566
|
}
|
@@ -572,7 +568,7 @@ bool RetryFilter::LegacyCallData::CallAttempt::ShouldRetry(
|
|
572
568
|
}
|
573
569
|
// Status is not OK. Check whether the status is retryable.
|
574
570
|
if (!calld_->retry_policy_->retryable_status_codes().Contains(*status)) {
|
575
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
571
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
576
572
|
gpr_log(GPR_INFO,
|
577
573
|
"chand=%p calld=%p attempt=%p: status %s not configured as "
|
578
574
|
"retryable",
|
@@ -591,7 +587,7 @@ bool RetryFilter::LegacyCallData::CallAttempt::ShouldRetry(
|
|
591
587
|
// checks, so that we don't fail to record failures due to other factors.
|
592
588
|
if (calld_->retry_throttle_data_ != nullptr &&
|
593
589
|
!calld_->retry_throttle_data_->RecordFailure()) {
|
594
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
590
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
595
591
|
gpr_log(GPR_INFO, "chand=%p calld=%p attempt=%p: retries throttled",
|
596
592
|
calld_->chand_, calld_, this);
|
597
593
|
}
|
@@ -599,7 +595,7 @@ bool RetryFilter::LegacyCallData::CallAttempt::ShouldRetry(
|
|
599
595
|
}
|
600
596
|
// Check whether the call is committed.
|
601
597
|
if (calld_->retry_committed_) {
|
602
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
598
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
603
599
|
gpr_log(GPR_INFO,
|
604
600
|
"chand=%p calld=%p attempt=%p: retries already committed",
|
605
601
|
calld_->chand_, calld_, this);
|
@@ -610,7 +606,7 @@ bool RetryFilter::LegacyCallData::CallAttempt::ShouldRetry(
|
|
610
606
|
++calld_->num_attempts_completed_;
|
611
607
|
if (calld_->num_attempts_completed_ >=
|
612
608
|
calld_->retry_policy_->max_attempts()) {
|
613
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
609
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
614
610
|
gpr_log(
|
615
611
|
GPR_INFO, "chand=%p calld=%p attempt=%p: exceeded %d retry attempts",
|
616
612
|
calld_->chand_, calld_, this, calld_->retry_policy_->max_attempts());
|
@@ -620,7 +616,7 @@ bool RetryFilter::LegacyCallData::CallAttempt::ShouldRetry(
|
|
620
616
|
// Check server push-back.
|
621
617
|
if (server_pushback.has_value()) {
|
622
618
|
if (*server_pushback < Duration::Zero()) {
|
623
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
619
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
624
620
|
gpr_log(GPR_INFO,
|
625
621
|
"chand=%p calld=%p attempt=%p: not retrying due to server "
|
626
622
|
"push-back",
|
@@ -628,7 +624,7 @@ bool RetryFilter::LegacyCallData::CallAttempt::ShouldRetry(
|
|
628
624
|
}
|
629
625
|
return false;
|
630
626
|
} else {
|
631
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
627
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
632
628
|
gpr_log(
|
633
629
|
GPR_INFO,
|
634
630
|
"chand=%p calld=%p attempt=%p: server push-back: retry in %" PRIu64
|
@@ -678,7 +674,7 @@ void RetryFilter::LegacyCallData::CallAttempt::OnPerAttemptRecvTimerLocked(
|
|
678
674
|
void* arg, grpc_error_handle error) {
|
679
675
|
auto* call_attempt = static_cast<CallAttempt*>(arg);
|
680
676
|
auto* calld = call_attempt->calld_;
|
681
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
677
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
682
678
|
gpr_log(GPR_INFO,
|
683
679
|
"chand=%p calld=%p attempt=%p: perAttemptRecvTimeout timer fired: "
|
684
680
|
"error=%s, per_attempt_recv_timer_handle_.has_value()=%d",
|
@@ -717,7 +713,7 @@ void RetryFilter::LegacyCallData::CallAttempt::OnPerAttemptRecvTimerLocked(
|
|
717
713
|
void RetryFilter::LegacyCallData::CallAttempt::
|
718
714
|
MaybeCancelPerAttemptRecvTimer() {
|
719
715
|
if (per_attempt_recv_timer_handle_.has_value()) {
|
720
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
716
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
721
717
|
gpr_log(GPR_INFO,
|
722
718
|
"chand=%p calld=%p attempt=%p: cancelling "
|
723
719
|
"perAttemptRecvTimeout timer",
|
@@ -738,11 +734,10 @@ void RetryFilter::LegacyCallData::CallAttempt::
|
|
738
734
|
|
739
735
|
RetryFilter::LegacyCallData::CallAttempt::BatchData::BatchData(
|
740
736
|
RefCountedPtr<CallAttempt> attempt, int refcount, bool set_on_complete)
|
741
|
-
: RefCounted(
|
742
|
-
|
743
|
-
refcount),
|
737
|
+
: RefCounted(GRPC_TRACE_FLAG_ENABLED(retry) ? "BatchData" : nullptr,
|
738
|
+
refcount),
|
744
739
|
call_attempt_(attempt.release()) {
|
745
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
740
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
746
741
|
gpr_log(GPR_INFO, "chand=%p calld=%p attempt=%p: creating batch %p",
|
747
742
|
call_attempt_->calld_->chand_, call_attempt_->calld_, call_attempt_,
|
748
743
|
this);
|
@@ -763,7 +758,7 @@ RetryFilter::LegacyCallData::CallAttempt::BatchData::BatchData(
|
|
763
758
|
}
|
764
759
|
|
765
760
|
RetryFilter::LegacyCallData::CallAttempt::BatchData::~BatchData() {
|
766
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
761
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
767
762
|
gpr_log(GPR_INFO, "chand=%p calld=%p attempt=%p: destroying batch %p",
|
768
763
|
call_attempt_->calld_->chand_, call_attempt_->calld_, call_attempt_,
|
769
764
|
this);
|
@@ -836,7 +831,7 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::
|
|
836
831
|
RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
|
837
832
|
CallAttempt* call_attempt = batch_data->call_attempt_;
|
838
833
|
RetryFilter::LegacyCallData* calld = call_attempt->calld_;
|
839
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
834
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
840
835
|
gpr_log(GPR_INFO,
|
841
836
|
"chand=%p calld=%p attempt=%p batch_data=%p: "
|
842
837
|
"got recv_initial_metadata_ready, error=%s",
|
@@ -863,7 +858,7 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::
|
|
863
858
|
if (GPR_UNLIKELY(
|
864
859
|
(call_attempt->trailing_metadata_available_ || !error.ok()) &&
|
865
860
|
!call_attempt->completed_recv_trailing_metadata_)) {
|
866
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
861
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
867
862
|
gpr_log(GPR_INFO,
|
868
863
|
"chand=%p calld=%p attempt=%p: deferring "
|
869
864
|
"recv_initial_metadata_ready (Trailers-Only)",
|
@@ -935,7 +930,7 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::RecvMessageReady(
|
|
935
930
|
RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
|
936
931
|
CallAttempt* call_attempt = batch_data->call_attempt_;
|
937
932
|
RetryFilter::LegacyCallData* calld = call_attempt->calld_;
|
938
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
933
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
939
934
|
gpr_log(GPR_INFO,
|
940
935
|
"chand=%p calld=%p attempt=%p batch_data=%p: "
|
941
936
|
"got recv_message_ready, error=%s",
|
@@ -965,7 +960,7 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::RecvMessageReady(
|
|
965
960
|
if (GPR_UNLIKELY(
|
966
961
|
(!call_attempt->recv_message_.has_value() || !error.ok()) &&
|
967
962
|
!call_attempt->completed_recv_trailing_metadata_)) {
|
968
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
963
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
969
964
|
gpr_log(GPR_INFO,
|
970
965
|
"chand=%p calld=%p attempt=%p: deferring recv_message_ready "
|
971
966
|
"(nullptr message and recv_trailing_metadata pending)",
|
@@ -1129,7 +1124,7 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::
|
|
1129
1124
|
RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
|
1130
1125
|
CallAttempt* call_attempt = batch_data->call_attempt_;
|
1131
1126
|
RetryFilter::LegacyCallData* calld = call_attempt->calld_;
|
1132
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1127
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1133
1128
|
gpr_log(GPR_INFO,
|
1134
1129
|
"chand=%p calld=%p attempt=%p batch_data=%p: "
|
1135
1130
|
"got recv_trailing_metadata_ready, error=%s",
|
@@ -1156,7 +1151,7 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::
|
|
1156
1151
|
batch_data->batch_.payload->recv_trailing_metadata.recv_trailing_metadata;
|
1157
1152
|
GetCallStatus(calld->deadline_, md_batch, error, &status, &server_pushback,
|
1158
1153
|
&is_lb_drop, &stream_network_state);
|
1159
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1154
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1160
1155
|
gpr_log(GPR_INFO,
|
1161
1156
|
"chand=%p calld=%p attempt=%p: call finished, status=%s "
|
1162
1157
|
"server_pushback=%s is_lb_drop=%d stream_network_state=%s",
|
@@ -1277,7 +1272,7 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::
|
|
1277
1272
|
}
|
1278
1273
|
}
|
1279
1274
|
if (have_pending_send_ops) {
|
1280
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1275
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1281
1276
|
gpr_log(GPR_INFO,
|
1282
1277
|
"chand=%p calld=%p attempt=%p: starting next batch for pending "
|
1283
1278
|
"send op(s)",
|
@@ -1292,7 +1287,7 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::OnComplete(
|
|
1292
1287
|
RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
|
1293
1288
|
CallAttempt* call_attempt = batch_data->call_attempt_;
|
1294
1289
|
RetryFilter::LegacyCallData* calld = call_attempt->calld_;
|
1295
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1290
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1296
1291
|
gpr_log(GPR_INFO,
|
1297
1292
|
"chand=%p calld=%p attempt=%p batch_data=%p: "
|
1298
1293
|
"got on_complete, error=%s, batch=%s",
|
@@ -1314,7 +1309,7 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::OnComplete(
|
|
1314
1309
|
// recv_trailing_metadata comes back.
|
1315
1310
|
if (GPR_UNLIKELY(!calld->retry_committed_ && !error.ok() &&
|
1316
1311
|
!call_attempt->completed_recv_trailing_metadata_)) {
|
1317
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1312
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1318
1313
|
gpr_log(GPR_INFO, "chand=%p calld=%p attempt=%p: deferring on_complete",
|
1319
1314
|
calld->chand_, calld, call_attempt);
|
1320
1315
|
}
|
@@ -1368,7 +1363,7 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::OnCompleteForCancelOp(
|
|
1368
1363
|
RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
|
1369
1364
|
CallAttempt* call_attempt = batch_data->call_attempt_;
|
1370
1365
|
RetryFilter::LegacyCallData* calld = call_attempt->calld_;
|
1371
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1366
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1372
1367
|
gpr_log(GPR_INFO,
|
1373
1368
|
"chand=%p calld=%p attempt=%p batch_data=%p: "
|
1374
1369
|
"got on_complete for cancel_stream batch, error=%s, batch=%s",
|
@@ -1412,7 +1407,7 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::
|
|
1412
1407
|
void RetryFilter::LegacyCallData::CallAttempt::BatchData::
|
1413
1408
|
AddRetriableSendMessageOp() {
|
1414
1409
|
auto* calld = call_attempt_->calld_;
|
1415
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1410
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1416
1411
|
gpr_log(
|
1417
1412
|
GPR_INFO,
|
1418
1413
|
"chand=%p calld=%p attempt=%p: starting calld->send_messages[%" PRIuPTR
|
@@ -1501,7 +1496,7 @@ grpc_error_handle RetryFilter::LegacyCallData::Init(
|
|
1501
1496
|
grpc_call_element* elem, const grpc_call_element_args* args) {
|
1502
1497
|
auto* chand = static_cast<RetryFilter*>(elem->channel_data);
|
1503
1498
|
new (elem->call_data) RetryFilter::LegacyCallData(chand, *args);
|
1504
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1499
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1505
1500
|
gpr_log(GPR_INFO, "chand=%p calld=%p: created call", chand,
|
1506
1501
|
elem->call_data);
|
1507
1502
|
}
|
@@ -1545,7 +1540,7 @@ RetryFilter::LegacyCallData::LegacyCallData(RetryFilter* chand,
|
|
1545
1540
|
const grpc_call_element_args& args)
|
1546
1541
|
: chand_(chand),
|
1547
1542
|
retry_throttle_data_(chand->retry_throttle_data()),
|
1548
|
-
retry_policy_(chand->GetRetryPolicy(args.
|
1543
|
+
retry_policy_(chand->GetRetryPolicy(args.arena)),
|
1549
1544
|
retry_backoff_(
|
1550
1545
|
BackOff::Options()
|
1551
1546
|
.set_initial_backoff(retry_policy_ == nullptr
|
@@ -1563,7 +1558,6 @@ RetryFilter::LegacyCallData::LegacyCallData(RetryFilter* chand,
|
|
1563
1558
|
arena_(args.arena),
|
1564
1559
|
owning_call_(args.call_stack),
|
1565
1560
|
call_combiner_(args.call_combiner),
|
1566
|
-
call_context_(args.context),
|
1567
1561
|
call_stack_destruction_barrier_(
|
1568
1562
|
arena_->New<CallStackDestructionBarrier>()),
|
1569
1563
|
pending_send_initial_metadata_(false),
|
@@ -1584,8 +1578,7 @@ RetryFilter::LegacyCallData::~LegacyCallData() {
|
|
1584
1578
|
|
1585
1579
|
void RetryFilter::LegacyCallData::StartTransportStreamOpBatch(
|
1586
1580
|
grpc_transport_stream_op_batch* batch) {
|
1587
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1588
|
-
!GRPC_TRACE_FLAG_ENABLED(grpc_trace_channel)) {
|
1581
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry) && !GRPC_TRACE_FLAG_ENABLED(channel)) {
|
1589
1582
|
gpr_log(GPR_INFO, "chand=%p calld=%p: batch started from surface: %s",
|
1590
1583
|
chand_, this,
|
1591
1584
|
grpc_transport_stream_op_batch_string(batch, false).c_str());
|
@@ -1608,7 +1601,7 @@ void RetryFilter::LegacyCallData::StartTransportStreamOpBatch(
|
|
1608
1601
|
if (GPR_UNLIKELY(batch->cancel_stream)) {
|
1609
1602
|
// Save cancel_error in case subsequent batches are started.
|
1610
1603
|
cancelled_from_surface_ = batch->payload->cancel_stream.cancel_error;
|
1611
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1604
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1612
1605
|
gpr_log(GPR_INFO, "chand=%p calld=%p: cancelled from surface: %s", chand_,
|
1613
1606
|
this, StatusToString(cancelled_from_surface_).c_str());
|
1614
1607
|
}
|
@@ -1631,7 +1624,7 @@ void RetryFilter::LegacyCallData::StartTransportStreamOpBatch(
|
|
1631
1624
|
}
|
1632
1625
|
// Cancel retry timer if needed.
|
1633
1626
|
if (retry_timer_handle_.has_value()) {
|
1634
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1627
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1635
1628
|
gpr_log(GPR_INFO, "chand=%p calld=%p: cancelling retry timer", chand_,
|
1636
1629
|
this);
|
1637
1630
|
}
|
@@ -1677,7 +1670,7 @@ void RetryFilter::LegacyCallData::StartTransportStreamOpBatch(
|
|
1677
1670
|
if (!retry_codepath_started_ && retry_committed_ &&
|
1678
1671
|
(retry_policy_ == nullptr ||
|
1679
1672
|
!retry_policy_->per_attempt_recv_timeout().has_value())) {
|
1680
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1673
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1681
1674
|
gpr_log(GPR_INFO,
|
1682
1675
|
"chand=%p calld=%p: retry committed before first attempt; "
|
1683
1676
|
"creating LB call",
|
@@ -1685,8 +1678,8 @@ void RetryFilter::LegacyCallData::StartTransportStreamOpBatch(
|
|
1685
1678
|
}
|
1686
1679
|
PendingBatchClear(pending);
|
1687
1680
|
auto* service_config_call_data =
|
1688
|
-
|
1689
|
-
|
1681
|
+
DownCast<ClientChannelServiceConfigCallData*>(
|
1682
|
+
arena_->GetContext<ServiceConfigCallData>());
|
1690
1683
|
committed_call_ = CreateLoadBalancedCall(
|
1691
1684
|
[service_config_call_data]() { service_config_call_data->Commit(); },
|
1692
1685
|
/*is_transparent_retry=*/false);
|
@@ -1696,7 +1689,7 @@ void RetryFilter::LegacyCallData::StartTransportStreamOpBatch(
|
|
1696
1689
|
// Otherwise, create a call attempt.
|
1697
1690
|
// The attempt will automatically start any necessary replays or
|
1698
1691
|
// pending batches.
|
1699
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1692
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1700
1693
|
gpr_log(GPR_INFO, "chand=%p calld=%p: creating call attempt", chand_,
|
1701
1694
|
this);
|
1702
1695
|
}
|
@@ -1705,7 +1698,7 @@ void RetryFilter::LegacyCallData::StartTransportStreamOpBatch(
|
|
1705
1698
|
return;
|
1706
1699
|
}
|
1707
1700
|
// Send batches to call attempt.
|
1708
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1701
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1709
1702
|
gpr_log(GPR_INFO, "chand=%p calld=%p: starting batch on attempt=%p", chand_,
|
1710
1703
|
this, call_attempt_.get());
|
1711
1704
|
}
|
@@ -1715,9 +1708,9 @@ void RetryFilter::LegacyCallData::StartTransportStreamOpBatch(
|
|
1715
1708
|
OrphanablePtr<ClientChannelFilter::FilterBasedLoadBalancedCall>
|
1716
1709
|
RetryFilter::LegacyCallData::CreateLoadBalancedCall(
|
1717
1710
|
absl::AnyInvocable<void()> on_commit, bool is_transparent_retry) {
|
1718
|
-
grpc_call_element_args args = {owning_call_,
|
1719
|
-
|
1720
|
-
|
1711
|
+
grpc_call_element_args args = {owning_call_, nullptr, path_,
|
1712
|
+
/*start_time=*/0, deadline_, arena_,
|
1713
|
+
call_combiner_};
|
1721
1714
|
return chand_->client_channel()->CreateLoadBalancedCall(
|
1722
1715
|
args, pollent_,
|
1723
1716
|
// This callback holds a ref to the CallStackDestructionBarrier
|
@@ -1763,7 +1756,7 @@ void RetryFilter::LegacyCallData::MaybeCacheSendOpsForBatch(
|
|
1763
1756
|
}
|
1764
1757
|
|
1765
1758
|
void RetryFilter::LegacyCallData::FreeCachedSendInitialMetadata() {
|
1766
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1759
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1767
1760
|
gpr_log(GPR_INFO, "chand=%p calld=%p: destroying send_initial_metadata",
|
1768
1761
|
chand_, this);
|
1769
1762
|
}
|
@@ -1772,7 +1765,7 @@ void RetryFilter::LegacyCallData::FreeCachedSendInitialMetadata() {
|
|
1772
1765
|
|
1773
1766
|
void RetryFilter::LegacyCallData::FreeCachedSendMessage(size_t idx) {
|
1774
1767
|
if (send_messages_[idx].slices != nullptr) {
|
1775
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1768
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1776
1769
|
gpr_log(GPR_INFO,
|
1777
1770
|
"chand=%p calld=%p: destroying send_messages[%" PRIuPTR "]",
|
1778
1771
|
chand_, this, idx);
|
@@ -1782,7 +1775,7 @@ void RetryFilter::LegacyCallData::FreeCachedSendMessage(size_t idx) {
|
|
1782
1775
|
}
|
1783
1776
|
|
1784
1777
|
void RetryFilter::LegacyCallData::FreeCachedSendTrailingMetadata() {
|
1785
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1778
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1786
1779
|
gpr_log(GPR_INFO, "chand=%p calld=%p: destroying send_trailing_metadata",
|
1787
1780
|
chand_, this);
|
1788
1781
|
}
|
@@ -1821,7 +1814,7 @@ RetryFilter::LegacyCallData::PendingBatch*
|
|
1821
1814
|
RetryFilter::LegacyCallData::PendingBatchesAdd(
|
1822
1815
|
grpc_transport_stream_op_batch* batch) {
|
1823
1816
|
const size_t idx = GetBatchIndex(batch);
|
1824
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1817
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1825
1818
|
gpr_log(GPR_INFO,
|
1826
1819
|
"chand=%p calld=%p: adding pending batch at index %" PRIuPTR,
|
1827
1820
|
chand_, this, idx);
|
@@ -1852,7 +1845,7 @@ RetryFilter::LegacyCallData::PendingBatchesAdd(
|
|
1852
1845
|
// ops have already been sent, and we commit to that attempt.
|
1853
1846
|
if (GPR_UNLIKELY(bytes_buffered_for_retry_ >
|
1854
1847
|
chand_->per_rpc_retry_buffer_size())) {
|
1855
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1848
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1856
1849
|
gpr_log(GPR_INFO,
|
1857
1850
|
"chand=%p calld=%p: exceeded retry buffer size, committing",
|
1858
1851
|
chand_, this);
|
@@ -1889,7 +1882,7 @@ void RetryFilter::LegacyCallData::MaybeClearPendingBatch(
|
|
1889
1882
|
(!batch->recv_trailing_metadata ||
|
1890
1883
|
batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready ==
|
1891
1884
|
nullptr)) {
|
1892
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1885
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1893
1886
|
gpr_log(GPR_INFO, "chand=%p calld=%p: clearing pending batch", chand_,
|
1894
1887
|
this);
|
1895
1888
|
}
|
@@ -1912,7 +1905,7 @@ void RetryFilter::LegacyCallData::FailPendingBatchInCallCombiner(
|
|
1912
1905
|
// This is called via the call combiner, so access to calld is synchronized.
|
1913
1906
|
void RetryFilter::LegacyCallData::PendingBatchesFail(grpc_error_handle error) {
|
1914
1907
|
CHECK(!error.ok());
|
1915
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1908
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1916
1909
|
size_t num_batches = 0;
|
1917
1910
|
for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
|
1918
1911
|
if (pending_batches_[i].batch != nullptr) ++num_batches;
|
@@ -1946,7 +1939,7 @@ RetryFilter::LegacyCallData::PendingBatchFind(const char* log_message,
|
|
1946
1939
|
PendingBatch* pending = &pending_batches_[i];
|
1947
1940
|
grpc_transport_stream_op_batch* batch = pending->batch;
|
1948
1941
|
if (batch != nullptr && predicate(batch)) {
|
1949
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1942
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1950
1943
|
gpr_log(GPR_INFO,
|
1951
1944
|
"chand=%p calld=%p: %s pending batch at index %" PRIuPTR,
|
1952
1945
|
chand_, this, log_message, i);
|
@@ -1964,7 +1957,7 @@ RetryFilter::LegacyCallData::PendingBatchFind(const char* log_message,
|
|
1964
1957
|
void RetryFilter::LegacyCallData::RetryCommit(CallAttempt* call_attempt) {
|
1965
1958
|
if (retry_committed_) return;
|
1966
1959
|
retry_committed_ = true;
|
1967
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1960
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1968
1961
|
gpr_log(GPR_INFO, "chand=%p calld=%p: committing retries", chand_, this);
|
1969
1962
|
}
|
1970
1963
|
if (call_attempt != nullptr) {
|
@@ -1976,8 +1969,8 @@ void RetryFilter::LegacyCallData::RetryCommit(CallAttempt* call_attempt) {
|
|
1976
1969
|
// problem anymore.
|
1977
1970
|
if (call_attempt->lb_call_committed()) {
|
1978
1971
|
auto* service_config_call_data =
|
1979
|
-
|
1980
|
-
|
1972
|
+
DownCast<ClientChannelServiceConfigCallData*>(
|
1973
|
+
arena_->GetContext<ServiceConfigCallData>());
|
1981
1974
|
service_config_call_data->Commit();
|
1982
1975
|
}
|
1983
1976
|
// Free cached send ops.
|
@@ -1998,7 +1991,7 @@ void RetryFilter::LegacyCallData::StartRetryTimer(
|
|
1998
1991
|
} else {
|
1999
1992
|
next_attempt_timeout = retry_backoff_.NextAttemptTime() - Timestamp::Now();
|
2000
1993
|
}
|
2001
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
1994
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
2002
1995
|
gpr_log(GPR_INFO,
|
2003
1996
|
"chand=%p calld=%p: retrying failed call in %" PRId64 " ms", chand_,
|
2004
1997
|
this, next_attempt_timeout.millis());
|
@@ -2031,7 +2024,7 @@ void RetryFilter::LegacyCallData::OnRetryTimerLocked(
|
|
2031
2024
|
|
2032
2025
|
void RetryFilter::LegacyCallData::AddClosureToStartTransparentRetry(
|
2033
2026
|
CallCombinerClosureList* closures) {
|
2034
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
2027
|
+
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
2035
2028
|
gpr_log(GPR_INFO, "chand=%p calld=%p: scheduling transparent retry", chand_,
|
2036
2029
|
this);
|
2037
2030
|
}
|
@@ -37,7 +37,6 @@
|
|
37
37
|
#include "src/core/lib/backoff/backoff.h"
|
38
38
|
#include "src/core/lib/channel/channel_fwd.h"
|
39
39
|
#include "src/core/lib/channel/channel_stack.h"
|
40
|
-
#include "src/core/lib/channel/context.h"
|
41
40
|
#include "src/core/lib/gprpp/debug_location.h"
|
42
41
|
#include "src/core/lib/gprpp/orphanable.h"
|
43
42
|
#include "src/core/lib/gprpp/ref_counted.h"
|
@@ -380,7 +379,6 @@ class RetryFilter::LegacyCallData final {
|
|
380
379
|
Arena* arena_;
|
381
380
|
grpc_call_stack* owning_call_;
|
382
381
|
CallCombiner* call_combiner_;
|
383
|
-
grpc_call_context_element* call_context_;
|
384
382
|
|
385
383
|
grpc_error_handle cancelled_from_surface_;
|
386
384
|
|
@@ -23,6 +23,7 @@
|
|
23
23
|
#include <utility>
|
24
24
|
#include <vector>
|
25
25
|
|
26
|
+
#include "absl/log/log.h"
|
26
27
|
#include "absl/strings/numbers.h"
|
27
28
|
#include "absl/strings/str_cat.h"
|
28
29
|
#include "absl/types/optional.h"
|
@@ -30,12 +31,11 @@
|
|
30
31
|
#include <grpc/impl/channel_arg_names.h>
|
31
32
|
#include <grpc/status.h>
|
32
33
|
#include <grpc/support/json.h>
|
33
|
-
#include <grpc/support/log.h>
|
34
34
|
|
35
35
|
#include "src/core/lib/channel/channel_args.h"
|
36
36
|
#include "src/core/lib/channel/status_util.h"
|
37
37
|
#include "src/core/lib/config/core_configuration.h"
|
38
|
-
#include "src/core/
|
38
|
+
#include "src/core/util/json/json_channel_args.h"
|
39
39
|
|
40
40
|
// As per the retry design, we do not allow more than 5 retry attempts.
|
41
41
|
#define MAX_MAX_RETRY_ATTEMPTS 5
|
@@ -142,9 +142,8 @@ void RetryMethodConfig::JsonPostLoad(const Json& json, const JsonArgs& args,
|
|
142
142
|
if (max_attempts_ <= 1) {
|
143
143
|
errors->AddError("must be at least 2");
|
144
144
|
} else if (max_attempts_ > MAX_MAX_RETRY_ATTEMPTS) {
|
145
|
-
|
146
|
-
|
147
|
-
MAX_MAX_RETRY_ATTEMPTS);
|
145
|
+
LOG(ERROR) << "service config: clamped retryPolicy.maxAttempts at "
|
146
|
+
<< MAX_MAX_RETRY_ATTEMPTS;
|
148
147
|
max_attempts_ = MAX_MAX_RETRY_ATTEMPTS;
|
149
148
|
}
|
150
149
|
}
|
@@ -32,10 +32,10 @@
|
|
32
32
|
#include "src/core/lib/config/core_configuration.h"
|
33
33
|
#include "src/core/lib/gprpp/time.h"
|
34
34
|
#include "src/core/lib/gprpp/validation_errors.h"
|
35
|
-
#include "src/core/lib/json/json.h"
|
36
|
-
#include "src/core/lib/json/json_args.h"
|
37
|
-
#include "src/core/lib/json/json_object_loader.h"
|
38
35
|
#include "src/core/service_config/service_config_parser.h"
|
36
|
+
#include "src/core/util/json/json.h"
|
37
|
+
#include "src/core/util/json/json_args.h"
|
38
|
+
#include "src/core/util/json/json_object_loader.h"
|
39
39
|
|
40
40
|
namespace grpc_core {
|
41
41
|
namespace internal {
|