grpc 1.55.0 → 1.56.0.pre3
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +100 -68
- data/include/grpc/event_engine/event_engine.h +4 -3
- data/include/grpc/grpc_audit_logging.h +96 -0
- data/include/grpc/module.modulemap +2 -0
- data/include/grpc/support/json.h +218 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +5 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +2 -0
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +4 -4
- data/src/core/ext/filters/client_channel/client_channel.cc +86 -104
- data/src/core/ext/filters/client_channel/client_channel.h +6 -0
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +19 -18
- data/src/core/ext/filters/client_channel/client_channel_internal.h +16 -21
- data/src/core/ext/filters/client_channel/config_selector.h +9 -24
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +3 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +5 -4
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +455 -0
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.h +54 -0
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client_internal.h +186 -0
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +2 -7
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +52 -20
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +23 -2
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +19 -6
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +1 -9
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +16 -7
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +18 -1
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +12 -9
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +6 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +36 -13
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc +76 -6
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +32 -39
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +4 -10
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +52 -47
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +1 -9
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +14 -16
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +40 -43
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +7 -12
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +12 -19
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +35 -33
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +29 -4
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +28 -27
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +163 -46
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +16 -1
- data/src/core/ext/filters/client_channel/retry_service_config.cc +1 -0
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +10 -40
- data/src/core/ext/filters/client_channel/subchannel.cc +10 -196
- data/src/core/ext/filters/client_channel/subchannel.h +3 -43
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +5 -5
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +100 -6
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +6 -8
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +3 -3
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +16 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +46 -95
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -15
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +11 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +15 -0
- data/src/core/ext/xds/certificate_provider_store.cc +4 -9
- data/src/core/ext/xds/certificate_provider_store.h +1 -1
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +30 -42
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +14 -9
- data/src/core/ext/xds/xds_api.cc +9 -6
- data/src/core/ext/xds/xds_api.h +3 -2
- data/src/core/ext/xds/xds_audit_logger_registry.cc +122 -0
- data/src/core/ext/xds/xds_audit_logger_registry.h +68 -0
- data/src/core/ext/xds/xds_bootstrap_grpc.cc +21 -9
- data/src/core/ext/xds/xds_bootstrap_grpc.h +5 -0
- data/src/core/ext/xds/xds_client.cc +5 -4
- data/src/core/ext/xds/xds_client_stats.h +1 -1
- data/src/core/ext/xds/xds_cluster.cc +20 -19
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +11 -8
- data/src/core/ext/xds/xds_common_types.cc +3 -1
- data/src/core/ext/xds/xds_http_fault_filter.cc +16 -13
- data/src/core/ext/xds/xds_http_fault_filter.h +2 -1
- data/src/core/ext/xds/xds_http_filters.h +4 -2
- data/src/core/ext/xds/xds_http_rbac_filter.cc +154 -67
- data/src/core/ext/xds/xds_http_rbac_filter.h +2 -1
- data/src/core/ext/xds/xds_http_stateful_session_filter.cc +15 -11
- data/src/core/ext/xds/xds_http_stateful_session_filter.h +2 -1
- data/src/core/ext/xds/xds_lb_policy_registry.cc +22 -16
- data/src/core/ext/xds/xds_listener.cc +1 -0
- data/src/core/ext/xds/xds_route_config.cc +40 -3
- data/src/core/ext/xds/xds_routing.cc +2 -2
- data/src/core/ext/xds/xds_transport_grpc.cc +3 -1
- data/src/core/lib/avl/avl.h +5 -0
- data/src/core/lib/channel/channel_args.cc +80 -22
- data/src/core/lib/channel/channel_args.h +34 -1
- data/src/core/lib/channel/channel_trace.cc +16 -12
- data/src/core/lib/channel/channelz.cc +159 -132
- data/src/core/lib/channel/channelz.h +42 -35
- data/src/core/lib/channel/channelz_registry.cc +23 -20
- data/src/core/lib/channel/connected_channel.cc +17 -6
- data/src/core/lib/channel/promise_based_filter.cc +0 -4
- data/src/core/lib/channel/promise_based_filter.h +2 -0
- data/src/core/lib/compression/compression_internal.cc +2 -5
- data/src/core/lib/config/config_vars.cc +20 -18
- data/src/core/lib/config/config_vars.h +4 -4
- data/src/core/lib/config/load_config.cc +13 -0
- data/src/core/lib/config/load_config.h +6 -0
- data/src/core/lib/debug/event_log.h +1 -1
- data/src/core/lib/debug/stats_data.h +1 -1
- data/src/core/lib/debug/trace.cc +24 -55
- data/src/core/lib/debug/trace.h +3 -1
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +211 -0
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +86 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +354 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +146 -0
- data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +79 -0
- data/src/core/lib/event_engine/default_event_engine.cc +13 -1
- data/src/core/lib/event_engine/default_event_engine_factory.cc +14 -2
- data/src/core/lib/event_engine/poller.h +2 -2
- data/src/core/lib/event_engine/posix.h +4 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +7 -18
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +9 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +33 -19
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +4 -4
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +7 -8
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +1 -1
- data/src/core/lib/event_engine/shim.cc +7 -1
- data/src/core/lib/event_engine/{thread_pool.cc → thread_pool/original_thread_pool.cc} +28 -25
- data/src/core/lib/event_engine/{thread_pool.h → thread_pool/original_thread_pool.h} +11 -15
- data/src/core/lib/event_engine/thread_pool/thread_pool.h +50 -0
- data/src/core/lib/event_engine/{executor/executor.h → thread_pool/thread_pool_factory.cc} +17 -15
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +489 -0
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +249 -0
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +166 -0
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +108 -0
- data/src/core/lib/event_engine/windows/iocp.cc +4 -3
- data/src/core/lib/event_engine/windows/iocp.h +3 -3
- data/src/core/lib/event_engine/windows/win_socket.cc +6 -6
- data/src/core/lib/event_engine/windows/win_socket.h +4 -4
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +11 -10
- data/src/core/lib/event_engine/windows/windows_endpoint.h +3 -2
- data/src/core/lib/event_engine/windows/windows_engine.cc +19 -17
- data/src/core/lib/event_engine/windows/windows_engine.h +6 -6
- data/src/core/lib/event_engine/windows/windows_listener.cc +3 -3
- data/src/core/lib/event_engine/windows/windows_listener.h +3 -2
- data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +63 -0
- data/src/core/lib/event_engine/work_queue/basic_work_queue.h +71 -0
- data/src/core/lib/event_engine/work_queue/work_queue.h +62 -0
- data/src/core/lib/experiments/config.cc +38 -7
- data/src/core/lib/experiments/config.h +16 -0
- data/src/core/lib/experiments/experiments.cc +67 -20
- data/src/core/lib/experiments/experiments.h +27 -21
- data/src/core/lib/gpr/log_internal.h +55 -0
- data/src/core/lib/gprpp/crash.cc +10 -0
- data/src/core/lib/gprpp/crash.h +3 -0
- data/src/core/lib/gprpp/per_cpu.cc +33 -0
- data/src/core/lib/gprpp/per_cpu.h +29 -6
- data/src/core/lib/gprpp/time.cc +1 -0
- data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
- data/src/core/lib/iomgr/endpoint_cfstream.cc +10 -8
- data/src/core/lib/iomgr/ev_apple.cc +12 -12
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +10 -3
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +15 -1
- data/src/core/lib/iomgr/iocp_windows.cc +24 -3
- data/src/core/lib/iomgr/iocp_windows.h +11 -0
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +4 -2
- data/src/core/lib/iomgr/socket_windows.cc +61 -7
- data/src/core/lib/iomgr/socket_windows.h +9 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +14 -3
- data/src/core/lib/iomgr/tcp_server_posix.cc +148 -107
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_server_windows.cc +1 -1
- data/src/core/lib/json/json.h +2 -166
- data/src/core/lib/json/json_object_loader.cc +8 -9
- data/src/core/lib/json/json_object_loader.h +25 -18
- data/src/core/lib/json/json_reader.cc +13 -6
- data/src/core/lib/json/json_util.cc +6 -11
- data/src/core/lib/json/json_writer.cc +7 -8
- data/src/core/lib/load_balancing/lb_policy.h +13 -0
- data/src/core/lib/load_balancing/lb_policy_registry.cc +2 -1
- data/src/core/lib/matchers/matchers.cc +3 -4
- data/src/core/lib/matchers/matchers.h +2 -1
- data/src/core/lib/promise/activity.cc +5 -0
- data/src/core/lib/promise/activity.h +10 -0
- data/src/core/lib/promise/detail/promise_factory.h +1 -1
- data/src/core/lib/promise/party.cc +31 -13
- data/src/core/lib/promise/party.h +11 -2
- data/src/core/lib/promise/pipe.h +9 -2
- data/src/core/lib/promise/prioritized_race.h +95 -0
- data/src/core/lib/promise/sleep.cc +2 -1
- data/src/core/lib/resolver/server_address.cc +0 -8
- data/src/core/lib/resolver/server_address.h +0 -6
- data/src/core/lib/resource_quota/memory_quota.cc +7 -7
- data/src/core/lib/resource_quota/memory_quota.h +1 -2
- data/src/core/lib/security/authorization/audit_logging.cc +98 -0
- data/src/core/lib/security/authorization/audit_logging.h +73 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +47 -2
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +18 -1
- data/src/core/lib/security/authorization/rbac_policy.cc +36 -4
- data/src/core/lib/security/authorization/rbac_policy.h +19 -2
- data/src/core/lib/security/authorization/stdout_logger.cc +75 -0
- data/src/core/lib/security/authorization/stdout_logger.h +61 -0
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +8 -4
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +8 -18
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +14 -8
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +19 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +4 -2
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +1 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +1 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +1 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +15 -14
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +4 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +1 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +1 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -5
- data/src/core/lib/security/util/json_util.cc +1 -0
- data/src/core/lib/service_config/service_config_call_data.h +49 -20
- data/src/core/lib/service_config/service_config_impl.cc +2 -1
- data/src/core/lib/surface/call.cc +38 -23
- data/src/core/lib/surface/completion_queue.cc +6 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/batch_builder.cc +15 -12
- data/src/core/lib/transport/batch_builder.h +39 -35
- data/src/core/plugin_registry/grpc_plugin_registry.cc +0 -2
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
- data/src/ruby/ext/grpc/extconf.rb +8 -9
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +10 -6
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +7 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +5 -9
- data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +31 -22
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +29 -26
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +189 -13
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.c +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_openbsd.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +795 -795
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -5
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +18 -6
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +15 -7
- data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +24 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +74 -74
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +11 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +12 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +10 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +23 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +13 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/{hkdf → fipsmodule/hkdf}/hkdf.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +2 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +115 -133
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +12 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +57 -47
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +1 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c +27 -28
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +11 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +21 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +5 -288
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +143 -83
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +95 -183
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +71 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +33 -0
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +162 -6
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +18 -0
- data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +18 -11
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +6 -13
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +18 -14
- data/third_party/boringssl-with-bazel/src/crypto/{refcount_lock.c → refcount_no_threads.c} +3 -13
- data/third_party/boringssl-with-bazel/src/crypto/refcount_win.c +89 -0
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h +77 -0
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.c +568 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +218 -44
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +35 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +588 -39
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +27 -18
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +17 -39
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +39 -48
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +0 -140
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +72 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +11 -14
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +33 -46
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +3 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +14 -46
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -26
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +17 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +5 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +6 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +32 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +0 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +3 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +28 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +2 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +91 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +5 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +149 -20
- data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +774 -615
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +42 -10
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +11 -6
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +2 -4
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +24 -16
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +65 -18
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +37 -18
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +187 -193
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +13 -129
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +85 -10
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +17 -4
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +27 -19
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +5 -21
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +5 -2
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_msvc.h +1281 -0
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64_msvc.h +2002 -0
- data/third_party/cares/cares/include/ares.h +23 -1
- data/third_party/cares/cares/{src/lib → include}/ares_nameser.h +9 -7
- data/third_party/cares/cares/include/ares_rules.h +2 -2
- data/third_party/cares/cares/include/ares_version.h +3 -3
- data/third_party/cares/cares/src/lib/ares__addrinfo2hostent.c +266 -0
- data/third_party/cares/cares/src/lib/ares__addrinfo_localhost.c +240 -0
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +49 -80
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +37 -43
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +12 -4
- data/third_party/cares/cares/src/lib/ares_data.c +16 -0
- data/third_party/cares/cares/src/lib/ares_data.h +7 -0
- data/third_party/cares/cares/src/lib/ares_destroy.c +8 -0
- data/third_party/cares/cares/src/lib/ares_expand_name.c +17 -6
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +1 -0
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +156 -78
- data/third_party/cares/cares/src/lib/ares_gethostbyname.c +130 -326
- data/third_party/cares/cares/src/lib/ares_init.c +97 -485
- data/third_party/cares/cares/src/lib/ares_library_init.c +2 -89
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +23 -142
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +22 -142
- data/third_party/cares/cares/src/lib/ares_parse_uri_reply.c +184 -0
- data/third_party/cares/cares/src/lib/ares_private.h +30 -16
- data/third_party/cares/cares/src/lib/ares_process.c +55 -16
- data/third_party/cares/cares/src/lib/ares_query.c +1 -35
- data/third_party/cares/cares/src/lib/ares_rand.c +279 -0
- data/third_party/cares/cares/src/lib/ares_send.c +5 -7
- data/third_party/cares/cares/src/lib/ares_strdup.c +12 -19
- data/third_party/cares/cares/src/lib/ares_strsplit.c +44 -128
- data/third_party/cares/cares/src/lib/ares_strsplit.h +9 -10
- data/third_party/cares/cares/src/lib/inet_net_pton.c +78 -116
- data/third_party/cares/cares/src/tools/ares_getopt.h +53 -0
- metadata +50 -14
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +0 -175
- data/src/core/ext/filters/client_channel/health/health_check_client.h +0 -43
- data/third_party/cares/cares/src/lib/ares_library_init.h +0 -43
@@ -27,6 +27,7 @@
|
|
27
27
|
#include <vector>
|
28
28
|
|
29
29
|
#include <grpc/grpc.h>
|
30
|
+
#include <grpc/support/json.h>
|
30
31
|
#include <grpc/support/log.h>
|
31
32
|
#include <grpc/support/string_util.h>
|
32
33
|
|
@@ -108,11 +109,12 @@ std::string ChannelzRegistry::InternalGetTopChannels(
|
|
108
109
|
for (size_t i = 0; i < top_level_channels.size(); ++i) {
|
109
110
|
array.emplace_back(top_level_channels[i]->RenderJson());
|
110
111
|
}
|
111
|
-
object["channel"] = std::move(array);
|
112
|
+
object["channel"] = Json::FromArray(std::move(array));
|
112
113
|
}
|
113
|
-
if (node_after_pagination_limit == nullptr)
|
114
|
-
|
115
|
-
|
114
|
+
if (node_after_pagination_limit == nullptr) {
|
115
|
+
object["end"] = Json::FromBool(true);
|
116
|
+
}
|
117
|
+
return JsonDump(Json::FromObject(std::move(object)));
|
116
118
|
}
|
117
119
|
|
118
120
|
std::string ChannelzRegistry::InternalGetServers(intptr_t start_server_id) {
|
@@ -147,11 +149,12 @@ std::string ChannelzRegistry::InternalGetServers(intptr_t start_server_id) {
|
|
147
149
|
for (size_t i = 0; i < servers.size(); ++i) {
|
148
150
|
array.emplace_back(servers[i]->RenderJson());
|
149
151
|
}
|
150
|
-
object["server"] = std::move(array);
|
152
|
+
object["server"] = Json::FromArray(std::move(array));
|
153
|
+
}
|
154
|
+
if (node_after_pagination_limit == nullptr) {
|
155
|
+
object["end"] = Json::FromBool(true);
|
151
156
|
}
|
152
|
-
|
153
|
-
Json json(std::move(object));
|
154
|
-
return JsonDump(json);
|
157
|
+
return JsonDump(Json::FromObject(std::move(object)));
|
155
158
|
}
|
156
159
|
|
157
160
|
void ChannelzRegistry::InternalLogAllEntities() {
|
@@ -200,10 +203,10 @@ char* grpc_channelz_get_server(intptr_t server_id) {
|
|
200
203
|
grpc_core::channelz::BaseNode::EntityType::kServer) {
|
201
204
|
return nullptr;
|
202
205
|
}
|
203
|
-
grpc_core::Json json = grpc_core::Json::
|
206
|
+
grpc_core::Json json = grpc_core::Json::FromObject({
|
204
207
|
{"server", server_node->RenderJson()},
|
205
|
-
};
|
206
|
-
return gpr_strdup(JsonDump(json).c_str());
|
208
|
+
});
|
209
|
+
return gpr_strdup(grpc_core::JsonDump(json).c_str());
|
207
210
|
}
|
208
211
|
|
209
212
|
char* grpc_channelz_get_server_sockets(intptr_t server_id,
|
@@ -239,10 +242,10 @@ char* grpc_channelz_get_channel(intptr_t channel_id) {
|
|
239
242
|
grpc_core::channelz::BaseNode::EntityType::kInternalChannel)) {
|
240
243
|
return nullptr;
|
241
244
|
}
|
242
|
-
grpc_core::Json json = grpc_core::Json::
|
245
|
+
grpc_core::Json json = grpc_core::Json::FromObject({
|
243
246
|
{"channel", channel_node->RenderJson()},
|
244
|
-
};
|
245
|
-
return gpr_strdup(JsonDump(json).c_str());
|
247
|
+
});
|
248
|
+
return gpr_strdup(grpc_core::JsonDump(json).c_str());
|
246
249
|
}
|
247
250
|
|
248
251
|
char* grpc_channelz_get_subchannel(intptr_t subchannel_id) {
|
@@ -255,10 +258,10 @@ char* grpc_channelz_get_subchannel(intptr_t subchannel_id) {
|
|
255
258
|
grpc_core::channelz::BaseNode::EntityType::kSubchannel) {
|
256
259
|
return nullptr;
|
257
260
|
}
|
258
|
-
grpc_core::Json json = grpc_core::Json::
|
261
|
+
grpc_core::Json json = grpc_core::Json::FromObject({
|
259
262
|
{"subchannel", subchannel_node->RenderJson()},
|
260
|
-
};
|
261
|
-
return gpr_strdup(JsonDump(json).c_str());
|
263
|
+
});
|
264
|
+
return gpr_strdup(grpc_core::JsonDump(json).c_str());
|
262
265
|
}
|
263
266
|
|
264
267
|
char* grpc_channelz_get_socket(intptr_t socket_id) {
|
@@ -271,8 +274,8 @@ char* grpc_channelz_get_socket(intptr_t socket_id) {
|
|
271
274
|
grpc_core::channelz::BaseNode::EntityType::kSocket) {
|
272
275
|
return nullptr;
|
273
276
|
}
|
274
|
-
grpc_core::Json json = grpc_core::Json::
|
277
|
+
grpc_core::Json json = grpc_core::Json::FromObject({
|
275
278
|
{"socket", socket_node->RenderJson()},
|
276
|
-
};
|
277
|
-
return gpr_strdup(JsonDump(json).c_str());
|
279
|
+
});
|
280
|
+
return gpr_strdup(grpc_core::JsonDump(json).c_str());
|
278
281
|
}
|
@@ -710,13 +710,16 @@ ArenaPromise<ServerMetadataHandle> MakeServerCallPromise(
|
|
710
710
|
|
711
711
|
// Promise factory that accepts a ServerMetadataHandle, and sends it as the
|
712
712
|
// trailing metadata for this call.
|
713
|
-
auto send_trailing_metadata =
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
713
|
+
auto send_trailing_metadata = [call_data, stream = stream->InternalRef()](
|
714
|
+
ServerMetadataHandle
|
715
|
+
server_trailing_metadata) {
|
716
|
+
bool is_cancellation =
|
717
|
+
server_trailing_metadata->get(GrpcCallWasCancelled()).value_or(false);
|
718
|
+
return GetContext<BatchBuilder>()->SendServerTrailingMetadata(
|
719
|
+
stream->batch_target(), std::move(server_trailing_metadata),
|
720
|
+
is_cancellation ||
|
718
721
|
!std::exchange(call_data->sent_initial_metadata, true));
|
719
|
-
|
722
|
+
};
|
720
723
|
|
721
724
|
// Runs the receive message loop, either until all the messages
|
722
725
|
// are received or the server call is complete.
|
@@ -821,11 +824,19 @@ ArenaPromise<ServerMetadataHandle> MakeServerCallPromise(
|
|
821
824
|
auto cleanup_polling_entity_latch =
|
822
825
|
std::unique_ptr<Latch<grpc_polling_entity>, CleanupPollingEntityLatch>(
|
823
826
|
&call_data->polling_entity_latch);
|
827
|
+
struct CleanupSendInitialMetadata {
|
828
|
+
void operator()(CallData* call_data) {
|
829
|
+
call_data->server_initial_metadata.receiver.CloseWithError();
|
830
|
+
}
|
831
|
+
};
|
832
|
+
auto cleanup_send_initial_metadata =
|
833
|
+
std::unique_ptr<CallData, CleanupSendInitialMetadata>(call_data);
|
824
834
|
|
825
835
|
return Map(
|
826
836
|
Seq(std::move(recv_initial_metadata_then_run_promise),
|
827
837
|
std::move(send_trailing_metadata)),
|
828
838
|
[cleanup_polling_entity_latch = std::move(cleanup_polling_entity_latch),
|
839
|
+
cleanup_send_initial_metadata = std::move(cleanup_send_initial_metadata),
|
829
840
|
stream = std::move(stream)](ServerMetadataHandle md) {
|
830
841
|
stream->set_finished();
|
831
842
|
return md;
|
@@ -245,10 +245,6 @@ void BaseCallData::CapturedBatch::CancelWith(grpc_error_handle error,
|
|
245
245
|
uintptr_t& refcnt = *RefCountField(batch);
|
246
246
|
if (refcnt == 0) {
|
247
247
|
// refcnt==0 ==> cancelled
|
248
|
-
if (grpc_trace_channel.enabled()) {
|
249
|
-
gpr_log(GPR_INFO, "%sCANCEL BATCH REQUEST ALREADY CANCELLED",
|
250
|
-
Activity::current()->DebugTag().c_str());
|
251
|
-
}
|
252
248
|
return;
|
253
249
|
}
|
254
250
|
refcnt = 0;
|
@@ -48,6 +48,7 @@
|
|
48
48
|
#include "src/core/lib/channel/channel_stack.h"
|
49
49
|
#include "src/core/lib/channel/context.h"
|
50
50
|
#include "src/core/lib/event_engine/default_event_engine.h" // IWYU pragma: keep
|
51
|
+
#include "src/core/lib/gprpp/crash.h"
|
51
52
|
#include "src/core/lib/gprpp/debug_location.h"
|
52
53
|
#include "src/core/lib/gprpp/time.h"
|
53
54
|
#include "src/core/lib/iomgr/call_combiner.h"
|
@@ -546,6 +547,7 @@ class BaseCallData : public Activity, private Wakeable {
|
|
546
547
|
private:
|
547
548
|
// Wakeable implementation.
|
548
549
|
void Wakeup(WakeupMask) final;
|
550
|
+
void WakeupAsync(WakeupMask) final { Crash("not implemented"); }
|
549
551
|
void Drop(WakeupMask) final;
|
550
552
|
|
551
553
|
virtual void OnWakeup() = 0;
|
@@ -22,13 +22,10 @@
|
|
22
22
|
|
23
23
|
#include <stdlib.h>
|
24
24
|
|
25
|
-
#include <string>
|
26
|
-
|
27
25
|
#include "absl/container/inlined_vector.h"
|
28
26
|
#include "absl/strings/ascii.h"
|
29
27
|
#include "absl/strings/str_format.h"
|
30
28
|
#include "absl/strings/str_split.h"
|
31
|
-
#include "absl/types/variant.h"
|
32
29
|
|
33
30
|
#include <grpc/support/log.h>
|
34
31
|
|
@@ -230,10 +227,10 @@ absl::optional<grpc_compression_algorithm>
|
|
230
227
|
DefaultCompressionAlgorithmFromChannelArgs(const ChannelArgs& args) {
|
231
228
|
auto* value = args.Get(GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM);
|
232
229
|
if (value == nullptr) return absl::nullopt;
|
233
|
-
if (auto* p =
|
230
|
+
if (auto* p = value->GetIfInt()) {
|
234
231
|
return static_cast<grpc_compression_algorithm>(*p);
|
235
232
|
}
|
236
|
-
if (auto* p =
|
233
|
+
if (auto* p = value->GetIfString()) {
|
237
234
|
return ParseCompressionAlgorithm(*p);
|
238
235
|
}
|
239
236
|
return absl::nullopt;
|
@@ -20,6 +20,9 @@
|
|
20
20
|
|
21
21
|
#include "src/core/lib/config/config_vars.h"
|
22
22
|
|
23
|
+
#include <algorithm>
|
24
|
+
#include <vector>
|
25
|
+
|
23
26
|
#include "absl/flags/flag.h"
|
24
27
|
#include "absl/strings/escaping.h"
|
25
28
|
#include "absl/strings/str_cat.h"
|
@@ -36,46 +39,45 @@
|
|
36
39
|
#define GRPC_ENABLE_FORK_SUPPORT_DEFAULT false
|
37
40
|
#endif // GRPC_ENABLE_FORK_SUPPORT
|
38
41
|
|
39
|
-
ABSL_FLAG(
|
42
|
+
ABSL_FLAG(std::vector<std::string>, grpc_experiments, {},
|
40
43
|
"A comma separated list of currently active experiments. Experiments "
|
41
44
|
"may be prefixed with a '-' to disable them.");
|
42
45
|
ABSL_FLAG(absl::optional<int32_t>, grpc_client_channel_backup_poll_interval_ms,
|
43
|
-
|
46
|
+
{},
|
44
47
|
"Declares the interval in ms between two backup polls on client "
|
45
48
|
"channels. These polls are run in the timer thread so that gRPC can "
|
46
49
|
"process connection failures while there is no active polling "
|
47
50
|
"thread. They help reconnect disconnected client channels (mostly "
|
48
51
|
"due to idleness), so that the next RPC on this channel won't fail. "
|
49
52
|
"Set to 0 to turn off the backup polls.");
|
50
|
-
ABSL_FLAG(absl::optional<std::string>, grpc_dns_resolver,
|
53
|
+
ABSL_FLAG(absl::optional<std::string>, grpc_dns_resolver, {},
|
51
54
|
"Declares which DNS resolver to use. The default is ares if gRPC is "
|
52
55
|
"built with c-ares support. Otherwise, the value of this environment "
|
53
56
|
"variable is ignored.");
|
54
|
-
ABSL_FLAG(
|
57
|
+
ABSL_FLAG(std::vector<std::string>, grpc_trace, {},
|
55
58
|
"A comma separated list of tracers that provide additional insight "
|
56
59
|
"into how gRPC C core is processing requests via debug logs.");
|
57
|
-
ABSL_FLAG(absl::optional<std::string>, grpc_verbosity,
|
60
|
+
ABSL_FLAG(absl::optional<std::string>, grpc_verbosity, {},
|
58
61
|
"Default gRPC logging verbosity");
|
59
|
-
ABSL_FLAG(absl::optional<std::string>, grpc_stacktrace_minloglevel,
|
60
|
-
absl::nullopt,
|
62
|
+
ABSL_FLAG(absl::optional<std::string>, grpc_stacktrace_minloglevel, {},
|
61
63
|
"Messages logged at the same or higher level than this will print "
|
62
64
|
"stacktrace");
|
63
|
-
ABSL_FLAG(absl::optional<bool>, grpc_enable_fork_support,
|
65
|
+
ABSL_FLAG(absl::optional<bool>, grpc_enable_fork_support, {},
|
64
66
|
"Enable fork support");
|
65
|
-
ABSL_FLAG(absl::optional<std::string>, grpc_poll_strategy,
|
67
|
+
ABSL_FLAG(absl::optional<std::string>, grpc_poll_strategy, {},
|
66
68
|
"Declares which polling engines to try when starting gRPC. This is a "
|
67
69
|
"comma-separated list of engines, which are tried in priority order "
|
68
70
|
"first -> last.");
|
69
|
-
ABSL_FLAG(absl::optional<bool>, grpc_abort_on_leaks,
|
71
|
+
ABSL_FLAG(absl::optional<bool>, grpc_abort_on_leaks, {},
|
70
72
|
"A debugging aid to cause a call to abort() when gRPC objects are "
|
71
73
|
"leaked past grpc_shutdown()");
|
72
|
-
ABSL_FLAG(absl::optional<std::string>, grpc_system_ssl_roots_dir,
|
74
|
+
ABSL_FLAG(absl::optional<std::string>, grpc_system_ssl_roots_dir, {},
|
73
75
|
"Custom directory to SSL Roots");
|
74
|
-
ABSL_FLAG(absl::optional<std::string>, grpc_default_ssl_roots_file_path,
|
75
|
-
|
76
|
-
ABSL_FLAG(absl::optional<bool>, grpc_not_use_system_ssl_roots,
|
76
|
+
ABSL_FLAG(absl::optional<std::string>, grpc_default_ssl_roots_file_path, {},
|
77
|
+
"Path to the default SSL roots file.");
|
78
|
+
ABSL_FLAG(absl::optional<bool>, grpc_not_use_system_ssl_roots, {},
|
77
79
|
"Disable loading system root certificates.");
|
78
|
-
ABSL_FLAG(absl::optional<std::string>, grpc_ssl_cipher_suites,
|
80
|
+
ABSL_FLAG(absl::optional<std::string>, grpc_ssl_cipher_suites, {},
|
79
81
|
"A colon separated list of cipher suites to use with OpenSSL");
|
80
82
|
|
81
83
|
namespace grpc_core {
|
@@ -94,11 +96,8 @@ ConfigVars::ConfigVars(const Overrides& overrides)
|
|
94
96
|
not_use_system_ssl_roots_(LoadConfig(
|
95
97
|
FLAGS_grpc_not_use_system_ssl_roots, "GRPC_NOT_USE_SYSTEM_SSL_ROOTS",
|
96
98
|
overrides.not_use_system_ssl_roots, false)),
|
97
|
-
experiments_(LoadConfig(FLAGS_grpc_experiments, "GRPC_EXPERIMENTS",
|
98
|
-
overrides.experiments, "")),
|
99
99
|
dns_resolver_(LoadConfig(FLAGS_grpc_dns_resolver, "GRPC_DNS_RESOLVER",
|
100
100
|
overrides.dns_resolver, "")),
|
101
|
-
trace_(LoadConfig(FLAGS_grpc_trace, "GRPC_TRACE", overrides.trace, "")),
|
102
101
|
verbosity_(LoadConfig(FLAGS_grpc_verbosity, "GRPC_VERBOSITY",
|
103
102
|
overrides.verbosity,
|
104
103
|
GPR_DEFAULT_LOG_VERBOSITY_STRING)),
|
@@ -113,6 +112,9 @@ ConfigVars::ConfigVars(const Overrides& overrides)
|
|
113
112
|
"TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_"
|
114
113
|
"SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:"
|
115
114
|
"ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384")),
|
115
|
+
experiments_(LoadConfig(FLAGS_grpc_experiments, "GRPC_EXPERIMENTS",
|
116
|
+
overrides.experiments, "")),
|
117
|
+
trace_(LoadConfig(FLAGS_grpc_trace, "GRPC_TRACE", overrides.trace, "")),
|
116
118
|
override_system_ssl_roots_dir_(overrides.system_ssl_roots_dir),
|
117
119
|
override_default_ssl_roots_file_path_(
|
118
120
|
overrides.default_ssl_roots_file_path) {}
|
@@ -38,15 +38,15 @@ class ConfigVars {
|
|
38
38
|
absl::optional<bool> enable_fork_support;
|
39
39
|
absl::optional<bool> abort_on_leaks;
|
40
40
|
absl::optional<bool> not_use_system_ssl_roots;
|
41
|
-
absl::optional<std::string> experiments;
|
42
41
|
absl::optional<std::string> dns_resolver;
|
43
|
-
absl::optional<std::string> trace;
|
44
42
|
absl::optional<std::string> verbosity;
|
45
43
|
absl::optional<std::string> stacktrace_minloglevel;
|
46
44
|
absl::optional<std::string> poll_strategy;
|
47
45
|
absl::optional<std::string> system_ssl_roots_dir;
|
48
46
|
absl::optional<std::string> default_ssl_roots_file_path;
|
49
47
|
absl::optional<std::string> ssl_cipher_suites;
|
48
|
+
absl::optional<std::string> experiments;
|
49
|
+
absl::optional<std::string> trace;
|
50
50
|
};
|
51
51
|
ConfigVars(const ConfigVars&) = delete;
|
52
52
|
ConfigVars& operator=(const ConfigVars&) = delete;
|
@@ -111,13 +111,13 @@ class ConfigVars {
|
|
111
111
|
bool enable_fork_support_;
|
112
112
|
bool abort_on_leaks_;
|
113
113
|
bool not_use_system_ssl_roots_;
|
114
|
-
std::string experiments_;
|
115
114
|
std::string dns_resolver_;
|
116
|
-
std::string trace_;
|
117
115
|
std::string verbosity_;
|
118
116
|
std::string stacktrace_minloglevel_;
|
119
117
|
std::string poll_strategy_;
|
120
118
|
std::string ssl_cipher_suites_;
|
119
|
+
std::string experiments_;
|
120
|
+
std::string trace_;
|
121
121
|
absl::optional<std::string> override_system_ssl_roots_dir_;
|
122
122
|
absl::optional<std::string> override_default_ssl_roots_file_path_;
|
123
123
|
};
|
@@ -20,8 +20,10 @@
|
|
20
20
|
|
21
21
|
#include "absl/flags/marshalling.h"
|
22
22
|
#include "absl/strings/numbers.h"
|
23
|
+
#include "absl/strings/str_join.h"
|
23
24
|
#include "absl/types/optional.h"
|
24
25
|
|
26
|
+
#include "src/core/lib/gpr/log_internal.h"
|
25
27
|
#include "src/core/lib/gprpp/env.h"
|
26
28
|
|
27
29
|
namespace grpc_core {
|
@@ -34,6 +36,7 @@ absl::optional<std::string> LoadEnv(absl::string_view environment_variable) {
|
|
34
36
|
|
35
37
|
std::string LoadConfigFromEnv(absl::string_view environment_variable,
|
36
38
|
const char* default_value) {
|
39
|
+
GPR_ASSERT_INTERNAL(!environment_variable.empty());
|
37
40
|
return LoadEnv(environment_variable).value_or(default_value);
|
38
41
|
}
|
39
42
|
|
@@ -63,4 +66,14 @@ bool LoadConfigFromEnv(absl::string_view environment_variable,
|
|
63
66
|
return default_value;
|
64
67
|
}
|
65
68
|
|
69
|
+
std::string LoadConfig(const absl::Flag<std::vector<std::string>>& flag,
|
70
|
+
absl::string_view environment_variable,
|
71
|
+
const absl::optional<std::string>& override,
|
72
|
+
const char* default_value) {
|
73
|
+
if (override.has_value()) return *override;
|
74
|
+
auto from_flag = absl::GetFlag(flag);
|
75
|
+
if (!from_flag.empty()) return absl::StrJoin(from_flag, ",");
|
76
|
+
return LoadConfigFromEnv(environment_variable, default_value);
|
77
|
+
}
|
78
|
+
|
66
79
|
} // namespace grpc_core
|
@@ -20,6 +20,7 @@
|
|
20
20
|
#include <stdint.h>
|
21
21
|
|
22
22
|
#include <string>
|
23
|
+
#include <vector>
|
23
24
|
|
24
25
|
#include "absl/flags/flag.h"
|
25
26
|
#include "absl/strings/string_view.h"
|
@@ -44,6 +45,11 @@ T LoadConfig(const absl::Flag<absl::optional<T>>& flag,
|
|
44
45
|
return LoadConfigFromEnv(environment_variable, default_value);
|
45
46
|
}
|
46
47
|
|
48
|
+
std::string LoadConfig(const absl::Flag<std::vector<std::string>>& flag,
|
49
|
+
absl::string_view environment_variable,
|
50
|
+
const absl::optional<std::string>& override,
|
51
|
+
const char* default_value);
|
52
|
+
|
47
53
|
} // namespace grpc_core
|
48
54
|
|
49
55
|
#endif // GRPC_SRC_CORE_LIB_CONFIG_LOAD_CONFIG_H
|
@@ -71,7 +71,7 @@ class EventLog {
|
|
71
71
|
std::vector<Entry> EndCollection(
|
72
72
|
absl::Span<const absl::string_view> wanted_events);
|
73
73
|
|
74
|
-
PerCpu<Fragment> fragments_;
|
74
|
+
PerCpu<Fragment> fragments_{PerCpuOptions().SetCpusPerShard(2)};
|
75
75
|
gpr_cycle_counter collection_begin_;
|
76
76
|
static std::atomic<EventLog*> g_instance_;
|
77
77
|
};
|
@@ -294,7 +294,7 @@ class GlobalStatsCollector {
|
|
294
294
|
HistogramCollector_16777216_20 http2_send_message_size;
|
295
295
|
HistogramCollector_65536_26 http2_metadata_size;
|
296
296
|
};
|
297
|
-
PerCpu<Data> data_;
|
297
|
+
PerCpu<Data> data_{PerCpuOptions().SetCpusPerShard(4).SetMaxShards(32)};
|
298
298
|
};
|
299
299
|
} // namespace grpc_core
|
300
300
|
|
data/src/core/lib/debug/trace.cc
CHANGED
@@ -20,16 +20,16 @@
|
|
20
20
|
|
21
21
|
#include "src/core/lib/debug/trace.h"
|
22
22
|
|
23
|
-
#include <string.h>
|
24
|
-
|
25
23
|
#include <string>
|
26
24
|
#include <type_traits>
|
27
25
|
#include <utility>
|
28
26
|
|
27
|
+
#include "absl/strings/ascii.h"
|
28
|
+
#include "absl/strings/match.h"
|
29
|
+
#include "absl/strings/str_split.h"
|
29
30
|
#include "absl/strings/string_view.h"
|
30
31
|
|
31
32
|
#include <grpc/grpc.h>
|
32
|
-
#include <grpc/support/alloc.h>
|
33
33
|
#include <grpc/support/log.h>
|
34
34
|
|
35
35
|
#include "src/core/lib/config/config_vars.h"
|
@@ -40,31 +40,31 @@ namespace grpc_core {
|
|
40
40
|
|
41
41
|
TraceFlag* TraceFlagList::root_tracer_ = nullptr;
|
42
42
|
|
43
|
-
bool TraceFlagList::Set(
|
43
|
+
bool TraceFlagList::Set(absl::string_view name, bool enabled) {
|
44
44
|
TraceFlag* t;
|
45
|
-
if (
|
45
|
+
if (name == "all") {
|
46
46
|
for (t = root_tracer_; t; t = t->next_tracer_) {
|
47
47
|
t->set_enabled(enabled);
|
48
48
|
}
|
49
|
-
} else if (
|
49
|
+
} else if (name == "list_tracers") {
|
50
50
|
LogAllTracers();
|
51
|
-
} else if (
|
51
|
+
} else if (name == "refcount") {
|
52
52
|
for (t = root_tracer_; t; t = t->next_tracer_) {
|
53
|
-
if (
|
53
|
+
if (absl::StrContains(t->name_, "refcount")) {
|
54
54
|
t->set_enabled(enabled);
|
55
55
|
}
|
56
56
|
}
|
57
57
|
} else {
|
58
58
|
bool found = false;
|
59
59
|
for (t = root_tracer_; t; t = t->next_tracer_) {
|
60
|
-
if (
|
60
|
+
if (name == t->name_) {
|
61
61
|
t->set_enabled(enabled);
|
62
62
|
found = true;
|
63
63
|
}
|
64
64
|
}
|
65
65
|
// check for unknowns, but ignore "", to allow to GRPC_TRACE=
|
66
|
-
if (!found &&
|
67
|
-
gpr_log(GPR_ERROR, "Unknown trace var: '%s'", name);
|
66
|
+
if (!found && !name.empty()) {
|
67
|
+
gpr_log(GPR_ERROR, "Unknown trace var: '%s'", std::string(name).c_str());
|
68
68
|
return false; // early return
|
69
69
|
}
|
70
70
|
}
|
@@ -101,59 +101,28 @@ SavedTraceFlags::SavedTraceFlags() { TraceFlagList::SaveTo(values_); }
|
|
101
101
|
|
102
102
|
void SavedTraceFlags::Restore() {
|
103
103
|
for (const auto& flag : values_) {
|
104
|
-
TraceFlagList::Set(flag.first
|
105
|
-
}
|
106
|
-
}
|
107
|
-
|
108
|
-
} // namespace grpc_core
|
109
|
-
|
110
|
-
static void add(const char* beg, const char* end, char*** ss, size_t* ns) {
|
111
|
-
size_t n = *ns;
|
112
|
-
size_t np = n + 1;
|
113
|
-
char* s;
|
114
|
-
size_t len;
|
115
|
-
GPR_ASSERT(end >= beg);
|
116
|
-
len = static_cast<size_t>(end - beg);
|
117
|
-
s = static_cast<char*>(gpr_malloc(len + 1));
|
118
|
-
memcpy(s, beg, len);
|
119
|
-
s[len] = 0;
|
120
|
-
*ss = static_cast<char**>(gpr_realloc(*ss, sizeof(char**) * np));
|
121
|
-
(*ss)[n] = s;
|
122
|
-
*ns = np;
|
123
|
-
}
|
124
|
-
|
125
|
-
static void split(const char* s, char*** ss, size_t* ns) {
|
126
|
-
const char* c = strchr(s, ',');
|
127
|
-
if (c == nullptr) {
|
128
|
-
add(s, s + strlen(s), ss, ns);
|
129
|
-
} else {
|
130
|
-
add(s, c, ss, ns);
|
131
|
-
split(c + 1, ss, ns);
|
104
|
+
TraceFlagList::Set(flag.first, flag.second);
|
132
105
|
}
|
133
106
|
}
|
134
107
|
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
if (strings[i][0] == '-') {
|
143
|
-
grpc_core::TraceFlagList::Set(strings[i] + 1, false);
|
108
|
+
namespace {
|
109
|
+
void ParseTracers(absl::string_view tracers) {
|
110
|
+
for (auto s : absl::StrSplit(tracers, ',')) {
|
111
|
+
s = absl::StripAsciiWhitespace(s);
|
112
|
+
if (s.empty()) continue;
|
113
|
+
if (s[0] == '-') {
|
114
|
+
TraceFlagList::Set(s.substr(1), false);
|
144
115
|
} else {
|
145
|
-
|
116
|
+
TraceFlagList::Set(s, true);
|
146
117
|
}
|
147
118
|
}
|
148
|
-
|
149
|
-
for (i = 0; i < nstrings; i++) {
|
150
|
-
gpr_free(strings[i]);
|
151
|
-
}
|
152
|
-
gpr_free(strings);
|
153
119
|
}
|
120
|
+
} // namespace
|
121
|
+
|
122
|
+
} // namespace grpc_core
|
154
123
|
|
155
124
|
void grpc_tracer_init() {
|
156
|
-
|
125
|
+
grpc_core::ParseTracers(grpc_core::ConfigVars::Get().Trace());
|
157
126
|
}
|
158
127
|
|
159
128
|
int grpc_tracer_set_enabled(const char* name, int enabled) {
|
data/src/core/lib/debug/trace.h
CHANGED
@@ -25,6 +25,8 @@
|
|
25
25
|
#include <map>
|
26
26
|
#include <string>
|
27
27
|
|
28
|
+
#include "absl/strings/string_view.h"
|
29
|
+
|
28
30
|
void grpc_tracer_init();
|
29
31
|
void grpc_tracer_shutdown(void);
|
30
32
|
|
@@ -33,7 +35,7 @@ namespace grpc_core {
|
|
33
35
|
class TraceFlag;
|
34
36
|
class TraceFlagList {
|
35
37
|
public:
|
36
|
-
static bool Set(
|
38
|
+
static bool Set(absl::string_view name, bool enabled);
|
37
39
|
static void Add(TraceFlag* flag);
|
38
40
|
static void SaveTo(std::map<std::string, bool>& values);
|
39
41
|
|