grpc 1.66.0 → 1.67.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Makefile +19 -10
- data/include/grpc/credentials.h +1 -1
- data/include/grpc/event_engine/README.md +1 -1
- data/include/grpc/event_engine/internal/slice_cast.h +1 -1
- data/include/grpc/event_engine/slice.h +0 -1
- data/include/grpc/event_engine/slice_buffer.h +0 -1
- data/include/grpc/grpc_crl_provider.h +1 -1
- data/include/grpc/impl/channel_arg_names.h +1 -1
- data/include/grpc/support/log.h +34 -32
- data/include/grpc/support/sync_generic.h +2 -4
- data/src/core/channelz/channelz.cc +0 -1
- data/src/core/channelz/channelz_registry.cc +0 -1
- data/src/core/client_channel/client_channel.cc +10 -7
- data/src/core/client_channel/client_channel.h +1 -1
- data/src/core/client_channel/client_channel_filter.cc +21 -18
- data/src/core/client_channel/client_channel_filter.h +1 -1
- data/src/core/client_channel/client_channel_internal.h +0 -2
- data/src/core/client_channel/config_selector.h +0 -1
- data/src/core/client_channel/dynamic_filters.cc +0 -2
- data/src/core/client_channel/local_subchannel_pool.cc +0 -2
- data/src/core/client_channel/retry_filter.h +0 -1
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +175 -257
- data/src/core/client_channel/subchannel.cc +21 -27
- data/src/core/client_channel/subchannel_stream_client.cc +1 -1
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +8 -9
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +0 -1
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +3 -4
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +167 -0
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +82 -0
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc +81 -0
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +87 -0
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +7 -9
- data/src/core/ext/filters/http/server/http_server_filter.cc +2 -4
- data/src/core/ext/filters/message_size/message_size_filter.cc +6 -7
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +0 -2
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +0 -1
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +6 -8
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +288 -265
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -1
- data/src/core/ext/transport/chttp2/transport/frame.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +0 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +37 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +27 -6
- data/src/core/ext/transport/chttp2/transport/internal.h +2 -3
- data/src/core/ext/transport/chttp2/transport/parsing.cc +21 -32
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +6 -8
- data/src/core/ext/transport/chttp2/transport/varint.h +0 -1
- data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/writing.cc +22 -22
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +431 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +129 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.h +33 -0
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +16 -0
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +13 -2
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +397 -22
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +94 -20
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.h +2 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.c +86 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.h +47 -0
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.c +108 -107
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.c +101 -78
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.h +10 -0
- data/src/core/handshaker/handshaker.cc +21 -29
- data/src/core/handshaker/security/secure_endpoint.cc +3 -3
- data/src/core/handshaker/security/security_handshaker.cc +60 -72
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +0 -1
- data/src/core/lib/backoff/backoff.cc +7 -10
- data/src/core/lib/backoff/backoff.h +4 -6
- data/src/core/lib/channel/channel_stack.cc +0 -1
- data/src/core/lib/channel/channel_stack.h +0 -1
- data/src/core/lib/channel/channel_stack_builder_impl.cc +0 -1
- data/src/core/lib/channel/connected_channel.cc +0 -1
- data/src/core/lib/channel/promise_based_filter.cc +146 -194
- data/src/core/lib/channel/promise_based_filter.h +1 -1
- data/src/core/lib/compression/compression_internal.cc +0 -1
- data/src/core/lib/config/config_vars.cc +11 -1
- data/src/core/lib/config/config_vars.h +8 -0
- data/src/core/lib/config/core_configuration.cc +0 -1
- data/src/core/lib/config/core_configuration.h +0 -1
- data/src/core/lib/debug/event_log.cc +0 -1
- data/src/core/lib/debug/trace_flags.cc +4 -18
- data/src/core/lib/debug/trace_flags.h +2 -5
- data/src/core/lib/debug/trace_impl.h +6 -0
- data/src/core/lib/event_engine/ares_resolver.cc +89 -56
- data/src/core/lib/event_engine/ares_resolver.h +0 -9
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +14 -1
- data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +1 -1
- data/src/core/lib/event_engine/forkable.cc +0 -1
- data/src/core/lib/event_engine/forkable.h +0 -1
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +4 -4
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +0 -1
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +0 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +9 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +0 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +2 -2
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +1 -2
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +4 -9
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +0 -1
- data/src/core/lib/event_engine/resolved_address.cc +0 -1
- data/src/core/lib/event_engine/slice.cc +0 -1
- data/src/core/lib/event_engine/thread_pool/thread_count.cc +0 -1
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +3 -5
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +121 -93
- data/src/core/lib/experiments/config.cc +12 -10
- data/src/core/lib/experiments/experiments.cc +45 -66
- data/src/core/lib/experiments/experiments.h +22 -27
- data/src/core/lib/gprpp/chunked_vector.h +0 -1
- data/src/core/lib/gprpp/down_cast.h +0 -1
- data/src/core/lib/gprpp/host_port.cc +0 -1
- data/src/core/lib/gprpp/load_file.cc +0 -1
- data/src/core/lib/gprpp/mpscq.h +0 -1
- data/src/core/lib/gprpp/single_set_ptr.h +0 -1
- data/src/core/lib/gprpp/status_helper.cc +0 -1
- data/src/core/lib/gprpp/sync.h +0 -1
- data/src/core/lib/gprpp/table.h +28 -0
- data/src/core/lib/gprpp/thd.h +0 -1
- data/src/core/lib/gprpp/time.h +0 -1
- data/src/core/lib/gprpp/time_util.cc +0 -1
- data/src/core/lib/gprpp/windows/directory_reader.cc +0 -2
- data/src/core/lib/gprpp/windows/thd.cc +0 -1
- data/src/core/lib/gprpp/work_serializer.cc +23 -34
- data/src/core/lib/iomgr/buffer_list.cc +0 -1
- data/src/core/lib/iomgr/call_combiner.h +6 -8
- data/src/core/lib/iomgr/cfstream_handle.cc +6 -8
- data/src/core/lib/iomgr/closure.h +5 -8
- data/src/core/lib/iomgr/combiner.cc +6 -8
- data/src/core/lib/iomgr/endpoint_cfstream.cc +17 -22
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +0 -1
- data/src/core/lib/iomgr/error.h +0 -1
- data/src/core/lib/iomgr/ev_apple.cc +13 -18
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +47 -85
- data/src/core/lib/iomgr/ev_poll_posix.cc +17 -24
- data/src/core/lib/iomgr/ev_posix.cc +55 -44
- data/src/core/lib/iomgr/ev_posix.h +0 -5
- data/src/core/lib/iomgr/event_engine_shims/closure.cc +7 -9
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +3 -4
- data/src/core/lib/iomgr/exec_ctx.cc +6 -9
- data/src/core/lib/iomgr/exec_ctx.h +26 -16
- data/src/core/lib/iomgr/executor.cc +43 -33
- data/src/core/lib/iomgr/fork_windows.cc +0 -1
- data/src/core/lib/iomgr/internal_errqueue.cc +0 -1
- data/src/core/lib/iomgr/iocp_windows.cc +0 -1
- data/src/core/lib/iomgr/iomgr_windows.cc +0 -2
- data/src/core/lib/iomgr/lockfree_event.cc +7 -11
- data/src/core/lib/iomgr/polling_entity.cc +10 -3
- data/src/core/lib/iomgr/pollset_windows.cc +0 -2
- data/src/core/lib/iomgr/resolve_address.cc +0 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +0 -1
- data/src/core/lib/iomgr/resolve_address_windows.cc +0 -1
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +0 -1
- data/src/core/lib/iomgr/socket_mutator.cc +0 -1
- data/src/core/lib/iomgr/socket_utils_linux.cc +0 -2
- data/src/core/lib/iomgr/socket_utils_posix.cc +0 -1
- data/src/core/lib/iomgr/socket_utils_windows.cc +0 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +7 -12
- data/src/core/lib/iomgr/tcp_client_posix.cc +8 -12
- data/src/core/lib/iomgr/tcp_client_windows.cc +0 -1
- data/src/core/lib/iomgr/tcp_posix.cc +32 -68
- data/src/core/lib/iomgr/tcp_server_posix.cc +7 -11
- data/src/core/lib/iomgr/tcp_windows.cc +4 -12
- data/src/core/lib/iomgr/timer_generic.cc +46 -65
- data/src/core/lib/iomgr/timer_manager.cc +4 -5
- data/src/core/lib/iomgr/unix_sockets_posix.cc +0 -1
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +0 -2
- data/src/core/lib/iomgr/vsock.cc +0 -1
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +0 -2
- data/src/core/lib/promise/activity.h +0 -1
- data/src/core/lib/promise/context.h +0 -1
- data/src/core/lib/promise/detail/join_state.h +44 -44
- data/src/core/lib/promise/detail/seq_state.h +1101 -1356
- data/src/core/lib/promise/for_each.h +8 -15
- data/src/core/lib/promise/interceptor_list.h +17 -27
- data/src/core/lib/promise/latch.h +16 -24
- data/src/core/lib/promise/map.h +1 -1
- data/src/core/lib/promise/party.cc +238 -114
- data/src/core/lib/promise/party.h +105 -308
- data/src/core/lib/promise/pipe.h +3 -4
- data/src/core/lib/promise/poll.h +0 -1
- data/src/core/lib/promise/status_flag.h +0 -1
- data/src/core/lib/resource_quota/connection_quota.cc +0 -1
- data/src/core/lib/resource_quota/memory_quota.cc +11 -19
- data/src/core/lib/resource_quota/memory_quota.h +2 -4
- data/src/core/lib/resource_quota/periodic_update.cc +2 -3
- data/src/core/lib/resource_quota/thread_quota.cc +0 -1
- data/src/core/lib/security/authorization/audit_logging.cc +0 -1
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +0 -1
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +14 -19
- data/src/core/lib/security/authorization/stdout_logger.cc +0 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +0 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +0 -1
- data/src/core/lib/security/credentials/call_creds_util.cc +0 -1
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +0 -1
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -0
- data/src/core/lib/security/credentials/credentials.h +1 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +322 -324
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +53 -42
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +391 -353
- data/src/core/lib/security/credentials/external/external_account_credentials.h +121 -51
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +83 -44
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +27 -7
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +91 -116
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +14 -17
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -0
- data/src/core/lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +196 -0
- data/src/core/lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.h +90 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +27 -41
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +0 -1
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -0
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +163 -259
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +34 -56
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +12 -16
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +0 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +0 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +0 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +0 -1
- data/src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.cc +298 -0
- data/src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.h +176 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +0 -1
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +0 -1
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +0 -1
- data/src/core/lib/security/security_connector/load_system_roots_windows.cc +0 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +4 -6
- data/src/core/lib/slice/percent_encoding.cc +0 -1
- data/src/core/lib/slice/slice.cc +0 -1
- data/src/core/lib/slice/slice.h +0 -1
- data/src/core/lib/slice/slice_buffer.cc +0 -1
- data/src/core/lib/slice/slice_internal.h +0 -1
- data/src/core/lib/slice/slice_refcount.h +6 -8
- data/src/core/lib/surface/byte_buffer_reader.cc +0 -1
- data/src/core/lib/surface/call.cc +3 -5
- data/src/core/lib/surface/call_utils.h +0 -1
- data/src/core/lib/surface/channel.cc +0 -1
- data/src/core/lib/surface/channel_create.cc +0 -1
- data/src/core/lib/surface/channel_init.h +0 -1
- data/src/core/lib/surface/client_call.cc +0 -1
- data/src/core/lib/surface/client_call.h +0 -1
- data/src/core/lib/surface/completion_queue.cc +28 -4
- data/src/core/lib/surface/completion_queue_factory.cc +0 -1
- data/src/core/lib/surface/filter_stack_call.cc +9 -9
- data/src/core/lib/surface/filter_stack_call.h +0 -1
- data/src/core/lib/surface/lame_client.cc +0 -1
- data/src/core/lib/surface/server_call.cc +0 -1
- data/src/core/lib/surface/server_call.h +0 -1
- data/src/core/lib/surface/validate_metadata.h +0 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +9 -12
- data/src/core/lib/transport/bdp_estimator.h +6 -8
- data/src/core/lib/transport/call_arena_allocator.cc +2 -16
- data/src/core/lib/transport/call_arena_allocator.h +20 -5
- data/src/core/lib/transport/call_filters.cc +6 -9
- data/src/core/lib/transport/call_spine.h +24 -13
- data/src/core/lib/transport/connectivity_state.cc +34 -42
- data/src/core/lib/transport/metadata_batch.h +41 -1
- data/src/core/lib/transport/timeout_encoding.cc +0 -1
- data/src/core/lib/transport/transport.h +6 -8
- data/src/core/lib/transport/transport_op_string.cc +0 -1
- data/src/core/lib/uri/uri_parser.cc +0 -1
- data/src/core/load_balancing/grpclb/grpclb.cc +55 -71
- data/src/core/load_balancing/health_check_client.cc +31 -42
- data/src/core/load_balancing/oob_backend_metric.cc +2 -4
- data/src/core/load_balancing/outlier_detection/outlier_detection.cc +99 -129
- data/src/core/load_balancing/pick_first/pick_first.cc +168 -228
- data/src/core/load_balancing/priority/priority.cc +77 -106
- data/src/core/load_balancing/ring_hash/ring_hash.cc +32 -46
- data/src/core/load_balancing/rls/rls.cc +142 -187
- data/src/core/load_balancing/round_robin/round_robin.cc +36 -55
- data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +0 -1
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +85 -110
- data/src/core/load_balancing/weighted_target/weighted_target.cc +52 -75
- data/src/core/load_balancing/xds/cds.cc +26 -43
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +57 -54
- data/src/core/load_balancing/xds/xds_cluster_manager.cc +36 -50
- data/src/core/load_balancing/xds/xds_override_host.cc +95 -131
- data/src/core/load_balancing/xds/xds_wrr_locality.cc +15 -23
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +3 -0
- data/src/core/resolver/binder/binder_resolver.cc +0 -2
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +62 -44
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +0 -2
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +110 -89
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +132 -96
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +0 -7
- data/src/core/resolver/dns/dns_resolver_plugin.cc +0 -1
- data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +40 -39
- data/src/core/resolver/dns/native/dns_resolver.cc +8 -14
- data/src/core/resolver/endpoint_addresses.cc +0 -1
- data/src/core/resolver/fake/fake_resolver.cc +0 -1
- data/src/core/resolver/polling_resolver.cc +6 -15
- data/src/core/resolver/polling_resolver.h +1 -1
- data/src/core/resolver/xds/xds_config.cc +96 -0
- data/src/core/resolver/xds/xds_config.h +109 -0
- data/src/core/resolver/xds/xds_dependency_manager.cc +59 -154
- data/src/core/resolver/xds/xds_dependency_manager.h +1 -69
- data/src/core/resolver/xds/xds_resolver.cc +51 -55
- data/src/core/server/server.cc +2 -2
- data/src/core/server/server_config_selector_filter.cc +0 -1
- data/src/core/server/xds_server_config_fetcher.cc +4 -6
- data/src/core/service_config/service_config_call_data.h +2 -3
- data/src/core/service_config/service_config_channel_arg_filter.cc +0 -1
- data/src/core/service_config/service_config_impl.h +0 -1
- data/src/core/telemetry/call_tracer.cc +0 -1
- data/src/core/telemetry/metrics.h +0 -1
- data/src/core/telemetry/stats_data.cc +67 -0
- data/src/core/telemetry/stats_data.h +48 -0
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +0 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +0 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +0 -1
- data/src/core/tsi/fake_transport_security.cc +6 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +0 -1
- data/src/core/util/alloc.cc +0 -1
- data/src/core/util/gcp_metadata_query.cc +0 -1
- data/src/core/util/http_client/httpcli.cc +12 -15
- data/src/core/util/http_client/httpcli.h +16 -11
- data/src/core/util/http_client/parser.cc +3 -4
- data/src/core/util/json/json_reader.cc +0 -1
- data/src/core/util/latent_see.cc +29 -9
- data/src/core/util/latent_see.h +122 -27
- data/src/core/util/log.cc +36 -55
- data/src/core/util/lru_cache.h +104 -0
- data/src/core/util/msys/tmpfile.cc +0 -1
- data/src/core/util/posix/sync.cc +0 -1
- data/src/core/util/posix/time.cc +0 -1
- data/src/core/util/ring_buffer.h +123 -0
- data/src/core/util/spinlock.h +1 -2
- data/src/core/util/string.cc +7 -7
- data/src/core/util/sync.cc +0 -1
- data/src/core/util/sync_abseil.cc +0 -1
- data/src/core/util/time.cc +0 -1
- data/src/core/util/unique_ptr_with_bitset.h +86 -0
- data/src/core/util/useful.h +0 -24
- data/src/core/util/windows/cpu.cc +0 -1
- data/src/core/util/windows/sync.cc +0 -1
- data/src/core/util/windows/time.cc +0 -1
- data/src/core/util/windows/tmpfile.cc +0 -1
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +0 -32
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +0 -5
- data/src/core/xds/grpc/xds_certificate_provider.cc +0 -1
- data/src/core/xds/grpc/xds_client_grpc.cc +11 -16
- data/src/core/xds/grpc/xds_cluster.cc +2 -8
- data/src/core/xds/grpc/xds_cluster.h +4 -4
- data/src/core/xds/grpc/xds_cluster_parser.cc +58 -96
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +0 -1
- data/src/core/xds/grpc/xds_common_types_parser.cc +4 -4
- data/src/core/xds/grpc/xds_common_types_parser.h +17 -0
- data/src/core/xds/grpc/xds_endpoint_parser.cc +14 -14
- data/src/core/xds/grpc/xds_http_fault_filter.cc +15 -6
- data/src/core/xds/grpc/xds_http_fault_filter.h +5 -1
- data/src/core/xds/grpc/xds_http_filter.h +11 -1
- data/src/core/xds/grpc/xds_http_filter_registry.cc +7 -1
- data/src/core/xds/grpc/xds_http_filter_registry.h +8 -1
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +142 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +61 -0
- data/src/core/xds/grpc/xds_http_rbac_filter.cc +14 -6
- data/src/core/xds/grpc/xds_http_rbac_filter.h +5 -1
- data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +9 -1
- data/src/core/xds/grpc/xds_http_stateful_session_filter.h +5 -1
- data/src/core/xds/grpc/xds_lb_policy_registry.cc +14 -16
- data/src/core/xds/grpc/xds_listener_parser.cc +10 -11
- data/src/core/xds/grpc/xds_metadata.cc +62 -0
- data/src/core/xds/grpc/xds_metadata.h +127 -0
- data/src/core/xds/grpc/xds_metadata_parser.cc +143 -0
- data/src/core/xds/grpc/xds_metadata_parser.h +36 -0
- data/src/core/xds/grpc/xds_route_config_parser.cc +12 -17
- data/src/core/xds/grpc/xds_routing.cc +57 -22
- data/src/core/xds/grpc/xds_routing.h +10 -2
- data/src/core/xds/grpc/xds_transport_grpc.cc +0 -1
- data/src/core/xds/xds_client/xds_client.cc +124 -165
- data/src/core/xds/xds_client/xds_client_stats.cc +20 -27
- data/src/ruby/ext/grpc/rb_call.c +1 -1
- data/src/ruby/ext/grpc/rb_call_credentials.c +34 -27
- data/src/ruby/ext/grpc/rb_channel.c +22 -16
- data/src/ruby/ext/grpc/rb_event_thread.c +3 -2
- data/src/ruby/ext/grpc/rb_grpc.c +9 -8
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -10
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +9 -15
- data/src/ruby/ext/grpc/rb_server.c +10 -8
- data/src/ruby/lib/grpc/generic/active_call.rb +8 -5
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/call_spec.rb +53 -40
- data/src/ruby/spec/channel_spec.rb +4 -2
- data/src/ruby/spec/client_server_spec.rb +148 -507
- data/src/ruby/spec/generic/active_call_spec.rb +64 -86
- data/src/ruby/spec/support/services.rb +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/rand/fork_detect.h → bcm_support.h} +51 -6
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +43 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.c +72 -23
- data/third_party/boringssl-with-bazel/src/crypto/crypto.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +160 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +79 -78
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm_interface.h +89 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{div.c → div.c.inc} +146 -179
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{random.c → random.c.inc} +6 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{sqrt.c → sqrt.c.inc} +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{e_aes.c → e_aes.c.inc} +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec_key.c → ec_key.c.inc} +11 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-nistz.c → p256-nistz.c.inc} +104 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.h +65 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/{ecdsa.c → ecdsa.c.inc} +52 -107
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +28 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -80
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/{rand.c → rand.c.inc} +26 -40
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{padding.c → padding.c.inc} +2 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{rsa_impl.c → rsa_impl.c.inc} +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/{self_check.c → self_check.c.inc} +9 -35
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/{service_indicator.c → service_indicator.c.inc} +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +293 -2
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +69 -14
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +7 -3
- data/third_party/boringssl-with-bazel/src/crypto/mldsa/internal.h +73 -0
- data/third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.c +1687 -0
- data/third_party/boringssl-with-bazel/src/crypto/mlkem/internal.h +90 -0
- data/third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc +1097 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +4 -1
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +4 -5
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/rand → rand_extra}/fork_detect.c +26 -28
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.c +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +19 -3
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +26 -23
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/sysrand_internal.h +37 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/rand → rand_extra}/urandom.c +19 -19
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +8 -1
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h +2 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +14 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +14 -9
- data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +13 -15
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +8 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/mldsa.h +136 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/mlkem.h +246 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +3 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +22 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +35 -5
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -6
- data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +6 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +6 -1
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +13 -1
- data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +289 -55
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +69 -38
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +14 -3
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +107 -14
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +44 -16
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +21 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +86 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +7 -4
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +97 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +31 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +6 -0
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +18 -4
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +96 -34
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +15 -5
- data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +3 -23
- metadata +113 -87
- data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc +0 -45
- data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.h +0 -67
- data/src/core/util/android/log.cc +0 -48
- data/src/core/util/linux/log.cc +0 -69
- data/src/core/util/posix/log.cc +0 -69
- data/src/core/util/windows/log.cc +0 -73
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{aes.c → aes.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{aes_nohw.c → aes_nohw.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{key_wrap.c → key_wrap.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{mode_wrappers.c → mode_wrappers.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{add.c → add.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/{x86_64-gcc.c → x86_64-gcc.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{bn.c → bn.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{bytes.c → bytes.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{cmp.c → cmp.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{ctx.c → ctx.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{div_extra.c → div_extra.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{exponentiation.c → exponentiation.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{gcd.c → gcd.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{gcd_extra.c → gcd_extra.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{generic.c → generic.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{jacobi.c → jacobi.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{montgomery.c → montgomery.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{montgomery_inv.c → montgomery_inv.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{mul.c → mul.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{prime.c → prime.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{rsaz_exp.c → rsaz_exp.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{shift.c → shift.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{aead.c → aead.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{cipher.c → cipher.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{e_aesccm.c → e_aesccm.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/{cmac.c → cmac.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/{check.c → check.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/{dh.c → dh.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/{digest.c → digest.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/{digests.c → digests.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/{digestsign.c → digestsign.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec.c → ec.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec_montgomery.c → ec_montgomery.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{felem.c → felem.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{oct.c → oct.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p224-64.c → p224-64.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256.c → p256.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{scalar.c → scalar.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{simple.c → simple.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{simple_mul.c → simple_mul.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{util.c → util.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{wnaf.c → wnaf.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/{ecdh.c → ecdh.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/{hkdf.c → hkdf.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/{hmac.c → hmac.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/{md4.c → md4.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/{md5.c → md5.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{cbc.c → cbc.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{cfb.c → cfb.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{ctr.c → ctr.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{gcm.c → gcm.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{gcm_nohw.c → gcm_nohw.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{ofb.c → ofb.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{polyval.c → polyval.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/{ctrdrbg.c → ctrdrbg.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{blinding.c → blinding.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{rsa.c → rsa.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/{fips.c → fips.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha1.c → sha1.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha256.c → sha256.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha512.c → sha512.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/{kdf.c → kdf.c.inc} +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/rand → rand_extra}/getrandom_fillin.h +0 -0
@@ -139,21 +139,18 @@ RetryFilter::LegacyCallData::CallAttempt::CallAttempt(
|
|
139
139
|
}
|
140
140
|
},
|
141
141
|
is_transparent_retry);
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
<< ": created attempt, lb_call=" << lb_call_.get();
|
146
|
-
}
|
142
|
+
GRPC_TRACE_LOG(retry, INFO)
|
143
|
+
<< "chand=" << calld->chand_ << " calld=" << calld << " attempt=" << this
|
144
|
+
<< ": created attempt, lb_call=" << lb_call_.get();
|
147
145
|
// If per_attempt_recv_timeout is set, start a timer.
|
148
146
|
if (calld->retry_policy_ != nullptr &&
|
149
147
|
calld->retry_policy_->per_attempt_recv_timeout().has_value()) {
|
150
148
|
const Duration per_attempt_recv_timeout =
|
151
149
|
*calld->retry_policy_->per_attempt_recv_timeout();
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
}
|
150
|
+
GRPC_TRACE_LOG(retry, INFO)
|
151
|
+
<< "chand=" << calld->chand_ << " calld=" << calld
|
152
|
+
<< " attempt=" << this << ": per-attempt timeout in "
|
153
|
+
<< per_attempt_recv_timeout.millis() << " ms";
|
157
154
|
// Schedule retry after computed delay.
|
158
155
|
GRPC_CALL_STACK_REF(calld->owning_call_, "OnPerAttemptRecvTimer");
|
159
156
|
Ref(DEBUG_LOCATION, "OnPerAttemptRecvTimer").release();
|
@@ -167,10 +164,9 @@ RetryFilter::LegacyCallData::CallAttempt::CallAttempt(
|
|
167
164
|
}
|
168
165
|
|
169
166
|
RetryFilter::LegacyCallData::CallAttempt::~CallAttempt() {
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
}
|
167
|
+
GRPC_TRACE_LOG(retry, INFO)
|
168
|
+
<< "chand=" << calld_->chand_ << " calld=" << calld_
|
169
|
+
<< " attempt=" << this << ": destroying call attempt";
|
174
170
|
}
|
175
171
|
|
176
172
|
void RetryFilter::LegacyCallData::CallAttempt::
|
@@ -234,12 +230,11 @@ void RetryFilter::LegacyCallData::CallAttempt::MaybeSwitchToFastPath() {
|
|
234
230
|
// yet seen that op from the surface, we can't switch yet.
|
235
231
|
if (recv_trailing_metadata_internal_batch_ != nullptr) return;
|
236
232
|
// Switch to fast path.
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
}
|
233
|
+
GRPC_TRACE_LOG(retry, INFO)
|
234
|
+
<< "chand=" << calld_->chand_ << " calld=" << calld_
|
235
|
+
<< " attempt=" << this
|
236
|
+
<< ": retry state no longer needed; "
|
237
|
+
"moving LB call to parent and unreffing the call attempt";
|
243
238
|
calld_->committed_call_ = std::move(lb_call_);
|
244
239
|
calld_->call_attempt_.reset(DEBUG_LOCATION, "MaybeSwitchToFastPath");
|
245
240
|
}
|
@@ -253,12 +248,10 @@ RetryFilter::LegacyCallData::CallAttempt::MaybeCreateBatchForReplay() {
|
|
253
248
|
// send_initial_metadata.
|
254
249
|
if (calld_->seen_send_initial_metadata_ && !started_send_initial_metadata_ &&
|
255
250
|
!calld_->pending_send_initial_metadata_) {
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
"send_initial_metadata op";
|
261
|
-
}
|
251
|
+
GRPC_TRACE_LOG(retry, INFO) << "chand=" << calld_->chand_
|
252
|
+
<< " calld=" << calld_ << " attempt=" << this
|
253
|
+
<< ": replaying previously completed "
|
254
|
+
"send_initial_metadata op";
|
262
255
|
replay_batch_data = CreateBatch(1, true /* set_on_complete */);
|
263
256
|
replay_batch_data->AddRetriableSendInitialMetadataOp();
|
264
257
|
}
|
@@ -267,12 +260,10 @@ RetryFilter::LegacyCallData::CallAttempt::MaybeCreateBatchForReplay() {
|
|
267
260
|
if (started_send_message_count_ < calld_->send_messages_.size() &&
|
268
261
|
started_send_message_count_ == completed_send_message_count_ &&
|
269
262
|
!calld_->pending_send_message_) {
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
"send_message op";
|
275
|
-
}
|
263
|
+
GRPC_TRACE_LOG(retry, INFO) << "chand=" << calld_->chand_
|
264
|
+
<< " calld=" << calld_ << " attempt=" << this
|
265
|
+
<< ": replaying previously completed "
|
266
|
+
"send_message op";
|
276
267
|
if (replay_batch_data == nullptr) {
|
277
268
|
replay_batch_data = CreateBatch(1, true /* set_on_complete */);
|
278
269
|
}
|
@@ -286,12 +277,10 @@ RetryFilter::LegacyCallData::CallAttempt::MaybeCreateBatchForReplay() {
|
|
286
277
|
started_send_message_count_ == calld_->send_messages_.size() &&
|
287
278
|
!started_send_trailing_metadata_ &&
|
288
279
|
!calld_->pending_send_trailing_metadata_) {
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
"send_trailing_metadata op";
|
294
|
-
}
|
280
|
+
GRPC_TRACE_LOG(retry, INFO) << "chand=" << calld_->chand_
|
281
|
+
<< " calld=" << calld_ << " attempt=" << this
|
282
|
+
<< ": replaying previously completed "
|
283
|
+
"send_trailing_metadata op";
|
295
284
|
if (replay_batch_data == nullptr) {
|
296
285
|
replay_batch_data = CreateBatch(1, true /* set_on_complete */);
|
297
286
|
}
|
@@ -317,11 +306,10 @@ void StartBatchInCallCombiner(void* arg, grpc_error_handle /*ignored*/) {
|
|
317
306
|
void RetryFilter::LegacyCallData::CallAttempt::AddClosureForBatch(
|
318
307
|
grpc_transport_stream_op_batch* batch, const char* reason,
|
319
308
|
CallCombinerClosureList* closures) {
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
}
|
309
|
+
GRPC_TRACE_LOG(retry, INFO)
|
310
|
+
<< "chand=" << calld_->chand_ << " calld=" << calld_
|
311
|
+
<< " attempt=" << this << ": adding batch (" << reason
|
312
|
+
<< "): " << grpc_transport_stream_op_batch_string(batch, false);
|
325
313
|
batch->handler_private.extra_arg = lb_call_.get();
|
326
314
|
GRPC_CLOSURE_INIT(&batch->handler_private.closure, StartBatchInCallCombiner,
|
327
315
|
batch, grpc_schedule_on_exec_ctx);
|
@@ -330,12 +318,11 @@ void RetryFilter::LegacyCallData::CallAttempt::AddClosureForBatch(
|
|
330
318
|
|
331
319
|
void RetryFilter::LegacyCallData::CallAttempt::
|
332
320
|
AddBatchForInternalRecvTrailingMetadata(CallCombinerClosureList* closures) {
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
}
|
321
|
+
GRPC_TRACE_LOG(retry, INFO)
|
322
|
+
<< "chand=" << calld_->chand_ << " calld=" << calld_
|
323
|
+
<< " attempt=" << this
|
324
|
+
<< ": call failed but recv_trailing_metadata not started; "
|
325
|
+
"starting it internally";
|
339
326
|
// Create batch_data with 2 refs, since this batch will be unreffed twice:
|
340
327
|
// once for the recv_trailing_metadata_ready callback when the batch
|
341
328
|
// completes, and again when we actually get a recv_trailing_metadata
|
@@ -520,20 +507,18 @@ void RetryFilter::LegacyCallData::CallAttempt::AddRetriableBatches(
|
|
520
507
|
}
|
521
508
|
|
522
509
|
void RetryFilter::LegacyCallData::CallAttempt::StartRetriableBatches() {
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
}
|
510
|
+
GRPC_TRACE_LOG(retry, INFO)
|
511
|
+
<< "chand=" << calld_->chand_ << " calld=" << calld_
|
512
|
+
<< " attempt=" << this << ": constructing retriable batches";
|
527
513
|
// Construct list of closures to execute, one for each pending batch.
|
528
514
|
CallCombinerClosureList closures;
|
529
515
|
AddRetriableBatches(&closures);
|
530
516
|
// Note: This will yield the call combiner.
|
531
517
|
// Start batches on LB call.
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
}
|
518
|
+
GRPC_TRACE_LOG(retry, INFO)
|
519
|
+
<< "chand=" << calld_->chand_ << " calld=" << calld_
|
520
|
+
<< " attempt=" << this << ": starting " << closures.size()
|
521
|
+
<< " retriable batches on lb_call=" << lb_call_.get();
|
537
522
|
closures.RunClosures(calld_->call_combiner_);
|
538
523
|
}
|
539
524
|
|
@@ -556,20 +541,18 @@ bool RetryFilter::LegacyCallData::CallAttempt::ShouldRetry(
|
|
556
541
|
if (calld_->retry_throttle_data_ != nullptr) {
|
557
542
|
calld_->retry_throttle_data_->RecordSuccess();
|
558
543
|
}
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
}
|
544
|
+
GRPC_TRACE_LOG(retry, INFO)
|
545
|
+
<< "chand=" << calld_->chand_ << " calld=" << calld_
|
546
|
+
<< " attempt=" << this << ": call succeeded";
|
563
547
|
return false;
|
564
548
|
}
|
565
549
|
// Status is not OK. Check whether the status is retryable.
|
566
550
|
if (!calld_->retry_policy_->retryable_status_codes().Contains(*status)) {
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
}
|
551
|
+
GRPC_TRACE_LOG(retry, INFO)
|
552
|
+
<< "chand=" << calld_->chand_ << " calld=" << calld_
|
553
|
+
<< " attempt=" << this << ": status "
|
554
|
+
<< grpc_status_code_to_string(*status)
|
555
|
+
<< " not configured as retryable";
|
573
556
|
return false;
|
574
557
|
}
|
575
558
|
}
|
@@ -582,46 +565,40 @@ bool RetryFilter::LegacyCallData::CallAttempt::ShouldRetry(
|
|
582
565
|
// checks, so that we don't fail to record failures due to other factors.
|
583
566
|
if (calld_->retry_throttle_data_ != nullptr &&
|
584
567
|
!calld_->retry_throttle_data_->RecordFailure()) {
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
}
|
568
|
+
GRPC_TRACE_LOG(retry, INFO)
|
569
|
+
<< "chand=" << calld_->chand_ << " calld=" << calld_
|
570
|
+
<< " attempt=" << this << ": retries throttled";
|
589
571
|
return false;
|
590
572
|
}
|
591
573
|
// Check whether the call is committed.
|
592
574
|
if (calld_->retry_committed_) {
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
}
|
575
|
+
GRPC_TRACE_LOG(retry, INFO)
|
576
|
+
<< "chand=" << calld_->chand_ << " calld=" << calld_
|
577
|
+
<< " attempt=" << this << ": retries already committed";
|
597
578
|
return false;
|
598
579
|
}
|
599
580
|
// Check whether we have retries remaining.
|
600
581
|
++calld_->num_attempts_completed_;
|
601
582
|
if (calld_->num_attempts_completed_ >=
|
602
583
|
calld_->retry_policy_->max_attempts()) {
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
}
|
584
|
+
GRPC_TRACE_LOG(retry, INFO)
|
585
|
+
<< "chand=" << calld_->chand_ << " calld=" << calld_
|
586
|
+
<< " attempt=" << this << ": exceeded "
|
587
|
+
<< calld_->retry_policy_->max_attempts() << " retry attempts";
|
608
588
|
return false;
|
609
589
|
}
|
610
590
|
// Check server push-back.
|
611
591
|
if (server_pushback.has_value()) {
|
612
592
|
if (*server_pushback < Duration::Zero()) {
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
<< ": not retrying due to server push-back";
|
617
|
-
}
|
593
|
+
GRPC_TRACE_LOG(retry, INFO)
|
594
|
+
<< "chand=" << calld_->chand_ << " calld=" << calld_
|
595
|
+
<< " attempt=" << this << ": not retrying due to server push-back";
|
618
596
|
return false;
|
619
597
|
} else {
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
}
|
598
|
+
GRPC_TRACE_LOG(retry, INFO)
|
599
|
+
<< "chand=" << calld_->chand_ << " calld=" << calld_
|
600
|
+
<< " attempt=" << this << ": server push-back: retry in "
|
601
|
+
<< server_pushback->millis() << " ms";
|
625
602
|
}
|
626
603
|
}
|
627
604
|
// We should retry.
|
@@ -665,14 +642,12 @@ void RetryFilter::LegacyCallData::CallAttempt::OnPerAttemptRecvTimerLocked(
|
|
665
642
|
void* arg, grpc_error_handle error) {
|
666
643
|
auto* call_attempt = static_cast<CallAttempt*>(arg);
|
667
644
|
auto* calld = call_attempt->calld_;
|
668
|
-
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
<< call_attempt->per_attempt_recv_timer_handle_.has_value();
|
675
|
-
}
|
645
|
+
GRPC_TRACE_LOG(retry, INFO)
|
646
|
+
<< "chand=" << calld->chand_ << " calld=" << calld
|
647
|
+
<< " attempt=" << call_attempt
|
648
|
+
<< ": perAttemptRecvTimeout timer fired: error=" << StatusToString(error)
|
649
|
+
<< ", per_attempt_recv_timer_handle_.has_value()="
|
650
|
+
<< call_attempt->per_attempt_recv_timer_handle_.has_value();
|
676
651
|
CallCombinerClosureList closures;
|
677
652
|
call_attempt->per_attempt_recv_timer_handle_.reset();
|
678
653
|
// Cancel this attempt.
|
@@ -705,11 +680,9 @@ void RetryFilter::LegacyCallData::CallAttempt::OnPerAttemptRecvTimerLocked(
|
|
705
680
|
void RetryFilter::LegacyCallData::CallAttempt::
|
706
681
|
MaybeCancelPerAttemptRecvTimer() {
|
707
682
|
if (per_attempt_recv_timer_handle_.has_value()) {
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
<< ": cancelling perAttemptRecvTimeout timer";
|
712
|
-
}
|
683
|
+
GRPC_TRACE_LOG(retry, INFO)
|
684
|
+
<< "chand=" << calld_->chand_ << " calld=" << calld_
|
685
|
+
<< " attempt=" << this << ": cancelling perAttemptRecvTimeout timer";
|
713
686
|
if (calld_->chand_->event_engine()->Cancel(
|
714
687
|
*per_attempt_recv_timer_handle_)) {
|
715
688
|
Unref(DEBUG_LOCATION, "OnPerAttemptRecvTimer");
|
@@ -728,11 +701,10 @@ RetryFilter::LegacyCallData::CallAttempt::BatchData::BatchData(
|
|
728
701
|
: RefCounted(GRPC_TRACE_FLAG_ENABLED(retry) ? "BatchData" : nullptr,
|
729
702
|
refcount),
|
730
703
|
call_attempt_(attempt.release()) {
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
}
|
704
|
+
GRPC_TRACE_LOG(retry, INFO)
|
705
|
+
<< "chand=" << call_attempt_->calld_->chand_
|
706
|
+
<< " calld=" << call_attempt_->calld_ << " attempt=" << call_attempt_
|
707
|
+
<< ": creating batch " << this;
|
736
708
|
// We hold a ref to the call stack for every batch sent on a call attempt.
|
737
709
|
// This is because some batches on the call attempt may not complete
|
738
710
|
// until after all of the batches are completed at the surface (because
|
@@ -749,11 +721,10 @@ RetryFilter::LegacyCallData::CallAttempt::BatchData::BatchData(
|
|
749
721
|
}
|
750
722
|
|
751
723
|
RetryFilter::LegacyCallData::CallAttempt::BatchData::~BatchData() {
|
752
|
-
|
753
|
-
|
754
|
-
|
755
|
-
|
756
|
-
}
|
724
|
+
GRPC_TRACE_LOG(retry, INFO)
|
725
|
+
<< "chand=" << call_attempt_->calld_->chand_
|
726
|
+
<< " calld=" << call_attempt_->calld_ << " attempt=" << call_attempt_
|
727
|
+
<< ": destroying batch " << this;
|
757
728
|
CallAttempt* call_attempt = std::exchange(call_attempt_, nullptr);
|
758
729
|
grpc_call_stack* owning_call = call_attempt->calld_->owning_call_;
|
759
730
|
call_attempt->Unref(DEBUG_LOCATION, "~BatchData");
|
@@ -822,13 +793,10 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::
|
|
822
793
|
RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
|
823
794
|
CallAttempt* call_attempt = batch_data->call_attempt_;
|
824
795
|
RetryFilter::LegacyCallData* calld = call_attempt->calld_;
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
|
829
|
-
<< ": got recv_initial_metadata_ready, error="
|
830
|
-
<< StatusToString(error);
|
831
|
-
}
|
796
|
+
GRPC_TRACE_LOG(retry, INFO)
|
797
|
+
<< "chand=" << calld->chand_ << " calld=" << calld
|
798
|
+
<< " attempt=" << call_attempt << " batch_data=" << batch_data.get()
|
799
|
+
<< ": got recv_initial_metadata_ready, error=" << StatusToString(error);
|
832
800
|
call_attempt->completed_recv_initial_metadata_ = true;
|
833
801
|
// If this attempt has been abandoned, then we're not going to use the
|
834
802
|
// result of this recv_initial_metadata op, so do nothing.
|
@@ -849,11 +817,10 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::
|
|
849
817
|
if (GPR_UNLIKELY(
|
850
818
|
(call_attempt->trailing_metadata_available_ || !error.ok()) &&
|
851
819
|
!call_attempt->completed_recv_trailing_metadata_)) {
|
852
|
-
|
853
|
-
|
854
|
-
|
855
|
-
|
856
|
-
}
|
820
|
+
GRPC_TRACE_LOG(retry, INFO)
|
821
|
+
<< "chand=" << calld->chand_ << " calld=" << calld
|
822
|
+
<< " attempt=" << call_attempt
|
823
|
+
<< ": deferring recv_initial_metadata_ready (Trailers-Only)";
|
857
824
|
call_attempt->recv_initial_metadata_ready_deferred_batch_ =
|
858
825
|
std::move(batch_data);
|
859
826
|
call_attempt->recv_initial_metadata_error_ = error;
|
@@ -920,12 +887,10 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::RecvMessageReady(
|
|
920
887
|
RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
|
921
888
|
CallAttempt* call_attempt = batch_data->call_attempt_;
|
922
889
|
RetryFilter::LegacyCallData* calld = call_attempt->calld_;
|
923
|
-
|
924
|
-
|
925
|
-
|
926
|
-
|
927
|
-
<< ": got recv_message_ready, error=" << StatusToString(error);
|
928
|
-
}
|
890
|
+
GRPC_TRACE_LOG(retry, INFO)
|
891
|
+
<< "chand=" << calld->chand_ << " calld=" << calld
|
892
|
+
<< " attempt=" << call_attempt << " batch_data=" << batch_data.get()
|
893
|
+
<< ": got recv_message_ready, error=" << StatusToString(error);
|
929
894
|
++call_attempt->completed_recv_message_count_;
|
930
895
|
// If this attempt has been abandoned, then we're not going to use the
|
931
896
|
// result of this recv_message op, so do nothing.
|
@@ -949,12 +914,11 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::RecvMessageReady(
|
|
949
914
|
if (GPR_UNLIKELY(
|
950
915
|
(!call_attempt->recv_message_.has_value() || !error.ok()) &&
|
951
916
|
!call_attempt->completed_recv_trailing_metadata_)) {
|
952
|
-
|
953
|
-
|
954
|
-
|
955
|
-
|
956
|
-
|
957
|
-
}
|
917
|
+
GRPC_TRACE_LOG(retry, INFO)
|
918
|
+
<< "chand=" << calld->chand_ << " calld=" << calld
|
919
|
+
<< " attempt=" << call_attempt
|
920
|
+
<< ": deferring recv_message_ready (nullptr message and "
|
921
|
+
"recv_trailing_metadata pending)";
|
958
922
|
call_attempt->recv_message_ready_deferred_batch_ = std::move(batch_data);
|
959
923
|
call_attempt->recv_message_error_ = error;
|
960
924
|
CallCombinerClosureList closures;
|
@@ -1113,13 +1077,10 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::
|
|
1113
1077
|
RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
|
1114
1078
|
CallAttempt* call_attempt = batch_data->call_attempt_;
|
1115
1079
|
RetryFilter::LegacyCallData* calld = call_attempt->calld_;
|
1116
|
-
|
1117
|
-
|
1118
|
-
|
1119
|
-
|
1120
|
-
<< ": got recv_trailing_metadata_ready, error="
|
1121
|
-
<< StatusToString(error);
|
1122
|
-
}
|
1080
|
+
GRPC_TRACE_LOG(retry, INFO)
|
1081
|
+
<< "chand=" << calld->chand_ << " calld=" << calld
|
1082
|
+
<< " attempt=" << call_attempt << " batch_data=" << batch_data.get()
|
1083
|
+
<< ": got recv_trailing_metadata_ready, error=" << StatusToString(error);
|
1123
1084
|
call_attempt->completed_recv_trailing_metadata_ = true;
|
1124
1085
|
// If this attempt has been abandoned, then we're not going to use the
|
1125
1086
|
// result of this recv_trailing_metadata op, so do nothing.
|
@@ -1140,17 +1101,15 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::
|
|
1140
1101
|
batch_data->batch_.payload->recv_trailing_metadata.recv_trailing_metadata;
|
1141
1102
|
GetCallStatus(calld->deadline_, md_batch, error, &status, &server_pushback,
|
1142
1103
|
&is_lb_drop, &stream_network_state);
|
1143
|
-
|
1144
|
-
|
1145
|
-
|
1146
|
-
|
1147
|
-
|
1148
|
-
|
1149
|
-
|
1150
|
-
|
1151
|
-
|
1152
|
-
: "N/A");
|
1153
|
-
}
|
1104
|
+
GRPC_TRACE_LOG(retry, INFO)
|
1105
|
+
<< "chand=" << calld->chand_ << " calld=" << calld
|
1106
|
+
<< " attempt=" << call_attempt
|
1107
|
+
<< ": call finished, status=" << grpc_status_code_to_string(status)
|
1108
|
+
<< " server_pushback="
|
1109
|
+
<< (server_pushback.has_value() ? server_pushback->ToString() : "N/A")
|
1110
|
+
<< " is_lb_drop=" << is_lb_drop << " stream_network_state="
|
1111
|
+
<< (stream_network_state.has_value() ? absl::StrCat(*stream_network_state)
|
1112
|
+
: "N/A");
|
1154
1113
|
// Check if we should retry.
|
1155
1114
|
if (!is_lb_drop) { // Never retry on LB drops.
|
1156
1115
|
enum { kNoRetry, kTransparentRetry, kConfigurableRetry } retry = kNoRetry;
|
@@ -1259,11 +1218,10 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::
|
|
1259
1218
|
}
|
1260
1219
|
}
|
1261
1220
|
if (have_pending_send_ops) {
|
1262
|
-
|
1263
|
-
|
1264
|
-
|
1265
|
-
|
1266
|
-
}
|
1221
|
+
GRPC_TRACE_LOG(retry, INFO)
|
1222
|
+
<< "chand=" << calld->chand_ << " calld=" << calld
|
1223
|
+
<< " attempt=" << call_attempt_
|
1224
|
+
<< ": starting next batch for pending send op(s)";
|
1267
1225
|
call_attempt_->AddRetriableBatches(closures);
|
1268
1226
|
}
|
1269
1227
|
}
|
@@ -1273,15 +1231,11 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::OnComplete(
|
|
1273
1231
|
RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
|
1274
1232
|
CallAttempt* call_attempt = batch_data->call_attempt_;
|
1275
1233
|
RetryFilter::LegacyCallData* calld = call_attempt->calld_;
|
1276
|
-
|
1277
|
-
|
1278
|
-
|
1279
|
-
|
1280
|
-
|
1281
|
-
<< ", batch="
|
1282
|
-
<< grpc_transport_stream_op_batch_string(&batch_data->batch_,
|
1283
|
-
false);
|
1284
|
-
}
|
1234
|
+
GRPC_TRACE_LOG(retry, INFO)
|
1235
|
+
<< "chand=" << calld->chand_ << " calld=" << calld
|
1236
|
+
<< " attempt=" << call_attempt << " batch_data=" << batch_data.get()
|
1237
|
+
<< ": got on_complete, error=" << StatusToString(error) << ", batch="
|
1238
|
+
<< grpc_transport_stream_op_batch_string(&batch_data->batch_, false);
|
1285
1239
|
// If this attempt has been abandoned, then we're not going to propagate
|
1286
1240
|
// the completion of this batch, so do nothing.
|
1287
1241
|
if (call_attempt->abandoned_) {
|
@@ -1295,10 +1249,9 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::OnComplete(
|
|
1295
1249
|
// recv_trailing_metadata comes back.
|
1296
1250
|
if (GPR_UNLIKELY(!calld->retry_committed_ && !error.ok() &&
|
1297
1251
|
!call_attempt->completed_recv_trailing_metadata_)) {
|
1298
|
-
|
1299
|
-
|
1300
|
-
|
1301
|
-
}
|
1252
|
+
GRPC_TRACE_LOG(retry, INFO)
|
1253
|
+
<< "chand=" << calld->chand_ << " calld=" << calld
|
1254
|
+
<< " attempt=" << call_attempt << ": deferring on_complete";
|
1302
1255
|
call_attempt->on_complete_deferred_batches_.emplace_back(
|
1303
1256
|
std::move(batch_data), error);
|
1304
1257
|
CallCombinerClosureList closures;
|
@@ -1349,15 +1302,12 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::OnCompleteForCancelOp(
|
|
1349
1302
|
RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
|
1350
1303
|
CallAttempt* call_attempt = batch_data->call_attempt_;
|
1351
1304
|
RetryFilter::LegacyCallData* calld = call_attempt->calld_;
|
1352
|
-
|
1353
|
-
|
1354
|
-
|
1355
|
-
|
1356
|
-
|
1357
|
-
|
1358
|
-
<< grpc_transport_stream_op_batch_string(&batch_data->batch_,
|
1359
|
-
false);
|
1360
|
-
}
|
1305
|
+
GRPC_TRACE_LOG(retry, INFO)
|
1306
|
+
<< "chand=" << calld->chand_ << " calld=" << calld
|
1307
|
+
<< " attempt=" << call_attempt << " batch_data=" << batch_data.get()
|
1308
|
+
<< ": got on_complete for cancel_stream batch, error="
|
1309
|
+
<< StatusToString(error) << ", batch="
|
1310
|
+
<< grpc_transport_stream_op_batch_string(&batch_data->batch_, false);
|
1361
1311
|
GRPC_CALL_COMBINER_STOP(
|
1362
1312
|
calld->call_combiner_,
|
1363
1313
|
"on_complete for internally generated cancel_stream op");
|
@@ -1392,12 +1342,10 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::
|
|
1392
1342
|
void RetryFilter::LegacyCallData::CallAttempt::BatchData::
|
1393
1343
|
AddRetriableSendMessageOp() {
|
1394
1344
|
auto* calld = call_attempt_->calld_;
|
1395
|
-
|
1396
|
-
|
1397
|
-
|
1398
|
-
|
1399
|
-
<< call_attempt_->started_send_message_count_ << "]";
|
1400
|
-
}
|
1345
|
+
GRPC_TRACE_LOG(retry, INFO)
|
1346
|
+
<< "chand=" << calld->chand_ << " calld=" << calld
|
1347
|
+
<< " attempt=" << call_attempt_ << ": starting calld->send_messages["
|
1348
|
+
<< call_attempt_->started_send_message_count_ << "]";
|
1401
1349
|
CachedSendMessage cache =
|
1402
1350
|
calld->send_messages_[call_attempt_->started_send_message_count_];
|
1403
1351
|
++call_attempt_->started_send_message_count_;
|
@@ -1479,10 +1427,8 @@ grpc_error_handle RetryFilter::LegacyCallData::Init(
|
|
1479
1427
|
grpc_call_element* elem, const grpc_call_element_args* args) {
|
1480
1428
|
auto* chand = static_cast<RetryFilter*>(elem->channel_data);
|
1481
1429
|
new (elem->call_data) RetryFilter::LegacyCallData(chand, *args);
|
1482
|
-
|
1483
|
-
|
1484
|
-
<< ": created call";
|
1485
|
-
}
|
1430
|
+
GRPC_TRACE_LOG(retry, INFO)
|
1431
|
+
<< "chand=" << chand << " calld=" << elem->call_data << ": created call";
|
1486
1432
|
return absl::OkStatus();
|
1487
1433
|
}
|
1488
1434
|
|
@@ -1584,11 +1530,9 @@ void RetryFilter::LegacyCallData::StartTransportStreamOpBatch(
|
|
1584
1530
|
if (GPR_UNLIKELY(batch->cancel_stream)) {
|
1585
1531
|
// Save cancel_error in case subsequent batches are started.
|
1586
1532
|
cancelled_from_surface_ = batch->payload->cancel_stream.cancel_error;
|
1587
|
-
|
1588
|
-
|
1589
|
-
|
1590
|
-
<< StatusToString(cancelled_from_surface_);
|
1591
|
-
}
|
1533
|
+
GRPC_TRACE_LOG(retry, INFO) << "chand=" << chand_ << " calld=" << this
|
1534
|
+
<< ": cancelled from surface: "
|
1535
|
+
<< StatusToString(cancelled_from_surface_);
|
1592
1536
|
// Fail any pending batches.
|
1593
1537
|
PendingBatchesFail(cancelled_from_surface_);
|
1594
1538
|
// If we have a current call attempt, commit the call, then send
|
@@ -1608,10 +1552,8 @@ void RetryFilter::LegacyCallData::StartTransportStreamOpBatch(
|
|
1608
1552
|
}
|
1609
1553
|
// Cancel retry timer if needed.
|
1610
1554
|
if (retry_timer_handle_.has_value()) {
|
1611
|
-
|
1612
|
-
|
1613
|
-
<< ": cancelling retry timer";
|
1614
|
-
}
|
1555
|
+
GRPC_TRACE_LOG(retry, INFO) << "chand=" << chand_ << " calld=" << this
|
1556
|
+
<< ": cancelling retry timer";
|
1615
1557
|
if (chand_->event_engine()->Cancel(*retry_timer_handle_)) {
|
1616
1558
|
GRPC_CALL_STACK_UNREF(owning_call_, "OnRetryTimer");
|
1617
1559
|
}
|
@@ -1654,11 +1596,9 @@ void RetryFilter::LegacyCallData::StartTransportStreamOpBatch(
|
|
1654
1596
|
if (!retry_codepath_started_ && retry_committed_ &&
|
1655
1597
|
(retry_policy_ == nullptr ||
|
1656
1598
|
!retry_policy_->per_attempt_recv_timeout().has_value())) {
|
1657
|
-
|
1658
|
-
|
1659
|
-
|
1660
|
-
<< "creating LB call";
|
1661
|
-
}
|
1599
|
+
GRPC_TRACE_LOG(retry, INFO)
|
1600
|
+
<< "chand=" << chand_ << " calld=" << this
|
1601
|
+
<< ": retry committed before first attempt; creating LB call";
|
1662
1602
|
PendingBatchClear(pending);
|
1663
1603
|
auto* service_config_call_data =
|
1664
1604
|
DownCast<ClientChannelServiceConfigCallData*>(
|
@@ -1672,19 +1612,16 @@ void RetryFilter::LegacyCallData::StartTransportStreamOpBatch(
|
|
1672
1612
|
// Otherwise, create a call attempt.
|
1673
1613
|
// The attempt will automatically start any necessary replays or
|
1674
1614
|
// pending batches.
|
1675
|
-
|
1676
|
-
|
1677
|
-
<< ": creating call attempt";
|
1678
|
-
}
|
1615
|
+
GRPC_TRACE_LOG(retry, INFO)
|
1616
|
+
<< "chand=" << chand_ << " calld=" << this << ": creating call attempt";
|
1679
1617
|
retry_codepath_started_ = true;
|
1680
1618
|
CreateCallAttempt(/*is_transparent_retry=*/false);
|
1681
1619
|
return;
|
1682
1620
|
}
|
1683
1621
|
// Send batches to call attempt.
|
1684
|
-
|
1685
|
-
|
1686
|
-
|
1687
|
-
}
|
1622
|
+
GRPC_TRACE_LOG(retry, INFO)
|
1623
|
+
<< "chand=" << chand_ << " calld=" << this
|
1624
|
+
<< ": starting batch on attempt=" << call_attempt_.get();
|
1688
1625
|
call_attempt_->StartRetriableBatches();
|
1689
1626
|
}
|
1690
1627
|
|
@@ -1739,28 +1676,22 @@ void RetryFilter::LegacyCallData::MaybeCacheSendOpsForBatch(
|
|
1739
1676
|
}
|
1740
1677
|
|
1741
1678
|
void RetryFilter::LegacyCallData::FreeCachedSendInitialMetadata() {
|
1742
|
-
|
1743
|
-
|
1744
|
-
<< ": destroying send_initial_metadata";
|
1745
|
-
}
|
1679
|
+
GRPC_TRACE_LOG(retry, INFO) << "chand=" << chand_ << " calld=" << this
|
1680
|
+
<< ": destroying send_initial_metadata";
|
1746
1681
|
send_initial_metadata_.Clear();
|
1747
1682
|
}
|
1748
1683
|
|
1749
1684
|
void RetryFilter::LegacyCallData::FreeCachedSendMessage(size_t idx) {
|
1750
1685
|
if (send_messages_[idx].slices != nullptr) {
|
1751
|
-
|
1752
|
-
|
1753
|
-
<< ": destroying send_messages[" << idx << "]";
|
1754
|
-
}
|
1686
|
+
GRPC_TRACE_LOG(retry, INFO) << "chand=" << chand_ << " calld=" << this
|
1687
|
+
<< ": destroying send_messages[" << idx << "]";
|
1755
1688
|
Destruct(std::exchange(send_messages_[idx].slices, nullptr));
|
1756
1689
|
}
|
1757
1690
|
}
|
1758
1691
|
|
1759
1692
|
void RetryFilter::LegacyCallData::FreeCachedSendTrailingMetadata() {
|
1760
|
-
|
1761
|
-
|
1762
|
-
<< ": destroying send_trailing_metadata";
|
1763
|
-
}
|
1693
|
+
GRPC_TRACE_LOG(retry, INFO) << "chand=" << chand_ << " calld=" << this
|
1694
|
+
<< ": destroying send_trailing_metadata";
|
1764
1695
|
send_trailing_metadata_.Clear();
|
1765
1696
|
}
|
1766
1697
|
|
@@ -1796,10 +1727,8 @@ RetryFilter::LegacyCallData::PendingBatch*
|
|
1796
1727
|
RetryFilter::LegacyCallData::PendingBatchesAdd(
|
1797
1728
|
grpc_transport_stream_op_batch* batch) {
|
1798
1729
|
const size_t idx = GetBatchIndex(batch);
|
1799
|
-
|
1800
|
-
|
1801
|
-
<< ": adding pending batch at index " << idx;
|
1802
|
-
}
|
1730
|
+
GRPC_TRACE_LOG(retry, INFO) << "chand=" << chand_ << " calld=" << this
|
1731
|
+
<< ": adding pending batch at index " << idx;
|
1803
1732
|
PendingBatch* pending = &pending_batches_[idx];
|
1804
1733
|
CHECK_EQ(pending->batch, nullptr);
|
1805
1734
|
pending->batch = batch;
|
@@ -1826,10 +1755,8 @@ RetryFilter::LegacyCallData::PendingBatchesAdd(
|
|
1826
1755
|
// ops have already been sent, and we commit to that attempt.
|
1827
1756
|
if (GPR_UNLIKELY(bytes_buffered_for_retry_ >
|
1828
1757
|
chand_->per_rpc_retry_buffer_size())) {
|
1829
|
-
|
1830
|
-
|
1831
|
-
<< ": exceeded retry buffer size, committing";
|
1832
|
-
}
|
1758
|
+
GRPC_TRACE_LOG(retry, INFO) << "chand=" << chand_ << " calld=" << this
|
1759
|
+
<< ": exceeded retry buffer size, committing";
|
1833
1760
|
RetryCommit(call_attempt_.get());
|
1834
1761
|
}
|
1835
1762
|
return pending;
|
@@ -1862,10 +1789,8 @@ void RetryFilter::LegacyCallData::MaybeClearPendingBatch(
|
|
1862
1789
|
(!batch->recv_trailing_metadata ||
|
1863
1790
|
batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready ==
|
1864
1791
|
nullptr)) {
|
1865
|
-
|
1866
|
-
|
1867
|
-
<< ": clearing pending batch";
|
1868
|
-
}
|
1792
|
+
GRPC_TRACE_LOG(retry, INFO) << "chand=" << chand_ << " calld=" << this
|
1793
|
+
<< ": clearing pending batch";
|
1869
1794
|
PendingBatchClear(pending);
|
1870
1795
|
}
|
1871
1796
|
}
|
@@ -1918,10 +1843,9 @@ RetryFilter::LegacyCallData::PendingBatchFind(const char* log_message,
|
|
1918
1843
|
PendingBatch* pending = &pending_batches_[i];
|
1919
1844
|
grpc_transport_stream_op_batch* batch = pending->batch;
|
1920
1845
|
if (batch != nullptr && predicate(batch)) {
|
1921
|
-
|
1922
|
-
|
1923
|
-
|
1924
|
-
}
|
1846
|
+
GRPC_TRACE_LOG(retry, INFO)
|
1847
|
+
<< "chand=" << chand_ << " calld=" << this << ": " << log_message
|
1848
|
+
<< " pending batch at index " << i;
|
1925
1849
|
return pending;
|
1926
1850
|
}
|
1927
1851
|
}
|
@@ -1935,10 +1859,8 @@ RetryFilter::LegacyCallData::PendingBatchFind(const char* log_message,
|
|
1935
1859
|
void RetryFilter::LegacyCallData::RetryCommit(CallAttempt* call_attempt) {
|
1936
1860
|
if (retry_committed_) return;
|
1937
1861
|
retry_committed_ = true;
|
1938
|
-
|
1939
|
-
|
1940
|
-
<< ": committing retries";
|
1941
|
-
}
|
1862
|
+
GRPC_TRACE_LOG(retry, INFO)
|
1863
|
+
<< "chand=" << chand_ << " calld=" << this << ": committing retries";
|
1942
1864
|
if (call_attempt != nullptr) {
|
1943
1865
|
// If the call attempt's LB call has been committed, invoke the
|
1944
1866
|
// call's on_commit callback.
|
@@ -1968,13 +1890,11 @@ void RetryFilter::LegacyCallData::StartRetryTimer(
|
|
1968
1890
|
next_attempt_timeout = *server_pushback;
|
1969
1891
|
retry_backoff_.Reset();
|
1970
1892
|
} else {
|
1971
|
-
next_attempt_timeout = retry_backoff_.
|
1972
|
-
}
|
1973
|
-
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
|
1974
|
-
LOG(INFO) << "chand=" << chand_ << " calld=" << this
|
1975
|
-
<< ": retrying failed call in " << next_attempt_timeout.millis()
|
1976
|
-
<< " ms";
|
1893
|
+
next_attempt_timeout = retry_backoff_.NextAttemptDelay();
|
1977
1894
|
}
|
1895
|
+
GRPC_TRACE_LOG(retry, INFO)
|
1896
|
+
<< "chand=" << chand_ << " calld=" << this << ": retrying failed call in "
|
1897
|
+
<< next_attempt_timeout.millis() << " ms";
|
1978
1898
|
// Schedule retry after computed delay.
|
1979
1899
|
GRPC_CALL_STACK_REF(owning_call_, "OnRetryTimer");
|
1980
1900
|
retry_timer_handle_ =
|
@@ -2003,10 +1923,8 @@ void RetryFilter::LegacyCallData::OnRetryTimerLocked(
|
|
2003
1923
|
|
2004
1924
|
void RetryFilter::LegacyCallData::AddClosureToStartTransparentRetry(
|
2005
1925
|
CallCombinerClosureList* closures) {
|
2006
|
-
|
2007
|
-
|
2008
|
-
<< ": scheduling transparent retry";
|
2009
|
-
}
|
1926
|
+
GRPC_TRACE_LOG(retry, INFO) << "chand=" << chand_ << " calld=" << this
|
1927
|
+
<< ": scheduling transparent retry";
|
2010
1928
|
GRPC_CALL_STACK_REF(owning_call_, "OnRetryTimer");
|
2011
1929
|
GRPC_CLOSURE_INIT(&retry_closure_, StartTransparentRetry, this, nullptr);
|
2012
1930
|
closures->Add(&retry_closure_, absl::OkStatus(), "start transparent retry");
|