grpc 1.64.3 → 1.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +57 -58
- data/include/grpc/event_engine/event_engine.h +13 -6
- data/include/grpc/impl/channel_arg_names.h +7 -3
- data/include/grpc/module.modulemap +1 -0
- data/include/grpc/passive_listener.h +62 -0
- data/include/grpc/support/log.h +7 -17
- data/include/grpc/support/port_platform.h +3 -0
- data/src/core/channelz/channel_trace.cc +1 -1
- data/src/core/channelz/channel_trace.h +1 -1
- data/src/core/channelz/channelz.cc +3 -3
- data/src/core/channelz/channelz.h +7 -7
- data/src/core/channelz/channelz_registry.cc +4 -3
- data/src/core/client_channel/backup_poller.cc +4 -5
- data/src/core/client_channel/client_channel.cc +1324 -0
- data/src/core/client_channel/client_channel.h +243 -0
- data/src/core/client_channel/client_channel_filter.cc +266 -709
- data/src/core/client_channel/client_channel_filter.h +11 -64
- data/src/core/client_channel/client_channel_internal.h +16 -5
- data/src/core/client_channel/client_channel_plugin.cc +1 -14
- data/src/core/client_channel/client_channel_service_config.h +3 -3
- data/src/core/client_channel/config_selector.cc +1 -1
- data/src/core/client_channel/config_selector.h +1 -1
- data/src/core/client_channel/dynamic_filters.cc +3 -3
- data/src/core/client_channel/dynamic_filters.h +1 -3
- data/src/core/client_channel/load_balanced_call_destination.cc +336 -0
- data/src/core/client_channel/load_balanced_call_destination.h +49 -0
- data/src/core/client_channel/retry_filter.cc +2 -9
- data/src/core/client_channel/retry_filter.h +2 -7
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +65 -72
- data/src/core/client_channel/retry_filter_legacy_call_data.h +0 -2
- data/src/core/client_channel/retry_service_config.cc +4 -5
- data/src/core/client_channel/retry_service_config.h +3 -3
- data/src/core/client_channel/subchannel.cc +220 -112
- data/src/core/client_channel/subchannel.h +31 -18
- data/src/core/client_channel/subchannel_pool_interface.cc +0 -2
- data/src/core/client_channel/subchannel_pool_interface.h +2 -4
- data/src/core/client_channel/subchannel_stream_client.cc +36 -49
- data/src/core/client_channel/subchannel_stream_client.h +2 -4
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +7 -10
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +1 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +7 -0
- data/src/core/ext/filters/census/grpc_context.cc +2 -4
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +8 -15
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +2 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +3 -7
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +1 -0
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +3 -3
- data/src/core/ext/filters/http/client/http_client_filter.cc +1 -0
- data/src/core/ext/filters/http/client/http_client_filter.h +1 -0
- data/src/core/ext/filters/http/client_authority_filter.cc +1 -0
- data/src/core/ext/filters/http/client_authority_filter.h +1 -0
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +10 -15
- data/src/core/ext/filters/http/message_compress/compression_filter.h +2 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +2 -2
- data/src/core/ext/filters/http/server/http_server_filter.h +1 -0
- data/src/core/ext/filters/message_size/message_size_filter.cc +6 -9
- data/src/core/ext/filters/message_size/message_size_filter.h +6 -6
- data/src/core/ext/filters/rbac/rbac_filter.cc +2 -5
- data/src/core/ext/filters/rbac/rbac_filter.h +1 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +2 -2
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +1 -1
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +2 -6
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +1 -0
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +3 -3
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +8 -25
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +223 -148
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +33 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +131 -107
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +8 -8
- data/src/core/ext/transport/chttp2/transport/context_list_entry.h +1 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -2
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +1 -2
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +9 -5
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +5 -4
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +9 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +32 -43
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +3 -8
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +1 -1
- data/src/core/ext/transport/chttp2/transport/internal.h +29 -19
- data/src/core/ext/transport/chttp2/transport/parsing.cc +15 -25
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +0 -2
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +0 -2
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +29 -13
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +5 -4
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +3 -5
- data/src/core/ext/transport/chttp2/transport/writing.cc +24 -25
- data/src/core/ext/transport/inproc/inproc_transport.cc +56 -32
- data/src/core/ext/transport/inproc/inproc_transport.h +1 -3
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +13 -15
- data/src/core/ext/transport/inproc/legacy_inproc_transport.h +0 -2
- data/src/core/handshaker/handshaker.cc +6 -14
- data/src/core/handshaker/http_connect/http_connect_handshaker.cc +9 -17
- data/src/core/handshaker/http_connect/http_proxy_mapper.cc +3 -2
- data/src/core/handshaker/security/secure_endpoint.cc +38 -32
- data/src/core/handshaker/security/secure_endpoint.h +0 -2
- data/src/core/handshaker/security/security_handshaker.cc +25 -37
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +2 -1
- data/src/core/lib/address_utils/parse_address.cc +27 -39
- data/src/core/lib/address_utils/sockaddr_utils.cc +5 -6
- data/src/core/lib/avl/avl.h +1 -1
- data/src/core/lib/channel/channel_args.cc +13 -17
- data/src/core/lib/channel/channel_args.h +19 -8
- data/src/core/lib/channel/channel_stack.cc +5 -63
- data/src/core/lib/channel/channel_stack.h +13 -37
- data/src/core/lib/channel/channel_stack_builder.h +0 -5
- data/src/core/lib/channel/channel_stack_builder_impl.cc +0 -142
- data/src/core/lib/channel/channel_stack_builder_impl.h +0 -2
- data/src/core/lib/channel/connected_channel.cc +37 -676
- data/src/core/lib/channel/promise_based_filter.cc +41 -47
- data/src/core/lib/channel/promise_based_filter.h +124 -477
- data/src/core/lib/channel/status_util.cc +1 -1
- data/src/core/lib/compression/compression.cc +1 -1
- data/src/core/lib/compression/message_compress.cc +6 -6
- data/src/core/lib/config/config_vars.cc +3 -8
- data/src/core/lib/config/config_vars.h +1 -5
- data/src/core/lib/debug/event_log.h +1 -1
- data/src/core/lib/debug/trace.cc +43 -59
- data/src/core/lib/debug/trace.h +2 -97
- data/src/core/lib/debug/trace_flags.cc +255 -0
- data/src/core/lib/debug/trace_flags.h +133 -0
- data/src/core/lib/debug/trace_impl.h +115 -0
- data/src/core/lib/event_engine/ares_resolver.cc +5 -7
- data/src/core/lib/event_engine/ares_resolver.h +1 -3
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +1 -1
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +17 -22
- data/src/core/lib/event_engine/event_engine.cc +29 -4
- data/src/core/lib/event_engine/extensions/supports_fd.h +7 -0
- data/src/core/lib/event_engine/extensions/tcp_trace.h +43 -0
- data/src/core/lib/event_engine/forkable.cc +4 -5
- data/src/core/lib/event_engine/forkable.h +0 -11
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +10 -11
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +4 -3
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +19 -33
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +3 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +24 -7
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +2 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +14 -16
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +18 -22
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +13 -17
- data/src/core/lib/event_engine/posix_engine/timer.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +4 -6
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +2 -1
- data/src/core/lib/event_engine/shim.cc +1 -1
- data/src/core/lib/event_engine/tcp_socket_utils.cc +6 -8
- data/src/core/lib/event_engine/thread_local.h +1 -1
- data/src/core/lib/event_engine/thread_pool/thread_count.h +1 -1
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +19 -21
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -6
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +14 -13
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +4 -3
- data/src/core/lib/event_engine/trace.h +6 -17
- data/src/core/lib/event_engine/windows/iocp.h +1 -1
- data/src/core/lib/event_engine/windows/win_socket.cc +23 -17
- data/src/core/lib/event_engine/windows/win_socket.h +4 -5
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +6 -9
- data/src/core/lib/event_engine/windows/windows_engine.cc +201 -87
- data/src/core/lib/event_engine/windows/windows_engine.h +136 -25
- data/src/core/lib/event_engine/windows/windows_listener.cc +12 -23
- data/src/core/lib/experiments/experiments.cc +35 -151
- data/src/core/lib/experiments/experiments.h +12 -45
- data/src/core/lib/gprpp/bitset.h +1 -1
- data/src/core/lib/gprpp/crash.cc +2 -3
- data/src/core/lib/gprpp/dual_ref_counted.h +45 -33
- data/src/core/lib/gprpp/dump_args.cc +54 -0
- data/src/core/lib/gprpp/dump_args.h +69 -0
- data/src/core/lib/gprpp/glob.cc +70 -0
- data/src/core/lib/gprpp/glob.h +29 -0
- data/src/core/lib/gprpp/per_cpu.cc +1 -1
- data/src/core/lib/gprpp/posix/stat.cc +3 -4
- data/src/core/lib/gprpp/posix/thd.cc +8 -9
- data/src/core/lib/gprpp/ref_counted.h +30 -22
- data/src/core/lib/gprpp/single_set_ptr.h +5 -3
- data/src/core/lib/gprpp/status_helper.cc +11 -30
- data/src/core/lib/gprpp/status_helper.h +3 -31
- data/src/core/lib/gprpp/time.cc +3 -4
- data/src/core/lib/gprpp/time.h +3 -2
- data/src/core/lib/gprpp/unique_type_name.h +1 -1
- data/src/core/lib/gprpp/validation_errors.cc +10 -1
- data/src/core/lib/gprpp/validation_errors.h +11 -0
- data/src/core/lib/gprpp/windows/stat.cc +3 -4
- data/src/core/lib/gprpp/windows/thd.cc +3 -2
- data/src/core/lib/gprpp/work_serializer.cc +48 -57
- data/src/core/lib/iomgr/buffer_list.cc +4 -2
- data/src/core/lib/iomgr/call_combiner.cc +18 -27
- data/src/core/lib/iomgr/call_combiner.h +1 -3
- data/src/core/lib/iomgr/cfstream_handle.cc +4 -6
- data/src/core/lib/iomgr/closure.h +2 -4
- data/src/core/lib/iomgr/combiner.cc +6 -8
- data/src/core/lib/iomgr/combiner.h +0 -2
- data/src/core/lib/iomgr/endpoint.cc +0 -6
- data/src/core/lib/iomgr/endpoint.h +0 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +19 -41
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +1 -1
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -6
- data/src/core/lib/iomgr/error.cc +13 -21
- data/src/core/lib/iomgr/error.h +1 -1
- data/src/core/lib/iomgr/ev_apple.cc +3 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +43 -42
- data/src/core/lib/iomgr/ev_poll_posix.cc +38 -29
- data/src/core/lib/iomgr/ev_posix.cc +8 -9
- data/src/core/lib/iomgr/ev_posix.h +10 -7
- data/src/core/lib/iomgr/event_engine_shims/closure.cc +2 -2
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +14 -28
- data/src/core/lib/iomgr/exec_ctx.cc +2 -2
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +6 -15
- data/src/core/lib/iomgr/executor.h +1 -1
- data/src/core/lib/iomgr/fork_posix.cc +8 -10
- data/src/core/lib/iomgr/fork_windows.cc +3 -1
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -3
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +3 -5
- data/src/core/lib/iomgr/internal_errqueue.cc +4 -2
- data/src/core/lib/iomgr/iocp_windows.cc +4 -3
- data/src/core/lib/iomgr/iomgr.cc +13 -17
- data/src/core/lib/iomgr/lockfree_event.cc +3 -5
- data/src/core/lib/iomgr/pollset.h +0 -2
- data/src/core/lib/iomgr/pollset_windows.cc +0 -2
- data/src/core/lib/iomgr/resolve_address_posix.cc +7 -14
- data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_mutator.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +11 -17
- data/src/core/lib/iomgr/socket_windows.cc +4 -6
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +3 -5
- data/src/core/lib/iomgr/tcp_client_posix.cc +9 -15
- data/src/core/lib/iomgr/tcp_client_windows.cc +2 -4
- data/src/core/lib/iomgr/tcp_posix.cc +57 -84
- data/src/core/lib/iomgr/tcp_posix.h +0 -2
- data/src/core/lib/iomgr/tcp_server_posix.cc +3 -3
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +4 -6
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +7 -7
- data/src/core/lib/iomgr/tcp_server_windows.cc +10 -16
- data/src/core/lib/iomgr/tcp_windows.cc +25 -41
- data/src/core/lib/iomgr/timer_generic.cc +17 -20
- data/src/core/lib/iomgr/timer_heap.cc +1 -1
- data/src/core/lib/iomgr/timer_manager.cc +17 -30
- data/src/core/lib/iomgr/unix_sockets_posix.cc +1 -1
- data/src/core/lib/iomgr/vsock.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +3 -3
- data/src/core/lib/promise/activity.h +27 -4
- data/src/core/lib/promise/cancel_callback.h +24 -0
- data/src/core/lib/promise/context.h +11 -0
- data/src/core/lib/promise/detail/basic_seq.h +1 -2
- data/src/core/lib/promise/detail/join_state.h +354 -398
- data/src/core/lib/promise/detail/promise_like.h +6 -5
- data/src/core/lib/promise/detail/seq_state.h +1178 -1178
- data/src/core/lib/promise/for_each.h +6 -6
- data/src/core/lib/promise/interceptor_list.h +6 -7
- data/src/core/lib/promise/latch.h +9 -9
- data/src/core/lib/promise/map.h +17 -0
- data/src/core/lib/promise/observable.h +182 -0
- data/src/core/lib/promise/party.cc +7 -8
- data/src/core/lib/promise/party.h +10 -8
- data/src/core/lib/promise/pipe.h +16 -35
- data/src/core/lib/promise/promise.h +1 -0
- data/src/core/lib/promise/status_flag.h +2 -0
- data/src/core/lib/resource_quota/arena.cc +56 -79
- data/src/core/lib/resource_quota/arena.h +118 -209
- data/src/core/lib/resource_quota/memory_quota.cc +12 -13
- data/src/core/lib/resource_quota/memory_quota.h +2 -3
- data/src/core/lib/resource_quota/periodic_update.cc +1 -1
- data/src/core/lib/resource_quota/resource_quota.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
- data/src/core/lib/security/authorization/evaluate_args.cc +6 -8
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +5 -6
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -0
- data/src/core/lib/security/authorization/matchers.cc +3 -3
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +2 -2
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +2 -3
- data/src/core/lib/security/context/security_context.cc +12 -13
- data/src/core/lib/security/context/security_context.h +31 -8
- data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +3 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -3
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +5 -5
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +3 -3
- data/src/core/lib/security/credentials/call_creds_util.cc +2 -1
- data/src/core/lib/security/credentials/channel_creds_registry.h +2 -2
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +5 -3
- data/src/core/lib/security/credentials/composite/composite_credentials.h +1 -1
- data/src/core/lib/security/credentials/credentials.cc +6 -6
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +4 -4
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +2 -2
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +9 -11
- data/src/core/lib/security/credentials/external/external_account_credentials.h +3 -3
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +2 -2
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -4
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +1 -1
- data/src/core/lib/security/credentials/fake/fake_credentials.h +1 -1
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -3
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +11 -11
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -1
- data/src/core/lib/security/credentials/iam/iam_credentials.h +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.cc +14 -15
- data/src/core/lib/security/credentials/jwt/json_token.h +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +6 -5
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +50 -54
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
- data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +12 -11
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +4 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -7
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +1 -3
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +15 -21
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +21 -30
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +3 -5
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +14 -16
- data/src/core/lib/security/credentials/tls/tls_utils.cc +4 -4
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +1 -1
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -16
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +15 -12
- data/src/core/lib/security/security_connector/load_system_roots_supported.cc +6 -6
- data/src/core/lib/security/security_connector/load_system_roots_windows.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +8 -12
- data/src/core/lib/security/security_connector/security_connector.cc +1 -4
- data/src/core/lib/security/security_connector/security_connector.h +1 -3
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +17 -19
- data/src/core/lib/security/security_connector/ssl_utils.cc +19 -21
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +29 -40
- data/src/core/lib/security/transport/auth_filters.h +1 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +7 -13
- data/src/core/lib/security/transport/server_auth_filter.cc +3 -8
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/slice/slice.h +1 -1
- data/src/core/lib/slice/slice_refcount.h +2 -4
- data/src/core/lib/slice/slice_string_helpers.cc +1 -1
- data/src/core/lib/surface/api_trace.h +1 -3
- data/src/core/lib/surface/call.cc +64 -3738
- data/src/core/lib/surface/call.h +41 -143
- data/src/core/lib/surface/call_log_batch.cc +1 -1
- data/src/core/lib/surface/call_utils.cc +276 -0
- data/src/core/lib/surface/call_utils.h +449 -0
- data/src/core/lib/surface/channel.cc +8 -3
- data/src/core/lib/surface/channel.h +10 -7
- data/src/core/lib/surface/channel_create.cc +14 -6
- data/src/core/lib/surface/channel_create.h +3 -2
- data/src/core/lib/surface/channel_init.cc +21 -77
- data/src/core/lib/surface/channel_init.h +19 -97
- data/src/core/lib/surface/client_call.cc +419 -0
- data/src/core/lib/surface/client_call.h +180 -0
- data/src/core/lib/surface/completion_queue.cc +28 -33
- data/src/core/lib/surface/completion_queue.h +0 -8
- data/src/core/lib/surface/filter_stack_call.cc +1157 -0
- data/src/core/lib/surface/filter_stack_call.h +369 -0
- data/src/core/lib/surface/init.cc +7 -6
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/legacy_channel.cc +40 -27
- data/src/core/lib/surface/legacy_channel.h +9 -18
- data/src/core/lib/surface/server_call.cc +222 -0
- data/src/core/lib/surface/server_call.h +167 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +3 -5
- data/src/core/lib/transport/bdp_estimator.h +2 -4
- data/src/core/lib/transport/call_arena_allocator.h +9 -7
- data/src/core/lib/transport/call_destination.h +76 -0
- data/src/core/lib/transport/call_filters.cc +28 -10
- data/src/core/lib/transport/call_filters.h +128 -22
- data/src/core/lib/transport/call_spine.cc +5 -6
- data/src/core/lib/transport/call_spine.h +159 -334
- data/src/core/lib/transport/connectivity_state.cc +8 -10
- data/src/core/lib/transport/connectivity_state.h +0 -2
- data/src/core/lib/transport/interception_chain.cc +155 -0
- data/src/core/lib/transport/interception_chain.h +236 -0
- data/src/core/lib/transport/metadata_batch.h +10 -1
- data/src/core/lib/transport/metadata_info.h +1 -1
- data/src/core/lib/transport/transport.cc +3 -6
- data/src/core/lib/transport/transport.h +43 -40
- data/src/core/load_balancing/child_policy_handler.cc +8 -8
- data/src/core/load_balancing/endpoint_list.cc +5 -5
- data/src/core/load_balancing/endpoint_list.h +1 -1
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +1 -0
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +1 -0
- data/src/core/load_balancing/grpclb/grpclb.cc +25 -29
- data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc +1 -1
- data/src/core/load_balancing/grpclb/load_balancer_api.cc +3 -4
- data/src/core/load_balancing/health_check_client.cc +10 -13
- data/src/core/load_balancing/lb_policy.cc +5 -8
- data/src/core/load_balancing/lb_policy.h +19 -3
- data/src/core/load_balancing/lb_policy_factory.h +1 -1
- data/src/core/load_balancing/lb_policy_registry.cc +2 -3
- data/src/core/load_balancing/lb_policy_registry.h +1 -1
- data/src/core/load_balancing/oob_backend_metric.cc +2 -4
- data/src/core/load_balancing/outlier_detection/outlier_detection.cc +33 -35
- data/src/core/load_balancing/outlier_detection/outlier_detection.h +3 -3
- data/src/core/load_balancing/pick_first/pick_first.cc +65 -65
- data/src/core/load_balancing/priority/priority.cc +26 -28
- data/src/core/load_balancing/ring_hash/ring_hash.cc +11 -13
- data/src/core/load_balancing/ring_hash/ring_hash.h +3 -3
- data/src/core/load_balancing/rls/rls.cc +82 -82
- data/src/core/load_balancing/round_robin/round_robin.cc +17 -20
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +54 -43
- data/src/core/load_balancing/weighted_target/weighted_target.cc +21 -24
- data/src/core/load_balancing/xds/cds.cc +14 -16
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +16 -18
- data/src/core/load_balancing/xds/xds_cluster_manager.cc +15 -17
- data/src/core/load_balancing/xds/xds_override_host.cc +40 -41
- data/src/core/load_balancing/xds/xds_override_host.h +3 -3
- data/src/core/load_balancing/xds/xds_wrr_locality.cc +10 -12
- data/src/core/plugin_registry/grpc_plugin_registry.cc +5 -1
- data/src/core/resolver/binder/binder_resolver.cc +3 -2
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +3 -2
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +1 -1
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +7 -14
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -5
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/resolver/dns/dns_resolver_plugin.cc +6 -5
- data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +4 -9
- data/src/core/resolver/dns/event_engine/service_config_helper.cc +5 -5
- data/src/core/resolver/dns/native/dns_resolver.cc +8 -9
- data/src/core/resolver/endpoint_addresses.cc +1 -1
- data/src/core/resolver/fake/fake_resolver.cc +1 -1
- data/src/core/resolver/fake/fake_resolver.h +1 -1
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +13 -14
- data/src/core/resolver/polling_resolver.cc +30 -35
- data/src/core/resolver/resolver.cc +2 -6
- data/src/core/resolver/resolver.h +0 -2
- data/src/core/resolver/resolver_registry.cc +6 -8
- data/src/core/resolver/sockaddr/sockaddr_resolver.cc +3 -3
- data/src/core/resolver/xds/xds_dependency_manager.cc +22 -23
- data/src/core/resolver/xds/xds_resolver.cc +13 -15
- data/src/core/server/server.cc +269 -389
- data/src/core/server/server.h +37 -19
- data/src/core/server/server_call_tracer_filter.cc +7 -14
- data/src/core/server/server_config_selector.h +1 -1
- data/src/core/server/server_config_selector_filter.cc +3 -3
- data/src/core/server/server_interface.h +2 -0
- data/src/core/server/xds_channel_stack_modifier.cc +1 -1
- data/src/core/server/xds_channel_stack_modifier.h +1 -1
- data/src/core/server/xds_server_config_fetcher.cc +1 -4
- data/src/core/service_config/service_config.h +1 -1
- data/src/core/service_config/service_config_call_data.h +13 -11
- data/src/core/service_config/service_config_channel_arg_filter.cc +6 -4
- data/src/core/service_config/service_config_impl.cc +5 -5
- data/src/core/service_config/service_config_impl.h +1 -1
- data/src/core/service_config/service_config_parser.cc +3 -6
- data/src/core/service_config/service_config_parser.h +1 -1
- data/src/core/{lib/channel → telemetry}/call_tracer.cc +20 -30
- data/src/core/{lib/channel → telemetry}/call_tracer.h +32 -9
- data/src/core/{lib/debug → telemetry}/histogram_view.cc +1 -1
- data/src/core/{lib/debug → telemetry}/histogram_view.h +3 -3
- data/src/core/telemetry/metrics.cc +178 -0
- data/src/core/telemetry/metrics.h +562 -0
- data/src/core/{lib/debug → telemetry}/stats.cc +1 -1
- data/src/core/{lib/debug → telemetry}/stats.h +5 -5
- data/src/core/{lib/debug → telemetry}/stats_data.cc +1 -1
- data/src/core/{lib/debug → telemetry}/stats_data.h +4 -4
- data/src/core/{lib/channel → telemetry}/tcp_tracer.h +3 -3
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +12 -13
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +25 -27
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +32 -33
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +5 -4
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +5 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -3
- data/src/core/tsi/fake_transport_security.cc +14 -17
- data/src/core/tsi/local_transport_security.cc +6 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +4 -4
- data/src/core/tsi/ssl_transport_security.cc +76 -81
- data/src/core/tsi/ssl_transport_security_utils.cc +74 -18
- data/src/core/tsi/ssl_transport_security_utils.h +11 -0
- data/src/core/tsi/transport_security.cc +0 -4
- data/src/core/tsi/transport_security.h +0 -2
- data/src/core/tsi/transport_security_interface.h +0 -4
- data/src/core/{lib/gpr → util}/alloc.h +3 -3
- data/src/core/{lib/gpr → util}/android/log.cc +0 -19
- data/src/core/{lib/gpr → util}/atm.cc +1 -1
- data/src/core/{ext/gcp/metadata_query.cc → util/gcp_metadata_query.cc} +25 -26
- data/src/core/{ext/gcp/metadata_query.h → util/gcp_metadata_query.h} +11 -11
- data/src/core/{lib/http → util/http_client}/format_request.cc +4 -3
- data/src/core/{lib/http → util/http_client}/format_request.h +6 -5
- data/src/core/{lib/http → util/http_client}/httpcli.cc +9 -10
- data/src/core/{lib/http → util/http_client}/httpcli.h +6 -5
- data/src/core/{lib/http → util/http_client}/httpcli_security_connector.cc +9 -9
- data/src/core/{lib/http → util/http_client}/httpcli_ssl_credentials.h +5 -4
- data/src/core/{lib/http → util/http_client}/parser.cc +4 -5
- data/src/core/{lib/http → util/http_client}/parser.h +5 -6
- data/src/core/{lib → util}/json/json.h +5 -4
- data/src/core/{lib → util}/json/json_args.h +5 -5
- data/src/core/{lib → util}/json/json_channel_args.h +6 -6
- data/src/core/{lib → util}/json/json_object_loader.cc +3 -2
- data/src/core/{lib → util}/json/json_object_loader.h +7 -7
- data/src/core/{lib → util}/json/json_reader.cc +3 -2
- data/src/core/{lib → util}/json/json_reader.h +6 -6
- data/src/core/{lib → util}/json/json_util.cc +4 -4
- data/src/core/{lib → util}/json/json_util.h +6 -6
- data/src/core/{lib → util}/json/json_writer.cc +3 -3
- data/src/core/{lib → util}/json/json_writer.h +6 -6
- data/src/core/{lib/gpr → util}/linux/log.cc +0 -45
- data/src/core/util/log.cc +165 -0
- data/src/core/{lib/gpr → util}/msys/tmpfile.cc +2 -2
- data/src/core/{lib/gpr → util}/posix/cpu.cc +1 -1
- data/src/core/{lib/gpr → util}/posix/log.cc +0 -42
- data/src/core/{lib/gpr → util}/posix/time.cc +1 -1
- data/src/core/{lib/gpr → util}/posix/tmpfile.cc +2 -2
- data/src/core/{lib/gpr → util}/spinlock.h +3 -3
- data/src/core/{lib/gpr → util}/string.cc +2 -2
- data/src/core/{lib/gpr → util}/string.h +3 -3
- data/src/core/{lib/gpr → util}/time_precise.cc +1 -1
- data/src/core/{lib/gpr → util}/time_precise.h +3 -3
- data/src/core/{lib/gpr → util}/tmpfile.h +3 -3
- data/src/core/{lib/gpr → util}/useful.h +3 -3
- data/src/core/{lib/gpr → util}/windows/log.cc +1 -44
- data/src/core/{lib/gpr → util}/windows/string.cc +1 -1
- data/src/core/{lib/gpr → util}/windows/string_util.cc +1 -1
- data/src/core/{lib/gpr → util}/windows/time.cc +1 -1
- data/src/core/{lib/gpr → util}/windows/tmpfile.cc +1 -1
- data/src/core/xds/grpc/certificate_provider_store.cc +3 -3
- data/src/core/xds/grpc/certificate_provider_store.h +4 -4
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +3 -3
- data/src/core/xds/grpc/xds_audit_logger_registry.h +1 -1
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +5 -5
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +3 -3
- data/src/core/xds/grpc/xds_certificate_provider.h +1 -1
- data/src/core/xds/grpc/xds_client_grpc.cc +27 -23
- data/src/core/xds/grpc/xds_client_grpc.h +2 -2
- data/src/core/xds/grpc/xds_cluster.cc +4 -5
- data/src/core/xds/grpc/xds_cluster.h +1 -1
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +1 -1
- data/src/core/xds/grpc/xds_common_types.cc +1 -1
- data/src/core/xds/grpc/xds_common_types.h +1 -1
- data/src/core/xds/grpc/xds_endpoint.cc +4 -5
- data/src/core/xds/grpc/xds_http_fault_filter.cc +2 -2
- data/src/core/xds/grpc/xds_http_filters.h +2 -2
- data/src/core/xds/grpc/xds_http_rbac_filter.cc +3 -3
- data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +2 -2
- data/src/core/xds/grpc/xds_lb_policy_registry.h +1 -1
- data/src/core/xds/grpc/xds_listener.cc +4 -6
- data/src/core/xds/grpc/xds_route_config.cc +7 -8
- data/src/core/xds/grpc/xds_transport_grpc.cc +2 -2
- data/src/core/xds/grpc/xds_transport_grpc.h +1 -1
- data/src/core/xds/xds_client/xds_api.cc +5 -9
- data/src/core/xds/xds_client/xds_bootstrap.cc +1 -1
- data/src/core/xds/xds_client/xds_bootstrap.h +1 -1
- data/src/core/xds/xds_client/xds_client.cc +39 -45
- data/src/core/xds/xds_client/xds_client.h +0 -3
- data/src/core/xds/xds_client/xds_client_stats.cc +6 -6
- data/src/core/xds/xds_client/xds_client_stats.h +2 -2
- data/src/ruby/bin/math_pb.rb +1 -22
- data/src/ruby/ext/grpc/rb_call.c +8 -1
- data/src/ruby/ext/grpc/rb_completion_queue.c +15 -32
- data/src/ruby/ext/grpc/rb_completion_queue.h +7 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -2
- data/src/ruby/ext/grpc/rb_server.c +39 -22
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -22
- data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +5 -5
- data/src/ruby/pb/grpc/testing/metrics_pb.rb +10 -19
- data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +5 -5
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -22
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -22
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +12 -12
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +66 -41
- data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +1497 -0
- data/third_party/boringssl-with-bazel/src/crypto/dilithium/internal.h +58 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -3
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +45 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +33 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +3 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +9 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +6 -0
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c +49 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +7 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +8 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +125 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +0 -23
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +4 -10
- metadata +103 -93
- data/src/core/ext/transport/chttp2/transport/http_trace.cc +0 -19
- data/src/core/ext/transport/chttp2/transport/http_trace.h +0 -24
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -23
- data/src/core/handshaker/security/tsi_error.cc +0 -31
- data/src/core/handshaker/security/tsi_error.h +0 -30
- data/src/core/lib/channel/channel_stack_trace.cc +0 -19
- data/src/core/lib/channel/channel_stack_trace.h +0 -24
- data/src/core/lib/channel/context.h +0 -105
- data/src/core/lib/channel/metrics.cc +0 -334
- data/src/core/lib/channel/metrics.h +0 -365
- data/src/core/lib/event_engine/trace.cc +0 -25
- data/src/core/lib/gpr/log.cc +0 -166
- data/src/core/lib/iomgr/ev_windows.cc +0 -30
- data/src/core/lib/promise/trace.cc +0 -20
- data/src/core/lib/promise/trace.h +0 -24
- data/src/core/lib/resource_quota/trace.cc +0 -19
- data/src/core/lib/resource_quota/trace.h +0 -24
- data/src/core/lib/slice/slice_refcount.cc +0 -20
- data/src/core/lib/surface/api_trace.cc +0 -25
- data/src/core/lib/surface/call_trace.h +0 -24
- data/src/core/lib/surface/wait_for_cq_end_op.cc +0 -75
- data/src/core/lib/surface/wait_for_cq_end_op.h +0 -72
- data/src/core/lib/transport/batch_builder.cc +0 -172
- data/src/core/lib/transport/batch_builder.h +0 -474
- data/src/core/resolver/xds/xds_resolver_trace.cc +0 -25
- data/src/core/resolver/xds/xds_resolver_trace.h +0 -30
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -122
- /data/src/core/{lib/gpr → util}/alloc.cc +0 -0
- /data/src/core/{lib/gpr → util}/iphone/cpu.cc +0 -0
- /data/src/core/{lib/gpr → util}/linux/cpu.cc +0 -0
- /data/src/core/{lib/gpr → util}/posix/string.cc +0 -0
- /data/src/core/{lib/gpr → util}/posix/sync.cc +0 -0
- /data/src/core/{lib/gpr → util}/sync.cc +0 -0
- /data/src/core/{lib/gpr → util}/sync_abseil.cc +0 -0
- /data/src/core/{lib/gpr → util}/time.cc +0 -0
- /data/src/core/{lib/gpr → util}/windows/cpu.cc +0 -0
- /data/src/core/{lib/gpr → util}/windows/sync.cc +0 -0
@@ -23,12 +23,12 @@
|
|
23
23
|
|
24
24
|
#include "absl/cleanup/cleanup.h"
|
25
25
|
#include "absl/log/check.h"
|
26
|
+
#include "absl/log/log.h"
|
26
27
|
#include "absl/status/status.h"
|
27
28
|
#include "absl/strings/str_cat.h"
|
28
29
|
#include "absl/strings/str_replace.h"
|
29
30
|
|
30
31
|
#include <grpc/event_engine/event_engine.h>
|
31
|
-
#include <grpc/support/log.h>
|
32
32
|
#include <grpc/support/port_platform.h>
|
33
33
|
|
34
34
|
#include "src/core/lib/event_engine/posix_engine/tcp_socket_utils.h"
|
@@ -120,10 +120,8 @@ int InitMaxAcceptQueueSize() {
|
|
120
120
|
max_accept_queue_size = n;
|
121
121
|
|
122
122
|
if (max_accept_queue_size < MIN_SAFE_ACCEPT_QUEUE_SIZE) {
|
123
|
-
|
124
|
-
|
125
|
-
"connection drops",
|
126
|
-
max_accept_queue_size);
|
123
|
+
LOG(INFO) << "Suspiciously small accept queue (" << max_accept_queue_size
|
124
|
+
<< ") will probably lead to connection drops";
|
127
125
|
}
|
128
126
|
return max_accept_queue_size;
|
129
127
|
}
|
@@ -156,7 +154,7 @@ absl::Status PrepareSocket(const PosixTcpOptions& options,
|
|
156
154
|
#ifdef GRPC_LINUX_ERRQUEUE
|
157
155
|
if (!socket.sock.SetSocketZeroCopy().ok()) {
|
158
156
|
// it's not fatal, so just log it.
|
159
|
-
|
157
|
+
VLOG(2) << "Node does not support SO_ZEROCOPY, continuing.";
|
160
158
|
} else {
|
161
159
|
socket.zero_copy_enabled = true;
|
162
160
|
}
|
@@ -179,8 +177,8 @@ absl::Status PrepareSocket(const PosixTcpOptions& options,
|
|
179
177
|
if (bind(fd, socket.addr.address(), socket.addr.size()) < 0) {
|
180
178
|
auto sockaddr_str = ResolvedAddressToString(socket.addr);
|
181
179
|
if (!sockaddr_str.ok()) {
|
182
|
-
|
183
|
-
|
180
|
+
LOG(ERROR) << "Could not convert sockaddr to string: "
|
181
|
+
<< sockaddr_str.status();
|
184
182
|
sockaddr_str = "<unparsable>";
|
185
183
|
}
|
186
184
|
sockaddr_str = absl::StrReplaceAll(*sockaddr_str, {{"\0", "@"}});
|
@@ -244,7 +242,7 @@ absl::StatusOr<int> ListenerContainerAddAllLocalAddresses(
|
|
244
242
|
auto result = GetUnusedPort();
|
245
243
|
GRPC_RETURN_IF_ERROR(result.status());
|
246
244
|
requested_port = *result;
|
247
|
-
|
245
|
+
VLOG(2) << "Picked unused port " << requested_port;
|
248
246
|
}
|
249
247
|
if (getifaddrs(&ifa) != 0 || ifa == nullptr) {
|
250
248
|
return absl::FailedPreconditionError(
|
@@ -276,14 +274,14 @@ absl::StatusOr<int> ListenerContainerAddAllLocalAddresses(
|
|
276
274
|
addr = EventEngine::ResolvedAddress(ifa_it->ifa_addr, len);
|
277
275
|
ResolvedAddressSetPort(addr, requested_port);
|
278
276
|
std::string addr_str = *ResolvedAddressToString(addr);
|
279
|
-
|
280
|
-
|
281
|
-
|
277
|
+
VLOG(2) << absl::StrFormat(
|
278
|
+
"Adding local addr from interface %s flags 0x%x to server: %s",
|
279
|
+
ifa_name, ifa_it->ifa_flags, addr_str.c_str());
|
282
280
|
// We could have multiple interfaces with the same address (e.g.,
|
283
281
|
// bonding), so look for duplicates.
|
284
282
|
if (listener_sockets.Find(addr).ok()) {
|
285
|
-
|
286
|
-
|
283
|
+
VLOG(2) << "Skipping duplicate addr " << addr_str << " on interface "
|
284
|
+
<< ifa_name;
|
287
285
|
continue;
|
288
286
|
}
|
289
287
|
auto result = CreateAndPrepareListenerSocket(options, addr);
|
@@ -347,16 +345,14 @@ absl::StatusOr<int> ListenerContainerAddWildcardAddresses(
|
|
347
345
|
}
|
348
346
|
if (assigned_port > 0) {
|
349
347
|
if (!v6_sock.ok()) {
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
v6_sock.status().ToString().c_str());
|
348
|
+
LOG(INFO) << "Failed to add :: listener, the environment may not support "
|
349
|
+
"IPv6: "
|
350
|
+
<< v6_sock.status();
|
354
351
|
}
|
355
352
|
if (!v4_sock.ok()) {
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
v4_sock.status().ToString().c_str());
|
353
|
+
LOG(INFO) << "Failed to add 0.0.0.0 listener, "
|
354
|
+
"the environment may not support IPv4: "
|
355
|
+
<< v4_sock.status();
|
360
356
|
}
|
361
357
|
return assigned_port;
|
362
358
|
} else {
|
@@ -27,10 +27,10 @@
|
|
27
27
|
#include <grpc/impl/channel_arg_names.h>
|
28
28
|
#include <grpc/support/port_platform.h>
|
29
29
|
|
30
|
-
#include "src/core/lib/gpr/useful.h"
|
31
30
|
#include "src/core/lib/gprpp/crash.h" // IWYU pragma: keep
|
32
31
|
#include "src/core/lib/gprpp/time.h"
|
33
32
|
#include "src/core/lib/iomgr/port.h"
|
33
|
+
#include "src/core/util/useful.h"
|
34
34
|
|
35
35
|
#ifdef GRPC_POSIX_SOCKET_UTILS_COMMON
|
36
36
|
#include <arpa/inet.h> // IWYU pragma: keep
|
@@ -49,10 +49,9 @@
|
|
49
49
|
#include <cstring>
|
50
50
|
|
51
51
|
#include "absl/log/check.h"
|
52
|
+
#include "absl/log/log.h"
|
52
53
|
#include "absl/status/status.h"
|
53
54
|
|
54
|
-
#include <grpc/support/log.h>
|
55
|
-
|
56
55
|
#include "src/core/lib/event_engine/tcp_socket_utils.h"
|
57
56
|
#include "src/core/lib/gprpp/status_helper.h"
|
58
57
|
#include "src/core/lib/gprpp/strerror.h"
|
@@ -628,32 +627,30 @@ void PosixSocketWrapper::TrySetSocketTcpUserTimeout(
|
|
628
627
|
// if it is available.
|
629
628
|
if (g_socket_supports_tcp_user_timeout.load() == 0) {
|
630
629
|
if (0 != getsockopt(fd_, IPPROTO_TCP, TCP_USER_TIMEOUT, &newval, &len)) {
|
631
|
-
|
632
|
-
|
633
|
-
"be used thereafter");
|
630
|
+
LOG(INFO) << "TCP_USER_TIMEOUT is not available. TCP_USER_TIMEOUT "
|
631
|
+
"won't be used thereafter";
|
634
632
|
g_socket_supports_tcp_user_timeout.store(-1);
|
635
633
|
} else {
|
636
|
-
|
637
|
-
|
638
|
-
"used thereafter");
|
634
|
+
LOG(INFO) << "TCP_USER_TIMEOUT is available. TCP_USER_TIMEOUT will be "
|
635
|
+
"used thereafter";
|
639
636
|
g_socket_supports_tcp_user_timeout.store(1);
|
640
637
|
}
|
641
638
|
}
|
642
639
|
if (g_socket_supports_tcp_user_timeout.load() > 0) {
|
643
640
|
if (0 != setsockopt(fd_, IPPROTO_TCP, TCP_USER_TIMEOUT, &timeout,
|
644
641
|
sizeof(timeout))) {
|
645
|
-
|
646
|
-
|
642
|
+
LOG(ERROR) << "setsockopt(TCP_USER_TIMEOUT) "
|
643
|
+
<< grpc_core::StrError(errno);
|
647
644
|
return;
|
648
645
|
}
|
649
646
|
if (0 != getsockopt(fd_, IPPROTO_TCP, TCP_USER_TIMEOUT, &newval, &len)) {
|
650
|
-
|
651
|
-
|
647
|
+
LOG(ERROR) << "getsockopt(TCP_USER_TIMEOUT) "
|
648
|
+
<< grpc_core::StrError(errno);
|
652
649
|
return;
|
653
650
|
}
|
654
651
|
if (newval != timeout) {
|
655
652
|
// Do not fail on failing to set TCP_USER_TIMEOUT
|
656
|
-
|
653
|
+
LOG(ERROR) << "Failed to set TCP_USER_TIMEOUT";
|
657
654
|
return;
|
658
655
|
}
|
659
656
|
}
|
@@ -684,7 +681,7 @@ bool PosixSocketWrapper::IsIpv6LoopbackAvailable() {
|
|
684
681
|
int fd = socket(AF_INET6, SOCK_STREAM, 0);
|
685
682
|
bool loopback_available = false;
|
686
683
|
if (fd < 0) {
|
687
|
-
|
684
|
+
LOG(INFO) << "Disabling AF_INET6 sockets because socket() failed.";
|
688
685
|
} else {
|
689
686
|
sockaddr_in6 addr;
|
690
687
|
memset(&addr, 0, sizeof(addr));
|
@@ -693,8 +690,7 @@ bool PosixSocketWrapper::IsIpv6LoopbackAvailable() {
|
|
693
690
|
if (bind(fd, reinterpret_cast<sockaddr*>(&addr), sizeof(addr)) == 0) {
|
694
691
|
loopback_available = true;
|
695
692
|
} else {
|
696
|
-
|
697
|
-
"Disabling AF_INET6 sockets because ::1 is not available.");
|
693
|
+
LOG(INFO) << "Disabling AF_INET6 sockets because ::1 is not available.";
|
698
694
|
}
|
699
695
|
close(fd);
|
700
696
|
}
|
@@ -27,8 +27,8 @@
|
|
27
27
|
#include <grpc/support/port_platform.h>
|
28
28
|
|
29
29
|
#include "src/core/lib/event_engine/posix_engine/timer_heap.h"
|
30
|
-
#include "src/core/lib/gpr/useful.h"
|
31
30
|
#include "src/core/lib/gprpp/time.h"
|
31
|
+
#include "src/core/util/useful.h"
|
32
32
|
|
33
33
|
namespace grpc_event_engine {
|
34
34
|
namespace experimental {
|
@@ -36,8 +36,6 @@ static thread_local bool g_timer_thread;
|
|
36
36
|
namespace grpc_event_engine {
|
37
37
|
namespace experimental {
|
38
38
|
|
39
|
-
grpc_core::DebugOnlyTraceFlag grpc_event_engine_timer_trace(false, "timer");
|
40
|
-
|
41
39
|
void TimerManager::RunSomeTimers(
|
42
40
|
std::vector<experimental::EventEngine::Closure*> timers) {
|
43
41
|
for (auto* timer : timers) {
|
@@ -101,7 +99,7 @@ grpc_core::Timestamp TimerManager::Host::Now() {
|
|
101
99
|
|
102
100
|
void TimerManager::TimerInit(Timer* timer, grpc_core::Timestamp deadline,
|
103
101
|
experimental::EventEngine::Closure* closure) {
|
104
|
-
if (
|
102
|
+
if (GRPC_TRACE_FLAG_ENABLED(timer)) {
|
105
103
|
grpc_core::MutexLock lock(&mu_);
|
106
104
|
if (shutdown_) {
|
107
105
|
gpr_log(GPR_ERROR,
|
@@ -121,7 +119,7 @@ void TimerManager::Shutdown() {
|
|
121
119
|
{
|
122
120
|
grpc_core::MutexLock lock(&mu_);
|
123
121
|
if (shutdown_) return;
|
124
|
-
if (
|
122
|
+
if (GRPC_TRACE_FLAG_ENABLED(timer)) {
|
125
123
|
gpr_log(GPR_DEBUG, "TimerManager::%p shutting down", this);
|
126
124
|
}
|
127
125
|
shutdown_ = true;
|
@@ -129,7 +127,7 @@ void TimerManager::Shutdown() {
|
|
129
127
|
cv_wait_.Signal();
|
130
128
|
}
|
131
129
|
main_loop_exit_signal_->WaitForNotification();
|
132
|
-
if (
|
130
|
+
if (GRPC_TRACE_FLAG_ENABLED(timer)) {
|
133
131
|
gpr_log(GPR_DEBUG, "TimerManager::%p shutdown complete", this);
|
134
132
|
}
|
135
133
|
}
|
@@ -147,7 +145,7 @@ void TimerManager::Kick() {
|
|
147
145
|
void TimerManager::RestartPostFork() {
|
148
146
|
grpc_core::MutexLock lock(&mu_);
|
149
147
|
CHECK(GPR_LIKELY(shutdown_));
|
150
|
-
if (
|
148
|
+
if (GRPC_TRACE_FLAG_ENABLED(timer)) {
|
151
149
|
gpr_log(GPR_DEBUG, "TimerManager::%p restarting after shutdown", this);
|
152
150
|
}
|
153
151
|
shutdown_ = false;
|
@@ -22,6 +22,7 @@
|
|
22
22
|
#include <utility>
|
23
23
|
|
24
24
|
#include "absl/functional/any_invocable.h"
|
25
|
+
#include "absl/log/log.h"
|
25
26
|
|
26
27
|
#include <grpc/support/log.h>
|
27
28
|
#include <grpc/support/port_platform.h>
|
@@ -48,7 +49,7 @@ void FillGprFromTimestamp(gpr_timespec* gts, const struct timespec* ts) {
|
|
48
49
|
|
49
50
|
void DefaultTimestampsCallback(void* /*arg*/, Timestamps* /*ts*/,
|
50
51
|
absl::Status /*shudown_err*/) {
|
51
|
-
|
52
|
+
VLOG(2) << "Timestamps callback has not been registered";
|
52
53
|
}
|
53
54
|
|
54
55
|
// The saved callback function that will be invoked when we get all the
|
@@ -30,7 +30,7 @@ bool UseEventEngineClient() {
|
|
30
30
|
return grpc_core::IsEventEngineClientEnabled();
|
31
31
|
#elif defined(GPR_WINDOWS) && !defined(GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER)
|
32
32
|
return grpc_core::IsEventEngineClientEnabled();
|
33
|
-
#elif
|
33
|
+
#elif GRPC_IOS_EVENT_ENGINE_CLIENT
|
34
34
|
return true;
|
35
35
|
#else
|
36
36
|
return false;
|
@@ -54,12 +54,11 @@
|
|
54
54
|
#include <utility>
|
55
55
|
|
56
56
|
#include "absl/log/check.h"
|
57
|
+
#include "absl/log/log.h"
|
57
58
|
#include "absl/status/status.h"
|
58
59
|
#include "absl/strings/str_cat.h"
|
59
60
|
#include "absl/strings/str_format.h"
|
60
61
|
|
61
|
-
#include <grpc/support/log.h>
|
62
|
-
|
63
62
|
#include "src/core/lib/gprpp/host_port.h"
|
64
63
|
#include "src/core/lib/gprpp/status_helper.h"
|
65
64
|
#include "src/core/lib/iomgr/resolved_address.h"
|
@@ -286,8 +285,8 @@ int ResolvedAddressGetPort(const EventEngine::ResolvedAddress& resolved_addr) {
|
|
286
285
|
return 1;
|
287
286
|
#endif
|
288
287
|
default:
|
289
|
-
|
290
|
-
|
288
|
+
LOG(ERROR) << "Unknown socket family " << addr->sa_family
|
289
|
+
<< " in ResolvedAddressGetPort";
|
291
290
|
abort();
|
292
291
|
}
|
293
292
|
}
|
@@ -309,8 +308,8 @@ void ResolvedAddressSetPort(EventEngine::ResolvedAddress& resolved_addr,
|
|
309
308
|
htons(static_cast<uint16_t>(port));
|
310
309
|
return;
|
311
310
|
default:
|
312
|
-
|
313
|
-
|
311
|
+
LOG(ERROR) << "Unknown socket family " << addr->sa_family
|
312
|
+
<< " in grpc_sockaddr_set_port";
|
314
313
|
abort();
|
315
314
|
}
|
316
315
|
}
|
@@ -446,8 +445,7 @@ absl::StatusOr<EventEngine::ResolvedAddress> URIToResolvedAddress(
|
|
446
445
|
grpc_resolved_address addr;
|
447
446
|
absl::StatusOr<grpc_core::URI> uri = grpc_core::URI::Parse(address_str);
|
448
447
|
if (!uri.ok()) {
|
449
|
-
|
450
|
-
uri.status().ToString().c_str());
|
448
|
+
LOG(ERROR) << "Failed to parse URI. Error: " << uri.status();
|
451
449
|
}
|
452
450
|
GRPC_RETURN_IF_ERROR(uri.status());
|
453
451
|
CHECK(grpc_parse_uri(*uri, &addr));
|
@@ -26,9 +26,9 @@
|
|
26
26
|
#include <grpc/support/cpu.h>
|
27
27
|
#include <grpc/support/port_platform.h>
|
28
28
|
|
29
|
-
#include "src/core/lib/gpr/useful.h"
|
30
29
|
#include "src/core/lib/gprpp/sync.h"
|
31
30
|
#include "src/core/lib/gprpp/time.h"
|
31
|
+
#include "src/core/util/useful.h"
|
32
32
|
|
33
33
|
namespace grpc_event_engine {
|
34
34
|
namespace experimental {
|
@@ -27,11 +27,11 @@
|
|
27
27
|
|
28
28
|
#include "absl/functional/any_invocable.h"
|
29
29
|
#include "absl/log/check.h"
|
30
|
+
#include "absl/log/log.h"
|
30
31
|
#include "absl/time/clock.h"
|
31
32
|
#include "absl/time/time.h"
|
32
33
|
#include "absl/types/optional.h"
|
33
34
|
|
34
|
-
#include <grpc/support/log.h>
|
35
35
|
#include <grpc/support/port_platform.h>
|
36
36
|
#include <grpc/support/thd_id.h>
|
37
37
|
|
@@ -156,11 +156,10 @@ std::atomic<size_t> g_reported_dump_count{0};
|
|
156
156
|
void DumpSignalHandler(int /* sig */) {
|
157
157
|
const auto trace = grpc_core::GetCurrentStackTrace();
|
158
158
|
if (!trace.has_value()) {
|
159
|
-
|
160
|
-
|
159
|
+
LOG(ERROR) << "DumpStack::" << gpr_thd_currentid()
|
160
|
+
<< ": Stack trace not available";
|
161
161
|
} else {
|
162
|
-
|
163
|
-
trace->c_str());
|
162
|
+
LOG(ERROR) << "DumpStack::" << gpr_thd_currentid() << ": " << trace.value();
|
164
163
|
}
|
165
164
|
g_reported_dump_count.fetch_add(1);
|
166
165
|
grpc_core::Thread::Kill(gpr_thd_currentid());
|
@@ -227,18 +226,19 @@ void WorkStealingThreadPool::PostforkChild() { pool_->Postfork(); }
|
|
227
226
|
|
228
227
|
WorkStealingThreadPool::WorkStealingThreadPoolImpl::WorkStealingThreadPoolImpl(
|
229
228
|
size_t reserve_threads)
|
230
|
-
: reserve_threads_(reserve_threads), queue_(this)
|
229
|
+
: reserve_threads_(reserve_threads), queue_(this) {}
|
231
230
|
|
232
231
|
void WorkStealingThreadPool::WorkStealingThreadPoolImpl::Start() {
|
233
232
|
for (size_t i = 0; i < reserve_threads_; i++) {
|
234
233
|
StartThread();
|
235
234
|
}
|
236
|
-
|
235
|
+
grpc_core::MutexLock lock(&lifeguard_ptr_mu_);
|
236
|
+
lifeguard_ = std::make_unique<Lifeguard>(this);
|
237
237
|
}
|
238
238
|
|
239
239
|
void WorkStealingThreadPool::WorkStealingThreadPoolImpl::Run(
|
240
240
|
EventEngine::Closure* closure) {
|
241
|
-
|
241
|
+
CHECK(!IsQuiesced());
|
242
242
|
if (g_local_queue != nullptr && g_local_queue->owner() == this) {
|
243
243
|
g_local_queue->Add(closure);
|
244
244
|
} else {
|
@@ -266,7 +266,7 @@ void WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread() {
|
|
266
266
|
}
|
267
267
|
|
268
268
|
void WorkStealingThreadPool::WorkStealingThreadPoolImpl::Quiesce() {
|
269
|
-
|
269
|
+
LOG(INFO) << "WorkStealingThreadPoolImpl::Quiesce";
|
270
270
|
SetShutdown(true);
|
271
271
|
// Wait until all threads have exited.
|
272
272
|
// Note that if this is a threadpool thread then we won't exit this thread
|
@@ -283,7 +283,8 @@ void WorkStealingThreadPool::WorkStealingThreadPoolImpl::Quiesce() {
|
|
283
283
|
}
|
284
284
|
CHECK(queue_.Empty());
|
285
285
|
quiesced_.store(true, std::memory_order_relaxed);
|
286
|
-
|
286
|
+
grpc_core::MutexLock lock(&lifeguard_ptr_mu_);
|
287
|
+
lifeguard_.reset();
|
287
288
|
}
|
288
289
|
|
289
290
|
bool WorkStealingThreadPool::WorkStealingThreadPoolImpl::SetThrottled(
|
@@ -317,7 +318,7 @@ bool WorkStealingThreadPool::WorkStealingThreadPoolImpl::IsQuiesced() {
|
|
317
318
|
}
|
318
319
|
|
319
320
|
void WorkStealingThreadPool::WorkStealingThreadPoolImpl::PrepareFork() {
|
320
|
-
|
321
|
+
LOG(INFO) << "WorkStealingThreadPoolImpl::PrepareFork";
|
321
322
|
SetForking(true);
|
322
323
|
work_signal_.SignalAll();
|
323
324
|
auto threads_were_shut_down = living_thread_count_.BlockUntilThreadCount(
|
@@ -325,7 +326,8 @@ void WorkStealingThreadPool::WorkStealingThreadPoolImpl::PrepareFork() {
|
|
325
326
|
if (!threads_were_shut_down.ok() && g_log_verbose_failures) {
|
326
327
|
DumpStacksAndCrash();
|
327
328
|
}
|
328
|
-
|
329
|
+
grpc_core::MutexLock lock(&lifeguard_ptr_mu_);
|
330
|
+
lifeguard_.reset();
|
329
331
|
}
|
330
332
|
|
331
333
|
void WorkStealingThreadPool::WorkStealingThreadPoolImpl::Postfork() {
|
@@ -347,10 +349,9 @@ void WorkStealingThreadPool::WorkStealingThreadPoolImpl::UntrackThread(
|
|
347
349
|
|
348
350
|
void WorkStealingThreadPool::WorkStealingThreadPoolImpl::DumpStacksAndCrash() {
|
349
351
|
grpc_core::MutexLock lock(&thd_set_mu_);
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
thds_.size());
|
352
|
+
LOG(ERROR) << "Pool did not quiesce in time, gRPC will not shut down "
|
353
|
+
"cleanly. Dumping all "
|
354
|
+
<< thds_.size() << " thread stacks.";
|
354
355
|
for (const auto tid : thds_) {
|
355
356
|
grpc_core::Thread::Signal(tid, kDumpStackSignal);
|
356
357
|
}
|
@@ -374,9 +375,7 @@ WorkStealingThreadPool::WorkStealingThreadPoolImpl::Lifeguard::Lifeguard(
|
|
374
375
|
.set_max_backoff(kLifeguardMaxSleepBetweenChecks)
|
375
376
|
.set_multiplier(1.3)),
|
376
377
|
lifeguard_should_shut_down_(std::make_unique<grpc_core::Notification>()),
|
377
|
-
lifeguard_is_shut_down_(std::make_unique<grpc_core::Notification>()) {
|
378
|
-
|
379
|
-
void WorkStealingThreadPool::WorkStealingThreadPoolImpl::Lifeguard::Start() {
|
378
|
+
lifeguard_is_shut_down_(std::make_unique<grpc_core::Notification>()) {
|
380
379
|
// lifeguard_running_ is set early to avoid a quiesce race while the
|
381
380
|
// lifeguard is still starting up.
|
382
381
|
lifeguard_running_.store(true);
|
@@ -411,8 +410,7 @@ void WorkStealingThreadPool::WorkStealingThreadPoolImpl::Lifeguard::
|
|
411
410
|
lifeguard_is_shut_down_->Notify();
|
412
411
|
}
|
413
412
|
|
414
|
-
|
415
|
-
BlockUntilShutdownAndReset() {
|
413
|
+
WorkStealingThreadPool::WorkStealingThreadPoolImpl::Lifeguard::~Lifeguard() {
|
416
414
|
lifeguard_should_shut_down_->Notify();
|
417
415
|
while (lifeguard_running_.load(std::memory_order_relaxed)) {
|
418
416
|
GRPC_LOG_EVERY_N_SEC_DELAYED(kBlockingQuiesceLogRateSeconds, GPR_DEBUG,
|
@@ -155,11 +155,7 @@ class WorkStealingThreadPool final : public ThreadPool {
|
|
155
155
|
class Lifeguard {
|
156
156
|
public:
|
157
157
|
explicit Lifeguard(WorkStealingThreadPoolImpl* pool);
|
158
|
-
|
159
|
-
void Start();
|
160
|
-
// Block until the lifeguard thread is shut down.
|
161
|
-
// Afterwards, reset the lifeguard state so it can start again cleanly.
|
162
|
-
void BlockUntilShutdownAndReset();
|
158
|
+
~Lifeguard();
|
163
159
|
|
164
160
|
private:
|
165
161
|
// The main body of the lifeguard thread.
|
@@ -194,7 +190,8 @@ class WorkStealingThreadPool final : public ThreadPool {
|
|
194
190
|
// at a time.
|
195
191
|
std::atomic<bool> throttled_{false};
|
196
192
|
WorkSignal work_signal_;
|
197
|
-
|
193
|
+
grpc_core::Mutex lifeguard_ptr_mu_;
|
194
|
+
std::unique_ptr<Lifeguard> lifeguard_ ABSL_GUARDED_BY(lifeguard_ptr_mu_);
|
198
195
|
// Set of threads for verbose failure debugging
|
199
196
|
grpc_core::Mutex thd_set_mu_;
|
200
197
|
absl::flat_hash_set<gpr_thd_id> thds_ ABSL_GUARDED_BY(thd_set_mu_);
|
@@ -85,7 +85,9 @@ bool ThreadyEventEngine::IsWorkerThread() {
|
|
85
85
|
absl::StatusOr<std::unique_ptr<EventEngine::DNSResolver>>
|
86
86
|
ThreadyEventEngine::GetDNSResolver(
|
87
87
|
const DNSResolver::ResolverOptions& options) {
|
88
|
-
return std::make_unique<ThreadyDNSResolver>(
|
88
|
+
return std::make_unique<ThreadyDNSResolver>(
|
89
|
+
*impl_->GetDNSResolver(options),
|
90
|
+
std::static_pointer_cast<ThreadyEventEngine>(shared_from_this()));
|
89
91
|
}
|
90
92
|
|
91
93
|
void ThreadyEventEngine::Run(Closure* closure) {
|
@@ -116,10 +118,10 @@ void ThreadyEventEngine::ThreadyDNSResolver::LookupHostname(
|
|
116
118
|
LookupHostnameCallback on_resolve, absl::string_view name,
|
117
119
|
absl::string_view default_port) {
|
118
120
|
return impl_->LookupHostname(
|
119
|
-
[
|
121
|
+
[engine = engine_, on_resolve = std::move(on_resolve)](
|
120
122
|
absl::StatusOr<std::vector<ResolvedAddress>> addresses) mutable {
|
121
|
-
|
122
|
-
|
123
|
+
engine->Asynchronously([on_resolve = std::move(on_resolve),
|
124
|
+
addresses = std::move(addresses)]() mutable {
|
123
125
|
on_resolve(std::move(addresses));
|
124
126
|
});
|
125
127
|
},
|
@@ -129,13 +131,12 @@ void ThreadyEventEngine::ThreadyDNSResolver::LookupHostname(
|
|
129
131
|
void ThreadyEventEngine::ThreadyDNSResolver::LookupSRV(
|
130
132
|
LookupSRVCallback on_resolve, absl::string_view name) {
|
131
133
|
return impl_->LookupSRV(
|
132
|
-
[
|
134
|
+
[engine = engine_, on_resolve = std::move(on_resolve)](
|
133
135
|
absl::StatusOr<std::vector<SRVRecord>> records) mutable {
|
134
|
-
return
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
});
|
136
|
+
return engine->Asynchronously([on_resolve = std::move(on_resolve),
|
137
|
+
records = std::move(records)]() mutable {
|
138
|
+
on_resolve(std::move(records));
|
139
|
+
});
|
139
140
|
},
|
140
141
|
name);
|
141
142
|
}
|
@@ -143,10 +144,10 @@ void ThreadyEventEngine::ThreadyDNSResolver::LookupSRV(
|
|
143
144
|
void ThreadyEventEngine::ThreadyDNSResolver::LookupTXT(
|
144
145
|
LookupTXTCallback on_resolve, absl::string_view name) {
|
145
146
|
return impl_->LookupTXT(
|
146
|
-
[
|
147
|
+
[engine = engine_, on_resolve = std::move(on_resolve)](
|
147
148
|
absl::StatusOr<std::vector<std::string>> record) mutable {
|
148
|
-
return
|
149
|
-
|
149
|
+
return engine->Asynchronously([on_resolve = std::move(on_resolve),
|
150
|
+
record = std::move(record)]() mutable {
|
150
151
|
on_resolve(std::move(record));
|
151
152
|
});
|
152
153
|
},
|
@@ -77,8 +77,9 @@ class ThreadyEventEngine final : public EventEngine {
|
|
77
77
|
private:
|
78
78
|
class ThreadyDNSResolver final : public DNSResolver {
|
79
79
|
public:
|
80
|
-
|
81
|
-
|
80
|
+
ThreadyDNSResolver(std::unique_ptr<DNSResolver> impl,
|
81
|
+
std::shared_ptr<ThreadyEventEngine> engine)
|
82
|
+
: impl_(std::move(impl)), engine_(std::move(engine)) {}
|
82
83
|
void LookupHostname(LookupHostnameCallback on_resolve,
|
83
84
|
absl::string_view name,
|
84
85
|
absl::string_view default_port) override;
|
@@ -89,7 +90,7 @@ class ThreadyEventEngine final : public EventEngine {
|
|
89
90
|
|
90
91
|
private:
|
91
92
|
std::unique_ptr<DNSResolver> impl_;
|
92
|
-
ThreadyEventEngine
|
93
|
+
std::shared_ptr<ThreadyEventEngine> engine_;
|
93
94
|
};
|
94
95
|
|
95
96
|
void Asynchronously(absl::AnyInvocable<void()> fn);
|
@@ -19,30 +19,19 @@
|
|
19
19
|
|
20
20
|
#include "src/core/lib/debug/trace.h"
|
21
21
|
|
22
|
-
extern grpc_core::TraceFlag grpc_event_engine_trace;
|
23
|
-
extern grpc_core::TraceFlag grpc_event_engine_dns_trace;
|
24
|
-
extern grpc_core::TraceFlag grpc_event_engine_endpoint_data_trace;
|
25
|
-
extern grpc_core::TraceFlag grpc_event_engine_poller_trace;
|
26
|
-
extern grpc_core::TraceFlag grpc_event_engine_endpoint_trace;
|
27
|
-
|
28
22
|
#define GRPC_EVENT_ENGINE_TRACE(format, ...) \
|
29
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
30
|
-
gpr_log(
|
23
|
+
if (GRPC_TRACE_FLAG_ENABLED(event_engine)) { \
|
24
|
+
gpr_log(GPR_ERROR, "(event_engine) " format, __VA_ARGS__); \
|
31
25
|
}
|
32
26
|
|
33
27
|
#define GRPC_EVENT_ENGINE_ENDPOINT_TRACE(format, ...) \
|
34
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
35
|
-
gpr_log(
|
28
|
+
if (GRPC_TRACE_FLAG_ENABLED(event_engine_endpoint)) { \
|
29
|
+
gpr_log(GPR_ERROR, "(event_engine endpoint) " format, __VA_ARGS__); \
|
36
30
|
}
|
37
31
|
|
38
32
|
#define GRPC_EVENT_ENGINE_POLLER_TRACE(format, ...) \
|
39
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
40
|
-
gpr_log(
|
41
|
-
}
|
42
|
-
|
43
|
-
#define GRPC_EVENT_ENGINE_DNS_TRACE(format, ...) \
|
44
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_event_engine_dns_trace)) { \
|
45
|
-
gpr_log(GPR_DEBUG, "(event_engine dns) " format, __VA_ARGS__); \
|
33
|
+
if (GRPC_TRACE_FLAG_ENABLED(event_engine_poller)) { \
|
34
|
+
gpr_log(GPR_ERROR, "(event_engine poller) " format, __VA_ARGS__); \
|
46
35
|
}
|
47
36
|
|
48
37
|
#endif // GRPC_SRC_CORE_LIB_EVENT_ENGINE_TRACE_H
|