grpc 1.73.0 → 1.74.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 +38 -17
- data/include/grpc/create_channel_from_endpoint.h +54 -0
- data/include/grpc/credentials.h +11 -5
- data/include/grpc/event_engine/event_engine.h +74 -17
- data/include/grpc/grpc_posix.h +20 -1
- data/include/grpc/impl/channel_arg_names.h +2 -4
- data/include/grpc/module.modulemap +1 -0
- data/include/grpc/support/json.h +24 -0
- data/src/core/call/interception_chain.h +7 -11
- data/src/core/channelz/channel_trace.cc +213 -115
- data/src/core/channelz/channel_trace.h +380 -86
- data/src/core/channelz/channelz.cc +270 -181
- data/src/core/channelz/channelz.h +168 -55
- data/src/core/channelz/channelz_registry.cc +2 -1
- data/src/core/channelz/channelz_registry.h +24 -0
- data/src/core/channelz/property_list.cc +357 -0
- data/src/core/channelz/property_list.h +202 -0
- data/src/core/channelz/ztrace_collector.h +3 -2
- data/src/core/client_channel/backup_poller.cc +17 -2
- data/src/core/client_channel/client_channel.cc +17 -28
- data/src/core/client_channel/client_channel_filter.cc +19 -29
- data/src/core/client_channel/config_selector.h +8 -2
- data/src/core/client_channel/dynamic_filters.cc +5 -6
- data/src/core/client_channel/dynamic_filters.h +1 -1
- data/src/core/client_channel/global_subchannel_pool.cc +4 -1
- data/src/core/client_channel/retry_filter.cc +21 -27
- data/src/core/client_channel/retry_filter.h +10 -7
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +5 -5
- data/src/core/client_channel/retry_filter_legacy_call_data.h +1 -1
- data/src/core/client_channel/retry_interceptor.cc +30 -44
- data/src/core/client_channel/retry_interceptor.h +18 -17
- data/src/core/client_channel/retry_throttle.cc +46 -61
- data/src/core/client_channel/retry_throttle.h +17 -39
- data/src/core/client_channel/subchannel.cc +43 -19
- data/src/core/client_channel/subchannel.h +8 -0
- data/src/core/config/config_vars.cc +2 -0
- data/src/core/config/core_configuration.cc +1 -0
- data/src/core/config/core_configuration.h +11 -0
- data/src/core/credentials/call/call_creds_registry.h +125 -0
- data/src/core/credentials/call/call_creds_registry_init.cc +91 -0
- data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +6 -48
- data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +86 -0
- data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.h +74 -0
- data/src/core/credentials/call/jwt_util.cc +70 -0
- data/src/core/credentials/call/jwt_util.h +32 -0
- data/src/core/credentials/transport/channel_creds_registry_init.cc +1 -1
- data/src/core/credentials/transport/google_default/google_default_credentials.cc +72 -4
- data/src/core/credentials/transport/ssl/ssl_credentials.cc +0 -1
- data/src/core/credentials/transport/tls/load_system_roots_supported.cc +1 -0
- data/src/core/credentials/transport/xds/xds_credentials.cc +0 -3
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +8 -8
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +16 -16
- data/src/core/ext/filters/http/client_authority_filter.cc +2 -4
- data/src/core/ext/filters/http/message_compress/compression_filter.h +25 -22
- data/src/core/ext/filters/http/server/http_server_filter.h +12 -11
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +120 -35
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +162 -115
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +0 -3
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +1239 -3514
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +1008 -1486
- data/src/core/ext/transport/chttp2/transport/flow_control.h +22 -17
- data/src/core/ext/transport/chttp2/transport/frame.cc +10 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +2 -2
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +299 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +11 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +12 -1
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +1017 -0
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +593 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +19 -22
- data/{third_party/abseil-cpp/absl/strings/cord_buffer.cc → src/core/ext/transport/chttp2/transport/http2_stats_collector.cc} +14 -14
- data/src/core/ext/transport/chttp2/transport/http2_stats_collector.h +33 -0
- data/src/core/ext/transport/chttp2/transport/http2_status.h +6 -1
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +43 -0
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +65 -0
- data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +0 -29
- data/src/core/ext/transport/chttp2/transport/internal.h +18 -8
- data/src/core/ext/transport/chttp2/transport/keepalive.cc +105 -0
- data/src/core/ext/transport/chttp2/transport/keepalive.h +138 -0
- data/src/core/ext/transport/chttp2/transport/message_assembler.h +185 -0
- data/src/core/ext/transport/chttp2/transport/parsing.cc +2 -4
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +19 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +151 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.h +180 -0
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +5 -9
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +11 -0
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +39 -1
- data/src/core/ext/transport/chttp2/transport/transport_common.cc +19 -0
- data/src/core/ext/transport/chttp2/transport/transport_common.h +27 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +37 -11
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +571 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +120 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +36 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +1272 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +312 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +50 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +984 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +226 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +44 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c +175 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.h +82 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.c +135 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.h +67 -0
- data/src/core/filter/auth/auth_filters.h +0 -25
- data/src/core/filter/auth/client_auth_filter.cc +0 -118
- data/src/core/filter/filter_args.h +9 -23
- data/src/core/handshaker/handshaker.cc +23 -14
- data/src/core/handshaker/handshaker.h +3 -0
- data/src/core/handshaker/http_connect/http_connect_handshaker.cc +3 -1
- data/src/core/handshaker/security/legacy_secure_endpoint.cc +6 -5
- data/src/core/handshaker/security/secure_endpoint.cc +70 -25
- data/src/core/handshaker/security/security_handshaker.cc +4 -1
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +7 -1
- data/src/core/lib/channel/channel_args.cc +15 -0
- data/src/core/lib/channel/channel_args.h +3 -0
- data/src/core/lib/channel/channel_stack.cc +22 -23
- data/src/core/lib/channel/channel_stack.h +9 -7
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
- data/src/core/lib/channel/channel_stack_builder_impl.h +2 -7
- data/src/core/lib/channel/promise_based_filter.h +5 -5
- data/src/core/lib/debug/trace_impl.h +0 -1
- data/src/core/lib/event_engine/ares_resolver.cc +165 -46
- data/src/core/lib/event_engine/ares_resolver.h +48 -2
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +3 -1
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +1 -4
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +2 -6
- data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.cc +40 -0
- data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.h +60 -0
- data/src/core/lib/event_engine/event_engine.cc +7 -0
- data/src/core/lib/event_engine/extensions/channelz.h +10 -6
- data/src/core/lib/event_engine/grpc_polled_fd.h +5 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +130 -162
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +11 -15
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +75 -117
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +7 -9
- data/src/core/lib/event_engine/posix_engine/event_poller.h +18 -15
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +0 -18
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +124 -0
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.h +243 -0
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +29 -19
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +6 -2
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +6 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +145 -92
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +9 -19
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +333 -116
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +61 -18
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +45 -37
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +6 -4
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +32 -142
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +6 -5
- data/src/core/lib/event_engine/posix_engine/posix_interface.h +211 -0
- data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +1083 -0
- data/src/core/lib/event_engine/posix_engine/posix_interface_windows.cc +281 -0
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.cc +154 -0
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +174 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +3 -719
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +10 -170
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +33 -22
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +13 -11
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +117 -151
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +26 -94
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +26 -25
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +6 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +36 -62
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +6 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +7 -6
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +12 -6
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +3 -1
- data/src/core/lib/event_engine/shim.cc +9 -0
- data/src/core/lib/event_engine/shim.h +3 -0
- data/src/core/lib/event_engine/thread_pool/thread_pool.h +7 -3
- data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +0 -17
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +4 -2
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -2
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +4 -0
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +4 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.h +2 -6
- data/src/core/lib/event_engine/windows/windows_engine.cc +0 -1
- data/src/core/lib/event_engine/windows/windows_engine.h +1 -3
- data/src/core/lib/event_engine/windows/windows_listener.cc +14 -2
- data/src/core/lib/experiments/experiments.cc +45 -93
- data/src/core/lib/experiments/experiments.h +21 -51
- data/src/core/lib/iomgr/endpoint.cc +4 -3
- data/src/core/lib/iomgr/endpoint.h +7 -4
- data/src/core/lib/iomgr/endpoint_cfstream.cc +3 -2
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +7 -2
- data/src/core/lib/iomgr/ev_poll_posix.cc +7 -2
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +4 -6
- data/src/core/lib/iomgr/tcp_posix.cc +12 -6
- data/src/core/lib/iomgr/tcp_windows.cc +3 -2
- data/src/core/lib/promise/activity.h +1 -0
- data/src/core/lib/promise/arena_promise.h +23 -7
- data/src/core/lib/promise/detail/promise_factory.h +10 -0
- data/src/core/lib/promise/detail/promise_like.h +118 -11
- data/src/core/lib/promise/detail/promise_variant.h +50 -0
- data/src/core/lib/promise/detail/seq_state.h +687 -548
- data/src/core/lib/promise/if.h +20 -0
- data/src/core/lib/promise/inter_activity_latch.h +147 -0
- data/src/core/lib/promise/inter_activity_mutex.h +547 -0
- data/src/core/lib/promise/loop.h +65 -3
- data/src/core/lib/promise/map.h +24 -0
- data/src/core/lib/promise/match_promise.h +103 -0
- data/src/core/lib/promise/mpsc.cc +425 -0
- data/src/core/lib/promise/mpsc.h +490 -0
- data/src/core/lib/promise/party.cc +50 -1
- data/src/core/lib/promise/party.h +66 -1
- data/src/core/lib/promise/race.h +31 -0
- data/src/core/lib/promise/seq.h +4 -1
- data/src/core/lib/promise/status_flag.h +7 -0
- data/src/core/lib/promise/try_seq.h +4 -1
- data/src/core/lib/promise/wait_set.cc +28 -0
- data/src/core/lib/promise/wait_set.h +86 -0
- data/src/core/lib/resource_quota/arena.h +19 -0
- data/src/core/lib/slice/slice.h +5 -0
- data/src/core/lib/surface/channel_create.cc +88 -13
- data/src/core/lib/surface/channel_create.h +4 -0
- data/src/core/lib/surface/channel_init.cc +164 -47
- data/src/core/lib/surface/channel_init.h +64 -1
- data/src/core/lib/surface/filter_stack_call.cc +18 -9
- data/src/core/lib/surface/init.cc +6 -15
- data/src/core/lib/surface/legacy_channel.cc +3 -5
- data/src/core/lib/surface/legacy_channel.h +3 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/promise_endpoint.cc +110 -0
- data/src/core/lib/transport/promise_endpoint.h +307 -0
- data/src/core/load_balancing/child_policy_handler.cc +2 -4
- data/src/core/load_balancing/delegating_helper.h +2 -3
- data/src/core/load_balancing/health_check_client.cc +1 -5
- data/src/core/load_balancing/lb_policy.h +1 -3
- data/src/core/load_balancing/oob_backend_metric.cc +1 -5
- data/src/core/load_balancing/pick_first/pick_first.cc +3 -0
- data/src/core/load_balancing/xds/cds.cc +10 -1
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
- data/src/core/resolver/xds/xds_config.cc +6 -3
- data/src/core/resolver/xds/xds_config.h +9 -4
- data/src/core/resolver/xds/xds_dependency_manager.cc +21 -6
- data/src/core/resolver/xds/xds_dependency_manager.h +2 -1
- data/src/core/resolver/xds/xds_resolver.cc +31 -11
- data/src/core/server/server.cc +83 -12
- data/src/core/server/server.h +21 -2
- data/src/core/server/xds_server_config_fetcher.cc +63 -25
- data/src/core/service_config/service_config.h +1 -1
- data/src/core/service_config/service_config_impl.h +1 -1
- data/src/core/telemetry/context_list_entry.cc +38 -0
- data/src/core/telemetry/context_list_entry.h +42 -12
- data/src/core/telemetry/stats_data.cc +233 -207
- data/src/core/telemetry/stats_data.h +250 -153
- data/src/core/telemetry/tcp_tracer.h +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +11 -3
- data/src/core/tsi/fake_transport_security.cc +17 -0
- data/src/core/tsi/ssl_transport_security.cc +2 -0
- data/src/core/tsi/transport_security_grpc.cc +8 -0
- data/src/core/tsi/transport_security_grpc.h +15 -0
- data/src/core/util/backoff.cc +1 -5
- data/src/core/util/backoff.h +1 -0
- data/src/core/util/down_cast.h +1 -1
- data/src/core/util/function_signature.h +15 -1
- data/src/core/util/http_client/httpcli.cc +12 -5
- data/src/core/util/http_client/httpcli.h +4 -1
- data/src/core/util/latent_see.h +8 -5
- data/src/core/util/log.cc +4 -0
- data/src/core/util/memory_usage.h +268 -0
- data/src/core/util/per_cpu.cc +2 -0
- data/src/core/util/per_cpu.h +7 -0
- data/src/core/util/shared_bit_gen.h +20 -0
- data/src/core/util/single_set_ptr.h +2 -2
- data/src/core/util/upb_utils.h +42 -0
- data/src/core/util/uri.cc +3 -2
- data/src/core/util/useful.h +53 -2
- data/src/core/util/wait_for_single_owner.cc +31 -0
- data/src/core/util/wait_for_single_owner.h +24 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +2 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +5 -0
- data/src/core/xds/grpc/xds_client_grpc.cc +6 -2
- data/src/core/xds/grpc/xds_common_types_parser.cc +138 -50
- data/src/core/xds/grpc/xds_common_types_parser.h +12 -0
- data/src/core/xds/grpc/xds_http_filter.h +7 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +22 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +3 -0
- data/src/core/xds/grpc/xds_route_config_parser.cc +15 -38
- data/src/core/xds/grpc/xds_server_grpc.cc +63 -13
- data/src/core/xds/grpc/xds_server_grpc.h +10 -2
- data/src/core/xds/grpc/xds_server_grpc_interface.h +4 -0
- data/src/core/xds/grpc/xds_transport_grpc.cc +18 -0
- data/src/core/xds/xds_client/xds_bootstrap.h +2 -0
- data/src/core/xds/xds_client/xds_client.cc +26 -5
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_call.c +1 -8
- data/src/ruby/ext/grpc/rb_channel.c +72 -568
- data/src/ruby/ext/grpc/rb_channel.h +0 -3
- data/src/ruby/ext/grpc/rb_completion_queue.c +26 -14
- data/src/ruby/ext/grpc/rb_completion_queue.h +1 -7
- data/src/ruby/ext/grpc/rb_grpc.c +9 -5
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/ext/grpc/rb_loader.c +0 -4
- data/src/ruby/ext/grpc/rb_server.c +31 -50
- data/src/ruby/lib/grpc/generic/client_stub.rb +4 -4
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/core_spec.rb +22 -0
- data/src/ruby/spec/generic/active_call_spec.rb +1 -1
- data/third_party/abseil-cpp/absl/algorithm/container.h +2 -19
- data/third_party/abseil-cpp/absl/base/attributes.h +76 -7
- data/third_party/abseil-cpp/absl/base/call_once.h +11 -12
- data/third_party/abseil-cpp/absl/base/config.h +20 -129
- data/third_party/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
- data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
- data/third_party/abseil-cpp/absl/base/internal/endian.h +34 -38
- data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -5
- data/third_party/abseil-cpp/absl/base/internal/{nullability_impl.h → nullability_deprecated.h} +45 -8
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +0 -9
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -13
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +8 -3
- data/third_party/abseil-cpp/absl/base/no_destructor.h +11 -32
- data/third_party/abseil-cpp/absl/base/nullability.h +84 -72
- data/third_party/abseil-cpp/absl/base/options.h +3 -80
- data/third_party/abseil-cpp/absl/base/policy_checks.h +7 -7
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +1 -3
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
- data/third_party/abseil-cpp/absl/container/btree_map.h +4 -2
- data/third_party/abseil-cpp/absl/container/btree_set.h +4 -2
- data/third_party/abseil-cpp/absl/container/fixed_array.h +7 -14
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +5 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +6 -1
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +8 -5
- data/third_party/abseil-cpp/absl/container/internal/btree.h +132 -29
- data/third_party/abseil-cpp/absl/container/internal/btree_container.h +175 -71
- data/third_party/abseil-cpp/absl/container/internal/common.h +43 -0
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -2
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +9 -10
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +1 -8
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +0 -4
- data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +527 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +20 -4
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +31 -12
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +2 -7
- data/third_party/abseil-cpp/absl/container/internal/layout.h +26 -42
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +1354 -183
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +881 -1424
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +80 -0
- data/third_party/abseil-cpp/absl/crc/crc32c.cc +0 -4
- data/third_party/abseil-cpp/absl/crc/crc32c.h +7 -5
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +45 -74
- data/third_party/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +8 -35
- data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -37
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +13 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +19 -9
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +144 -27
- data/third_party/abseil-cpp/absl/debugging/stacktrace.h +73 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +19 -9
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +2 -2
- data/third_party/abseil-cpp/absl/flags/flag.h +4 -3
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +2 -1
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +7 -6
- data/third_party/abseil-cpp/absl/flags/internal/registry.h +4 -3
- data/third_party/abseil-cpp/absl/flags/reflection.cc +2 -3
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +8 -10
- data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -9
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +110 -226
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
- data/third_party/abseil-cpp/absl/hash/hash.h +18 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +1 -5
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -61
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +25 -68
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +2 -6
- data/third_party/abseil-cpp/absl/hash/internal/weakly_mixed_integer.h +38 -0
- data/third_party/abseil-cpp/absl/log/check.h +2 -1
- data/third_party/abseil-cpp/absl/log/globals.h +4 -5
- data/third_party/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
- data/third_party/abseil-cpp/absl/log/internal/check_op.cc +22 -22
- data/third_party/abseil-cpp/absl/log/internal/check_op.h +65 -62
- data/third_party/abseil-cpp/absl/log/internal/conditions.cc +5 -3
- data/third_party/abseil-cpp/absl/log/internal/conditions.h +7 -2
- data/third_party/abseil-cpp/absl/log/internal/log_message.cc +85 -43
- data/third_party/abseil-cpp/absl/log/internal/log_message.h +84 -59
- data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -0
- data/third_party/abseil-cpp/absl/log/internal/proto.cc +3 -2
- data/third_party/abseil-cpp/absl/log/internal/proto.h +3 -3
- data/third_party/abseil-cpp/absl/log/internal/strip.h +4 -12
- data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
- data/third_party/abseil-cpp/absl/log/internal/voidify.h +10 -4
- data/third_party/abseil-cpp/absl/log/log.h +48 -35
- data/third_party/abseil-cpp/absl/log/log_sink_registry.h +2 -2
- data/third_party/abseil-cpp/absl/meta/type_traits.h +46 -175
- data/third_party/abseil-cpp/absl/numeric/bits.h +68 -2
- data/third_party/abseil-cpp/absl/numeric/int128.cc +0 -52
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +7 -3
- data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
- data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +10 -11
- data/third_party/abseil-cpp/absl/random/distributions.h +6 -8
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +5 -6
- data/third_party/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +22 -90
- data/third_party/abseil-cpp/absl/random/internal/entropy_pool.h +35 -0
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +1 -1
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +5 -5
- data/third_party/abseil-cpp/absl/random/random.h +88 -53
- data/third_party/abseil-cpp/absl/random/seed_sequences.cc +6 -2
- data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +3 -4
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +3 -4
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -3
- data/third_party/abseil-cpp/absl/status/status.cc +4 -8
- data/third_party/abseil-cpp/absl/status/status.h +8 -8
- data/third_party/abseil-cpp/absl/status/status_payload_printer.h +2 -2
- data/third_party/abseil-cpp/absl/status/statusor.cc +2 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +6 -6
- data/third_party/abseil-cpp/absl/strings/ascii.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/ascii.h +18 -18
- data/third_party/abseil-cpp/absl/strings/charconv.cc +21 -22
- data/third_party/abseil-cpp/absl/strings/charconv.h +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +54 -58
- data/third_party/abseil-cpp/absl/strings/cord.h +94 -83
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +3 -3
- data/third_party/abseil-cpp/absl/strings/escaping.cc +130 -149
- data/third_party/abseil-cpp/absl/strings/escaping.h +9 -10
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +6 -8
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +0 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
- data/third_party/abseil-cpp/absl/strings/internal/utf8.h +15 -1
- data/third_party/abseil-cpp/absl/strings/numbers.cc +53 -32
- data/third_party/abseil-cpp/absl/strings/numbers.h +87 -58
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +6 -7
- data/third_party/abseil-cpp/absl/strings/str_cat.h +32 -32
- data/third_party/abseil-cpp/absl/strings/str_format.h +18 -18
- data/third_party/abseil-cpp/absl/strings/str_replace.cc +3 -3
- data/third_party/abseil-cpp/absl/strings/str_replace.h +6 -6
- data/third_party/abseil-cpp/absl/strings/string_view.cc +4 -9
- data/third_party/abseil-cpp/absl/strings/string_view.h +27 -32
- data/third_party/abseil-cpp/absl/strings/strip.h +4 -4
- data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -4
- data/third_party/abseil-cpp/absl/strings/substitute.h +66 -64
- data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
- data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +1 -1
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +97 -69
- data/third_party/abseil-cpp/absl/synchronization/notification.h +1 -1
- data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +12 -7
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +90 -111
- data/third_party/abseil-cpp/absl/time/time.h +20 -15
- data/third_party/abseil-cpp/absl/types/optional.h +7 -747
- data/third_party/abseil-cpp/absl/types/span.h +13 -11
- data/third_party/abseil-cpp/absl/types/variant.h +5 -784
- data/third_party/abseil-cpp/absl/utility/utility.h +10 -185
- metadata +72 -20
- data/src/core/lib/event_engine/forkable.cc +0 -105
- data/src/core/lib/event_engine/forkable.h +0 -67
- data/src/core/lib/iomgr/python_util.h +0 -46
- data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +0 -241
- data/third_party/abseil-cpp/absl/log/log_entry.cc +0 -41
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
- data/third_party/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
- data/third_party/abseil-cpp/absl/types/bad_optional_access.h +0 -78
- data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +0 -82
- data/third_party/abseil-cpp/absl/types/internal/optional.h +0 -352
- data/third_party/abseil-cpp/absl/types/internal/variant.h +0 -1622
@@ -30,6 +30,7 @@
|
|
30
30
|
|
31
31
|
namespace grpc_core {
|
32
32
|
class GlobalStatsCollector;
|
33
|
+
class Http2GlobalStatsCollector;
|
33
34
|
class Http2StatsCollector;
|
34
35
|
class HistogramCollector_16777216_20_64;
|
35
36
|
class Histogram_16777216_20_64 {
|
@@ -283,13 +284,6 @@ struct GlobalStats {
|
|
283
284
|
kSyscallRead,
|
284
285
|
kTcpReadAlloc8k,
|
285
286
|
kTcpReadAlloc64k,
|
286
|
-
kHttp2SettingsWrites,
|
287
|
-
kHttp2PingsSent,
|
288
|
-
kHttp2WritesBegun,
|
289
|
-
kHttp2TransportStalls,
|
290
|
-
kHttp2StreamStalls,
|
291
|
-
kHttp2HpackHits,
|
292
|
-
kHttp2HpackMisses,
|
293
287
|
kCqPluckCreates,
|
294
288
|
kCqNextCreates,
|
295
289
|
kCqCallbackCreates,
|
@@ -316,22 +310,6 @@ struct GlobalStats {
|
|
316
310
|
kTcpReadSize,
|
317
311
|
kTcpReadOffer,
|
318
312
|
kTcpReadOfferIovSize,
|
319
|
-
kHttp2SendMessageSize,
|
320
|
-
kHttp2MetadataSize,
|
321
|
-
kHttp2HpackEntryLifetime,
|
322
|
-
kHttp2HeaderTableSize,
|
323
|
-
kHttp2InitialWindowSize,
|
324
|
-
kHttp2MaxConcurrentStreams,
|
325
|
-
kHttp2MaxFrameSize,
|
326
|
-
kHttp2MaxHeaderListSize,
|
327
|
-
kHttp2PreferredReceiveCryptoMessageSize,
|
328
|
-
kHttp2StreamRemoteWindowUpdate,
|
329
|
-
kHttp2TransportRemoteWindowUpdate,
|
330
|
-
kHttp2TransportWindowUpdatePeriod,
|
331
|
-
kHttp2StreamWindowUpdatePeriod,
|
332
|
-
kHttp2WriteTargetSize,
|
333
|
-
kHttp2WriteDataFrameSize,
|
334
|
-
kHttp2ReadDataFrameSize,
|
335
313
|
kWrrSubchannelListSize,
|
336
314
|
kWrrSubchannelReadySize,
|
337
315
|
kWorkSerializerRunTimeMs,
|
@@ -376,13 +354,6 @@ struct GlobalStats {
|
|
376
354
|
uint64_t syscall_read;
|
377
355
|
uint64_t tcp_read_alloc_8k;
|
378
356
|
uint64_t tcp_read_alloc_64k;
|
379
|
-
uint64_t http2_settings_writes;
|
380
|
-
uint64_t http2_pings_sent;
|
381
|
-
uint64_t http2_writes_begun;
|
382
|
-
uint64_t http2_transport_stalls;
|
383
|
-
uint64_t http2_stream_stalls;
|
384
|
-
uint64_t http2_hpack_hits;
|
385
|
-
uint64_t http2_hpack_misses;
|
386
357
|
uint64_t cq_pluck_creates;
|
387
358
|
uint64_t cq_next_creates;
|
388
359
|
uint64_t cq_callback_creates;
|
@@ -409,22 +380,6 @@ struct GlobalStats {
|
|
409
380
|
Histogram_16777216_20_64 tcp_read_size;
|
410
381
|
Histogram_16777216_20_64 tcp_read_offer;
|
411
382
|
Histogram_80_10_64 tcp_read_offer_iov_size;
|
412
|
-
Histogram_16777216_20_64 http2_send_message_size;
|
413
|
-
Histogram_65536_26_64 http2_metadata_size;
|
414
|
-
Histogram_1800000_40_64 http2_hpack_entry_lifetime;
|
415
|
-
Histogram_16777216_20_64 http2_header_table_size;
|
416
|
-
Histogram_16777216_50_64 http2_initial_window_size;
|
417
|
-
Histogram_16777216_20_64 http2_max_concurrent_streams;
|
418
|
-
Histogram_16777216_50_64 http2_max_frame_size;
|
419
|
-
Histogram_16777216_20_64 http2_max_header_list_size;
|
420
|
-
Histogram_16777216_20_64 http2_preferred_receive_crypto_message_size;
|
421
|
-
Histogram_16777216_20_64 http2_stream_remote_window_update;
|
422
|
-
Histogram_16777216_20_64 http2_transport_remote_window_update;
|
423
|
-
Histogram_100000_20_64 http2_transport_window_update_period;
|
424
|
-
Histogram_100000_20_64 http2_stream_window_update_period;
|
425
|
-
Histogram_16777216_50_64 http2_write_target_size;
|
426
|
-
Histogram_16777216_50_64 http2_write_data_frame_size;
|
427
|
-
Histogram_16777216_50_64 http2_read_data_frame_size;
|
428
383
|
Histogram_10000_20_64 wrr_subchannel_list_size;
|
429
384
|
Histogram_10000_20_64 wrr_subchannel_ready_size;
|
430
385
|
Histogram_100000_20_64 work_serializer_run_time_ms;
|
@@ -497,34 +452,6 @@ class GlobalStatsCollector {
|
|
497
452
|
void IncrementTcpReadAlloc64k() {
|
498
453
|
data_.this_cpu().tcp_read_alloc_64k.fetch_add(1, std::memory_order_relaxed);
|
499
454
|
}
|
500
|
-
void IncrementHttp2SettingsWrites() {
|
501
|
-
data_.this_cpu().http2_settings_writes.fetch_add(1,
|
502
|
-
std::memory_order_relaxed);
|
503
|
-
}
|
504
|
-
void IncrementHttp2PingsSent() {
|
505
|
-
data_.this_cpu().http2_pings_sent.fetch_add(1, std::memory_order_relaxed);
|
506
|
-
}
|
507
|
-
|
508
|
-
private:
|
509
|
-
void IncrementHttp2WritesBegun() {
|
510
|
-
data_.this_cpu().http2_writes_begun.fetch_add(1, std::memory_order_relaxed);
|
511
|
-
}
|
512
|
-
|
513
|
-
public:
|
514
|
-
void IncrementHttp2TransportStalls() {
|
515
|
-
data_.this_cpu().http2_transport_stalls.fetch_add(
|
516
|
-
1, std::memory_order_relaxed);
|
517
|
-
}
|
518
|
-
void IncrementHttp2StreamStalls() {
|
519
|
-
data_.this_cpu().http2_stream_stalls.fetch_add(1,
|
520
|
-
std::memory_order_relaxed);
|
521
|
-
}
|
522
|
-
void IncrementHttp2HpackHits() {
|
523
|
-
data_.this_cpu().http2_hpack_hits.fetch_add(1, std::memory_order_relaxed);
|
524
|
-
}
|
525
|
-
void IncrementHttp2HpackMisses() {
|
526
|
-
data_.this_cpu().http2_hpack_misses.fetch_add(1, std::memory_order_relaxed);
|
527
|
-
}
|
528
455
|
void IncrementCqPluckCreates() {
|
529
456
|
data_.this_cpu().cq_pluck_creates.fetch_add(1, std::memory_order_relaxed);
|
530
457
|
}
|
@@ -599,59 +526,6 @@ class GlobalStatsCollector {
|
|
599
526
|
void IncrementTcpReadOfferIovSize(int value) {
|
600
527
|
data_.this_cpu().tcp_read_offer_iov_size.Increment(value);
|
601
528
|
}
|
602
|
-
void IncrementHttp2SendMessageSize(int value) {
|
603
|
-
data_.this_cpu().http2_send_message_size.Increment(value);
|
604
|
-
}
|
605
|
-
void IncrementHttp2MetadataSize(int value) {
|
606
|
-
data_.this_cpu().http2_metadata_size.Increment(value);
|
607
|
-
}
|
608
|
-
void IncrementHttp2HpackEntryLifetime(int value) {
|
609
|
-
data_.this_cpu().http2_hpack_entry_lifetime.Increment(value);
|
610
|
-
}
|
611
|
-
void IncrementHttp2HeaderTableSize(int value) {
|
612
|
-
data_.this_cpu().http2_header_table_size.Increment(value);
|
613
|
-
}
|
614
|
-
void IncrementHttp2InitialWindowSize(int value) {
|
615
|
-
data_.this_cpu().http2_initial_window_size.Increment(value);
|
616
|
-
}
|
617
|
-
void IncrementHttp2MaxConcurrentStreams(int value) {
|
618
|
-
data_.this_cpu().http2_max_concurrent_streams.Increment(value);
|
619
|
-
}
|
620
|
-
void IncrementHttp2MaxFrameSize(int value) {
|
621
|
-
data_.this_cpu().http2_max_frame_size.Increment(value);
|
622
|
-
}
|
623
|
-
void IncrementHttp2MaxHeaderListSize(int value) {
|
624
|
-
data_.this_cpu().http2_max_header_list_size.Increment(value);
|
625
|
-
}
|
626
|
-
void IncrementHttp2PreferredReceiveCryptoMessageSize(int value) {
|
627
|
-
data_.this_cpu().http2_preferred_receive_crypto_message_size.Increment(
|
628
|
-
value);
|
629
|
-
}
|
630
|
-
void IncrementHttp2StreamRemoteWindowUpdate(int value) {
|
631
|
-
data_.this_cpu().http2_stream_remote_window_update.Increment(value);
|
632
|
-
}
|
633
|
-
void IncrementHttp2TransportRemoteWindowUpdate(int value) {
|
634
|
-
data_.this_cpu().http2_transport_remote_window_update.Increment(value);
|
635
|
-
}
|
636
|
-
void IncrementHttp2TransportWindowUpdatePeriod(int value) {
|
637
|
-
data_.this_cpu().http2_transport_window_update_period.Increment(value);
|
638
|
-
}
|
639
|
-
void IncrementHttp2StreamWindowUpdatePeriod(int value) {
|
640
|
-
data_.this_cpu().http2_stream_window_update_period.Increment(value);
|
641
|
-
}
|
642
|
-
|
643
|
-
private:
|
644
|
-
void IncrementHttp2WriteTargetSize(int value) {
|
645
|
-
data_.this_cpu().http2_write_target_size.Increment(value);
|
646
|
-
}
|
647
|
-
|
648
|
-
public:
|
649
|
-
void IncrementHttp2WriteDataFrameSize(int value) {
|
650
|
-
data_.this_cpu().http2_write_data_frame_size.Increment(value);
|
651
|
-
}
|
652
|
-
void IncrementHttp2ReadDataFrameSize(int value) {
|
653
|
-
data_.this_cpu().http2_read_data_frame_size.Increment(value);
|
654
|
-
}
|
655
529
|
void IncrementWrrSubchannelListSize(int value) {
|
656
530
|
data_.this_cpu().wrr_subchannel_list_size.Increment(value);
|
657
531
|
}
|
@@ -715,6 +589,7 @@ class GlobalStatsCollector {
|
|
715
589
|
}
|
716
590
|
|
717
591
|
private:
|
592
|
+
friend class Http2GlobalStatsCollector;
|
718
593
|
friend class Http2StatsCollector;
|
719
594
|
struct Data {
|
720
595
|
std::atomic<uint64_t> client_calls_created{0};
|
@@ -730,13 +605,6 @@ class GlobalStatsCollector {
|
|
730
605
|
std::atomic<uint64_t> syscall_read{0};
|
731
606
|
std::atomic<uint64_t> tcp_read_alloc_8k{0};
|
732
607
|
std::atomic<uint64_t> tcp_read_alloc_64k{0};
|
733
|
-
std::atomic<uint64_t> http2_settings_writes{0};
|
734
|
-
std::atomic<uint64_t> http2_pings_sent{0};
|
735
|
-
std::atomic<uint64_t> http2_writes_begun{0};
|
736
|
-
std::atomic<uint64_t> http2_transport_stalls{0};
|
737
|
-
std::atomic<uint64_t> http2_stream_stalls{0};
|
738
|
-
std::atomic<uint64_t> http2_hpack_hits{0};
|
739
|
-
std::atomic<uint64_t> http2_hpack_misses{0};
|
740
608
|
std::atomic<uint64_t> cq_pluck_creates{0};
|
741
609
|
std::atomic<uint64_t> cq_next_creates{0};
|
742
610
|
std::atomic<uint64_t> cq_callback_creates{0};
|
@@ -760,23 +628,6 @@ class GlobalStatsCollector {
|
|
760
628
|
HistogramCollector_16777216_20_64 tcp_read_size;
|
761
629
|
HistogramCollector_16777216_20_64 tcp_read_offer;
|
762
630
|
HistogramCollector_80_10_64 tcp_read_offer_iov_size;
|
763
|
-
HistogramCollector_16777216_20_64 http2_send_message_size;
|
764
|
-
HistogramCollector_65536_26_64 http2_metadata_size;
|
765
|
-
HistogramCollector_1800000_40_64 http2_hpack_entry_lifetime;
|
766
|
-
HistogramCollector_16777216_20_64 http2_header_table_size;
|
767
|
-
HistogramCollector_16777216_50_64 http2_initial_window_size;
|
768
|
-
HistogramCollector_16777216_20_64 http2_max_concurrent_streams;
|
769
|
-
HistogramCollector_16777216_50_64 http2_max_frame_size;
|
770
|
-
HistogramCollector_16777216_20_64 http2_max_header_list_size;
|
771
|
-
HistogramCollector_16777216_20_64
|
772
|
-
http2_preferred_receive_crypto_message_size;
|
773
|
-
HistogramCollector_16777216_20_64 http2_stream_remote_window_update;
|
774
|
-
HistogramCollector_16777216_20_64 http2_transport_remote_window_update;
|
775
|
-
HistogramCollector_100000_20_64 http2_transport_window_update_period;
|
776
|
-
HistogramCollector_100000_20_64 http2_stream_window_update_period;
|
777
|
-
HistogramCollector_16777216_50_64 http2_write_target_size;
|
778
|
-
HistogramCollector_16777216_50_64 http2_write_data_frame_size;
|
779
|
-
HistogramCollector_16777216_50_64 http2_read_data_frame_size;
|
780
631
|
HistogramCollector_10000_20_64 wrr_subchannel_list_size;
|
781
632
|
HistogramCollector_10000_20_64 wrr_subchannel_ready_size;
|
782
633
|
HistogramCollector_100000_20_64 work_serializer_run_time_ms;
|
@@ -803,6 +654,189 @@ class GlobalStatsCollector {
|
|
803
654
|
inline GlobalStatsCollector& global_stats() {
|
804
655
|
return *NoDestructSingleton<GlobalStatsCollector>::Get();
|
805
656
|
}
|
657
|
+
struct Http2GlobalStats {
|
658
|
+
enum class Counter {
|
659
|
+
kHttp2SettingsWrites,
|
660
|
+
kHttp2PingsSent,
|
661
|
+
kHttp2TransportStalls,
|
662
|
+
kHttp2StreamStalls,
|
663
|
+
kHttp2HpackHits,
|
664
|
+
kHttp2HpackMisses,
|
665
|
+
kHttp2WritesBegun,
|
666
|
+
COUNT
|
667
|
+
};
|
668
|
+
enum class Histogram {
|
669
|
+
kHttp2SendMessageSize,
|
670
|
+
kHttp2MetadataSize,
|
671
|
+
kHttp2HpackEntryLifetime,
|
672
|
+
kHttp2HeaderTableSize,
|
673
|
+
kHttp2InitialWindowSize,
|
674
|
+
kHttp2MaxConcurrentStreams,
|
675
|
+
kHttp2MaxFrameSize,
|
676
|
+
kHttp2MaxHeaderListSize,
|
677
|
+
kHttp2PreferredReceiveCryptoMessageSize,
|
678
|
+
kHttp2StreamRemoteWindowUpdate,
|
679
|
+
kHttp2TransportRemoteWindowUpdate,
|
680
|
+
kHttp2TransportWindowUpdatePeriod,
|
681
|
+
kHttp2StreamWindowUpdatePeriod,
|
682
|
+
kHttp2WriteDataFrameSize,
|
683
|
+
kHttp2ReadDataFrameSize,
|
684
|
+
kHttp2WriteTargetSize,
|
685
|
+
COUNT
|
686
|
+
};
|
687
|
+
Http2GlobalStats();
|
688
|
+
static const absl::string_view counter_name[static_cast<int>(Counter::COUNT)];
|
689
|
+
static const absl::string_view
|
690
|
+
histogram_name[static_cast<int>(Histogram::COUNT)];
|
691
|
+
static const absl::string_view counter_doc[static_cast<int>(Counter::COUNT)];
|
692
|
+
static const absl::string_view
|
693
|
+
histogram_doc[static_cast<int>(Histogram::COUNT)];
|
694
|
+
union {
|
695
|
+
struct {
|
696
|
+
uint64_t http2_settings_writes;
|
697
|
+
uint64_t http2_pings_sent;
|
698
|
+
uint64_t http2_transport_stalls;
|
699
|
+
uint64_t http2_stream_stalls;
|
700
|
+
uint64_t http2_hpack_hits;
|
701
|
+
uint64_t http2_hpack_misses;
|
702
|
+
uint64_t http2_writes_begun;
|
703
|
+
};
|
704
|
+
uint64_t counters[static_cast<int>(Counter::COUNT)];
|
705
|
+
};
|
706
|
+
Histogram_16777216_20_64 http2_send_message_size;
|
707
|
+
Histogram_65536_26_64 http2_metadata_size;
|
708
|
+
Histogram_1800000_40_64 http2_hpack_entry_lifetime;
|
709
|
+
Histogram_16777216_20_64 http2_header_table_size;
|
710
|
+
Histogram_16777216_50_64 http2_initial_window_size;
|
711
|
+
Histogram_16777216_20_64 http2_max_concurrent_streams;
|
712
|
+
Histogram_16777216_50_64 http2_max_frame_size;
|
713
|
+
Histogram_16777216_20_64 http2_max_header_list_size;
|
714
|
+
Histogram_16777216_20_64 http2_preferred_receive_crypto_message_size;
|
715
|
+
Histogram_16777216_20_64 http2_stream_remote_window_update;
|
716
|
+
Histogram_16777216_20_64 http2_transport_remote_window_update;
|
717
|
+
Histogram_100000_20_64 http2_transport_window_update_period;
|
718
|
+
Histogram_100000_20_64 http2_stream_window_update_period;
|
719
|
+
Histogram_16777216_50_64 http2_write_data_frame_size;
|
720
|
+
Histogram_16777216_50_64 http2_read_data_frame_size;
|
721
|
+
Histogram_16777216_50_64 http2_write_target_size;
|
722
|
+
HistogramView histogram(Histogram which) const;
|
723
|
+
std::unique_ptr<Http2GlobalStats> Diff(const Http2GlobalStats& other) const;
|
724
|
+
};
|
725
|
+
class Http2GlobalStatsCollector {
|
726
|
+
public:
|
727
|
+
std::unique_ptr<Http2GlobalStats> Collect() const;
|
728
|
+
void IncrementHttp2SettingsWrites() {
|
729
|
+
data_.this_cpu().http2_settings_writes.fetch_add(1,
|
730
|
+
std::memory_order_relaxed);
|
731
|
+
}
|
732
|
+
void IncrementHttp2PingsSent() {
|
733
|
+
data_.this_cpu().http2_pings_sent.fetch_add(1, std::memory_order_relaxed);
|
734
|
+
}
|
735
|
+
void IncrementHttp2TransportStalls() {
|
736
|
+
data_.this_cpu().http2_transport_stalls.fetch_add(
|
737
|
+
1, std::memory_order_relaxed);
|
738
|
+
}
|
739
|
+
void IncrementHttp2StreamStalls() {
|
740
|
+
data_.this_cpu().http2_stream_stalls.fetch_add(1,
|
741
|
+
std::memory_order_relaxed);
|
742
|
+
}
|
743
|
+
void IncrementHttp2HpackHits() {
|
744
|
+
data_.this_cpu().http2_hpack_hits.fetch_add(1, std::memory_order_relaxed);
|
745
|
+
}
|
746
|
+
void IncrementHttp2HpackMisses() {
|
747
|
+
data_.this_cpu().http2_hpack_misses.fetch_add(1, std::memory_order_relaxed);
|
748
|
+
}
|
749
|
+
|
750
|
+
private:
|
751
|
+
void IncrementHttp2WritesBegun() {
|
752
|
+
data_.this_cpu().http2_writes_begun.fetch_add(1, std::memory_order_relaxed);
|
753
|
+
}
|
754
|
+
|
755
|
+
public:
|
756
|
+
void IncrementHttp2SendMessageSize(int value) {
|
757
|
+
data_.this_cpu().http2_send_message_size.Increment(value);
|
758
|
+
}
|
759
|
+
void IncrementHttp2MetadataSize(int value) {
|
760
|
+
data_.this_cpu().http2_metadata_size.Increment(value);
|
761
|
+
}
|
762
|
+
void IncrementHttp2HpackEntryLifetime(int value) {
|
763
|
+
data_.this_cpu().http2_hpack_entry_lifetime.Increment(value);
|
764
|
+
}
|
765
|
+
void IncrementHttp2HeaderTableSize(int value) {
|
766
|
+
data_.this_cpu().http2_header_table_size.Increment(value);
|
767
|
+
}
|
768
|
+
void IncrementHttp2InitialWindowSize(int value) {
|
769
|
+
data_.this_cpu().http2_initial_window_size.Increment(value);
|
770
|
+
}
|
771
|
+
void IncrementHttp2MaxConcurrentStreams(int value) {
|
772
|
+
data_.this_cpu().http2_max_concurrent_streams.Increment(value);
|
773
|
+
}
|
774
|
+
void IncrementHttp2MaxFrameSize(int value) {
|
775
|
+
data_.this_cpu().http2_max_frame_size.Increment(value);
|
776
|
+
}
|
777
|
+
void IncrementHttp2MaxHeaderListSize(int value) {
|
778
|
+
data_.this_cpu().http2_max_header_list_size.Increment(value);
|
779
|
+
}
|
780
|
+
void IncrementHttp2PreferredReceiveCryptoMessageSize(int value) {
|
781
|
+
data_.this_cpu().http2_preferred_receive_crypto_message_size.Increment(
|
782
|
+
value);
|
783
|
+
}
|
784
|
+
void IncrementHttp2StreamRemoteWindowUpdate(int value) {
|
785
|
+
data_.this_cpu().http2_stream_remote_window_update.Increment(value);
|
786
|
+
}
|
787
|
+
void IncrementHttp2TransportRemoteWindowUpdate(int value) {
|
788
|
+
data_.this_cpu().http2_transport_remote_window_update.Increment(value);
|
789
|
+
}
|
790
|
+
void IncrementHttp2TransportWindowUpdatePeriod(int value) {
|
791
|
+
data_.this_cpu().http2_transport_window_update_period.Increment(value);
|
792
|
+
}
|
793
|
+
void IncrementHttp2StreamWindowUpdatePeriod(int value) {
|
794
|
+
data_.this_cpu().http2_stream_window_update_period.Increment(value);
|
795
|
+
}
|
796
|
+
void IncrementHttp2WriteDataFrameSize(int value) {
|
797
|
+
data_.this_cpu().http2_write_data_frame_size.Increment(value);
|
798
|
+
}
|
799
|
+
void IncrementHttp2ReadDataFrameSize(int value) {
|
800
|
+
data_.this_cpu().http2_read_data_frame_size.Increment(value);
|
801
|
+
}
|
802
|
+
|
803
|
+
private:
|
804
|
+
void IncrementHttp2WriteTargetSize(int value) {
|
805
|
+
data_.this_cpu().http2_write_target_size.Increment(value);
|
806
|
+
}
|
807
|
+
friend class GlobalStatsCollector;
|
808
|
+
friend class Http2StatsCollector;
|
809
|
+
struct Data {
|
810
|
+
std::atomic<uint64_t> http2_settings_writes{0};
|
811
|
+
std::atomic<uint64_t> http2_pings_sent{0};
|
812
|
+
std::atomic<uint64_t> http2_transport_stalls{0};
|
813
|
+
std::atomic<uint64_t> http2_stream_stalls{0};
|
814
|
+
std::atomic<uint64_t> http2_hpack_hits{0};
|
815
|
+
std::atomic<uint64_t> http2_hpack_misses{0};
|
816
|
+
std::atomic<uint64_t> http2_writes_begun{0};
|
817
|
+
HistogramCollector_16777216_20_64 http2_send_message_size;
|
818
|
+
HistogramCollector_65536_26_64 http2_metadata_size;
|
819
|
+
HistogramCollector_1800000_40_64 http2_hpack_entry_lifetime;
|
820
|
+
HistogramCollector_16777216_20_64 http2_header_table_size;
|
821
|
+
HistogramCollector_16777216_50_64 http2_initial_window_size;
|
822
|
+
HistogramCollector_16777216_20_64 http2_max_concurrent_streams;
|
823
|
+
HistogramCollector_16777216_50_64 http2_max_frame_size;
|
824
|
+
HistogramCollector_16777216_20_64 http2_max_header_list_size;
|
825
|
+
HistogramCollector_16777216_20_64
|
826
|
+
http2_preferred_receive_crypto_message_size;
|
827
|
+
HistogramCollector_16777216_20_64 http2_stream_remote_window_update;
|
828
|
+
HistogramCollector_16777216_20_64 http2_transport_remote_window_update;
|
829
|
+
HistogramCollector_100000_20_64 http2_transport_window_update_period;
|
830
|
+
HistogramCollector_100000_20_64 http2_stream_window_update_period;
|
831
|
+
HistogramCollector_16777216_50_64 http2_write_data_frame_size;
|
832
|
+
HistogramCollector_16777216_50_64 http2_read_data_frame_size;
|
833
|
+
HistogramCollector_16777216_50_64 http2_write_target_size;
|
834
|
+
};
|
835
|
+
PerCpu<Data> data_{PerCpuOptions().SetCpusPerShard(4).SetMaxShards(32)};
|
836
|
+
};
|
837
|
+
inline Http2GlobalStatsCollector& http2_global_stats() {
|
838
|
+
return *NoDestructSingleton<Http2GlobalStatsCollector>::Get();
|
839
|
+
}
|
806
840
|
struct Http2Stats {
|
807
841
|
enum class Counter { kHttp2WritesBegun, COUNT };
|
808
842
|
enum class Histogram { kHttp2WriteTargetSize, COUNT };
|
@@ -824,13 +858,76 @@ struct Http2Stats {
|
|
824
858
|
class Http2StatsCollector {
|
825
859
|
public:
|
826
860
|
const Http2Stats& View() const { return data_; };
|
861
|
+
void IncrementHttp2SettingsWrites() {
|
862
|
+
http2_global_stats().IncrementHttp2SettingsWrites();
|
863
|
+
}
|
864
|
+
void IncrementHttp2PingsSent() {
|
865
|
+
http2_global_stats().IncrementHttp2PingsSent();
|
866
|
+
}
|
867
|
+
void IncrementHttp2TransportStalls() {
|
868
|
+
http2_global_stats().IncrementHttp2TransportStalls();
|
869
|
+
}
|
870
|
+
void IncrementHttp2StreamStalls() {
|
871
|
+
http2_global_stats().IncrementHttp2StreamStalls();
|
872
|
+
}
|
873
|
+
void IncrementHttp2HpackHits() {
|
874
|
+
http2_global_stats().IncrementHttp2HpackHits();
|
875
|
+
}
|
876
|
+
void IncrementHttp2HpackMisses() {
|
877
|
+
http2_global_stats().IncrementHttp2HpackMisses();
|
878
|
+
}
|
827
879
|
void IncrementHttp2WritesBegun() {
|
828
880
|
++data_.http2_writes_begun;
|
829
|
-
|
881
|
+
http2_global_stats().IncrementHttp2WritesBegun();
|
882
|
+
}
|
883
|
+
void IncrementHttp2SendMessageSize(int value) {
|
884
|
+
http2_global_stats().IncrementHttp2SendMessageSize(value);
|
885
|
+
}
|
886
|
+
void IncrementHttp2MetadataSize(int value) {
|
887
|
+
http2_global_stats().IncrementHttp2MetadataSize(value);
|
888
|
+
}
|
889
|
+
void IncrementHttp2HpackEntryLifetime(int value) {
|
890
|
+
http2_global_stats().IncrementHttp2HpackEntryLifetime(value);
|
891
|
+
}
|
892
|
+
void IncrementHttp2HeaderTableSize(int value) {
|
893
|
+
http2_global_stats().IncrementHttp2HeaderTableSize(value);
|
894
|
+
}
|
895
|
+
void IncrementHttp2InitialWindowSize(int value) {
|
896
|
+
http2_global_stats().IncrementHttp2InitialWindowSize(value);
|
897
|
+
}
|
898
|
+
void IncrementHttp2MaxConcurrentStreams(int value) {
|
899
|
+
http2_global_stats().IncrementHttp2MaxConcurrentStreams(value);
|
900
|
+
}
|
901
|
+
void IncrementHttp2MaxFrameSize(int value) {
|
902
|
+
http2_global_stats().IncrementHttp2MaxFrameSize(value);
|
903
|
+
}
|
904
|
+
void IncrementHttp2MaxHeaderListSize(int value) {
|
905
|
+
http2_global_stats().IncrementHttp2MaxHeaderListSize(value);
|
906
|
+
}
|
907
|
+
void IncrementHttp2PreferredReceiveCryptoMessageSize(int value) {
|
908
|
+
http2_global_stats().IncrementHttp2PreferredReceiveCryptoMessageSize(value);
|
909
|
+
}
|
910
|
+
void IncrementHttp2StreamRemoteWindowUpdate(int value) {
|
911
|
+
http2_global_stats().IncrementHttp2StreamRemoteWindowUpdate(value);
|
912
|
+
}
|
913
|
+
void IncrementHttp2TransportRemoteWindowUpdate(int value) {
|
914
|
+
http2_global_stats().IncrementHttp2TransportRemoteWindowUpdate(value);
|
915
|
+
}
|
916
|
+
void IncrementHttp2TransportWindowUpdatePeriod(int value) {
|
917
|
+
http2_global_stats().IncrementHttp2TransportWindowUpdatePeriod(value);
|
918
|
+
}
|
919
|
+
void IncrementHttp2StreamWindowUpdatePeriod(int value) {
|
920
|
+
http2_global_stats().IncrementHttp2StreamWindowUpdatePeriod(value);
|
921
|
+
}
|
922
|
+
void IncrementHttp2WriteDataFrameSize(int value) {
|
923
|
+
http2_global_stats().IncrementHttp2WriteDataFrameSize(value);
|
924
|
+
}
|
925
|
+
void IncrementHttp2ReadDataFrameSize(int value) {
|
926
|
+
http2_global_stats().IncrementHttp2ReadDataFrameSize(value);
|
830
927
|
}
|
831
928
|
void IncrementHttp2WriteTargetSize(int value) {
|
832
929
|
data_.http2_write_target_size.Increment(value);
|
833
|
-
|
930
|
+
http2_global_stats().IncrementHttp2WriteTargetSize(value);
|
834
931
|
}
|
835
932
|
|
836
933
|
private:
|
@@ -131,7 +131,7 @@ class TcpCallTracer {
|
|
131
131
|
virtual void RecordEvent(
|
132
132
|
grpc_event_engine::experimental::internal::WriteEvent event,
|
133
133
|
absl::Time time, size_t byte_offset,
|
134
|
-
std::vector<TcpEventMetric
|
134
|
+
const std::vector<TcpEventMetric>& metrics) = 0;
|
135
135
|
};
|
136
136
|
|
137
137
|
class TcpConnectionTracer {
|
@@ -249,12 +249,20 @@ static tsi_result alts_zero_copy_grpc_protector_max_frame_size(
|
|
249
249
|
return TSI_OK;
|
250
250
|
}
|
251
251
|
|
252
|
+
static bool alts_zero_copy_grpc_protector_read_frame_size(
|
253
|
+
tsi_zero_copy_grpc_protector*, grpc_slice_buffer* protected_slices,
|
254
|
+
uint32_t* frame_size) {
|
255
|
+
if (frame_size == nullptr) return false;
|
256
|
+
return read_frame_size(protected_slices, frame_size);
|
257
|
+
}
|
258
|
+
|
252
259
|
static const tsi_zero_copy_grpc_protector_vtable
|
253
260
|
alts_zero_copy_grpc_protector_vtable = {
|
254
261
|
alts_zero_copy_grpc_protector_protect,
|
255
262
|
alts_zero_copy_grpc_protector_unprotect,
|
256
263
|
alts_zero_copy_grpc_protector_destroy,
|
257
|
-
alts_zero_copy_grpc_protector_max_frame_size
|
264
|
+
alts_zero_copy_grpc_protector_max_frame_size,
|
265
|
+
alts_zero_copy_grpc_protector_read_frame_size};
|
258
266
|
|
259
267
|
tsi_result alts_zero_copy_grpc_protector_create(
|
260
268
|
const grpc_core::GsecKeyFactoryInterface& key_factory, bool is_client,
|
@@ -262,8 +270,8 @@ tsi_result alts_zero_copy_grpc_protector_create(
|
|
262
270
|
size_t* max_protected_frame_size,
|
263
271
|
tsi_zero_copy_grpc_protector** protector) {
|
264
272
|
if (protector == nullptr) {
|
265
|
-
LOG(ERROR)
|
266
|
-
|
273
|
+
LOG(ERROR) << "Invalid nullptr arguments to "
|
274
|
+
"alts_zero_copy_grpc_protector create.";
|
267
275
|
return TSI_INVALID_ARGUMENT;
|
268
276
|
}
|
269
277
|
// Creates alts_zero_copy_protector.
|
@@ -520,12 +520,29 @@ static tsi_result fake_zero_copy_grpc_protector_max_frame_size(
|
|
520
520
|
return TSI_OK;
|
521
521
|
}
|
522
522
|
|
523
|
+
static bool fake_zero_copy_grpc_protector_read_frame_size(
|
524
|
+
tsi_zero_copy_grpc_protector*, grpc_slice_buffer* protected_slices,
|
525
|
+
uint32_t* frame_size) {
|
526
|
+
if (frame_size == nullptr) return false;
|
527
|
+
uint32_t parsed_frame_size = 0;
|
528
|
+
while (protected_slices->length >= TSI_FAKE_FRAME_HEADER_SIZE) {
|
529
|
+
uint32_t parsed_frame_size = read_frame_size(protected_slices);
|
530
|
+
if (parsed_frame_size <= 4) {
|
531
|
+
LOG(ERROR) << "Invalid frame size.";
|
532
|
+
return false;
|
533
|
+
}
|
534
|
+
}
|
535
|
+
*frame_size = parsed_frame_size;
|
536
|
+
return true;
|
537
|
+
}
|
538
|
+
|
523
539
|
static const tsi_zero_copy_grpc_protector_vtable
|
524
540
|
zero_copy_grpc_protector_vtable = {
|
525
541
|
fake_zero_copy_grpc_protector_protect,
|
526
542
|
fake_zero_copy_grpc_protector_unprotect,
|
527
543
|
fake_zero_copy_grpc_protector_destroy,
|
528
544
|
fake_zero_copy_grpc_protector_max_frame_size,
|
545
|
+
fake_zero_copy_grpc_protector_read_frame_size,
|
529
546
|
};
|
530
547
|
|
531
548
|
// --- tsi_handshaker_result methods implementation. ---
|
@@ -2127,6 +2127,8 @@ tsi_result tsi_ssl_client_handshaker_factory_create_handshaker(
|
|
2127
2127
|
size_t ssl_bio_buf_size,
|
2128
2128
|
std::optional<std::string> alpn_preferred_protocol_list,
|
2129
2129
|
tsi_handshaker** handshaker) {
|
2130
|
+
GRPC_TRACE_LOG(tsi, INFO)
|
2131
|
+
<< "Creating SSL handshaker with SNI " << server_name_indication;
|
2130
2132
|
return create_tsi_ssl_handshaker(
|
2131
2133
|
factory->ssl_context, 1, server_name_indication, network_bio_buf_size,
|
2132
2134
|
ssl_bio_buf_size, alpn_preferred_protocol_list, &factory->base,
|
@@ -72,3 +72,11 @@ tsi_result tsi_zero_copy_grpc_protector_max_frame_size(
|
|
72
72
|
if (self->vtable->max_frame_size == nullptr) return TSI_UNIMPLEMENTED;
|
73
73
|
return self->vtable->max_frame_size(self, max_frame_size);
|
74
74
|
}
|
75
|
+
|
76
|
+
bool tsi_zero_copy_grpc_protector_read_frame_size(
|
77
|
+
tsi_zero_copy_grpc_protector* self, grpc_slice_buffer* protected_slices,
|
78
|
+
uint32_t* frame_size) {
|
79
|
+
if (self == nullptr || frame_size == nullptr) return false;
|
80
|
+
if (self->vtable->read_frame_size == nullptr) return false;
|
81
|
+
return self->vtable->read_frame_size(self, protected_slices, frame_size);
|
82
|
+
}
|
@@ -64,6 +64,17 @@ void tsi_zero_copy_grpc_protector_destroy(tsi_zero_copy_grpc_protector* self);
|
|
64
64
|
tsi_result tsi_zero_copy_grpc_protector_max_frame_size(
|
65
65
|
tsi_zero_copy_grpc_protector* self, size_t* max_frame_size);
|
66
66
|
|
67
|
+
// A stateless methods that reads the frame size of the input slice buffer. Does
|
68
|
+
// NOT consume any of the protected_slices and does NOT modify the `self` input
|
69
|
+
// argument in any way.
|
70
|
+
// - protected_slices is the bytes of protected frames.
|
71
|
+
// - frame_size is the output frame size.
|
72
|
+
// - Returns true in case of success.
|
73
|
+
// - Returns false in the case the frame size cannot be read
|
74
|
+
bool tsi_zero_copy_grpc_protector_read_frame_size(
|
75
|
+
tsi_zero_copy_grpc_protector* self, grpc_slice_buffer* protected_slices,
|
76
|
+
uint32_t* frame_size);
|
77
|
+
|
67
78
|
// Base for tsi_zero_copy_grpc_protector implementations.
|
68
79
|
// Implementations must guarantee that protect and unprotect can be called
|
69
80
|
// concurrently.
|
@@ -78,7 +89,11 @@ struct tsi_zero_copy_grpc_protector_vtable {
|
|
78
89
|
void (*destroy)(tsi_zero_copy_grpc_protector* self);
|
79
90
|
tsi_result (*max_frame_size)(tsi_zero_copy_grpc_protector* self,
|
80
91
|
size_t* max_frame_size);
|
92
|
+
bool (*read_frame_size)(tsi_zero_copy_grpc_protector* self,
|
93
|
+
grpc_slice_buffer* protected_slices,
|
94
|
+
uint32_t* frame_size);
|
81
95
|
};
|
96
|
+
|
82
97
|
struct tsi_zero_copy_grpc_protector {
|
83
98
|
const tsi_zero_copy_grpc_protector_vtable* vtable;
|
84
99
|
};
|
data/src/core/util/backoff.cc
CHANGED
@@ -22,9 +22,6 @@
|
|
22
22
|
|
23
23
|
#include <algorithm>
|
24
24
|
|
25
|
-
#include "src/core/lib/experiments/experiments.h"
|
26
|
-
#include "src/core/util/shared_bit_gen.h"
|
27
|
-
|
28
25
|
namespace grpc_core {
|
29
26
|
|
30
27
|
BackOff::BackOff(const Options& options) : options_(options) { Reset(); }
|
@@ -36,9 +33,8 @@ Duration BackOff::NextAttemptDelay() {
|
|
36
33
|
current_backoff_ *= options_.multiplier();
|
37
34
|
}
|
38
35
|
current_backoff_ = std::min(current_backoff_, options_.max_backoff());
|
39
|
-
SharedBitGen g;
|
40
36
|
const double jitter =
|
41
|
-
absl::Uniform(
|
37
|
+
absl::Uniform(bitgen_, 1 - options_.jitter(), 1 + options_.jitter());
|
42
38
|
return current_backoff_ * jitter;
|
43
39
|
}
|
44
40
|
|
data/src/core/util/backoff.h
CHANGED
data/src/core/util/down_cast.h
CHANGED
@@ -32,7 +32,7 @@ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline To DownCast(From* f) {
|
|
32
32
|
// If we have RTTI & we're in debug, assert that the cast is legal.
|
33
33
|
#if ABSL_INTERNAL_HAS_RTTI
|
34
34
|
#ifndef NDEBUG
|
35
|
-
if (f != nullptr) CHECK_NE(dynamic_cast<To>(f), nullptr);
|
35
|
+
if (f != nullptr) CHECK_NE(dynamic_cast<To>(f), nullptr) << f;
|
36
36
|
#endif
|
37
37
|
#endif
|
38
38
|
return static_cast<To>(f);
|