grpc 1.35.0.pre1 → 1.37.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 +121 -89
- data/include/grpc/grpc.h +15 -1
- data/include/grpc/grpc_security.h +16 -11
- data/include/grpc/impl/codegen/port_platform.h +2 -0
- data/src/core/ext/filters/client_channel/client_channel.cc +359 -331
- data/src/core/ext/filters/client_channel/client_channel.h +0 -2
- data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -1
- data/src/core/ext/filters/client_channel/config_selector.h +9 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -4
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -142
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +15 -10
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy.cc +3 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +3 -5
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +8 -6
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +23 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +27 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +289 -170
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +5 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +8 -25
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +232 -110
- data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +27 -67
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +10 -9
- data/src/core/ext/filters/client_channel/resolver.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver.h +1 -12
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +36 -45
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +3 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +34 -50
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +16 -14
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +18 -15
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +377 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +4 -4
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +307 -155
- data/src/core/ext/filters/client_channel/server_address.cc +9 -0
- data/src/core/ext/filters/client_channel/server_address.h +31 -0
- data/src/core/ext/filters/client_channel/subchannel.cc +69 -146
- data/src/core/ext/filters/client_channel/subchannel.h +63 -95
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +16 -2
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +10 -8
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +1 -1
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +500 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +39 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +189 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.h +85 -0
- data/src/core/ext/filters/max_age/max_age_filter.cc +35 -32
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +2 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +3 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +1 -1
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -2
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +490 -178
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +11 -1
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +1 -1
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +62 -18
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +39 -7
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -1
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +5 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +406 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1459 -0
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +350 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1348 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +11 -16
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +42 -59
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +15 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +25 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +75 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +9 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +28 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +6 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +25 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +41 -7
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +23 -21
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +122 -77
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +13 -9
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +37 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +144 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +488 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +141 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +452 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +11 -9
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +44 -27
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +57 -16
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +150 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +29 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +67 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +79 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +268 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +78 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +281 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +41 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +113 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +19 -21
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +64 -51
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +16 -13
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +50 -18
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +4 -7
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +0 -17
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +30 -23
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +85 -73
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -3
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -3
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -2
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +93 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +323 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +36 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +90 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +124 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +21 -4
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +29 -0
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +33 -0
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +77 -0
- data/src/core/ext/upb-generated/{udpa/core/v1 → xds/core/v3}/authority.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +60 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +52 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +143 -0
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +42 -0
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +84 -0
- data/src/core/ext/upb-generated/{udpa/core/v1 → xds/core/v3}/resource.upb.c +9 -9
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +94 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +54 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +166 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +36 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +85 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +354 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +140 -0
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +168 -171
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +383 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +405 -420
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +2 -2
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +12 -9
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +177 -171
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +88 -88
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +153 -153
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +10 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +4 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +33 -20
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +56 -59
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +116 -111
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +129 -121
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +21 -24
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +17 -13
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +753 -724
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +22 -25
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +102 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +120 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +76 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +371 -377
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +12 -16
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +112 -108
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +45 -53
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +177 -180
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +92 -102
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +32 -42
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +30 -40
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +4 -7
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +38 -44
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +130 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +30 -33
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +8 -7
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +9 -9
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +9 -8
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +8 -8
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +8 -8
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +9 -8
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +8 -8
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +42 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +62 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +67 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +35 -0
- data/src/core/ext/xds/xds_api.cc +2149 -666
- data/src/core/ext/xds/xds_api.h +321 -119
- data/src/core/ext/xds/xds_bootstrap.cc +80 -45
- data/src/core/ext/xds/xds_bootstrap.h +17 -5
- data/src/core/ext/xds/xds_certificate_provider.cc +180 -74
- data/src/core/ext/xds/xds_certificate_provider.h +83 -44
- data/src/core/ext/xds/xds_client.cc +181 -34
- data/src/core/ext/xds/xds_client.h +29 -0
- data/src/core/ext/xds/xds_client_stats.cc +2 -1
- data/src/core/ext/xds/xds_client_stats.h +2 -2
- data/src/core/ext/xds/xds_http_fault_filter.cc +226 -0
- data/src/core/ext/xds/xds_http_fault_filter.h +63 -0
- data/src/core/ext/xds/xds_http_filters.cc +114 -0
- data/src/core/ext/xds/xds_http_filters.h +130 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +425 -24
- data/src/core/lib/channel/channel_stack.cc +12 -0
- data/src/core/lib/channel/channel_stack.h +7 -0
- data/src/core/lib/channel/channelz.cc +92 -4
- data/src/core/lib/channel/channelz.h +30 -1
- data/src/core/lib/channel/channelz_registry.cc +14 -0
- data/src/core/lib/channel/handshaker.cc +2 -44
- data/src/core/lib/channel/handshaker.h +1 -18
- data/src/core/lib/channel/status_util.cc +12 -2
- data/src/core/lib/channel/status_util.h +5 -0
- data/src/core/lib/gpr/log.cc +6 -1
- data/src/core/lib/gpr/sync_abseil.cc +3 -6
- data/src/core/lib/gpr/sync_windows.cc +2 -2
- data/src/core/lib/gprpp/atomic.h +3 -3
- data/src/core/lib/gprpp/dual_ref_counted.h +3 -3
- data/src/core/lib/gprpp/mpscq.cc +2 -2
- data/src/core/lib/gprpp/ref_counted.h +1 -1
- data/src/core/lib/gprpp/ref_counted_ptr.h +2 -0
- data/src/core/lib/gprpp/sync.h +129 -40
- data/src/core/lib/gprpp/thd.h +1 -1
- data/src/core/lib/gprpp/time_util.cc +77 -0
- data/src/core/lib/gprpp/time_util.h +42 -0
- data/src/core/lib/http/httpcli_security_connector.cc +2 -2
- data/src/core/lib/iomgr/buffer_list.h +1 -1
- data/src/core/lib/iomgr/cfstream_handle.cc +2 -2
- data/src/core/lib/iomgr/error.h +1 -1
- data/src/core/lib/iomgr/ev_apple.cc +11 -8
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +3 -3
- data/src/core/lib/iomgr/ev_epollex_linux.cc +4 -4
- data/src/core/lib/iomgr/ev_posix.cc +3 -3
- data/src/core/lib/iomgr/exec_ctx.cc +6 -2
- data/src/core/lib/iomgr/iomgr_posix.cc +0 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +0 -1
- data/src/core/lib/iomgr/resource_quota.cc +1 -1
- data/src/core/lib/iomgr/sockaddr_utils.cc +121 -1
- data/src/core/lib/iomgr/sockaddr_utils.h +25 -0
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -0
- data/src/core/lib/iomgr/tcp_client_posix.cc +1 -1
- data/src/core/lib/iomgr/tcp_posix.cc +5 -8
- data/src/core/lib/iomgr/tcp_uv.cc +2 -2
- data/src/core/lib/iomgr/timer_generic.cc +2 -2
- data/src/core/lib/iomgr/timer_manager.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
- data/src/core/lib/matchers/matchers.cc +339 -0
- data/src/core/lib/matchers/matchers.h +160 -0
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
- data/src/core/lib/security/credentials/credentials.h +2 -1
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +2 -2
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +1 -1
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +1 -1
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +1 -1
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +7 -6
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +0 -3
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +0 -3
- data/src/core/lib/security/credentials/local/local_credentials.cc +2 -1
- data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +2 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +2 -1
- data/src/core/lib/security/credentials/tls/tls_credentials.h +1 -1
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +128 -59
- data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +5 -5
- data/src/core/lib/security/security_connector/ssl_utils.cc +9 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +32 -14
- data/src/core/lib/security/transport/security_handshaker.cc +33 -5
- data/src/core/lib/security/transport/server_auth_filter.cc +7 -0
- data/src/core/lib/slice/slice_intern.cc +5 -6
- data/src/core/lib/surface/channel.h +3 -3
- data/src/core/lib/surface/completion_queue.cc +1 -1
- data/src/core/lib/surface/init.cc +13 -15
- data/src/core/lib/surface/lame_client.cc +38 -19
- data/src/core/lib/surface/lame_client.h +4 -3
- data/src/core/lib/surface/server.cc +43 -36
- data/src/core/lib/surface/server.h +76 -14
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/metadata.cc +6 -2
- data/src/core/lib/transport/metadata_batch.cc +27 -0
- data/src/core/lib/transport/metadata_batch.h +14 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +12 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +18 -24
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +16 -21
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -3
- data/src/core/tsi/fake_transport_security.cc +11 -2
- data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -3
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +0 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +2 -4
- data/src/core/tsi/ssl_transport_security.cc +0 -3
- data/src/core/tsi/ssl_transport_security.h +0 -3
- data/src/ruby/ext/grpc/extconf.rb +9 -1
- data/src/ruby/ext/grpc/rb_channel.c +10 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.c +11 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.h +4 -0
- data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
- data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +4 -1
- data/src/ruby/ext/grpc/rb_server.c +13 -1
- data/src/ruby/ext/grpc/rb_server_credentials.c +19 -3
- data/src/ruby/ext/grpc/rb_server_credentials.h +4 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +215 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +35 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +169 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +35 -0
- data/src/ruby/lib/grpc/generic/client_stub.rb +4 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +7 -0
- data/src/ruby/spec/call_spec.rb +1 -1
- data/src/ruby/spec/channel_credentials_spec.rb +32 -0
- data/src/ruby/spec/channel_spec.rb +17 -6
- data/src/ruby/spec/client_auth_spec.rb +27 -1
- data/src/ruby/spec/errors_spec.rb +1 -1
- data/src/ruby/spec/generic/active_call_spec.rb +2 -2
- data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
- data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
- data/src/ruby/spec/server_credentials_spec.rb +25 -0
- data/src/ruby/spec/server_spec.rb +22 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +1 -0
- data/third_party/boringssl-with-bazel/err_data.c +715 -713
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +3 -10
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +15 -14
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +30 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +28 -79
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +39 -85
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +5 -16
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +10 -61
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +158 -0
- data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +3 -10
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +8 -9
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +60 -45
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +6 -81
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +87 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-win.c +41 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +11 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/dh_asn1.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/params.c +179 -0
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +25 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +2 -17
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +3 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +13 -20
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +21 -13
- data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/check.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/dh.c +136 -213
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +12 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +28 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +135 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +0 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +51 -32
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +147 -0
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +18 -29
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +13 -4
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +13 -11
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +34 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +7 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +1 -29
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_r2x.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +8 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +29 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +22 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +39 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +11 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +25 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +40 -20
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +25 -36
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +6 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +3 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +652 -545
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +0 -167
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +10 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +62 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +22 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +19 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +56 -26
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +15 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +12 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +2 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +67 -33
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +27 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +287 -99
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +139 -36
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +11 -20
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +10 -5
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +37 -16
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +7 -8
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +20 -14
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +7 -8
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +5 -7
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +362 -50
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +48 -15
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +66 -24
- data/third_party/xxhash/xxhash.h +5443 -0
- metadata +140 -84
- data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.h +0 -60
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.c +0 -52
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.h +0 -143
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.c +0 -42
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.h +0 -84
- data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.h +0 -94
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.c +0 -54
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.h +0 -173
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.c +0 -36
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.h +0 -92
- data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.c +0 -42
- data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.c +0 -62
- data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.h +0 -40
- data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.c +0 -45
- data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.h +0 -40
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.c +0 -49
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.c +0 -68
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.h +0 -40
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.c +0 -51
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.h +0 -35
- data/src/core/lib/iomgr/iomgr_posix.h +0 -26
- data/src/core/lib/security/authorization/authorization_engine.cc +0 -177
- data/src/core/lib/security/authorization/authorization_engine.h +0 -84
- data/src/core/lib/security/authorization/evaluate_args.cc +0 -148
- data/src/core/lib/security/authorization/evaluate_args.h +0 -59
- data/src/core/lib/security/authorization/mock_cel/activation.h +0 -57
- data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +0 -44
- data/src/core/lib/security/authorization/mock_cel/cel_expression.h +0 -69
- data/src/core/lib/security/authorization/mock_cel/cel_value.h +0 -97
- data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +0 -67
- data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +0 -57
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -504
- data/third_party/upb/upb/json_decode.c +0 -1443
- data/third_party/upb/upb/json_decode.h +0 -23
- data/third_party/upb/upb/json_encode.c +0 -713
- data/third_party/upb/upb/json_encode.h +0 -36
@@ -26,8 +26,6 @@
|
|
26
26
|
#include "src/core/ext/filters/client_channel/resolver.h"
|
27
27
|
#include "src/core/lib/channel/channel_stack.h"
|
28
28
|
|
29
|
-
extern grpc_core::TraceFlag grpc_client_channel_trace;
|
30
|
-
|
31
29
|
// Channel arg key for server URI string.
|
32
30
|
#define GRPC_ARG_SERVER_URI "grpc.server_uri"
|
33
31
|
|
@@ -32,7 +32,8 @@ class ClientChannelFactory {
|
|
32
32
|
virtual ~ClientChannelFactory() = default;
|
33
33
|
|
34
34
|
// Creates a subchannel with the specified args.
|
35
|
-
virtual Subchannel
|
35
|
+
virtual RefCountedPtr<Subchannel> CreateSubchannel(
|
36
|
+
const grpc_channel_args* args) = 0;
|
36
37
|
|
37
38
|
// Returns a channel arg containing the specified factory.
|
38
39
|
static grpc_arg CreateChannelArg(ClientChannelFactory* factory);
|
@@ -82,8 +82,16 @@ class ConfigSelector : public RefCounted<ConfigSelector> {
|
|
82
82
|
return cs1->Equals(cs2);
|
83
83
|
}
|
84
84
|
|
85
|
+
// The channel will call this when the resolver returns a new ConfigSelector
|
86
|
+
// to determine what set of dynamic filters will be configured.
|
85
87
|
virtual std::vector<const grpc_channel_filter*> GetFilters() { return {}; }
|
86
88
|
|
89
|
+
// Modifies channel args to be passed to the dynamic filter stack.
|
90
|
+
// Takes ownership of argument. Caller takes ownership of result.
|
91
|
+
virtual grpc_channel_args* ModifyChannelArgs(grpc_channel_args* args) {
|
92
|
+
return args;
|
93
|
+
}
|
94
|
+
|
87
95
|
virtual CallConfig GetCallConfig(GetCallConfigArgs args) = 0;
|
88
96
|
|
89
97
|
grpc_arg MakeChannelArg() const;
|
@@ -106,7 +114,7 @@ class DefaultConfigSelector : public ConfigSelector {
|
|
106
114
|
|
107
115
|
// Only comparing the ConfigSelector itself, not the underlying
|
108
116
|
// service config, so we always return true.
|
109
|
-
bool Equals(const ConfigSelector* other) const override { return true; }
|
117
|
+
bool Equals(const ConfigSelector* /*other*/) const override { return true; }
|
110
118
|
|
111
119
|
CallConfig GetCallConfig(GetCallConfigArgs args) override {
|
112
120
|
CallConfig call_config;
|
@@ -18,6 +18,7 @@
|
|
18
18
|
|
19
19
|
#include "src/core/ext/filters/client_channel/dynamic_filters.h"
|
20
20
|
|
21
|
+
#include "src/core/lib/channel/channel_args.h"
|
21
22
|
#include "src/core/lib/channel/channel_stack.h"
|
22
23
|
#include "src/core/lib/surface/lame_client.h"
|
23
24
|
|
@@ -160,12 +161,16 @@ RefCountedPtr<DynamicFilters> DynamicFilters::Create(
|
|
160
161
|
// Attempt to create channel stack from requested filters.
|
161
162
|
auto p = CreateChannelStack(args, std::move(filters));
|
162
163
|
if (p.second != GRPC_ERROR_NONE) {
|
163
|
-
//
|
164
|
+
// Channel stack creation failed with requested filters.
|
165
|
+
// Create with lame filter instead.
|
164
166
|
grpc_error* error = p.second;
|
165
|
-
|
167
|
+
grpc_arg error_arg = MakeLameClientErrorArg(error);
|
168
|
+
grpc_channel_args* new_args =
|
169
|
+
grpc_channel_args_copy_and_add(args, &error_arg, 1);
|
170
|
+
GRPC_ERROR_UNREF(error);
|
171
|
+
p = CreateChannelStack(new_args, {&grpc_lame_filter});
|
166
172
|
GPR_ASSERT(p.second == GRPC_ERROR_NONE);
|
167
|
-
|
168
|
-
SetLameFilterError(elem, error);
|
173
|
+
grpc_channel_args_destroy(new_args);
|
169
174
|
}
|
170
175
|
return MakeRefCounted<DynamicFilters>(p.first);
|
171
176
|
}
|
@@ -27,16 +27,6 @@ namespace grpc_core {
|
|
27
27
|
#define GRPC_REGISTER_SUBCHANNEL_CALM_DOWN_AFTER_ATTEMPTS 100
|
28
28
|
#define GRPC_REGISTER_SUBCHANNEL_CALM_DOWN_MICROS 10
|
29
29
|
|
30
|
-
GlobalSubchannelPool::GlobalSubchannelPool() {
|
31
|
-
subchannel_map_ = grpc_avl_create(&subchannel_avl_vtable_);
|
32
|
-
gpr_mu_init(&mu_);
|
33
|
-
}
|
34
|
-
|
35
|
-
GlobalSubchannelPool::~GlobalSubchannelPool() {
|
36
|
-
gpr_mu_destroy(&mu_);
|
37
|
-
grpc_avl_unref(subchannel_map_, nullptr);
|
38
|
-
}
|
39
|
-
|
40
30
|
void GlobalSubchannelPool::Init() {
|
41
31
|
instance_ = new RefCountedPtr<GlobalSubchannelPool>(
|
42
32
|
MakeRefCounted<GlobalSubchannelPool>());
|
@@ -57,145 +47,37 @@ RefCountedPtr<GlobalSubchannelPool> GlobalSubchannelPool::instance() {
|
|
57
47
|
return *instance_;
|
58
48
|
}
|
59
49
|
|
60
|
-
Subchannel
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
grpc_avl old_map = grpc_avl_ref(subchannel_map_, nullptr);
|
68
|
-
gpr_mu_unlock(&mu_);
|
69
|
-
// Check to see if a subchannel already exists.
|
70
|
-
c = static_cast<Subchannel*>(grpc_avl_get(old_map, key, nullptr));
|
71
|
-
if (c != nullptr) {
|
72
|
-
// The subchannel already exists. Try to reuse it.
|
73
|
-
c = GRPC_SUBCHANNEL_REF_FROM_WEAK_REF(c, "subchannel_register+reuse");
|
74
|
-
if (c != nullptr) {
|
75
|
-
GRPC_SUBCHANNEL_UNREF(constructed,
|
76
|
-
"subchannel_register+found_existing");
|
77
|
-
// Exit the CAS loop without modifying the shared map.
|
78
|
-
} else {
|
79
|
-
// Reuse of the subchannel failed, so retry CAS loop
|
80
|
-
if (attempt_count >=
|
81
|
-
GRPC_REGISTER_SUBCHANNEL_CALM_DOWN_AFTER_ATTEMPTS) {
|
82
|
-
// GRPC_SUBCHANNEL_REF_FROM_WEAK_REF returning nullptr means that the
|
83
|
-
// subchannel we got is no longer valid and it's going to be removed
|
84
|
-
// from the AVL tree soon. Spinning here excesively here can actually
|
85
|
-
// prevent another thread from removing the subchannel, basically
|
86
|
-
// resulting in a live lock. See b/157516542 for more details.
|
87
|
-
// TODO(jtattermusch): the entire ref-counting mechanism for
|
88
|
-
// subchannels should be overhaulded, but the current workaround
|
89
|
-
// is fine for short-term.
|
90
|
-
// TODO(jtattermusch): gpr does not support thread yield operation,
|
91
|
-
// so a very short wait is the best we can do.
|
92
|
-
gpr_sleep_until(gpr_time_add(
|
93
|
-
gpr_now(GPR_CLOCK_REALTIME),
|
94
|
-
gpr_time_from_micros(GRPC_REGISTER_SUBCHANNEL_CALM_DOWN_MICROS,
|
95
|
-
GPR_TIMESPAN)));
|
96
|
-
}
|
97
|
-
}
|
98
|
-
} else {
|
99
|
-
// There hasn't been such subchannel. Add one.
|
100
|
-
// Note that we should ref the old map first because grpc_avl_add() will
|
101
|
-
// unref it while we still need to access it later.
|
102
|
-
grpc_avl new_map = grpc_avl_add(
|
103
|
-
grpc_avl_ref(old_map, nullptr), new SubchannelKey(*key),
|
104
|
-
GRPC_SUBCHANNEL_WEAK_REF(constructed, "subchannel_register+new"),
|
105
|
-
nullptr);
|
106
|
-
// Try to publish the change to the shared map. It may happen (but
|
107
|
-
// unlikely) that some other thread has changed the shared map, so compare
|
108
|
-
// to make sure it's unchanged before swapping. Retry if it's changed.
|
109
|
-
gpr_mu_lock(&mu_);
|
110
|
-
if (old_map.root == subchannel_map_.root) {
|
111
|
-
GPR_SWAP(grpc_avl, new_map, subchannel_map_);
|
112
|
-
c = constructed;
|
113
|
-
}
|
114
|
-
gpr_mu_unlock(&mu_);
|
115
|
-
grpc_avl_unref(new_map, nullptr);
|
116
|
-
}
|
117
|
-
grpc_avl_unref(old_map, nullptr);
|
118
|
-
}
|
119
|
-
return c;
|
120
|
-
}
|
121
|
-
|
122
|
-
void GlobalSubchannelPool::UnregisterSubchannel(SubchannelKey* key) {
|
123
|
-
bool done = false;
|
124
|
-
// Compare and swap (CAS) loop:
|
125
|
-
while (!done) {
|
126
|
-
// Ref the shared map to have a local copy.
|
127
|
-
gpr_mu_lock(&mu_);
|
128
|
-
grpc_avl old_map = grpc_avl_ref(subchannel_map_, nullptr);
|
129
|
-
gpr_mu_unlock(&mu_);
|
130
|
-
// Remove the subchannel.
|
131
|
-
// Note that we should ref the old map first because grpc_avl_remove() will
|
132
|
-
// unref it while we still need to access it later.
|
133
|
-
grpc_avl new_map =
|
134
|
-
grpc_avl_remove(grpc_avl_ref(old_map, nullptr), key, nullptr);
|
135
|
-
// Try to publish the change to the shared map. It may happen (but
|
136
|
-
// unlikely) that some other thread has changed the shared map, so compare
|
137
|
-
// to make sure it's unchanged before swapping. Retry if it's changed.
|
138
|
-
gpr_mu_lock(&mu_);
|
139
|
-
if (old_map.root == subchannel_map_.root) {
|
140
|
-
GPR_SWAP(grpc_avl, new_map, subchannel_map_);
|
141
|
-
done = true;
|
142
|
-
}
|
143
|
-
gpr_mu_unlock(&mu_);
|
144
|
-
grpc_avl_unref(new_map, nullptr);
|
145
|
-
grpc_avl_unref(old_map, nullptr);
|
50
|
+
RefCountedPtr<Subchannel> GlobalSubchannelPool::RegisterSubchannel(
|
51
|
+
const SubchannelKey& key, RefCountedPtr<Subchannel> constructed) {
|
52
|
+
MutexLock lock(&mu_);
|
53
|
+
auto it = subchannel_map_.find(key);
|
54
|
+
if (it != subchannel_map_.end()) {
|
55
|
+
RefCountedPtr<Subchannel> existing = it->second->RefIfNonZero();
|
56
|
+
if (existing != nullptr) return existing;
|
146
57
|
}
|
147
|
-
|
148
|
-
|
149
|
-
Subchannel* GlobalSubchannelPool::FindSubchannel(SubchannelKey* key) {
|
150
|
-
// Lock, and take a reference to the subchannel map.
|
151
|
-
// We don't need to do the search under a lock as AVL's are immutable.
|
152
|
-
gpr_mu_lock(&mu_);
|
153
|
-
grpc_avl index = grpc_avl_ref(subchannel_map_, nullptr);
|
154
|
-
gpr_mu_unlock(&mu_);
|
155
|
-
Subchannel* c = static_cast<Subchannel*>(grpc_avl_get(index, key, nullptr));
|
156
|
-
if (c != nullptr) c = GRPC_SUBCHANNEL_REF_FROM_WEAK_REF(c, "found_from_pool");
|
157
|
-
grpc_avl_unref(index, nullptr);
|
158
|
-
return c;
|
58
|
+
subchannel_map_[key] = constructed.get();
|
59
|
+
return constructed;
|
159
60
|
}
|
160
61
|
|
161
62
|
RefCountedPtr<GlobalSubchannelPool>* GlobalSubchannelPool::instance_ = nullptr;
|
162
63
|
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
delete key
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
auto* new_key = new SubchannelKey(*key);
|
173
|
-
return static_cast<void*>(new_key);
|
174
|
-
}
|
175
|
-
|
176
|
-
long sck_avl_compare(void* a, void* b, void* /*unused*/) {
|
177
|
-
const SubchannelKey* key_a = static_cast<const SubchannelKey*>(a);
|
178
|
-
const SubchannelKey* key_b = static_cast<const SubchannelKey*>(b);
|
179
|
-
return key_a->Cmp(*key_b);
|
180
|
-
}
|
181
|
-
|
182
|
-
void scv_avl_destroy(void* p, void* /*user_data*/) {
|
183
|
-
GRPC_SUBCHANNEL_WEAK_UNREF((Subchannel*)p, "global_subchannel_pool");
|
64
|
+
void GlobalSubchannelPool::UnregisterSubchannel(const SubchannelKey& key,
|
65
|
+
Subchannel* subchannel) {
|
66
|
+
MutexLock lock(&mu_);
|
67
|
+
auto it = subchannel_map_.find(key);
|
68
|
+
// delete only if key hasn't been re-registered to a different subchannel
|
69
|
+
// between strong-unreffing and unregistration of subchannel.
|
70
|
+
if (it != subchannel_map_.end() && it->second == subchannel) {
|
71
|
+
subchannel_map_.erase(it);
|
72
|
+
}
|
184
73
|
}
|
185
74
|
|
186
|
-
|
187
|
-
|
188
|
-
|
75
|
+
RefCountedPtr<Subchannel> GlobalSubchannelPool::FindSubchannel(
|
76
|
+
const SubchannelKey& key) {
|
77
|
+
MutexLock lock(&mu_);
|
78
|
+
auto it = subchannel_map_.find(key);
|
79
|
+
if (it == subchannel_map_.end()) return nullptr;
|
80
|
+
return it->second->RefIfNonZero();
|
189
81
|
}
|
190
82
|
|
191
|
-
} // namespace
|
192
|
-
|
193
|
-
const grpc_avl_vtable GlobalSubchannelPool::subchannel_avl_vtable_ = {
|
194
|
-
sck_avl_destroy, // destroy_key
|
195
|
-
sck_avl_copy, // copy_key
|
196
|
-
sck_avl_compare, // compare_keys
|
197
|
-
scv_avl_destroy, // destroy_value
|
198
|
-
scv_avl_copy // copy_value
|
199
|
-
};
|
200
|
-
|
201
83
|
} // namespace grpc_core
|
@@ -21,7 +21,10 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
+
#include <map>
|
25
|
+
|
24
26
|
#include "src/core/ext/filters/client_channel/subchannel_pool_interface.h"
|
27
|
+
#include "src/core/lib/gprpp/sync.h"
|
25
28
|
|
26
29
|
namespace grpc_core {
|
27
30
|
|
@@ -33,8 +36,8 @@ namespace grpc_core {
|
|
33
36
|
class GlobalSubchannelPool final : public SubchannelPoolInterface {
|
34
37
|
public:
|
35
38
|
// The ctor and dtor are not intended to use directly.
|
36
|
-
GlobalSubchannelPool()
|
37
|
-
~GlobalSubchannelPool() override
|
39
|
+
GlobalSubchannelPool() {}
|
40
|
+
~GlobalSubchannelPool() override {}
|
38
41
|
|
39
42
|
// Should be called exactly once at filter initialization time.
|
40
43
|
static void Init();
|
@@ -45,22 +48,24 @@ class GlobalSubchannelPool final : public SubchannelPoolInterface {
|
|
45
48
|
static RefCountedPtr<GlobalSubchannelPool> instance();
|
46
49
|
|
47
50
|
// Implements interface methods.
|
48
|
-
Subchannel
|
49
|
-
|
50
|
-
|
51
|
-
|
51
|
+
RefCountedPtr<Subchannel> RegisterSubchannel(
|
52
|
+
const SubchannelKey& key, RefCountedPtr<Subchannel> constructed) override
|
53
|
+
ABSL_LOCKS_EXCLUDED(mu_);
|
54
|
+
void UnregisterSubchannel(const SubchannelKey& key,
|
55
|
+
Subchannel* subchannel) override
|
56
|
+
ABSL_LOCKS_EXCLUDED(mu_);
|
57
|
+
RefCountedPtr<Subchannel> FindSubchannel(const SubchannelKey& key) override
|
58
|
+
ABSL_LOCKS_EXCLUDED(mu_);
|
52
59
|
|
53
60
|
private:
|
54
61
|
// The singleton instance. (It's a pointer to RefCountedPtr so that this
|
55
62
|
// non-local static object can be trivially destructible.)
|
56
63
|
static RefCountedPtr<GlobalSubchannelPool>* instance_;
|
57
64
|
|
58
|
-
// The vtable for subchannel operations in an AVL tree.
|
59
|
-
static const grpc_avl_vtable subchannel_avl_vtable_;
|
60
65
|
// A map from subchannel key to subchannel.
|
61
|
-
|
66
|
+
std::map<SubchannelKey, Subchannel*> subchannel_map_ ABSL_GUARDED_BY(mu_);
|
62
67
|
// To protect subchannel_map_.
|
63
|
-
|
68
|
+
Mutex mu_;
|
64
69
|
};
|
65
70
|
|
66
71
|
} // namespace grpc_core
|
@@ -151,7 +151,7 @@ void HttpConnectHandshaker::OnWriteDone(void* arg, grpc_error* error) {
|
|
151
151
|
// If the write failed or we're shutting down, clean up and invoke the
|
152
152
|
// callback with the error.
|
153
153
|
handshaker->HandshakeFailedLocked(GRPC_ERROR_REF(error));
|
154
|
-
lock.
|
154
|
+
lock.Release();
|
155
155
|
handshaker->Unref();
|
156
156
|
} else {
|
157
157
|
// Otherwise, read the response.
|
@@ -256,7 +256,7 @@ done:
|
|
256
256
|
// Set shutdown to true so that subsequent calls to
|
257
257
|
// http_connect_handshaker_shutdown() do nothing.
|
258
258
|
handshaker->is_shutdown_ = true;
|
259
|
-
lock.
|
259
|
+
lock.Release();
|
260
260
|
handshaker->Unref();
|
261
261
|
}
|
262
262
|
|
@@ -70,6 +70,9 @@ LoadBalancingPolicy::UpdateArgs::UpdateArgs(UpdateArgs&& other) noexcept {
|
|
70
70
|
|
71
71
|
LoadBalancingPolicy::UpdateArgs& LoadBalancingPolicy::UpdateArgs::operator=(
|
72
72
|
const UpdateArgs& other) {
|
73
|
+
if (&other == this) {
|
74
|
+
return *this;
|
75
|
+
}
|
73
76
|
addresses = other.addresses;
|
74
77
|
config = other.config;
|
75
78
|
grpc_channel_args_destroy(args);
|
@@ -1259,12 +1259,10 @@ ServerAddressList ExtractBalancerAddresses(const grpc_channel_args& args) {
|
|
1259
1259
|
* stream for the reception of load balancing updates.
|
1260
1260
|
*
|
1261
1261
|
* Inputs:
|
1262
|
-
* - \a addresses: corresponding to the balancers.
|
1263
1262
|
* - \a response_generator: in order to propagate updates from the resolver
|
1264
1263
|
* above the grpclb policy.
|
1265
1264
|
* - \a args: other args inherited from the grpclb policy. */
|
1266
1265
|
grpc_channel_args* BuildBalancerChannelArgs(
|
1267
|
-
const ServerAddressList& addresses,
|
1268
1266
|
FakeResolverResponseGenerator* response_generator,
|
1269
1267
|
const grpc_channel_args* args) {
|
1270
1268
|
// Channel args to remove.
|
@@ -1313,7 +1311,7 @@ grpc_channel_args* BuildBalancerChannelArgs(
|
|
1313
1311
|
args, args_to_remove, GPR_ARRAY_SIZE(args_to_remove), args_to_add.data(),
|
1314
1312
|
args_to_add.size());
|
1315
1313
|
// Make any necessary modifications for security.
|
1316
|
-
return ModifyGrpclbBalancerChannelArgs(
|
1314
|
+
return ModifyGrpclbBalancerChannelArgs(new_args);
|
1317
1315
|
}
|
1318
1316
|
|
1319
1317
|
//
|
@@ -1464,8 +1462,8 @@ void GrpcLb::ProcessAddressesAndChannelArgsLocked(
|
|
1464
1462
|
&args, args_to_remove, GPR_ARRAY_SIZE(args_to_remove), &new_arg, 1);
|
1465
1463
|
// Construct args for balancer channel.
|
1466
1464
|
ServerAddressList balancer_addresses = ExtractBalancerAddresses(args);
|
1467
|
-
grpc_channel_args* lb_channel_args =
|
1468
|
-
|
1465
|
+
grpc_channel_args* lb_channel_args =
|
1466
|
+
BuildBalancerChannelArgs(response_generator_.get(), &args);
|
1469
1467
|
// Create balancer channel if needed.
|
1470
1468
|
if (lb_channel_ == nullptr) {
|
1471
1469
|
std::string uri_str = absl::StrCat("fake:///", server_name_);
|
@@ -33,8 +33,7 @@ namespace grpc_core {
|
|
33
33
|
/// Takes ownership of \a args.
|
34
34
|
///
|
35
35
|
/// Caller takes ownership of the returned args.
|
36
|
-
grpc_channel_args* ModifyGrpclbBalancerChannelArgs(
|
37
|
-
const ServerAddressList& addresses, grpc_channel_args* args);
|
36
|
+
grpc_channel_args* ModifyGrpclbBalancerChannelArgs(grpc_channel_args* args);
|
38
37
|
|
39
38
|
grpc_channel* CreateGrpclbBalancerChannel(const char* target_uri,
|
40
39
|
const grpc_channel_args& args);
|
@@ -39,8 +39,7 @@
|
|
39
39
|
|
40
40
|
namespace grpc_core {
|
41
41
|
|
42
|
-
grpc_channel_args* ModifyGrpclbBalancerChannelArgs(
|
43
|
-
const ServerAddressList& addresses, grpc_channel_args* args) {
|
42
|
+
grpc_channel_args* ModifyGrpclbBalancerChannelArgs(grpc_channel_args* args) {
|
44
43
|
absl::InlinedVector<const char*, 1> args_to_remove;
|
45
44
|
absl::InlinedVector<grpc_arg, 1> args_to_add;
|
46
45
|
// Substitute the channel credentials with a version without call
|
@@ -497,7 +497,7 @@ class PickFirstFactory : public LoadBalancingPolicyFactory {
|
|
497
497
|
const char* name() const override { return kPickFirst; }
|
498
498
|
|
499
499
|
RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
500
|
-
const Json& json
|
500
|
+
const Json& /*json*/, grpc_error** /*error*/) const override {
|
501
501
|
return MakeRefCounted<PickFirstConfig>();
|
502
502
|
}
|
503
503
|
};
|
@@ -363,8 +363,10 @@ void PriorityLb::HandleChildConnectivityStateChangeLocked(
|
|
363
363
|
// Otherwise, find the child's priority.
|
364
364
|
uint32_t child_priority = GetChildPriorityLocked(child->name());
|
365
365
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_priority_trace)) {
|
366
|
-
gpr_log(GPR_INFO,
|
367
|
-
|
366
|
+
gpr_log(GPR_INFO,
|
367
|
+
"[priority_lb %p] state update for priority %u, child %s, current "
|
368
|
+
"priority %u",
|
369
|
+
this, child_priority, child->name().c_str(), current_priority_);
|
368
370
|
}
|
369
371
|
// Ignore priorities not in the current config.
|
370
372
|
if (child_priority == UINT32_MAX) return;
|
@@ -412,12 +414,13 @@ void PriorityLb::DeleteChild(ChildPriority* child) {
|
|
412
414
|
}
|
413
415
|
|
414
416
|
void PriorityLb::TryNextPriorityLocked(bool report_connecting) {
|
417
|
+
current_priority_ = UINT32_MAX;
|
415
418
|
for (uint32_t priority = 0; priority < config_->priorities().size();
|
416
419
|
++priority) {
|
417
420
|
// If the child for the priority does not exist yet, create it.
|
418
421
|
const std::string& child_name = config_->priorities()[priority];
|
419
422
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_priority_trace)) {
|
420
|
-
gpr_log(GPR_INFO, "[priority_lb %p] trying priority %
|
423
|
+
gpr_log(GPR_INFO, "[priority_lb %p] trying priority %u, child %s", this,
|
421
424
|
priority, child_name.c_str());
|
422
425
|
}
|
423
426
|
auto& child = children_[child_name];
|
@@ -448,7 +451,7 @@ void PriorityLb::TryNextPriorityLocked(bool report_connecting) {
|
|
448
451
|
if (child->failover_timer_callback_pending()) {
|
449
452
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_priority_trace)) {
|
450
453
|
gpr_log(GPR_INFO,
|
451
|
-
"[priority_lb %p] priority %
|
454
|
+
"[priority_lb %p] priority %u, child %s: child still "
|
452
455
|
"attempting to connect, will wait",
|
453
456
|
this, priority, child_name.c_str());
|
454
457
|
}
|
@@ -468,7 +471,6 @@ void PriorityLb::TryNextPriorityLocked(bool report_connecting) {
|
|
468
471
|
"TRANSIENT_FAILURE",
|
469
472
|
this);
|
470
473
|
}
|
471
|
-
current_priority_ = UINT32_MAX;
|
472
474
|
current_child_from_before_update_ = nullptr;
|
473
475
|
grpc_error* error = grpc_error_set_int(
|
474
476
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("no ready priority"),
|
@@ -480,7 +482,7 @@ void PriorityLb::TryNextPriorityLocked(bool report_connecting) {
|
|
480
482
|
|
481
483
|
void PriorityLb::SelectPriorityLocked(uint32_t priority) {
|
482
484
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_priority_trace)) {
|
483
|
-
gpr_log(GPR_INFO, "[priority_lb %p] selected priority %
|
485
|
+
gpr_log(GPR_INFO, "[priority_lb %p] selected priority %u, child %s", this,
|
484
486
|
priority, config_->priorities()[priority].c_str());
|
485
487
|
}
|
486
488
|
current_priority_ = priority;
|