grpc 1.31.1 → 1.32.0.pre1
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 +595 -15723
- data/include/grpc/grpc_security.h +31 -14
- data/include/grpc/impl/codegen/README.md +22 -0
- data/include/grpc/impl/codegen/port_platform.h +6 -1
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +64 -20
- data/src/core/ext/filters/client_channel/client_channel.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +0 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +6 -1
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +2 -3
- data/src/core/ext/filters/client_channel/lb_policy.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +6 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +20 -13
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +0 -13
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +0 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -37
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +19 -13
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +29 -10
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +5 -4
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +20 -9
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +18 -12
- data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +22 -14
- data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +18 -9
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +54 -56
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +363 -14
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +0 -1
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +5 -4
- data/src/core/ext/filters/client_channel/server_address.cc +40 -7
- data/src/core/ext/filters/client_channel/server_address.h +42 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +64 -23
- data/src/core/ext/filters/client_channel/subchannel.h +16 -4
- data/src/core/ext/filters/max_age/max_age_filter.cc +2 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +87 -31
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +18 -1
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +10 -35
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +19 -25
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -1
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +6 -6
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -2
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +239 -277
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +5 -1
- data/src/core/ext/transport/chttp2/transport/parsing.cc +1 -28
- data/src/core/ext/transport/chttp2/transport/writing.cc +6 -5
- data/src/core/ext/transport/inproc/inproc_transport.cc +12 -12
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +224 -0
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +700 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +226 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +380 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +1378 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/cluster → config/cluster/v3}/filter.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +69 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/cluster → config/cluster/v3}/outlier_detection.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +323 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +112 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +334 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/backoff.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +79 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +309 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +869 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +96 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +328 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +71 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +195 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +634 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +170 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +684 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/http_uri.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +80 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +152 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +536 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +28 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +58 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/socket_option.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +88 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +91 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +220 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +91 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +273 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +112 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +332 -0
- data/src/core/ext/upb-generated/envoy/config/listener/{v2 → v3}/api_listener.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +65 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +108 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +401 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +138 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +490 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +41 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +94 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +174 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +599 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +204 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +773 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2855 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +59 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +135 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +50 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +108 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +312 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1125 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +20 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +34 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +111 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +401 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +72 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +198 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +105 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +388 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/cluster/v3}/cds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/{v2 → v3}/ads.upb.c +5 -4
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +129 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +386 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/endpoint/v3}/eds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/listener/v3}/lds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +55 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +136 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/route/v3}/rds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/route/v3}/srds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +114 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +77 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +71 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +64 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +145 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +127 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +188 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +88 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +258 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +90 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +250 -0
- data/src/core/ext/upb-generated/envoy/type/{http.upb.c → v3/http.upb.c} +2 -2
- data/src/core/ext/upb-generated/envoy/type/{http.upb.h → v3/http.upb.h} +8 -8
- data/src/core/ext/upb-generated/envoy/type/{percent.upb.c → v3/percent.upb.c} +9 -8
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +86 -0
- data/src/core/ext/upb-generated/envoy/type/{range.upb.c → v3/range.upb.c} +12 -11
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +111 -0
- data/src/core/ext/upb-generated/envoy/type/{semantic_version.upb.c → v3/semantic_version.upb.c} +6 -5
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +61 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +234 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +759 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +36 -36
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +27 -0
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +53 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +11 -11
- data/src/core/ext/upb-generated/validate/validate.upb.h +1 -1
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_api.cc +1045 -767
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_api.h +114 -99
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_bootstrap.cc +44 -2
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_bootstrap.h +8 -3
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_channel.h +4 -4
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_channel_args.h +3 -3
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_channel_secure.cc +2 -5
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client.cc +85 -417
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client.h +12 -45
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.cc +2 -2
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.h +3 -3
- data/src/core/lib/channel/channelz.cc +14 -15
- data/src/core/lib/channel/channelz.h +1 -1
- data/src/core/lib/channel/channelz_registry.cc +3 -1
- data/src/core/lib/gpr/sync_posix.cc +2 -8
- data/src/core/lib/iomgr/endpoint.cc +5 -1
- data/src/core/lib/iomgr/endpoint.h +7 -3
- data/src/core/lib/iomgr/endpoint_cfstream.cc +32 -11
- data/src/core/lib/iomgr/ev_posix.cc +0 -2
- data/src/core/lib/iomgr/iomgr.cc +0 -10
- data/src/core/lib/iomgr/iomgr.h +0 -10
- data/src/core/{ext/filters/client_channel → lib/iomgr}/parse_address.cc +1 -1
- data/src/core/{ext/filters/client_channel → lib/iomgr}/parse_address.h +3 -3
- data/src/core/lib/iomgr/sockaddr_utils.cc +2 -1
- data/src/core/lib/iomgr/sockaddr_utils.h +2 -1
- data/src/core/lib/iomgr/tcp_custom.cc +32 -16
- data/src/core/lib/iomgr/tcp_posix.cc +31 -13
- data/src/core/lib/iomgr/tcp_windows.cc +26 -10
- data/src/core/lib/security/authorization/authorization_engine.cc +177 -0
- data/src/core/lib/security/authorization/authorization_engine.h +84 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +153 -0
- data/src/core/lib/security/authorization/evaluate_args.h +59 -0
- data/src/core/lib/security/authorization/mock_cel/activation.h +57 -0
- data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +42 -0
- data/src/core/lib/security/authorization/mock_cel/cel_expression.h +68 -0
- data/src/core/lib/security/authorization/mock_cel/cel_value.h +93 -0
- data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +67 -0
- data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +56 -0
- data/src/core/lib/security/authorization/mock_cel/statusor.h +50 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +56 -38
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +1 -2
- data/src/core/lib/security/transport/secure_endpoint.cc +7 -1
- data/src/core/lib/surface/call.cc +12 -12
- data/src/core/lib/surface/call.h +2 -1
- data/src/core/lib/surface/channel.cc +28 -20
- data/src/core/lib/surface/channel.h +12 -2
- data/src/core/lib/surface/completion_queue.cc +10 -272
- data/src/core/lib/surface/completion_queue.h +0 -8
- data/src/core/lib/surface/init.cc +1 -3
- data/src/core/lib/surface/server.cc +1066 -1244
- data/src/core/lib/surface/server.h +363 -87
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/authority_override.cc +38 -0
- data/src/core/lib/transport/authority_override.h +32 -0
- data/src/core/lib/transport/connectivity_state.cc +18 -13
- data/src/core/lib/transport/connectivity_state.h +18 -6
- data/src/core/lib/transport/error_utils.cc +13 -0
- data/src/core/lib/transport/error_utils.h +6 -0
- data/src/core/lib/transport/static_metadata.cc +295 -276
- data/src/core/lib/transport/static_metadata.h +80 -73
- data/src/core/lib/transport/transport.h +7 -0
- data/src/core/lib/uri/uri_parser.cc +23 -21
- data/src/core/lib/uri/uri_parser.h +3 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +22 -0
- data/src/core/tsi/ssl_transport_security.cc +3 -9
- data/src/ruby/ext/grpc/rb_channel_credentials.c +9 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +4 -4
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/channel_credentials_spec.rb +10 -0
- data/src/ruby/spec/generic/active_call_spec.rb +19 -8
- data/third_party/abseil-cpp/absl/algorithm/container.h +1727 -0
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +161 -0
- data/third_party/abseil-cpp/absl/base/internal/exponential_biased.cc +93 -0
- data/third_party/abseil-cpp/absl/base/internal/exponential_biased.h +130 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +620 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +126 -0
- data/third_party/abseil-cpp/absl/container/fixed_array.h +515 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +503 -0
- data/third_party/abseil-cpp/absl/container/internal/common.h +202 -0
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +440 -0
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +146 -0
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +191 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +85 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +269 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +297 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +30 -0
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +49 -0
- data/third_party/abseil-cpp/absl/container/internal/layout.h +741 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +48 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1882 -0
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +138 -0
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h +32 -0
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +1895 -0
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +71 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +382 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +134 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +192 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +125 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +70 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +99 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +248 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +24 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +85 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +346 -0
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +128 -0
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +194 -0
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.h +158 -0
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +140 -0
- data/third_party/abseil-cpp/absl/debugging/stacktrace.h +231 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +25 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.h +99 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +1480 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +40 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +81 -0
- data/third_party/abseil-cpp/absl/functional/function_ref.h +139 -0
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +106 -0
- data/third_party/abseil-cpp/absl/hash/hash.h +324 -0
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +346 -0
- data/third_party/abseil-cpp/absl/hash/internal/city.h +96 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +55 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +988 -0
- data/third_party/abseil-cpp/absl/status/status.cc +447 -0
- data/third_party/abseil-cpp/absl/status/status.h +428 -0
- data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +43 -0
- data/third_party/abseil-cpp/absl/status/status_payload_printer.h +51 -0
- data/third_party/abseil-cpp/absl/strings/cord.cc +2019 -0
- data/third_party/abseil-cpp/absl/strings/cord.h +1121 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +151 -0
- data/third_party/abseil-cpp/absl/synchronization/barrier.cc +52 -0
- data/third_party/abseil-cpp/absl/synchronization/barrier.h +79 -0
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +57 -0
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +99 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +140 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +60 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +697 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +141 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +155 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +261 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +106 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +115 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +484 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +159 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +2728 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +1056 -0
- data/third_party/abseil-cpp/absl/synchronization/notification.cc +78 -0
- data/third_party/abseil-cpp/absl/synchronization/notification.h +123 -0
- data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +64 -0
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +82 -0
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1646 -0
- data/third_party/abseil-cpp/absl/types/variant.h +861 -0
- data/third_party/boringssl-with-bazel/err_data.c +263 -257
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +456 -0
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +192 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +20 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +52 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +39 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +2 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +11 -0
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +4 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +3 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +10 -0
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +34 -9
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +5 -0
- data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +5 -3
- data/third_party/upb/upb/decode.c +64 -15
- data/third_party/upb/upb/encode.c +2 -2
- data/third_party/upb/upb/msg.h +2 -2
- data/third_party/upb/upb/port_def.inc +1 -1
- data/third_party/upb/upb/table.c +0 -11
- data/third_party/upb/upb/table.int.h +0 -9
- data/third_party/upb/upb/upb.c +16 -14
- data/third_party/upb/upb/upb.h +26 -0
- data/third_party/upb/upb/upb.hpp +2 -0
- metadata +257 -155
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +0 -21
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +0 -34
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +0 -114
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +0 -429
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +0 -72
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +0 -198
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +0 -105
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +0 -388
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +0 -52
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +0 -403
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +0 -1453
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +0 -74
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +0 -226
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +0 -69
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +0 -323
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +0 -112
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +0 -334
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +0 -79
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +0 -313
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +0 -891
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +0 -96
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +0 -328
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +0 -34
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +0 -71
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +0 -197
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +0 -649
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +0 -172
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +0 -693
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +0 -80
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +0 -152
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +0 -536
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +0 -88
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +0 -129
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +0 -386
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +0 -52
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +0 -92
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +0 -224
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +0 -18
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +0 -32
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +0 -91
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +0 -273
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +0 -112
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +0 -332
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +0 -52
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +0 -109
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +0 -415
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +0 -18
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +0 -32
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +0 -145
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +0 -538
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +0 -43
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +0 -111
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +0 -52
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +0 -63
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +0 -204
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +0 -18
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +0 -32
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +0 -815
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +0 -2984
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +0 -59
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +0 -135
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +0 -52
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +0 -228
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +0 -732
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +0 -316
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +0 -1167
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +0 -65
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +0 -51
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +0 -125
- data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h +0 -49
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +0 -54
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +0 -136
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +0 -63
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +0 -145
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +0 -53
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +0 -133
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +0 -88
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +0 -258
- data/src/core/ext/upb-generated/envoy/type/percent.upb.h +0 -86
- data/src/core/ext/upb-generated/envoy/type/range.upb.h +0 -111
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +0 -61
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +0 -89
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +0 -250
- data/src/core/lib/security/transport/target_authority_table.cc +0 -75
- data/src/core/lib/security/transport/target_authority_table.h +0 -40
- data/src/core/lib/slice/slice_hash_table.h +0 -199
- data/src/core/lib/slice/slice_weak_hash_table.h +0 -102
@@ -23,8 +23,6 @@
|
|
23
23
|
|
24
24
|
// Channel arg key for the list of balancer addresses.
|
25
25
|
#define GRPC_ARG_GRPCLB_BALANCER_ADDRESSES "grpc.grpclb_balancer_addresses"
|
26
|
-
// Channel arg key for a string indicating an address's balancer name.
|
27
|
-
#define GRPC_ARG_ADDRESS_BALANCER_NAME "grpc.address_balancer_name"
|
28
26
|
|
29
27
|
namespace grpc_core {
|
30
28
|
|
@@ -75,15 +73,4 @@ const ServerAddressList* FindGrpclbBalancerAddressesInChannelArgs(
|
|
75
73
|
&args, const_cast<char*>(GRPC_ARG_GRPCLB_BALANCER_ADDRESSES));
|
76
74
|
}
|
77
75
|
|
78
|
-
grpc_arg CreateGrpclbBalancerNameArg(const char* balancer_name) {
|
79
|
-
return grpc_channel_arg_string_create(
|
80
|
-
const_cast<char*>(GRPC_ARG_ADDRESS_BALANCER_NAME),
|
81
|
-
const_cast<char*>(balancer_name));
|
82
|
-
}
|
83
|
-
|
84
|
-
const char* FindGrpclbBalancerNameInChannelArgs(const grpc_channel_args& args) {
|
85
|
-
return grpc_channel_args_find_string(
|
86
|
-
&args, const_cast<char*>(GRPC_ARG_ADDRESS_BALANCER_NAME));
|
87
|
-
}
|
88
|
-
|
89
76
|
} // namespace grpc_core
|
@@ -30,9 +30,6 @@ grpc_arg CreateGrpclbBalancerAddressesArg(
|
|
30
30
|
const ServerAddressList* FindGrpclbBalancerAddressesInChannelArgs(
|
31
31
|
const grpc_channel_args& args);
|
32
32
|
|
33
|
-
grpc_arg CreateGrpclbBalancerNameArg(const char* balancer_name);
|
34
|
-
const char* FindGrpclbBalancerNameInChannelArgs(const grpc_channel_args& args);
|
35
|
-
|
36
33
|
} // namespace grpc_core
|
37
34
|
|
38
35
|
#endif /* \
|
@@ -35,50 +35,14 @@
|
|
35
35
|
#include "src/core/lib/gpr/string.h"
|
36
36
|
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
37
37
|
#include "src/core/lib/security/credentials/credentials.h"
|
38
|
-
#include "src/core/lib/security/transport/target_authority_table.h"
|
39
38
|
#include "src/core/lib/slice/slice_internal.h"
|
40
39
|
|
41
40
|
namespace grpc_core {
|
42
41
|
|
43
|
-
namespace {
|
44
|
-
|
45
|
-
int BalancerNameCmp(const grpc_core::UniquePtr<char>& a,
|
46
|
-
const grpc_core::UniquePtr<char>& b) {
|
47
|
-
return strcmp(a.get(), b.get());
|
48
|
-
}
|
49
|
-
|
50
|
-
RefCountedPtr<TargetAuthorityTable> CreateTargetAuthorityTable(
|
51
|
-
const ServerAddressList& addresses) {
|
52
|
-
TargetAuthorityTable::Entry* target_authority_entries =
|
53
|
-
static_cast<TargetAuthorityTable::Entry*>(
|
54
|
-
gpr_zalloc(sizeof(*target_authority_entries) * addresses.size()));
|
55
|
-
for (size_t i = 0; i < addresses.size(); ++i) {
|
56
|
-
std::string addr_str =
|
57
|
-
grpc_sockaddr_to_string(&addresses[i].address(), true);
|
58
|
-
target_authority_entries[i].key =
|
59
|
-
grpc_slice_from_copied_string(addr_str.c_str());
|
60
|
-
const char* balancer_name =
|
61
|
-
FindGrpclbBalancerNameInChannelArgs(*addresses[i].args());
|
62
|
-
target_authority_entries[i].value.reset(gpr_strdup(balancer_name));
|
63
|
-
}
|
64
|
-
RefCountedPtr<TargetAuthorityTable> target_authority_table =
|
65
|
-
TargetAuthorityTable::Create(addresses.size(), target_authority_entries,
|
66
|
-
BalancerNameCmp);
|
67
|
-
gpr_free(target_authority_entries);
|
68
|
-
return target_authority_table;
|
69
|
-
}
|
70
|
-
|
71
|
-
} // namespace
|
72
|
-
|
73
42
|
grpc_channel_args* ModifyGrpclbBalancerChannelArgs(
|
74
43
|
const ServerAddressList& addresses, grpc_channel_args* args) {
|
75
44
|
absl::InlinedVector<const char*, 1> args_to_remove;
|
76
|
-
absl::InlinedVector<grpc_arg,
|
77
|
-
// Add arg for targets info table.
|
78
|
-
RefCountedPtr<TargetAuthorityTable> target_authority_table =
|
79
|
-
CreateTargetAuthorityTable(addresses);
|
80
|
-
args_to_add.emplace_back(
|
81
|
-
CreateTargetAuthorityTableChannelArg(target_authority_table.get()));
|
45
|
+
absl::InlinedVector<grpc_arg, 1> args_to_add;
|
82
46
|
// Substitute the channel credentials with a version without call
|
83
47
|
// credentials: the load balancer is not necessarily trusted to handle
|
84
48
|
// bearer token credentials.
|
@@ -30,6 +30,7 @@
|
|
30
30
|
#include "src/core/lib/gprpp/sync.h"
|
31
31
|
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
32
32
|
#include "src/core/lib/transport/connectivity_state.h"
|
33
|
+
#include "src/core/lib/transport/error_utils.h"
|
33
34
|
|
34
35
|
namespace grpc_core {
|
35
36
|
|
@@ -200,7 +201,7 @@ void PickFirst::AttemptToConnectUsingLatestUpdateArgsLocked() {
|
|
200
201
|
grpc_error_set_int(GRPC_ERROR_CREATE_FROM_STATIC_STRING("Empty update"),
|
201
202
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
202
203
|
channel_control_helper()->UpdateState(
|
203
|
-
GRPC_CHANNEL_TRANSIENT_FAILURE,
|
204
|
+
GRPC_CHANNEL_TRANSIENT_FAILURE, grpc_error_to_absl_status(error),
|
204
205
|
absl::make_unique<TransientFailurePicker>(error));
|
205
206
|
return;
|
206
207
|
}
|
@@ -318,12 +319,13 @@ void PickFirst::PickFirstSubchannelData::ProcessConnectivityChangeLocked(
|
|
318
319
|
"selected subchannel failed; switching to pending update"),
|
319
320
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
320
321
|
p->channel_control_helper()->UpdateState(
|
321
|
-
GRPC_CHANNEL_TRANSIENT_FAILURE,
|
322
|
+
GRPC_CHANNEL_TRANSIENT_FAILURE, grpc_error_to_absl_status(error),
|
322
323
|
absl::make_unique<TransientFailurePicker>(error));
|
323
324
|
} else {
|
324
325
|
p->channel_control_helper()->UpdateState(
|
325
|
-
GRPC_CHANNEL_CONNECTING, absl::
|
326
|
-
|
326
|
+
GRPC_CHANNEL_CONNECTING, absl::Status(),
|
327
|
+
absl::make_unique<QueuePicker>(
|
328
|
+
p->Ref(DEBUG_LOCATION, "QueuePicker")));
|
327
329
|
}
|
328
330
|
} else {
|
329
331
|
if (connectivity_state == GRPC_CHANNEL_TRANSIENT_FAILURE) {
|
@@ -338,20 +340,22 @@ void PickFirst::PickFirstSubchannelData::ProcessConnectivityChangeLocked(
|
|
338
340
|
p->selected_ = nullptr;
|
339
341
|
p->subchannel_list_.reset();
|
340
342
|
p->channel_control_helper()->UpdateState(
|
341
|
-
GRPC_CHANNEL_IDLE, absl::
|
342
|
-
|
343
|
+
GRPC_CHANNEL_IDLE, absl::Status(),
|
344
|
+
absl::make_unique<QueuePicker>(
|
345
|
+
p->Ref(DEBUG_LOCATION, "QueuePicker")));
|
343
346
|
} else {
|
344
347
|
// This is unlikely but can happen when a subchannel has been asked
|
345
348
|
// to reconnect by a different channel and this channel has dropped
|
346
349
|
// some connectivity state notifications.
|
347
350
|
if (connectivity_state == GRPC_CHANNEL_READY) {
|
348
351
|
p->channel_control_helper()->UpdateState(
|
349
|
-
GRPC_CHANNEL_READY,
|
352
|
+
GRPC_CHANNEL_READY, absl::Status(),
|
350
353
|
absl::make_unique<Picker>(subchannel()->Ref()));
|
351
354
|
} else { // CONNECTING
|
352
355
|
p->channel_control_helper()->UpdateState(
|
353
|
-
connectivity_state, absl::
|
354
|
-
|
356
|
+
connectivity_state, absl::Status(),
|
357
|
+
absl::make_unique<QueuePicker>(
|
358
|
+
p->Ref(DEBUG_LOCATION, "QueuePicker")));
|
355
359
|
}
|
356
360
|
}
|
357
361
|
}
|
@@ -394,7 +398,7 @@ void PickFirst::PickFirstSubchannelData::ProcessConnectivityChangeLocked(
|
|
394
398
|
"failed to connect to all addresses"),
|
395
399
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
396
400
|
p->channel_control_helper()->UpdateState(
|
397
|
-
GRPC_CHANNEL_TRANSIENT_FAILURE,
|
401
|
+
GRPC_CHANNEL_TRANSIENT_FAILURE, grpc_error_to_absl_status(error),
|
398
402
|
absl::make_unique<TransientFailurePicker>(error));
|
399
403
|
}
|
400
404
|
}
|
@@ -406,8 +410,9 @@ void PickFirst::PickFirstSubchannelData::ProcessConnectivityChangeLocked(
|
|
406
410
|
// Only update connectivity state in case 1.
|
407
411
|
if (subchannel_list() == p->subchannel_list_.get()) {
|
408
412
|
p->channel_control_helper()->UpdateState(
|
409
|
-
GRPC_CHANNEL_CONNECTING, absl::
|
410
|
-
|
413
|
+
GRPC_CHANNEL_CONNECTING, absl::Status(),
|
414
|
+
absl::make_unique<QueuePicker>(
|
415
|
+
p->Ref(DEBUG_LOCATION, "QueuePicker")));
|
411
416
|
}
|
412
417
|
break;
|
413
418
|
}
|
@@ -446,7 +451,8 @@ void PickFirst::PickFirstSubchannelData::ProcessUnselectedReadyLocked() {
|
|
446
451
|
}
|
447
452
|
p->selected_ = this;
|
448
453
|
p->channel_control_helper()->UpdateState(
|
449
|
-
GRPC_CHANNEL_READY, absl::
|
454
|
+
GRPC_CHANNEL_READY, absl::Status(),
|
455
|
+
absl::make_unique<Picker>(subchannel()->Ref()));
|
450
456
|
for (size_t i = 0; i < subchannel_list()->num_subchannels(); ++i) {
|
451
457
|
if (i != Index()) {
|
452
458
|
subchannel_list()->subchannel(i)->ShutdownLocked();
|
@@ -20,6 +20,7 @@
|
|
20
20
|
#include <limits.h>
|
21
21
|
|
22
22
|
#include "absl/strings/str_cat.h"
|
23
|
+
#include "absl/strings/str_format.h"
|
23
24
|
|
24
25
|
#include <grpc/grpc.h>
|
25
26
|
|
@@ -33,6 +34,7 @@
|
|
33
34
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
34
35
|
#include "src/core/lib/iomgr/timer.h"
|
35
36
|
#include "src/core/lib/iomgr/work_serializer.h"
|
37
|
+
#include "src/core/lib/transport/error_utils.h"
|
36
38
|
|
37
39
|
namespace grpc_core {
|
38
40
|
|
@@ -113,6 +115,11 @@ class PriorityLb : public LoadBalancingPolicy {
|
|
113
115
|
grpc_connectivity_state connectivity_state() const {
|
114
116
|
return connectivity_state_;
|
115
117
|
}
|
118
|
+
|
119
|
+
const absl::Status& connectivity_status() const {
|
120
|
+
return connectivity_status_;
|
121
|
+
}
|
122
|
+
|
116
123
|
bool failover_timer_callback_pending() const {
|
117
124
|
return failover_timer_callback_pending_;
|
118
125
|
}
|
@@ -150,6 +157,7 @@ class PriorityLb : public LoadBalancingPolicy {
|
|
150
157
|
RefCountedPtr<SubchannelInterface> CreateSubchannel(
|
151
158
|
const grpc_channel_args& args) override;
|
152
159
|
void UpdateState(grpc_connectivity_state state,
|
160
|
+
const absl::Status& status,
|
153
161
|
std::unique_ptr<SubchannelPicker> picker) override;
|
154
162
|
void RequestReresolution() override;
|
155
163
|
void AddTraceEvent(TraceSeverity severity,
|
@@ -164,7 +172,7 @@ class PriorityLb : public LoadBalancingPolicy {
|
|
164
172
|
const grpc_channel_args* args);
|
165
173
|
|
166
174
|
void OnConnectivityStateUpdateLocked(
|
167
|
-
grpc_connectivity_state state,
|
175
|
+
grpc_connectivity_state state, const absl::Status& status,
|
168
176
|
std::unique_ptr<SubchannelPicker> picker);
|
169
177
|
|
170
178
|
void StartFailoverTimerLocked();
|
@@ -180,6 +188,7 @@ class PriorityLb : public LoadBalancingPolicy {
|
|
180
188
|
OrphanablePtr<LoadBalancingPolicy> child_policy_;
|
181
189
|
|
182
190
|
grpc_connectivity_state connectivity_state_ = GRPC_CHANNEL_CONNECTING;
|
191
|
+
absl::Status connectivity_status_;
|
183
192
|
RefCountedPtr<RefCountedPicker> picker_wrapper_;
|
184
193
|
|
185
194
|
// States for delayed removal.
|
@@ -334,6 +343,7 @@ void PriorityLb::HandleChildConnectivityStateChangeLocked(
|
|
334
343
|
// If it's still READY or IDLE, we stick with this child, so pass
|
335
344
|
// the new picker up to our parent.
|
336
345
|
channel_control_helper()->UpdateState(child->connectivity_state(),
|
346
|
+
child->connectivity_status(),
|
337
347
|
child->GetPicker());
|
338
348
|
} else {
|
339
349
|
// If it's no longer READY or IDLE, we should stop using it.
|
@@ -380,6 +390,7 @@ void PriorityLb::HandleChildConnectivityStateChangeLocked(
|
|
380
390
|
// The current priority has returned a new picker, so pass it up to
|
381
391
|
// our parent.
|
382
392
|
channel_control_helper()->UpdateState(child->connectivity_state(),
|
393
|
+
child->connectivity_status(),
|
383
394
|
child->GetPicker());
|
384
395
|
}
|
385
396
|
|
@@ -409,7 +420,7 @@ void PriorityLb::TryNextPriorityLocked(bool report_connecting) {
|
|
409
420
|
if (child == nullptr) {
|
410
421
|
if (report_connecting) {
|
411
422
|
channel_control_helper()->UpdateState(
|
412
|
-
GRPC_CHANNEL_CONNECTING,
|
423
|
+
GRPC_CHANNEL_CONNECTING, absl::Status(),
|
413
424
|
absl::make_unique<QueuePicker>(Ref(DEBUG_LOCATION, "QueuePicker")));
|
414
425
|
}
|
415
426
|
child = MakeOrphanable<ChildPriority>(
|
@@ -436,7 +447,7 @@ void PriorityLb::TryNextPriorityLocked(bool report_connecting) {
|
|
436
447
|
}
|
437
448
|
if (report_connecting) {
|
438
449
|
channel_control_helper()->UpdateState(
|
439
|
-
GRPC_CHANNEL_CONNECTING,
|
450
|
+
GRPC_CHANNEL_CONNECTING, absl::Status(),
|
440
451
|
absl::make_unique<QueuePicker>(Ref(DEBUG_LOCATION, "QueuePicker")));
|
441
452
|
}
|
442
453
|
return;
|
@@ -456,7 +467,7 @@ void PriorityLb::TryNextPriorityLocked(bool report_connecting) {
|
|
456
467
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("no ready priority"),
|
457
468
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
458
469
|
channel_control_helper()->UpdateState(
|
459
|
-
GRPC_CHANNEL_TRANSIENT_FAILURE,
|
470
|
+
GRPC_CHANNEL_TRANSIENT_FAILURE, grpc_error_to_absl_status(error),
|
460
471
|
absl::make_unique<TransientFailurePicker>(error));
|
461
472
|
}
|
462
473
|
|
@@ -476,6 +487,7 @@ void PriorityLb::SelectPriorityLocked(uint32_t priority) {
|
|
476
487
|
// Update picker.
|
477
488
|
auto& child = children_[config_->priorities()[priority]];
|
478
489
|
channel_control_helper()->UpdateState(child->connectivity_state(),
|
490
|
+
child->connectivity_status(),
|
479
491
|
child->GetPicker());
|
480
492
|
}
|
481
493
|
|
@@ -584,15 +596,18 @@ void PriorityLb::ChildPriority::ResetBackoffLocked() {
|
|
584
596
|
}
|
585
597
|
|
586
598
|
void PriorityLb::ChildPriority::OnConnectivityStateUpdateLocked(
|
587
|
-
grpc_connectivity_state state,
|
599
|
+
grpc_connectivity_state state, const absl::Status& status,
|
600
|
+
std::unique_ptr<SubchannelPicker> picker) {
|
588
601
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_priority_trace)) {
|
589
602
|
gpr_log(GPR_INFO,
|
590
|
-
"[priority_lb %p] child %s (%p): state update: %s
|
603
|
+
"[priority_lb %p] child %s (%p): state update: %s (%s) picker %p",
|
591
604
|
priority_policy_.get(), name_.c_str(), this,
|
592
|
-
ConnectivityStateName(state),
|
605
|
+
ConnectivityStateName(state), status.ToString().c_str(),
|
606
|
+
picker.get());
|
593
607
|
}
|
594
608
|
// Store the state and picker.
|
595
609
|
connectivity_state_ = state;
|
610
|
+
connectivity_status_ = status;
|
596
611
|
picker_wrapper_ = MakeRefCounted<RefCountedPicker>(std::move(picker));
|
597
612
|
// If READY or TRANSIENT_FAILURE, cancel failover timer.
|
598
613
|
if (state == GRPC_CHANNEL_READY || state == GRPC_CHANNEL_TRANSIENT_FAILURE) {
|
@@ -646,7 +661,10 @@ void PriorityLb::ChildPriority::OnFailoverTimerLocked(grpc_error* error) {
|
|
646
661
|
priority_policy_.get(), name_.c_str(), this);
|
647
662
|
}
|
648
663
|
failover_timer_callback_pending_ = false;
|
649
|
-
OnConnectivityStateUpdateLocked(
|
664
|
+
OnConnectivityStateUpdateLocked(
|
665
|
+
GRPC_CHANNEL_TRANSIENT_FAILURE,
|
666
|
+
absl::Status(absl::StatusCode::kUnavailable, "failover timer fired"),
|
667
|
+
nullptr);
|
650
668
|
}
|
651
669
|
Unref(DEBUG_LOCATION, "ChildPriority+OnFailoverTimerLocked");
|
652
670
|
GRPC_ERROR_UNREF(error);
|
@@ -725,10 +743,11 @@ PriorityLb::ChildPriority::Helper::CreateSubchannel(
|
|
725
743
|
}
|
726
744
|
|
727
745
|
void PriorityLb::ChildPriority::Helper::UpdateState(
|
728
|
-
grpc_connectivity_state state,
|
746
|
+
grpc_connectivity_state state, const absl::Status& status,
|
747
|
+
std::unique_ptr<SubchannelPicker> picker) {
|
729
748
|
if (priority_->priority_policy_->shutting_down_) return;
|
730
749
|
// Notify the priority.
|
731
|
-
priority_->OnConnectivityStateUpdateLocked(state, std::move(picker));
|
750
|
+
priority_->OnConnectivityStateUpdateLocked(state, status, std::move(picker));
|
732
751
|
}
|
733
752
|
|
734
753
|
void PriorityLb::ChildPriority::Helper::AddTraceEvent(
|
@@ -40,6 +40,7 @@
|
|
40
40
|
#include "src/core/lib/gprpp/sync.h"
|
41
41
|
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
42
42
|
#include "src/core/lib/transport/connectivity_state.h"
|
43
|
+
#include "src/core/lib/transport/error_utils.h"
|
43
44
|
#include "src/core/lib/transport/static_metadata.h"
|
44
45
|
|
45
46
|
namespace grpc_core {
|
@@ -322,11 +323,11 @@ void RoundRobin::RoundRobinSubchannelList::
|
|
322
323
|
if (num_ready_ > 0) {
|
323
324
|
/* 1) READY */
|
324
325
|
p->channel_control_helper()->UpdateState(
|
325
|
-
GRPC_CHANNEL_READY, absl::make_unique<Picker>(p, this));
|
326
|
+
GRPC_CHANNEL_READY, absl::Status(), absl::make_unique<Picker>(p, this));
|
326
327
|
} else if (num_connecting_ > 0) {
|
327
328
|
/* 2) CONNECTING */
|
328
329
|
p->channel_control_helper()->UpdateState(
|
329
|
-
GRPC_CHANNEL_CONNECTING,
|
330
|
+
GRPC_CHANNEL_CONNECTING, absl::Status(),
|
330
331
|
absl::make_unique<QueuePicker>(p->Ref(DEBUG_LOCATION, "QueuePicker")));
|
331
332
|
} else if (num_transient_failure_ == num_subchannels()) {
|
332
333
|
/* 3) TRANSIENT_FAILURE */
|
@@ -335,7 +336,7 @@ void RoundRobin::RoundRobinSubchannelList::
|
|
335
336
|
"connections to all backends failing"),
|
336
337
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
337
338
|
p->channel_control_helper()->UpdateState(
|
338
|
-
GRPC_CHANNEL_TRANSIENT_FAILURE,
|
339
|
+
GRPC_CHANNEL_TRANSIENT_FAILURE, grpc_error_to_absl_status(error),
|
339
340
|
absl::make_unique<TransientFailurePicker>(error));
|
340
341
|
}
|
341
342
|
}
|
@@ -452,7 +453,7 @@ void RoundRobin::UpdateLocked(UpdateArgs args) {
|
|
452
453
|
grpc_error_set_int(GRPC_ERROR_CREATE_FROM_STATIC_STRING("Empty update"),
|
453
454
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
454
455
|
channel_control_helper()->UpdateState(
|
455
|
-
GRPC_CHANNEL_TRANSIENT_FAILURE,
|
456
|
+
GRPC_CHANNEL_TRANSIENT_FAILURE, grpc_error_to_absl_status(error),
|
456
457
|
absl::make_unique<TransientFailurePicker>(error));
|
457
458
|
subchannel_list_ = std::move(latest_pending_subchannel_list_);
|
458
459
|
} else if (subchannel_list_ == nullptr) {
|
@@ -36,6 +36,7 @@
|
|
36
36
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
37
37
|
#include "src/core/lib/iomgr/timer.h"
|
38
38
|
#include "src/core/lib/iomgr/work_serializer.h"
|
39
|
+
#include "src/core/lib/transport/error_utils.h"
|
39
40
|
|
40
41
|
namespace grpc_core {
|
41
42
|
|
@@ -146,6 +147,7 @@ class WeightedTargetLb : public LoadBalancingPolicy {
|
|
146
147
|
RefCountedPtr<SubchannelInterface> CreateSubchannel(
|
147
148
|
const grpc_channel_args& args) override;
|
148
149
|
void UpdateState(grpc_connectivity_state state,
|
150
|
+
const absl::Status& status,
|
149
151
|
std::unique_ptr<SubchannelPicker> picker) override;
|
150
152
|
void RequestReresolution() override;
|
151
153
|
void AddTraceEvent(TraceSeverity severity,
|
@@ -160,7 +162,7 @@ class WeightedTargetLb : public LoadBalancingPolicy {
|
|
160
162
|
const grpc_channel_args* args);
|
161
163
|
|
162
164
|
void OnConnectivityStateUpdateLocked(
|
163
|
-
grpc_connectivity_state state,
|
165
|
+
grpc_connectivity_state state, const absl::Status& status,
|
164
166
|
std::unique_ptr<SubchannelPicker> picker);
|
165
167
|
|
166
168
|
static void OnDelayedRemovalTimer(void* arg, grpc_error* error);
|
@@ -374,6 +376,7 @@ void WeightedTargetLb::UpdateStateLocked() {
|
|
374
376
|
this, ConnectivityStateName(connectivity_state));
|
375
377
|
}
|
376
378
|
std::unique_ptr<SubchannelPicker> picker;
|
379
|
+
absl::Status status;
|
377
380
|
switch (connectivity_state) {
|
378
381
|
case GRPC_CHANNEL_READY:
|
379
382
|
picker = absl::make_unique<WeightedPicker>(std::move(picker_list));
|
@@ -384,11 +387,15 @@ void WeightedTargetLb::UpdateStateLocked() {
|
|
384
387
|
absl::make_unique<QueuePicker>(Ref(DEBUG_LOCATION, "QueuePicker"));
|
385
388
|
break;
|
386
389
|
default:
|
387
|
-
|
390
|
+
grpc_error* error = grpc_error_set_int(
|
388
391
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
389
|
-
"weighted_target: all children report state TRANSIENT_FAILURE")
|
392
|
+
"weighted_target: all children report state TRANSIENT_FAILURE"),
|
393
|
+
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
394
|
+
status = grpc_error_to_absl_status(error);
|
395
|
+
picker = absl::make_unique<TransientFailurePicker>(error);
|
390
396
|
}
|
391
|
-
channel_control_helper()->UpdateState(connectivity_state,
|
397
|
+
channel_control_helper()->UpdateState(connectivity_state, status,
|
398
|
+
std::move(picker));
|
392
399
|
}
|
393
400
|
|
394
401
|
//
|
@@ -507,15 +514,17 @@ void WeightedTargetLb::WeightedChild::ResetBackoffLocked() {
|
|
507
514
|
}
|
508
515
|
|
509
516
|
void WeightedTargetLb::WeightedChild::OnConnectivityStateUpdateLocked(
|
510
|
-
grpc_connectivity_state state,
|
517
|
+
grpc_connectivity_state state, const absl::Status& status,
|
518
|
+
std::unique_ptr<SubchannelPicker> picker) {
|
511
519
|
// Cache the picker in the WeightedChild.
|
512
520
|
picker_wrapper_ = MakeRefCounted<ChildPickerWrapper>(std::move(picker));
|
513
521
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_weighted_target_trace)) {
|
514
522
|
gpr_log(GPR_INFO,
|
515
523
|
"[weighted_target_lb %p] WeightedChild %p %s: connectivity "
|
516
|
-
"state update: state=%s picker_wrapper=%p",
|
524
|
+
"state update: state=%s (%s) picker_wrapper=%p",
|
517
525
|
weighted_target_policy_.get(), this, name_.c_str(),
|
518
|
-
ConnectivityStateName(state),
|
526
|
+
ConnectivityStateName(state), status.ToString().c_str(),
|
527
|
+
picker_wrapper_.get());
|
519
528
|
}
|
520
529
|
// If the child reports IDLE, immediately tell it to exit idle.
|
521
530
|
if (state == GRPC_CHANNEL_IDLE) child_policy_->ExitIdleLocked();
|
@@ -588,9 +597,11 @@ WeightedTargetLb::WeightedChild::Helper::CreateSubchannel(
|
|
588
597
|
}
|
589
598
|
|
590
599
|
void WeightedTargetLb::WeightedChild::Helper::UpdateState(
|
591
|
-
grpc_connectivity_state state,
|
600
|
+
grpc_connectivity_state state, const absl::Status& status,
|
601
|
+
std::unique_ptr<SubchannelPicker> picker) {
|
592
602
|
if (weighted_child_->weighted_target_policy_->shutting_down_) return;
|
593
|
-
weighted_child_->OnConnectivityStateUpdateLocked(state,
|
603
|
+
weighted_child_->OnConnectivityStateUpdateLocked(state, status,
|
604
|
+
std::move(picker));
|
594
605
|
}
|
595
606
|
|
596
607
|
void WeightedTargetLb::WeightedChild::Helper::RequestReresolution() {
|
@@ -24,11 +24,12 @@
|
|
24
24
|
#include "src/core/ext/filters/client_channel/lb_policy_factory.h"
|
25
25
|
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
|
26
26
|
#include "src/core/ext/filters/client_channel/service_config.h"
|
27
|
-
#include "src/core/ext/
|
27
|
+
#include "src/core/ext/xds/xds_client.h"
|
28
28
|
#include "src/core/lib/channel/channel_args.h"
|
29
29
|
#include "src/core/lib/gprpp/memory.h"
|
30
30
|
#include "src/core/lib/gprpp/orphanable.h"
|
31
31
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
32
|
+
#include "src/core/lib/transport/error_utils.h"
|
32
33
|
|
33
34
|
namespace grpc_core {
|
34
35
|
|
@@ -79,7 +80,7 @@ class CdsLb : public LoadBalancingPolicy {
|
|
79
80
|
explicit Helper(RefCountedPtr<CdsLb> parent) : parent_(std::move(parent)) {}
|
80
81
|
RefCountedPtr<SubchannelInterface> CreateSubchannel(
|
81
82
|
const grpc_channel_args& args) override;
|
82
|
-
void UpdateState(grpc_connectivity_state state,
|
83
|
+
void UpdateState(grpc_connectivity_state state, const absl::Status& status,
|
83
84
|
std::unique_ptr<SubchannelPicker> picker) override;
|
84
85
|
void RequestReresolution() override;
|
85
86
|
void AddTraceEvent(TraceSeverity severity,
|
@@ -209,7 +210,7 @@ void CdsLb::ClusterWatcher::OnError(grpc_error* error) {
|
|
209
210
|
// we keep running with the data we had previously.
|
210
211
|
if (parent_->child_policy_ == nullptr) {
|
211
212
|
parent_->channel_control_helper()->UpdateState(
|
212
|
-
GRPC_CHANNEL_TRANSIENT_FAILURE,
|
213
|
+
GRPC_CHANNEL_TRANSIENT_FAILURE, grpc_error_to_absl_status(error),
|
213
214
|
absl::make_unique<TransientFailurePicker>(error));
|
214
215
|
} else {
|
215
216
|
GRPC_ERROR_UNREF(error);
|
@@ -221,13 +222,15 @@ void CdsLb::ClusterWatcher::OnResourceDoesNotExist() {
|
|
221
222
|
"[cdslb %p] CDS resource for %s does not exist -- reporting "
|
222
223
|
"TRANSIENT_FAILURE",
|
223
224
|
parent_.get(), parent_->config_->cluster().c_str());
|
225
|
+
grpc_error* error = grpc_error_set_int(
|
226
|
+
GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
227
|
+
absl::StrCat("CDS resource \"", parent_->config_->cluster(),
|
228
|
+
"\" does not exist")
|
229
|
+
.c_str()),
|
230
|
+
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
224
231
|
parent_->channel_control_helper()->UpdateState(
|
225
|
-
GRPC_CHANNEL_TRANSIENT_FAILURE,
|
226
|
-
absl::make_unique<TransientFailurePicker>(
|
227
|
-
GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
228
|
-
absl::StrCat("CDS resource \"", parent_->config_->cluster(),
|
229
|
-
"\" does not exist")
|
230
|
-
.c_str())));
|
232
|
+
GRPC_CHANNEL_TRANSIENT_FAILURE, grpc_error_to_absl_status(error),
|
233
|
+
absl::make_unique<TransientFailurePicker>(error));
|
231
234
|
parent_->MaybeDestroyChildPolicyLocked();
|
232
235
|
}
|
233
236
|
|
@@ -242,13 +245,16 @@ RefCountedPtr<SubchannelInterface> CdsLb::Helper::CreateSubchannel(
|
|
242
245
|
}
|
243
246
|
|
244
247
|
void CdsLb::Helper::UpdateState(grpc_connectivity_state state,
|
248
|
+
const absl::Status& status,
|
245
249
|
std::unique_ptr<SubchannelPicker> picker) {
|
246
250
|
if (parent_->shutting_down_ || parent_->child_policy_ == nullptr) return;
|
247
251
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_cds_lb_trace)) {
|
248
|
-
gpr_log(GPR_INFO,
|
249
|
-
|
252
|
+
gpr_log(GPR_INFO,
|
253
|
+
"[cdslb %p] state updated by child: %s message_state: (%s)", this,
|
254
|
+
ConnectivityStateName(state), status.ToString().c_str());
|
250
255
|
}
|
251
|
-
parent_->channel_control_helper()->UpdateState(state,
|
256
|
+
parent_->channel_control_helper()->UpdateState(state, status,
|
257
|
+
std::move(picker));
|
252
258
|
}
|
253
259
|
|
254
260
|
void CdsLb::Helper::RequestReresolution() {
|