grpc 1.42.0 → 1.43.1
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 +85 -34
- data/include/grpc/event_engine/event_engine.h +37 -13
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +1 -31
- data/include/grpc/event_engine/memory_allocator.h +27 -11
- data/include/grpc/event_engine/memory_request.h +57 -0
- data/include/grpc/grpc_security.h +276 -145
- data/include/grpc/grpc_security_constants.h +1 -14
- data/include/grpc/impl/codegen/port_platform.h +7 -3
- data/src/core/ext/filters/client_channel/backend_metric.cc +6 -7
- data/src/core/ext/filters/client_channel/backend_metric.h +3 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +81 -40
- data/src/core/ext/filters/client_channel/client_channel.h +5 -4
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -2
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +4 -4
- data/src/core/ext/filters/client_channel/health/health_check_client.h +1 -1
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +12 -14
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +2 -3
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +27 -80
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +82 -34
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +47 -91
- data/src/core/ext/filters/client_channel/lb_policy.h +75 -59
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +8 -12
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +6 -12
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +222 -294
- data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -7
- data/src/core/ext/filters/client_channel/resolver_registry.h +1 -2
- data/src/core/ext/filters/client_channel/subchannel.cc +4 -4
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +14 -30
- data/src/core/ext/filters/http/http_filters_plugin.cc +3 -5
- data/src/core/ext/filters/http/server/http_server_filter.cc +11 -28
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +67 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +70 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +265 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +32 -0
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +4 -20
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +8 -5
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +11 -14
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +6 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +54 -79
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +2 -3
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +9 -13
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +6 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +53 -62
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -2
- data/src/core/ext/transport/chttp2/transport/context_list.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/context_list.h +2 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/flow_control.h +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +83 -19
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +33 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +66 -92
- data/src/core/ext/transport/chttp2/transport/internal.h +8 -4
- data/src/core/ext/transport/inproc/inproc_transport.cc +16 -7
- data/src/core/ext/transport/inproc/inproc_transport.h +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +197 -165
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +41 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +18 -0
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +26 -2
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +107 -82
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +188 -160
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +35 -22
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +253 -218
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +16 -5
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +36 -25
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +56 -39
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +16 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +162 -128
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +51 -36
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +15 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +25 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +114 -90
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +89 -71
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +17 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +117 -93
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +13 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +21 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +18 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +22 -11
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +17 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +41 -27
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +59 -43
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +58 -43
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +15 -4
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +73 -57
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +81 -64
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +25 -14
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +19 -7
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +63 -45
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +66 -47
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +93 -75
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +41 -28
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +503 -440
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +26 -13
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +21 -9
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +13 -2
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +35 -20
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +44 -31
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +22 -11
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +210 -181
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +7 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +5 -3
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +64 -48
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +33 -20
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +81 -65
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +12 -1
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +12 -1
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +75 -58
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +12 -1
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +12 -1
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +25 -13
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +12 -1
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +12 -1
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +61 -46
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +26 -12
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +22 -10
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +17 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +16 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +15 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +27 -14
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +25 -13
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +20 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +30 -17
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +38 -21
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +41 -26
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +7 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +17 -5
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +22 -9
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +15 -4
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +2 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +20 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +7 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +116 -93
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +2 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.c +102 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.h +306 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.c +56 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.h +135 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +122 -98
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +2 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.c +115 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.h +371 -0
- data/src/core/ext/upb-generated/google/api/http.upb.c +35 -22
- data/src/core/ext/upb-generated/google/api/http.upb.h +2 -0
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +14 -3
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +2 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +247 -210
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +2 -0
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +14 -3
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +2 -0
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +12 -1
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +2 -0
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +37 -23
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +2 -0
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +14 -3
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +2 -0
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +37 -18
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +2 -0
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +17 -6
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +2 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +26 -14
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +2 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +105 -83
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +2 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +20 -8
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +2 -0
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +16 -4
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +2 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +65 -47
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +34 -36
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +26 -13
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +2 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +67 -7
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +27 -0
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +27 -3
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +19 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +7 -0
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +27 -3
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +7 -0
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +26 -2
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +320 -251
- data/src/core/ext/upb-generated/validate/validate.upb.h +20 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +54 -9
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +17 -0
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +13 -2
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +2 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +24 -12
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +2 -0
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +19 -7
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +2 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +18 -7
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +2 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +27 -15
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +2 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +18 -7
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +2 -0
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +28 -15
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +2 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +16 -5
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +2 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +2 -49
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +2 -2
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +2 -35
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +2 -41
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +2 -55
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +2 -19
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +2 -53
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +2 -15
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +2 -33
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +2 -21
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +2 -33
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +2 -13
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +2 -17
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +2 -15
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +2 -17
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +2 -19
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +2 -21
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +2 -23
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +2 -111
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +2 -15
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +2 -43
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +2 -2
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +2 -17
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +2 -17
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +2 -19
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +2 -15
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +2 -13
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +2 -19
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +2 -15
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +2 -2
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +2 -2
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +2 -59
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +2 -13
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +2 -23
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +2 -2
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +2 -51
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +2 -13
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +2 -7
- data/src/core/ext/xds/certificate_provider_registry.cc +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +1 -1
- data/src/core/ext/xds/xds_api.cc +409 -304
- data/src/core/ext/xds/xds_api.h +3 -1
- data/src/core/ext/xds/xds_bootstrap.cc +6 -3
- data/src/core/ext/xds/xds_certificate_provider.h +1 -2
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +3 -4
- data/src/core/ext/xds/xds_client.cc +395 -291
- data/src/core/ext/xds/xds_client.h +47 -38
- data/src/core/ext/xds/xds_routing.cc +247 -0
- data/src/core/ext/xds/xds_routing.h +98 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +975 -261
- data/src/core/lib/avl/avl.h +389 -88
- data/src/core/lib/backoff/backoff.cc +2 -2
- data/src/core/lib/channel/channel_args.cc +17 -17
- data/src/core/lib/channel/channel_args.h +11 -10
- data/src/core/lib/channel/channel_args_preconditioning.cc +47 -0
- data/src/core/lib/channel/channel_args_preconditioning.h +62 -0
- data/src/core/lib/channel/channel_stack_builder.cc +0 -2
- data/src/core/lib/channel/channel_trace.cc +6 -6
- data/src/core/lib/channel/channelz.cc +1 -1
- data/src/core/lib/compression/compression_args.cc +7 -5
- data/src/core/lib/compression/compression_args.h +6 -4
- data/src/core/lib/config/core_configuration.cc +3 -1
- data/src/core/lib/config/core_configuration.h +11 -0
- data/src/core/lib/debug/trace.h +2 -2
- data/src/core/lib/event_engine/{endpoint_config.cc → channel_args_endpoint_config.cc} +2 -1
- data/src/core/lib/event_engine/{endpoint_config_internal.h → channel_args_endpoint_config.h} +3 -3
- data/src/core/lib/event_engine/event_engine.cc +0 -13
- data/src/core/lib/event_engine/event_engine_factory.cc +49 -0
- data/src/core/lib/event_engine/event_engine_factory.h +33 -0
- data/src/core/lib/event_engine/memory_allocator.cc +70 -0
- data/src/core/lib/gpr/tls.h +6 -0
- data/src/core/lib/gprpp/cpp_impl_of.h +45 -0
- data/src/core/lib/gprpp/global_config_env.cc +7 -7
- data/src/core/lib/gprpp/global_config_env.h +2 -2
- data/src/core/lib/gprpp/manual_constructor.h +2 -3
- data/src/core/lib/gprpp/orphanable.h +1 -1
- data/src/core/lib/gprpp/ref_counted.h +1 -1
- data/src/core/lib/gprpp/ref_counted_ptr.h +2 -4
- data/src/core/lib/gprpp/status_helper.h +1 -1
- data/src/core/lib/gprpp/table.h +13 -1
- data/src/core/lib/http/httpcli.cc +30 -26
- data/src/core/lib/http/httpcli.h +14 -12
- data/src/core/lib/iomgr/buffer_list.cc +9 -9
- data/src/core/lib/iomgr/buffer_list.h +13 -13
- data/src/core/lib/iomgr/call_combiner.cc +2 -3
- data/src/core/lib/iomgr/endpoint.h +0 -1
- data/src/core/lib/iomgr/endpoint_cfstream.cc +7 -24
- data/src/core/lib/iomgr/endpoint_cfstream.h +4 -4
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +9 -11
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -14
- data/src/core/lib/iomgr/event_engine/endpoint.cc +2 -3
- data/src/core/lib/iomgr/event_engine/iomgr.cc +5 -25
- data/src/core/lib/iomgr/event_engine/resolver.cc +3 -2
- data/src/core/lib/iomgr/event_engine/tcp.cc +7 -5
- data/src/core/lib/iomgr/event_engine/timer.cc +4 -3
- data/src/core/lib/iomgr/exec_ctx.h +11 -11
- data/src/core/lib/iomgr/executor.cc +12 -15
- data/src/core/lib/iomgr/executor.h +1 -1
- data/src/core/lib/iomgr/tcp_client.cc +2 -4
- data/src/core/lib/iomgr/tcp_client.h +1 -3
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +1 -9
- data/src/core/lib/iomgr/tcp_client_custom.cc +4 -10
- data/src/core/lib/iomgr/tcp_client_posix.cc +7 -23
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +1 -10
- data/src/core/lib/iomgr/tcp_custom.cc +9 -36
- data/src/core/lib/iomgr/tcp_custom.h +0 -1
- data/src/core/lib/iomgr/tcp_posix.cc +28 -33
- data/src/core/lib/iomgr/tcp_posix.h +1 -3
- data/src/core/lib/iomgr/tcp_server.cc +4 -6
- data/src/core/lib/iomgr/tcp_server.h +6 -8
- data/src/core/lib/iomgr/tcp_server_custom.cc +5 -15
- data/src/core/lib/iomgr/tcp_server_posix.cc +18 -22
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +19 -18
- data/src/core/lib/iomgr/tcp_server_windows.cc +5 -12
- data/src/core/lib/iomgr/tcp_windows.cc +2 -7
- data/src/core/lib/iomgr/tcp_windows.h +1 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +1 -1
- data/src/core/lib/iomgr/unix_sockets_posix.h +1 -1
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +1 -1
- data/src/core/lib/iomgr/work_serializer.cc +115 -44
- data/src/core/lib/iomgr/work_serializer.h +16 -4
- data/src/core/lib/json/json_reader.cc +83 -35
- data/src/core/lib/json/json_util.cc +1 -1
- data/src/core/lib/promise/activity.cc +115 -0
- data/src/core/lib/promise/activity.h +499 -0
- data/src/core/lib/promise/context.h +86 -0
- data/src/core/lib/promise/detail/basic_seq.h +407 -0
- data/src/core/lib/promise/detail/promise_factory.h +189 -0
- data/src/core/lib/promise/detail/promise_like.h +85 -0
- data/src/core/lib/promise/detail/status.h +44 -0
- data/src/core/lib/promise/detail/switch.h +1455 -0
- data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +48 -0
- data/src/core/lib/promise/loop.h +108 -0
- data/src/core/lib/promise/map.h +88 -0
- data/src/core/lib/promise/poll.h +60 -0
- data/src/core/lib/promise/race.h +84 -0
- data/src/core/lib/promise/seq.h +71 -0
- data/src/core/lib/resource_quota/api.cc +108 -0
- data/src/core/lib/resource_quota/api.h +41 -0
- data/src/core/lib/resource_quota/memory_quota.cc +454 -0
- data/src/core/lib/resource_quota/memory_quota.h +421 -0
- data/src/core/lib/resource_quota/resource_quota.cc +33 -0
- data/src/core/lib/resource_quota/resource_quota.h +58 -0
- data/src/core/lib/resource_quota/thread_quota.cc +43 -0
- data/src/core/lib/resource_quota/thread_quota.h +57 -0
- data/src/core/lib/resource_quota/trace.cc +19 -0
- data/src/core/lib/resource_quota/trace.h +24 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +13 -19
- data/src/core/lib/security/authorization/evaluate_args.h +2 -1
- data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +3 -1
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +11 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +9 -10
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +3 -4
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +4 -6
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +4 -6
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +18 -22
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +11 -12
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -8
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +201 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +106 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +11 -90
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +19 -82
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +21 -10
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +28 -33
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +3 -4
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +7 -7
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -2
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +4 -1
- data/src/core/lib/security/security_connector/ssl_utils.cc +10 -2
- data/src/core/lib/security/security_connector/ssl_utils.h +1 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +344 -195
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +64 -41
- data/src/core/lib/security/transport/security_handshaker.cc +2 -2
- data/src/core/lib/slice/percent_encoding.cc +30 -86
- data/src/core/lib/slice/percent_encoding.h +5 -11
- data/src/core/lib/slice/slice.cc +7 -7
- data/src/core/lib/slice/slice.h +341 -0
- data/src/core/lib/slice/slice_buffer.cc +4 -0
- data/src/core/lib/slice/slice_intern.cc +1 -1
- data/src/core/lib/slice/slice_refcount.h +5 -1
- data/src/core/lib/slice/slice_refcount_base.h +19 -11
- data/src/core/lib/slice/static_slice.cc +331 -483
- data/src/core/lib/slice/static_slice.h +101 -132
- data/src/core/lib/surface/builtins.cc +1 -1
- data/src/core/lib/surface/call.cc +85 -59
- data/src/core/lib/surface/channel.cc +4 -29
- data/src/core/lib/surface/channel.h +2 -12
- data/src/core/lib/surface/completion_queue.cc +2 -2
- data/src/core/lib/surface/init.cc +0 -1
- data/src/core/lib/surface/lame_client.cc +24 -17
- data/src/core/lib/surface/server.cc +22 -22
- data/src/core/lib/surface/server.h +8 -9
- data/src/core/lib/surface/validate_metadata.cc +2 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +1 -1
- data/src/core/lib/transport/byte_stream.cc +4 -0
- data/src/core/lib/transport/metadata.h +4 -4
- data/src/core/lib/transport/metadata_batch.cc +5 -0
- data/src/core/lib/transport/metadata_batch.h +174 -99
- data/src/core/lib/transport/parsed_metadata.cc +35 -0
- data/src/core/lib/transport/parsed_metadata.h +180 -61
- data/src/core/lib/transport/pid_controller.cc +4 -4
- data/src/core/lib/transport/static_metadata.cc +529 -614
- data/src/core/lib/transport/static_metadata.h +0 -18
- data/src/core/lib/transport/transport.cc +4 -26
- data/src/core/lib/transport/transport.h +0 -1
- data/src/core/lib/transport/transport_op_string.cc +1 -1
- data/src/core/lib/uri/uri_parser.cc +19 -19
- data/src/core/lib/uri/uri_parser.h +2 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
- data/src/core/tsi/local_transport_security.cc +15 -15
- data/src/core/tsi/ssl_transport_security.cc +30 -1
- data/src/core/tsi/ssl_transport_security.h +1 -0
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -10
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +9 -15
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/abseil-cpp/absl/algorithm/container.h +101 -91
- data/third_party/abseil-cpp/absl/base/attributes.h +64 -31
- data/third_party/abseil-cpp/absl/base/config.h +67 -37
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +1 -26
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -1
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +2 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +69 -0
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +4 -4
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +16 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +4 -4
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +0 -5
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +105 -97
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +17 -15
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +18 -102
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +37 -78
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +388 -423
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +3 -2
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -8
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +251 -120
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +11 -1
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +12 -11
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +6 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +12 -5
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +110 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +234 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -7
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +8 -2
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +21 -3
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +2 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +2 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +14 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +72 -0
- data/third_party/abseil-cpp/absl/functional/function_ref.h +4 -1
- data/third_party/abseil-cpp/absl/hash/hash.h +22 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +15 -16
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +88 -37
- data/third_party/abseil-cpp/absl/hash/internal/{wyhash.cc → low_level_hash.cc} +23 -11
- data/third_party/abseil-cpp/absl/hash/internal/{wyhash.h → low_level_hash.h} +14 -12
- data/third_party/abseil-cpp/absl/memory/memory.h +1 -1
- data/third_party/abseil-cpp/absl/meta/type_traits.h +32 -2
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -10
- data/third_party/abseil-cpp/absl/numeric/int128.h +146 -73
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +19 -25
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +73 -70
- data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.cc +4 -4
- data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.h +6 -6
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +230 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +5 -5
- data/third_party/abseil-cpp/absl/status/status.cc +9 -17
- data/third_party/abseil-cpp/absl/status/status.h +19 -15
- data/third_party/abseil-cpp/absl/status/statusor.cc +34 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +31 -21
- data/third_party/abseil-cpp/absl/strings/charconv.cc +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.h +3 -2
- data/third_party/abseil-cpp/absl/strings/cord.cc +453 -359
- data/third_party/abseil-cpp/absl/strings/cord.h +197 -70
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +6 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +140 -63
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1128 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +939 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +185 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +265 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +68 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +211 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +129 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +50 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +7 -7
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +55 -181
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +42 -24
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +4 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +96 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +85 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +139 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +131 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +445 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +298 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +87 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +121 -0
- data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +48 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +8 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +3 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +62 -73
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +24 -16
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +35 -35
- data/third_party/abseil-cpp/absl/strings/numbers.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/numbers.h +34 -0
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/str_format.h +1 -2
- data/third_party/abseil-cpp/absl/strings/string_view.cc +16 -21
- data/third_party/abseil-cpp/absl/strings/string_view.h +120 -39
- data/third_party/abseil-cpp/absl/strings/substitute.cc +2 -1
- data/third_party/abseil-cpp/absl/strings/substitute.h +99 -74
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +25 -15
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +5 -3
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -1
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +3 -3
- data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -3
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +93 -20
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +2 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +83 -21
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +49 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -3
- data/third_party/abseil-cpp/absl/time/time.h +67 -36
- data/third_party/abseil-cpp/absl/types/bad_optional_access.h +1 -1
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +2 -2
- data/third_party/abseil-cpp/absl/types/span.h +3 -3
- data/third_party/boringssl-with-bazel/err_data.c +681 -677
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +19 -11
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +41 -30
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +59 -47
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +24 -28
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +28 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +48 -272
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +8 -6
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +3 -1
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +18 -0
- data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +59 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +2 -18
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +8 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +216 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +21 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +971 -253
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +3 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +0 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +17 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +12 -27
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +8 -10
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +29 -55
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +3 -9
- data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +7 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +24 -28
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +6 -9
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +12 -43
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +4 -0
- data/third_party/upb/upb/decode.c +309 -178
- data/third_party/upb/upb/decode_fast.c +1 -1
- data/third_party/upb/upb/decode_internal.h +1 -0
- data/third_party/upb/upb/def.c +330 -85
- data/third_party/upb/upb/def.h +45 -14
- data/third_party/upb/upb/def.hpp +17 -4
- data/third_party/upb/upb/encode.c +100 -40
- data/third_party/upb/upb/msg.c +22 -9
- data/third_party/upb/upb/msg_internal.h +90 -8
- data/third_party/upb/upb/reflection.c +98 -58
- data/third_party/upb/upb/reflection.h +6 -2
- data/third_party/upb/upb/text_encode.c +3 -3
- data/third_party/upb/upb/upb.c +8 -0
- metadata +116 -56
- data/src/core/lib/avl/avl.cc +0 -306
- data/src/core/lib/gprpp/match.h +0 -73
- data/src/core/lib/gprpp/overload.h +0 -59
- data/src/core/lib/iomgr/event_engine/iomgr.h +0 -42
- data/src/core/lib/iomgr/resource_quota.cc +0 -1106
- data/src/core/lib/iomgr/resource_quota.h +0 -226
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +0 -93
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +0 -217
@@ -201,6 +201,8 @@ class XdsClusterImplLb : public LoadBalancingPolicy {
|
|
201
201
|
PickResult Pick(PickArgs args) override;
|
202
202
|
|
203
203
|
private:
|
204
|
+
class SubchannelCallTracker;
|
205
|
+
|
204
206
|
RefCountedPtr<CircuitBreakerCallCounterMap::CallCounter> call_counter_;
|
205
207
|
uint32_t max_concurrent_requests_;
|
206
208
|
RefCountedPtr<XdsApi::EdsUpdate::DropConfig> drop_config_;
|
@@ -264,6 +266,71 @@ class XdsClusterImplLb : public LoadBalancingPolicy {
|
|
264
266
|
RefCountedPtr<RefCountedPicker> picker_;
|
265
267
|
};
|
266
268
|
|
269
|
+
//
|
270
|
+
// XdsClusterImplLb::Picker::SubchannelCallTracker
|
271
|
+
//
|
272
|
+
|
273
|
+
class XdsClusterImplLb::Picker::SubchannelCallTracker
|
274
|
+
: public LoadBalancingPolicy::SubchannelCallTrackerInterface {
|
275
|
+
public:
|
276
|
+
SubchannelCallTracker(
|
277
|
+
std::unique_ptr<LoadBalancingPolicy::SubchannelCallTrackerInterface>
|
278
|
+
original_subchannel_call_tracker,
|
279
|
+
RefCountedPtr<XdsClusterLocalityStats> locality_stats,
|
280
|
+
RefCountedPtr<CircuitBreakerCallCounterMap::CallCounter> call_counter)
|
281
|
+
: original_subchannel_call_tracker_(
|
282
|
+
std::move(original_subchannel_call_tracker)),
|
283
|
+
locality_stats_(std::move(locality_stats)),
|
284
|
+
call_counter_(std::move(call_counter)) {}
|
285
|
+
|
286
|
+
~SubchannelCallTracker() override {
|
287
|
+
locality_stats_.reset(DEBUG_LOCATION, "SubchannelCallTracker");
|
288
|
+
call_counter_.reset(DEBUG_LOCATION, "SubchannelCallTracker");
|
289
|
+
GPR_DEBUG_ASSERT(!started_);
|
290
|
+
}
|
291
|
+
|
292
|
+
void Start() override {
|
293
|
+
// Increment number of calls in flight.
|
294
|
+
call_counter_->Increment();
|
295
|
+
// Record a call started.
|
296
|
+
if (locality_stats_ != nullptr) {
|
297
|
+
locality_stats_->AddCallStarted();
|
298
|
+
}
|
299
|
+
// Delegate if needed.
|
300
|
+
if (original_subchannel_call_tracker_ != nullptr) {
|
301
|
+
original_subchannel_call_tracker_->Start();
|
302
|
+
}
|
303
|
+
#ifndef NDEBUG
|
304
|
+
started_ = true;
|
305
|
+
#endif
|
306
|
+
}
|
307
|
+
|
308
|
+
void Finish(FinishArgs args) override {
|
309
|
+
// Delegate if needed.
|
310
|
+
if (original_subchannel_call_tracker_ != nullptr) {
|
311
|
+
original_subchannel_call_tracker_->Finish(args);
|
312
|
+
}
|
313
|
+
// Record call completion for load reporting.
|
314
|
+
if (locality_stats_ != nullptr) {
|
315
|
+
locality_stats_->AddCallFinished(!args.status.ok());
|
316
|
+
}
|
317
|
+
// Decrement number of calls in flight.
|
318
|
+
call_counter_->Decrement();
|
319
|
+
#ifndef NDEBUG
|
320
|
+
started_ = false;
|
321
|
+
#endif
|
322
|
+
}
|
323
|
+
|
324
|
+
private:
|
325
|
+
std::unique_ptr<LoadBalancingPolicy::SubchannelCallTrackerInterface>
|
326
|
+
original_subchannel_call_tracker_;
|
327
|
+
RefCountedPtr<XdsClusterLocalityStats> locality_stats_;
|
328
|
+
RefCountedPtr<CircuitBreakerCallCounterMap::CallCounter> call_counter_;
|
329
|
+
#ifndef NDEBUG
|
330
|
+
bool started_ = false;
|
331
|
+
#endif
|
332
|
+
};
|
333
|
+
|
267
334
|
//
|
268
335
|
// XdsClusterImplLb::Picker
|
269
336
|
//
|
@@ -291,17 +358,17 @@ LoadBalancingPolicy::PickResult XdsClusterImplLb::Picker::Pick(
|
|
291
358
|
return PickResult::Drop(absl::UnavailableError(
|
292
359
|
absl::StrCat("EDS-configured drop: ", *drop_category)));
|
293
360
|
}
|
294
|
-
//
|
295
|
-
|
296
|
-
//
|
297
|
-
|
361
|
+
// Check if we exceeded the max concurrent requests circuit breaking limit.
|
362
|
+
// Note: We check the value here, but we don't actually increment the
|
363
|
+
// counter for the current request until the channel calls the subchannel
|
364
|
+
// call tracker's Start() method. This means that we may wind up
|
365
|
+
// allowing more concurrent requests than the configured limit.
|
366
|
+
if (call_counter_->Load() >= max_concurrent_requests_) {
|
298
367
|
if (drop_stats_ != nullptr) drop_stats_->AddUncategorizedDrops();
|
299
368
|
return PickResult::Drop(absl::UnavailableError("circuit breaker drop"));
|
300
369
|
}
|
301
|
-
call_counter_->Increment();
|
302
370
|
// If we're not dropping the call, we should always have a child picker.
|
303
371
|
if (picker_ == nullptr) { // Should never happen.
|
304
|
-
call_counter_->Decrement();
|
305
372
|
return PickResult::Fail(absl::InternalError(
|
306
373
|
"xds_cluster_impl picker not given any child picker"));
|
307
374
|
}
|
@@ -309,46 +376,27 @@ LoadBalancingPolicy::PickResult XdsClusterImplLb::Picker::Pick(
|
|
309
376
|
PickResult result = picker_->Pick(args);
|
310
377
|
auto* complete_pick = absl::get_if<PickResult::Complete>(&result.result);
|
311
378
|
if (complete_pick != nullptr) {
|
312
|
-
XdsClusterLocalityStats
|
379
|
+
RefCountedPtr<XdsClusterLocalityStats> locality_stats;
|
313
380
|
if (drop_stats_ != nullptr) { // If load reporting is enabled.
|
314
381
|
auto* subchannel_wrapper =
|
315
382
|
static_cast<StatsSubchannelWrapper*>(complete_pick->subchannel.get());
|
316
383
|
// Handle load reporting.
|
317
|
-
locality_stats = subchannel_wrapper->locality_stats()->Ref(
|
318
|
-
|
319
|
-
locality_stats->AddCallStarted();
|
384
|
+
locality_stats = subchannel_wrapper->locality_stats()->Ref(
|
385
|
+
DEBUG_LOCATION, "SubchannelCallTracker");
|
320
386
|
// Unwrap subchannel to pass back up the stack.
|
321
387
|
complete_pick->subchannel = subchannel_wrapper->wrapped_subchannel();
|
322
388
|
}
|
323
|
-
//
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
// work serializer or in the data plane mutex.
|
330
|
-
[locality_stats, original_recv_trailing_metadata_ready, call_counter](
|
331
|
-
absl::Status status, MetadataInterface* metadata,
|
332
|
-
CallState* call_state) {
|
333
|
-
// Record call completion for load reporting.
|
334
|
-
if (locality_stats != nullptr) {
|
335
|
-
locality_stats->AddCallFinished(!status.ok());
|
336
|
-
locality_stats->Unref(DEBUG_LOCATION, "LocalityStats+call");
|
337
|
-
}
|
338
|
-
// Decrement number of calls in flight.
|
339
|
-
call_counter->Decrement();
|
340
|
-
call_counter->Unref(DEBUG_LOCATION, "call");
|
341
|
-
// Invoke the original recv_trailing_metadata_ready callback, if any.
|
342
|
-
if (original_recv_trailing_metadata_ready != nullptr) {
|
343
|
-
original_recv_trailing_metadata_ready(status, metadata, call_state);
|
344
|
-
}
|
345
|
-
};
|
389
|
+
// Inject subchannel call tracker to record call completion.
|
390
|
+
complete_pick->subchannel_call_tracker =
|
391
|
+
absl::make_unique<SubchannelCallTracker>(
|
392
|
+
std::move(complete_pick->subchannel_call_tracker),
|
393
|
+
std::move(locality_stats),
|
394
|
+
call_counter_->Ref(DEBUG_LOCATION, "SubchannelCallTracker"));
|
346
395
|
} else {
|
347
396
|
// TODO(roth): We should ideally also record call failures here in the case
|
348
397
|
// where a pick fails. This is challenging, because we don't know which
|
349
398
|
// picks are for wait_for_ready RPCs or how many times we'll return a
|
350
399
|
// failure for the same wait_for_ready RPC.
|
351
|
-
call_counter_->Decrement();
|
352
400
|
}
|
353
401
|
return result;
|
354
402
|
}
|
@@ -176,41 +176,58 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
176
176
|
discovery_mechanism_.reset(DEBUG_LOCATION, "EndpointWatcher");
|
177
177
|
}
|
178
178
|
void OnEndpointChanged(XdsApi::EdsUpdate update) override {
|
179
|
-
|
179
|
+
Ref().release(); // ref held by callback
|
180
|
+
discovery_mechanism_->parent()->work_serializer()->Run(
|
181
|
+
// TODO(yashykt): When we move to C++14, capture update with
|
182
|
+
// std::move
|
183
|
+
[this, update]() mutable {
|
184
|
+
OnEndpointChangedHelper(std::move(update));
|
185
|
+
Unref();
|
186
|
+
},
|
187
|
+
DEBUG_LOCATION);
|
180
188
|
}
|
181
189
|
void OnError(grpc_error_handle error) override {
|
182
|
-
|
190
|
+
Ref().release(); // ref held by callback
|
191
|
+
discovery_mechanism_->parent()->work_serializer()->Run(
|
192
|
+
[this, error]() {
|
193
|
+
OnErrorHelper(error);
|
194
|
+
Unref();
|
195
|
+
},
|
196
|
+
DEBUG_LOCATION);
|
183
197
|
}
|
184
198
|
void OnResourceDoesNotExist() override {
|
185
|
-
|
199
|
+
Ref().release(); // ref held by callback
|
200
|
+
discovery_mechanism_->parent()->work_serializer()->Run(
|
201
|
+
[this]() {
|
202
|
+
OnResourceDoesNotExistHelper();
|
203
|
+
Unref();
|
204
|
+
},
|
205
|
+
DEBUG_LOCATION);
|
186
206
|
}
|
187
207
|
|
188
208
|
private:
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
RefCountedPtr<EdsDiscoveryMechanism> discovery_mechanism_;
|
206
|
-
grpc_closure closure_;
|
207
|
-
XdsApi::EdsUpdate update_;
|
208
|
-
Type type_;
|
209
|
-
};
|
210
|
-
|
209
|
+
// Code accessing protected methods of `DiscoveryMechanism` need to be
|
210
|
+
// in methods of this class rather than in lambdas to work around an MSVC
|
211
|
+
// bug.
|
212
|
+
void OnEndpointChangedHelper(XdsApi::EdsUpdate update) {
|
213
|
+
discovery_mechanism_->parent()->OnEndpointChanged(
|
214
|
+
discovery_mechanism_->index(), std::move(update));
|
215
|
+
}
|
216
|
+
void OnErrorHelper(grpc_error_handle error) {
|
217
|
+
discovery_mechanism_->parent()->OnError(discovery_mechanism_->index(),
|
218
|
+
error);
|
219
|
+
}
|
220
|
+
void OnResourceDoesNotExistHelper() {
|
221
|
+
discovery_mechanism_->parent()->OnResourceDoesNotExist(
|
222
|
+
discovery_mechanism_->index());
|
223
|
+
}
|
211
224
|
RefCountedPtr<EdsDiscoveryMechanism> discovery_mechanism_;
|
212
225
|
};
|
213
226
|
|
227
|
+
// This is necessary only because of a bug in msvc where nested class
|
228
|
+
// cannot access protected member in base class.
|
229
|
+
friend class EndpointWatcher;
|
230
|
+
|
214
231
|
absl::string_view GetEdsResourceName() const {
|
215
232
|
if (!parent()->is_xds_uri_) return parent()->server_name_;
|
216
233
|
if (!parent()
|
@@ -403,7 +420,7 @@ void XdsClusterResolverLb::EdsDiscoveryMechanism::Start() {
|
|
403
420
|
":%p starting xds watch for %s",
|
404
421
|
parent(), index(), this, std::string(GetEdsResourceName()).c_str());
|
405
422
|
}
|
406
|
-
auto watcher =
|
423
|
+
auto watcher = MakeRefCounted<EndpointWatcher>(
|
407
424
|
Ref(DEBUG_LOCATION, "EdsDiscoveryMechanism"));
|
408
425
|
watcher_ = watcher.get();
|
409
426
|
parent()->xds_client_->WatchEndpointData(GetEdsResourceName(),
|
@@ -422,66 +439,6 @@ void XdsClusterResolverLb::EdsDiscoveryMechanism::Orphan() {
|
|
422
439
|
Unref();
|
423
440
|
}
|
424
441
|
|
425
|
-
//
|
426
|
-
// XdsClusterResolverLb::EndpointWatcher::Notifier
|
427
|
-
//
|
428
|
-
|
429
|
-
XdsClusterResolverLb::EdsDiscoveryMechanism::EndpointWatcher::Notifier::
|
430
|
-
Notifier(RefCountedPtr<XdsClusterResolverLb::EdsDiscoveryMechanism>
|
431
|
-
discovery_mechanism,
|
432
|
-
XdsApi::EdsUpdate update)
|
433
|
-
: discovery_mechanism_(std::move(discovery_mechanism)),
|
434
|
-
update_(std::move(update)),
|
435
|
-
type_(kUpdate) {
|
436
|
-
GRPC_CLOSURE_INIT(&closure_, &RunInExecCtx, this, nullptr);
|
437
|
-
ExecCtx::Run(DEBUG_LOCATION, &closure_, GRPC_ERROR_NONE);
|
438
|
-
}
|
439
|
-
|
440
|
-
XdsClusterResolverLb::EdsDiscoveryMechanism::EndpointWatcher::Notifier::
|
441
|
-
Notifier(RefCountedPtr<XdsClusterResolverLb::EdsDiscoveryMechanism>
|
442
|
-
discovery_mechanism,
|
443
|
-
grpc_error_handle error)
|
444
|
-
: discovery_mechanism_(std::move(discovery_mechanism)), type_(kError) {
|
445
|
-
GRPC_CLOSURE_INIT(&closure_, &RunInExecCtx, this, nullptr);
|
446
|
-
ExecCtx::Run(DEBUG_LOCATION, &closure_, error);
|
447
|
-
}
|
448
|
-
|
449
|
-
XdsClusterResolverLb::EdsDiscoveryMechanism::EndpointWatcher::Notifier::
|
450
|
-
Notifier(RefCountedPtr<XdsClusterResolverLb::EdsDiscoveryMechanism>
|
451
|
-
discovery_mechanism)
|
452
|
-
: discovery_mechanism_(std::move(discovery_mechanism)),
|
453
|
-
type_(kDoesNotExist) {
|
454
|
-
GRPC_CLOSURE_INIT(&closure_, &RunInExecCtx, this, nullptr);
|
455
|
-
ExecCtx::Run(DEBUG_LOCATION, &closure_, GRPC_ERROR_NONE);
|
456
|
-
}
|
457
|
-
|
458
|
-
void XdsClusterResolverLb::EdsDiscoveryMechanism::EndpointWatcher::Notifier::
|
459
|
-
RunInExecCtx(void* arg, grpc_error_handle error) {
|
460
|
-
Notifier* self = static_cast<Notifier*>(arg);
|
461
|
-
(void)GRPC_ERROR_REF(error);
|
462
|
-
self->discovery_mechanism_->parent()->work_serializer()->Run(
|
463
|
-
[self, error]() { self->RunInWorkSerializer(error); }, DEBUG_LOCATION);
|
464
|
-
}
|
465
|
-
|
466
|
-
void XdsClusterResolverLb::EdsDiscoveryMechanism::EndpointWatcher::Notifier::
|
467
|
-
RunInWorkSerializer(grpc_error_handle error) {
|
468
|
-
switch (type_) {
|
469
|
-
case kUpdate:
|
470
|
-
discovery_mechanism_->parent()->OnEndpointChanged(
|
471
|
-
discovery_mechanism_->index(), std::move(update_));
|
472
|
-
break;
|
473
|
-
case kError:
|
474
|
-
discovery_mechanism_->parent()->OnError(discovery_mechanism_->index(),
|
475
|
-
error);
|
476
|
-
break;
|
477
|
-
case kDoesNotExist:
|
478
|
-
discovery_mechanism_->parent()->OnResourceDoesNotExist(
|
479
|
-
discovery_mechanism_->index());
|
480
|
-
break;
|
481
|
-
};
|
482
|
-
delete this;
|
483
|
-
}
|
484
|
-
|
485
442
|
//
|
486
443
|
// XdsClusterResolverLb::LogicalDNSDiscoveryMechanism
|
487
444
|
//
|
@@ -638,14 +595,13 @@ void XdsClusterResolverLb::UpdateLocked(UpdateArgs args) {
|
|
638
595
|
DiscoveryMechanismEntry entry;
|
639
596
|
if (config.type == XdsClusterResolverLbConfig::DiscoveryMechanism::
|
640
597
|
DiscoveryMechanismType::EDS) {
|
641
|
-
entry.discovery_mechanism =
|
642
|
-
|
643
|
-
|
644
|
-
discovery_mechanisms_.size());
|
598
|
+
entry.discovery_mechanism = MakeOrphanable<EdsDiscoveryMechanism>(
|
599
|
+
Ref(DEBUG_LOCATION, "EdsDiscoveryMechanism"),
|
600
|
+
discovery_mechanisms_.size());
|
645
601
|
} else if (config.type == XdsClusterResolverLbConfig::DiscoveryMechanism::
|
646
602
|
DiscoveryMechanismType::LOGICAL_DNS) {
|
647
603
|
entry.discovery_mechanism =
|
648
|
-
|
604
|
+
MakeOrphanable<LogicalDNSDiscoveryMechanism>(
|
649
605
|
Ref(DEBUG_LOCATION, "LogicalDNSDiscoveryMechanism"),
|
650
606
|
discovery_mechanisms_.size());
|
651
607
|
} else {
|
@@ -1,20 +1,18 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
*
|
17
|
-
*/
|
1
|
+
//
|
2
|
+
// Copyright 2015 gRPC authors.
|
3
|
+
//
|
4
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
// you may not use this file except in compliance with the License.
|
6
|
+
// You may obtain a copy of the License at
|
7
|
+
//
|
8
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
//
|
10
|
+
// Unless required by applicable law or agreed to in writing, software
|
11
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
// See the License for the specific language governing permissions and
|
14
|
+
// limitations under the License.
|
15
|
+
//
|
18
16
|
|
19
17
|
#ifndef GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_H
|
20
18
|
#define GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_H
|
@@ -81,26 +79,6 @@ extern DebugOnlyTraceFlag grpc_trace_lb_policy_refcount;
|
|
81
79
|
// interested_parties() hooks from the API.
|
82
80
|
class LoadBalancingPolicy : public InternallyRefCounted<LoadBalancingPolicy> {
|
83
81
|
public:
|
84
|
-
// Represents backend metrics reported by the backend to the client.
|
85
|
-
struct BackendMetricData {
|
86
|
-
/// CPU utilization expressed as a fraction of available CPU resources.
|
87
|
-
double cpu_utilization;
|
88
|
-
/// Memory utilization expressed as a fraction of available memory
|
89
|
-
/// resources.
|
90
|
-
double mem_utilization;
|
91
|
-
/// Total requests per second being served by the backend. This
|
92
|
-
/// should include all services that a backend is responsible for.
|
93
|
-
uint64_t requests_per_second;
|
94
|
-
/// Application-specific requests cost metrics. Metric names are
|
95
|
-
/// determined by the application. Each value is an absolute cost
|
96
|
-
/// (e.g. 3487 bytes of storage) associated with the request.
|
97
|
-
std::map<absl::string_view, double> request_cost;
|
98
|
-
/// Application-specific resource utilization metrics. Metric names
|
99
|
-
/// are determined by the application. Each value is expressed as a
|
100
|
-
/// fraction of total resources available.
|
101
|
-
std::map<absl::string_view, double> utilization;
|
102
|
-
};
|
103
|
-
|
104
82
|
/// Interface for accessing per-call state.
|
105
83
|
/// Implemented by the client channel and used by the SubchannelPicker.
|
106
84
|
class CallState {
|
@@ -114,13 +92,6 @@ class LoadBalancingPolicy : public InternallyRefCounted<LoadBalancingPolicy> {
|
|
114
92
|
/// for allocations that need to be made on a per-call basis.
|
115
93
|
virtual void* Alloc(size_t size) = 0;
|
116
94
|
|
117
|
-
/// Returns the backend metric data returned by the server for the call,
|
118
|
-
/// or null if no backend metric data was returned.
|
119
|
-
// TODO(roth): Move this out of CallState, since it should not be
|
120
|
-
// accessible to the picker, only to the recv_trailing_metadata_ready
|
121
|
-
// callback. It should instead be in its own interface.
|
122
|
-
virtual const BackendMetricData* GetBackendMetricData() = 0;
|
123
|
-
|
124
95
|
/// EXPERIMENTAL API.
|
125
96
|
/// Returns the value of the call attribute \a key.
|
126
97
|
/// Keys are static strings, so an attribute can be accessed by an LB
|
@@ -172,6 +143,59 @@ class LoadBalancingPolicy : public InternallyRefCounted<LoadBalancingPolicy> {
|
|
172
143
|
CallState* call_state;
|
173
144
|
};
|
174
145
|
|
146
|
+
/// Interface for accessing backend metric data.
|
147
|
+
/// Implemented by the client channel and used by
|
148
|
+
/// SubchannelCallTrackerInterface.
|
149
|
+
class BackendMetricAccessor {
|
150
|
+
public:
|
151
|
+
// Represents backend metrics reported by the backend to the client.
|
152
|
+
struct BackendMetricData {
|
153
|
+
/// CPU utilization expressed as a fraction of available CPU resources.
|
154
|
+
double cpu_utilization;
|
155
|
+
/// Memory utilization expressed as a fraction of available memory
|
156
|
+
/// resources.
|
157
|
+
double mem_utilization;
|
158
|
+
/// Total requests per second being served by the backend. This
|
159
|
+
/// should include all services that a backend is responsible for.
|
160
|
+
uint64_t requests_per_second;
|
161
|
+
/// Application-specific requests cost metrics. Metric names are
|
162
|
+
/// determined by the application. Each value is an absolute cost
|
163
|
+
/// (e.g. 3487 bytes of storage) associated with the request.
|
164
|
+
std::map<absl::string_view, double> request_cost;
|
165
|
+
/// Application-specific resource utilization metrics. Metric names
|
166
|
+
/// are determined by the application. Each value is expressed as a
|
167
|
+
/// fraction of total resources available.
|
168
|
+
std::map<absl::string_view, double> utilization;
|
169
|
+
};
|
170
|
+
|
171
|
+
virtual ~BackendMetricAccessor() = default;
|
172
|
+
|
173
|
+
/// Returns the backend metric data returned by the server for the call,
|
174
|
+
/// or null if no backend metric data was returned.
|
175
|
+
virtual const BackendMetricData* GetBackendMetricData() = 0;
|
176
|
+
};
|
177
|
+
|
178
|
+
/// Interface for tracking subchannel calls.
|
179
|
+
/// Implemented by LB policy and used by the channel.
|
180
|
+
class SubchannelCallTrackerInterface {
|
181
|
+
public:
|
182
|
+
virtual ~SubchannelCallTrackerInterface() = default;
|
183
|
+
|
184
|
+
/// Called when a subchannel call is started after an LB pick.
|
185
|
+
virtual void Start() = 0;
|
186
|
+
|
187
|
+
/// Called when a subchannel call is completed.
|
188
|
+
/// The metadata may be modified by the implementation. However, the
|
189
|
+
/// implementation does not take ownership, so any data that needs to be
|
190
|
+
/// used after returning must be copied.
|
191
|
+
struct FinishArgs {
|
192
|
+
absl::Status status;
|
193
|
+
MetadataInterface* trailing_metadata;
|
194
|
+
BackendMetricAccessor* backend_metric_accessor;
|
195
|
+
};
|
196
|
+
virtual void Finish(FinishArgs args) = 0;
|
197
|
+
};
|
198
|
+
|
175
199
|
/// The result of picking a subchannel for a call.
|
176
200
|
struct PickResult {
|
177
201
|
/// A successful pick.
|
@@ -179,25 +203,17 @@ class LoadBalancingPolicy : public InternallyRefCounted<LoadBalancingPolicy> {
|
|
179
203
|
/// The subchannel to be used for the call. Must be non-null.
|
180
204
|
RefCountedPtr<SubchannelInterface> subchannel;
|
181
205
|
|
182
|
-
///
|
183
|
-
///
|
184
|
-
///
|
185
|
-
///
|
186
|
-
|
187
|
-
/// returning must be copied.
|
188
|
-
/// The call state can be used to obtain backend metric data.
|
189
|
-
// TODO(roth): The arguments to this callback should be moved into a
|
190
|
-
// struct, so that we can later add new fields without breaking
|
191
|
-
// existing implementations.
|
192
|
-
std::function<void(absl::Status, MetadataInterface*, CallState*)>
|
193
|
-
recv_trailing_metadata_ready;
|
206
|
+
/// Optionally set by the LB policy when it wishes to be notified
|
207
|
+
/// about the resulting subchannel call.
|
208
|
+
/// Note that if the pick is abandoned by the channel, this may never
|
209
|
+
/// be used.
|
210
|
+
std::unique_ptr<SubchannelCallTrackerInterface> subchannel_call_tracker;
|
194
211
|
|
195
212
|
explicit Complete(
|
196
213
|
RefCountedPtr<SubchannelInterface> sc,
|
197
|
-
std::
|
198
|
-
nullptr)
|
214
|
+
std::unique_ptr<SubchannelCallTrackerInterface> tracker = nullptr)
|
199
215
|
: subchannel(std::move(sc)),
|
200
|
-
|
216
|
+
subchannel_call_tracker(std::move(tracker)) {}
|
201
217
|
};
|
202
218
|
|
203
219
|
/// Pick cannot be completed until something changes on the control
|
@@ -398,10 +398,10 @@ void AresDnsResolver::MaybeStartResolvingLocked() {
|
|
398
398
|
const grpc_millis earliest_next_resolution =
|
399
399
|
last_resolution_timestamp_ + min_time_between_resolutions_;
|
400
400
|
const grpc_millis ms_until_next_resolution =
|
401
|
-
earliest_next_resolution -
|
401
|
+
earliest_next_resolution - ExecCtx::Get()->Now();
|
402
402
|
if (ms_until_next_resolution > 0) {
|
403
403
|
const grpc_millis last_resolution_ago =
|
404
|
-
|
404
|
+
ExecCtx::Get()->Now() - last_resolution_timestamp_;
|
405
405
|
GRPC_CARES_TRACE_LOG(
|
406
406
|
"resolver:%p In cooldown from last resolution (from %" PRId64
|
407
407
|
" ms ago). Will resolve again in %" PRId64 " ms",
|
@@ -434,7 +434,7 @@ void AresDnsResolver::StartResolvingLocked() {
|
|
434
434
|
enable_srv_queries_ ? &balancer_addresses_ : nullptr,
|
435
435
|
request_service_config_ ? &service_config_json_ : nullptr,
|
436
436
|
query_timeout_ms_, work_serializer_);
|
437
|
-
last_resolution_timestamp_ =
|
437
|
+
last_resolution_timestamp_ = ExecCtx::Get()->Now();
|
438
438
|
GRPC_CARES_TRACE_LOG("resolver:%p Started resolving. pending_request_:%p",
|
439
439
|
this, pending_request_);
|
440
440
|
}
|
@@ -60,13 +60,13 @@ class GrpcPolledFdFactory {
|
|
60
60
|
/* Creates a new wrapped fd for the current platform */
|
61
61
|
virtual GrpcPolledFd* NewGrpcPolledFdLocked(
|
62
62
|
ares_socket_t as, grpc_pollset_set* driver_pollset_set,
|
63
|
-
std::shared_ptr<
|
63
|
+
std::shared_ptr<WorkSerializer> work_serializer) = 0;
|
64
64
|
/* Optionally configures the ares channel after creation */
|
65
65
|
virtual void ConfigureAresChannelLocked(ares_channel channel) = 0;
|
66
66
|
};
|
67
67
|
|
68
68
|
std::unique_ptr<GrpcPolledFdFactory> NewGrpcPolledFdFactory(
|
69
|
-
std::shared_ptr<
|
69
|
+
std::shared_ptr<WorkSerializer> work_serializer);
|
70
70
|
|
71
71
|
} // namespace grpc_core
|
72
72
|
|
@@ -133,12 +133,12 @@ class GrpcPolledFdWindows {
|
|
133
133
|
}
|
134
134
|
|
135
135
|
void ScheduleAndNullReadClosure(grpc_error_handle error) {
|
136
|
-
|
136
|
+
ExecCtx::Run(DEBUG_LOCATION, read_closure_, error);
|
137
137
|
read_closure_ = nullptr;
|
138
138
|
}
|
139
139
|
|
140
140
|
void ScheduleAndNullWriteClosure(grpc_error_handle error) {
|
141
|
-
|
141
|
+
ExecCtx::Run(DEBUG_LOCATION, write_closure_, error);
|
142
142
|
write_closure_ = nullptr;
|
143
143
|
}
|
144
144
|
|
@@ -150,8 +150,7 @@ class GrpcPolledFdWindows {
|
|
150
150
|
GPR_ASSERT(!read_buf_has_data_);
|
151
151
|
read_buf_ = GRPC_SLICE_MALLOC(4192);
|
152
152
|
if (connect_done_) {
|
153
|
-
|
154
|
-
DEBUG_LOCATION);
|
153
|
+
ContinueRegisterForOnReadableLocked();
|
155
154
|
} else {
|
156
155
|
GPR_ASSERT(pending_continue_register_for_on_readable_locked_ == false);
|
157
156
|
pending_continue_register_for_on_readable_locked_ = true;
|
@@ -160,7 +159,7 @@ class GrpcPolledFdWindows {
|
|
160
159
|
|
161
160
|
void ContinueRegisterForOnReadableLocked() {
|
162
161
|
GRPC_CARES_TRACE_LOG(
|
163
|
-
"fd:|%s|
|
162
|
+
"fd:|%s| ContinueRegisterForOnReadableLocked "
|
164
163
|
"wsa_connect_error_:%d",
|
165
164
|
GetName(), wsa_connect_error_);
|
166
165
|
GPR_ASSERT(connect_done_);
|
@@ -207,8 +206,7 @@ class GrpcPolledFdWindows {
|
|
207
206
|
GPR_ASSERT(write_closure_ == nullptr);
|
208
207
|
write_closure_ = write_closure;
|
209
208
|
if (connect_done_) {
|
210
|
-
|
211
|
-
[this]() { ContinueRegisterForOnWriteableLocked(); }, DEBUG_LOCATION);
|
209
|
+
ContinueRegisterForOnWriteableLocked();
|
212
210
|
} else {
|
213
211
|
GPR_ASSERT(pending_continue_register_for_on_writeable_locked_ == false);
|
214
212
|
pending_continue_register_for_on_writeable_locked_ = true;
|
@@ -217,7 +215,7 @@ class GrpcPolledFdWindows {
|
|
217
215
|
|
218
216
|
void ContinueRegisterForOnWriteableLocked() {
|
219
217
|
GRPC_CARES_TRACE_LOG(
|
220
|
-
"fd:|%s|
|
218
|
+
"fd:|%s| ContinueRegisterForOnWriteableLocked "
|
221
219
|
"wsa_connect_error_:%d",
|
222
220
|
GetName(), wsa_connect_error_);
|
223
221
|
GPR_ASSERT(connect_done_);
|
@@ -466,12 +464,10 @@ class GrpcPolledFdWindows {
|
|
466
464
|
wsa_connect_error_ = WSA_OPERATION_ABORTED;
|
467
465
|
}
|
468
466
|
if (pending_continue_register_for_on_readable_locked_) {
|
469
|
-
|
470
|
-
DEBUG_LOCATION);
|
467
|
+
ContinueRegisterForOnReadableLocked();
|
471
468
|
}
|
472
469
|
if (pending_continue_register_for_on_writeable_locked_) {
|
473
|
-
|
474
|
-
[this]() { ContinueRegisterForOnWriteableLocked(); }, DEBUG_LOCATION);
|
470
|
+
ContinueRegisterForOnWriteableLocked();
|
475
471
|
}
|
476
472
|
GRPC_ERROR_UNREF(error);
|
477
473
|
}
|
@@ -239,10 +239,10 @@ void NativeDnsResolver::MaybeStartResolvingLocked() {
|
|
239
239
|
const grpc_millis earliest_next_resolution =
|
240
240
|
last_resolution_timestamp_ + min_time_between_resolutions_;
|
241
241
|
const grpc_millis ms_until_next_resolution =
|
242
|
-
earliest_next_resolution -
|
242
|
+
earliest_next_resolution - ExecCtx::Get()->Now();
|
243
243
|
if (ms_until_next_resolution > 0) {
|
244
244
|
const grpc_millis last_resolution_ago =
|
245
|
-
|
245
|
+
ExecCtx::Get()->Now() - last_resolution_timestamp_;
|
246
246
|
gpr_log(GPR_DEBUG,
|
247
247
|
"In cooldown from last resolution (from %" PRId64
|
248
248
|
" ms ago). Will resolve again in %" PRId64 " ms",
|
@@ -277,7 +277,7 @@ void NativeDnsResolver::StartResolvingLocked() {
|
|
277
277
|
grpc_schedule_on_exec_ctx);
|
278
278
|
grpc_resolve_address(name_to_resolve_.c_str(), kDefaultSecurePort,
|
279
279
|
interested_parties_, &on_resolved_, &addresses_);
|
280
|
-
last_resolution_timestamp_ =
|
280
|
+
last_resolution_timestamp_ = ExecCtx::Get()->Now();
|
281
281
|
}
|
282
282
|
|
283
283
|
//
|