grpc 1.55.0 → 1.56.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Makefile +102 -68
- data/include/grpc/event_engine/event_engine.h +4 -3
- data/include/grpc/grpc_audit_logging.h +96 -0
- data/include/grpc/grpc_security.h +19 -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 +53 -21
- 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 +42 -40
- 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/hpack_parse_result.cc +176 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +325 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +567 -543
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +150 -9
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +46 -32
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +18 -5
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -15
- data/src/core/ext/transport/chttp2/transport/parsing.cc +12 -12
- 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/backoff/random_early_detection.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 +2 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +33 -4
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +10 -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 +182 -119
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -1
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -0
- 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/credentials/tls/grpc_tls_credentials_options.cc +8 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +5 -1
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -5
- data/src/core/lib/security/security_connector/ssl_utils.cc +2 -1
- data/src/core/lib/security/security_connector/ssl_utils.h +1 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +1 -1
- 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/validate_metadata.cc +37 -22
- data/src/core/lib/surface/validate_metadata.h +13 -3
- 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/core/tsi/ssl_transport_security.cc +5 -2
- data/src/core/tsi/ssl_transport_security.h +13 -1
- data/src/ruby/ext/grpc/extconf.rb +8 -9
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
- 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 -12
- 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
|
|