grpc 1.64.3 → 1.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (632) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +57 -58
  3. data/include/grpc/event_engine/event_engine.h +13 -6
  4. data/include/grpc/impl/channel_arg_names.h +7 -3
  5. data/include/grpc/module.modulemap +1 -0
  6. data/include/grpc/passive_listener.h +62 -0
  7. data/include/grpc/support/log.h +7 -17
  8. data/include/grpc/support/port_platform.h +3 -0
  9. data/src/core/channelz/channel_trace.cc +1 -1
  10. data/src/core/channelz/channel_trace.h +1 -1
  11. data/src/core/channelz/channelz.cc +3 -3
  12. data/src/core/channelz/channelz.h +7 -7
  13. data/src/core/channelz/channelz_registry.cc +4 -3
  14. data/src/core/client_channel/backup_poller.cc +4 -5
  15. data/src/core/client_channel/client_channel.cc +1324 -0
  16. data/src/core/client_channel/client_channel.h +243 -0
  17. data/src/core/client_channel/client_channel_filter.cc +266 -709
  18. data/src/core/client_channel/client_channel_filter.h +11 -64
  19. data/src/core/client_channel/client_channel_internal.h +16 -5
  20. data/src/core/client_channel/client_channel_plugin.cc +1 -14
  21. data/src/core/client_channel/client_channel_service_config.h +3 -3
  22. data/src/core/client_channel/config_selector.cc +1 -1
  23. data/src/core/client_channel/config_selector.h +1 -1
  24. data/src/core/client_channel/dynamic_filters.cc +3 -3
  25. data/src/core/client_channel/dynamic_filters.h +1 -3
  26. data/src/core/client_channel/load_balanced_call_destination.cc +336 -0
  27. data/src/core/client_channel/load_balanced_call_destination.h +49 -0
  28. data/src/core/client_channel/retry_filter.cc +2 -9
  29. data/src/core/client_channel/retry_filter.h +2 -7
  30. data/src/core/client_channel/retry_filter_legacy_call_data.cc +65 -72
  31. data/src/core/client_channel/retry_filter_legacy_call_data.h +0 -2
  32. data/src/core/client_channel/retry_service_config.cc +4 -5
  33. data/src/core/client_channel/retry_service_config.h +3 -3
  34. data/src/core/client_channel/subchannel.cc +220 -112
  35. data/src/core/client_channel/subchannel.h +31 -18
  36. data/src/core/client_channel/subchannel_pool_interface.cc +0 -2
  37. data/src/core/client_channel/subchannel_pool_interface.h +2 -4
  38. data/src/core/client_channel/subchannel_stream_client.cc +36 -49
  39. data/src/core/client_channel/subchannel_stream_client.h +2 -4
  40. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +7 -10
  41. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +1 -0
  42. data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +7 -0
  43. data/src/core/ext/filters/census/grpc_context.cc +2 -4
  44. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +8 -15
  45. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +2 -0
  46. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +3 -7
  47. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +1 -0
  48. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +3 -3
  49. data/src/core/ext/filters/http/client/http_client_filter.cc +1 -0
  50. data/src/core/ext/filters/http/client/http_client_filter.h +1 -0
  51. data/src/core/ext/filters/http/client_authority_filter.cc +1 -0
  52. data/src/core/ext/filters/http/client_authority_filter.h +1 -0
  53. data/src/core/ext/filters/http/message_compress/compression_filter.cc +10 -15
  54. data/src/core/ext/filters/http/message_compress/compression_filter.h +2 -0
  55. data/src/core/ext/filters/http/server/http_server_filter.cc +2 -2
  56. data/src/core/ext/filters/http/server/http_server_filter.h +1 -0
  57. data/src/core/ext/filters/message_size/message_size_filter.cc +6 -9
  58. data/src/core/ext/filters/message_size/message_size_filter.h +6 -6
  59. data/src/core/ext/filters/rbac/rbac_filter.cc +2 -5
  60. data/src/core/ext/filters/rbac/rbac_filter.h +1 -0
  61. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +2 -2
  62. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +1 -1
  63. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +2 -6
  64. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +1 -0
  65. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +3 -3
  66. data/src/core/ext/transport/chttp2/alpn/alpn.cc +1 -1
  67. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +8 -25
  68. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -5
  69. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +223 -148
  70. data/src/core/ext/transport/chttp2/server/chttp2_server.h +33 -0
  71. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +131 -107
  72. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +8 -8
  73. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +1 -1
  74. data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -4
  75. data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -2
  76. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -6
  77. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +1 -2
  78. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +9 -5
  79. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +5 -4
  80. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +9 -2
  81. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +32 -43
  82. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -3
  83. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +3 -8
  84. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -1
  85. data/src/core/ext/transport/chttp2/transport/http2_settings.h +1 -1
  86. data/src/core/ext/transport/chttp2/transport/internal.h +29 -19
  87. data/src/core/ext/transport/chttp2/transport/parsing.cc +15 -25
  88. data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +0 -2
  89. data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +0 -2
  90. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +29 -13
  91. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +5 -4
  92. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +3 -5
  93. data/src/core/ext/transport/chttp2/transport/writing.cc +24 -25
  94. data/src/core/ext/transport/inproc/inproc_transport.cc +56 -32
  95. data/src/core/ext/transport/inproc/inproc_transport.h +1 -3
  96. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +13 -15
  97. data/src/core/ext/transport/inproc/legacy_inproc_transport.h +0 -2
  98. data/src/core/handshaker/handshaker.cc +6 -14
  99. data/src/core/handshaker/http_connect/http_connect_handshaker.cc +9 -17
  100. data/src/core/handshaker/http_connect/http_proxy_mapper.cc +3 -2
  101. data/src/core/handshaker/security/secure_endpoint.cc +38 -32
  102. data/src/core/handshaker/security/secure_endpoint.h +0 -2
  103. data/src/core/handshaker/security/security_handshaker.cc +25 -37
  104. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +2 -1
  105. data/src/core/lib/address_utils/parse_address.cc +27 -39
  106. data/src/core/lib/address_utils/sockaddr_utils.cc +5 -6
  107. data/src/core/lib/avl/avl.h +1 -1
  108. data/src/core/lib/channel/channel_args.cc +13 -17
  109. data/src/core/lib/channel/channel_args.h +19 -8
  110. data/src/core/lib/channel/channel_stack.cc +5 -63
  111. data/src/core/lib/channel/channel_stack.h +13 -37
  112. data/src/core/lib/channel/channel_stack_builder.h +0 -5
  113. data/src/core/lib/channel/channel_stack_builder_impl.cc +0 -142
  114. data/src/core/lib/channel/channel_stack_builder_impl.h +0 -2
  115. data/src/core/lib/channel/connected_channel.cc +37 -676
  116. data/src/core/lib/channel/promise_based_filter.cc +41 -47
  117. data/src/core/lib/channel/promise_based_filter.h +124 -477
  118. data/src/core/lib/channel/status_util.cc +1 -1
  119. data/src/core/lib/compression/compression.cc +1 -1
  120. data/src/core/lib/compression/message_compress.cc +6 -6
  121. data/src/core/lib/config/config_vars.cc +3 -8
  122. data/src/core/lib/config/config_vars.h +1 -5
  123. data/src/core/lib/debug/event_log.h +1 -1
  124. data/src/core/lib/debug/trace.cc +43 -59
  125. data/src/core/lib/debug/trace.h +2 -97
  126. data/src/core/lib/debug/trace_flags.cc +255 -0
  127. data/src/core/lib/debug/trace_flags.h +133 -0
  128. data/src/core/lib/debug/trace_impl.h +115 -0
  129. data/src/core/lib/event_engine/ares_resolver.cc +5 -7
  130. data/src/core/lib/event_engine/ares_resolver.h +1 -3
  131. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +1 -1
  132. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +17 -22
  133. data/src/core/lib/event_engine/event_engine.cc +29 -4
  134. data/src/core/lib/event_engine/extensions/supports_fd.h +7 -0
  135. data/src/core/lib/event_engine/extensions/tcp_trace.h +43 -0
  136. data/src/core/lib/event_engine/forkable.cc +4 -5
  137. data/src/core/lib/event_engine/forkable.h +0 -11
  138. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +10 -11
  139. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +4 -3
  140. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +1 -1
  141. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +19 -33
  142. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +3 -2
  143. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +24 -7
  144. data/src/core/lib/event_engine/posix_engine/posix_engine.h +2 -0
  145. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +14 -16
  146. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +18 -22
  147. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +13 -17
  148. data/src/core/lib/event_engine/posix_engine/timer.cc +1 -1
  149. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +4 -6
  150. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +2 -1
  151. data/src/core/lib/event_engine/shim.cc +1 -1
  152. data/src/core/lib/event_engine/tcp_socket_utils.cc +6 -8
  153. data/src/core/lib/event_engine/thread_local.h +1 -1
  154. data/src/core/lib/event_engine/thread_pool/thread_count.h +1 -1
  155. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +19 -21
  156. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -6
  157. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +14 -13
  158. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +4 -3
  159. data/src/core/lib/event_engine/trace.h +6 -17
  160. data/src/core/lib/event_engine/windows/iocp.h +1 -1
  161. data/src/core/lib/event_engine/windows/win_socket.cc +23 -17
  162. data/src/core/lib/event_engine/windows/win_socket.h +4 -5
  163. data/src/core/lib/event_engine/windows/windows_endpoint.cc +6 -9
  164. data/src/core/lib/event_engine/windows/windows_engine.cc +201 -87
  165. data/src/core/lib/event_engine/windows/windows_engine.h +136 -25
  166. data/src/core/lib/event_engine/windows/windows_listener.cc +12 -23
  167. data/src/core/lib/experiments/experiments.cc +35 -151
  168. data/src/core/lib/experiments/experiments.h +12 -45
  169. data/src/core/lib/gprpp/bitset.h +1 -1
  170. data/src/core/lib/gprpp/crash.cc +2 -3
  171. data/src/core/lib/gprpp/dual_ref_counted.h +45 -33
  172. data/src/core/lib/gprpp/dump_args.cc +54 -0
  173. data/src/core/lib/gprpp/dump_args.h +69 -0
  174. data/src/core/lib/gprpp/glob.cc +70 -0
  175. data/src/core/lib/gprpp/glob.h +29 -0
  176. data/src/core/lib/gprpp/per_cpu.cc +1 -1
  177. data/src/core/lib/gprpp/posix/stat.cc +3 -4
  178. data/src/core/lib/gprpp/posix/thd.cc +8 -9
  179. data/src/core/lib/gprpp/ref_counted.h +30 -22
  180. data/src/core/lib/gprpp/single_set_ptr.h +5 -3
  181. data/src/core/lib/gprpp/status_helper.cc +11 -30
  182. data/src/core/lib/gprpp/status_helper.h +3 -31
  183. data/src/core/lib/gprpp/time.cc +3 -4
  184. data/src/core/lib/gprpp/time.h +3 -2
  185. data/src/core/lib/gprpp/unique_type_name.h +1 -1
  186. data/src/core/lib/gprpp/validation_errors.cc +10 -1
  187. data/src/core/lib/gprpp/validation_errors.h +11 -0
  188. data/src/core/lib/gprpp/windows/stat.cc +3 -4
  189. data/src/core/lib/gprpp/windows/thd.cc +3 -2
  190. data/src/core/lib/gprpp/work_serializer.cc +48 -57
  191. data/src/core/lib/iomgr/buffer_list.cc +4 -2
  192. data/src/core/lib/iomgr/call_combiner.cc +18 -27
  193. data/src/core/lib/iomgr/call_combiner.h +1 -3
  194. data/src/core/lib/iomgr/cfstream_handle.cc +4 -6
  195. data/src/core/lib/iomgr/closure.h +2 -4
  196. data/src/core/lib/iomgr/combiner.cc +6 -8
  197. data/src/core/lib/iomgr/combiner.h +0 -2
  198. data/src/core/lib/iomgr/endpoint.cc +0 -6
  199. data/src/core/lib/iomgr/endpoint.h +0 -2
  200. data/src/core/lib/iomgr/endpoint_cfstream.cc +19 -41
  201. data/src/core/lib/iomgr/endpoint_pair_posix.cc +1 -1
  202. data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -6
  203. data/src/core/lib/iomgr/error.cc +13 -21
  204. data/src/core/lib/iomgr/error.h +1 -1
  205. data/src/core/lib/iomgr/ev_apple.cc +3 -5
  206. data/src/core/lib/iomgr/ev_epoll1_linux.cc +43 -42
  207. data/src/core/lib/iomgr/ev_poll_posix.cc +38 -29
  208. data/src/core/lib/iomgr/ev_posix.cc +8 -9
  209. data/src/core/lib/iomgr/ev_posix.h +10 -7
  210. data/src/core/lib/iomgr/event_engine_shims/closure.cc +2 -2
  211. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +14 -28
  212. data/src/core/lib/iomgr/exec_ctx.cc +2 -2
  213. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  214. data/src/core/lib/iomgr/executor.cc +6 -15
  215. data/src/core/lib/iomgr/executor.h +1 -1
  216. data/src/core/lib/iomgr/fork_posix.cc +8 -10
  217. data/src/core/lib/iomgr/fork_windows.cc +3 -1
  218. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -3
  219. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +3 -5
  220. data/src/core/lib/iomgr/internal_errqueue.cc +4 -2
  221. data/src/core/lib/iomgr/iocp_windows.cc +4 -3
  222. data/src/core/lib/iomgr/iomgr.cc +13 -17
  223. data/src/core/lib/iomgr/lockfree_event.cc +3 -5
  224. data/src/core/lib/iomgr/pollset.h +0 -2
  225. data/src/core/lib/iomgr/pollset_windows.cc +0 -2
  226. data/src/core/lib/iomgr/resolve_address_posix.cc +7 -14
  227. data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
  228. data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
  229. data/src/core/lib/iomgr/socket_mutator.cc +1 -1
  230. data/src/core/lib/iomgr/socket_utils_common_posix.cc +11 -17
  231. data/src/core/lib/iomgr/socket_windows.cc +4 -6
  232. data/src/core/lib/iomgr/tcp_client_cfstream.cc +3 -5
  233. data/src/core/lib/iomgr/tcp_client_posix.cc +9 -15
  234. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -4
  235. data/src/core/lib/iomgr/tcp_posix.cc +57 -84
  236. data/src/core/lib/iomgr/tcp_posix.h +0 -2
  237. data/src/core/lib/iomgr/tcp_server_posix.cc +3 -3
  238. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +4 -6
  239. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +7 -7
  240. data/src/core/lib/iomgr/tcp_server_windows.cc +10 -16
  241. data/src/core/lib/iomgr/tcp_windows.cc +25 -41
  242. data/src/core/lib/iomgr/timer_generic.cc +17 -20
  243. data/src/core/lib/iomgr/timer_heap.cc +1 -1
  244. data/src/core/lib/iomgr/timer_manager.cc +17 -30
  245. data/src/core/lib/iomgr/unix_sockets_posix.cc +1 -1
  246. data/src/core/lib/iomgr/vsock.cc +1 -1
  247. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +3 -3
  248. data/src/core/lib/promise/activity.h +27 -4
  249. data/src/core/lib/promise/cancel_callback.h +24 -0
  250. data/src/core/lib/promise/context.h +11 -0
  251. data/src/core/lib/promise/detail/basic_seq.h +1 -2
  252. data/src/core/lib/promise/detail/join_state.h +354 -398
  253. data/src/core/lib/promise/detail/promise_like.h +6 -5
  254. data/src/core/lib/promise/detail/seq_state.h +1178 -1178
  255. data/src/core/lib/promise/for_each.h +6 -6
  256. data/src/core/lib/promise/interceptor_list.h +6 -7
  257. data/src/core/lib/promise/latch.h +9 -9
  258. data/src/core/lib/promise/map.h +17 -0
  259. data/src/core/lib/promise/observable.h +182 -0
  260. data/src/core/lib/promise/party.cc +7 -8
  261. data/src/core/lib/promise/party.h +10 -8
  262. data/src/core/lib/promise/pipe.h +16 -35
  263. data/src/core/lib/promise/promise.h +1 -0
  264. data/src/core/lib/promise/status_flag.h +2 -0
  265. data/src/core/lib/resource_quota/arena.cc +56 -79
  266. data/src/core/lib/resource_quota/arena.h +118 -209
  267. data/src/core/lib/resource_quota/memory_quota.cc +12 -13
  268. data/src/core/lib/resource_quota/memory_quota.h +2 -3
  269. data/src/core/lib/resource_quota/periodic_update.cc +1 -1
  270. data/src/core/lib/resource_quota/resource_quota.h +1 -1
  271. data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
  272. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
  273. data/src/core/lib/security/authorization/evaluate_args.cc +6 -8
  274. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +5 -6
  275. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -0
  276. data/src/core/lib/security/authorization/matchers.cc +3 -3
  277. data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +2 -2
  278. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +2 -3
  279. data/src/core/lib/security/context/security_context.cc +12 -13
  280. data/src/core/lib/security/context/security_context.h +31 -8
  281. data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
  282. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +3 -1
  283. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -3
  284. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +5 -5
  285. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +3 -3
  286. data/src/core/lib/security/credentials/call_creds_util.cc +2 -1
  287. data/src/core/lib/security/credentials/channel_creds_registry.h +2 -2
  288. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +5 -3
  289. data/src/core/lib/security/credentials/composite/composite_credentials.h +1 -1
  290. data/src/core/lib/security/credentials/credentials.cc +6 -6
  291. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +4 -4
  292. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +2 -2
  293. data/src/core/lib/security/credentials/external/external_account_credentials.cc +9 -11
  294. data/src/core/lib/security/credentials/external/external_account_credentials.h +3 -3
  295. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +2 -2
  296. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -4
  297. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +1 -1
  298. data/src/core/lib/security/credentials/fake/fake_credentials.h +1 -1
  299. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -3
  300. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +11 -11
  301. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -1
  302. data/src/core/lib/security/credentials/iam/iam_credentials.h +1 -1
  303. data/src/core/lib/security/credentials/jwt/json_token.cc +14 -15
  304. data/src/core/lib/security/credentials/jwt/json_token.h +1 -1
  305. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +6 -5
  306. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +1 -1
  307. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +50 -54
  308. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
  309. data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
  310. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +12 -11
  311. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +4 -4
  312. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -7
  313. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +1 -3
  314. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +15 -21
  315. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
  316. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +21 -30
  317. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +1 -1
  318. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +1 -1
  319. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -4
  320. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +3 -5
  321. data/src/core/lib/security/credentials/tls/tls_credentials.cc +14 -16
  322. data/src/core/lib/security/credentials/tls/tls_utils.cc +4 -4
  323. data/src/core/lib/security/credentials/xds/xds_credentials.cc +1 -1
  324. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -16
  325. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +15 -12
  326. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +6 -6
  327. data/src/core/lib/security/security_connector/load_system_roots_windows.cc +1 -1
  328. data/src/core/lib/security/security_connector/local/local_security_connector.cc +8 -12
  329. data/src/core/lib/security/security_connector/security_connector.cc +1 -4
  330. data/src/core/lib/security/security_connector/security_connector.h +1 -3
  331. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +17 -19
  332. data/src/core/lib/security/security_connector/ssl_utils.cc +19 -21
  333. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +29 -40
  334. data/src/core/lib/security/transport/auth_filters.h +1 -0
  335. data/src/core/lib/security/transport/client_auth_filter.cc +7 -13
  336. data/src/core/lib/security/transport/server_auth_filter.cc +3 -8
  337. data/src/core/lib/security/util/json_util.h +1 -1
  338. data/src/core/lib/slice/slice.h +1 -1
  339. data/src/core/lib/slice/slice_refcount.h +2 -4
  340. data/src/core/lib/slice/slice_string_helpers.cc +1 -1
  341. data/src/core/lib/surface/api_trace.h +1 -3
  342. data/src/core/lib/surface/call.cc +64 -3738
  343. data/src/core/lib/surface/call.h +41 -143
  344. data/src/core/lib/surface/call_log_batch.cc +1 -1
  345. data/src/core/lib/surface/call_utils.cc +276 -0
  346. data/src/core/lib/surface/call_utils.h +449 -0
  347. data/src/core/lib/surface/channel.cc +8 -3
  348. data/src/core/lib/surface/channel.h +10 -7
  349. data/src/core/lib/surface/channel_create.cc +14 -6
  350. data/src/core/lib/surface/channel_create.h +3 -2
  351. data/src/core/lib/surface/channel_init.cc +21 -77
  352. data/src/core/lib/surface/channel_init.h +19 -97
  353. data/src/core/lib/surface/client_call.cc +419 -0
  354. data/src/core/lib/surface/client_call.h +180 -0
  355. data/src/core/lib/surface/completion_queue.cc +28 -33
  356. data/src/core/lib/surface/completion_queue.h +0 -8
  357. data/src/core/lib/surface/filter_stack_call.cc +1157 -0
  358. data/src/core/lib/surface/filter_stack_call.h +369 -0
  359. data/src/core/lib/surface/init.cc +7 -6
  360. data/src/core/lib/surface/lame_client.cc +1 -1
  361. data/src/core/lib/surface/legacy_channel.cc +40 -27
  362. data/src/core/lib/surface/legacy_channel.h +9 -18
  363. data/src/core/lib/surface/server_call.cc +222 -0
  364. data/src/core/lib/surface/server_call.h +167 -0
  365. data/src/core/lib/surface/version.cc +2 -2
  366. data/src/core/lib/transport/bdp_estimator.cc +3 -5
  367. data/src/core/lib/transport/bdp_estimator.h +2 -4
  368. data/src/core/lib/transport/call_arena_allocator.h +9 -7
  369. data/src/core/lib/transport/call_destination.h +76 -0
  370. data/src/core/lib/transport/call_filters.cc +28 -10
  371. data/src/core/lib/transport/call_filters.h +128 -22
  372. data/src/core/lib/transport/call_spine.cc +5 -6
  373. data/src/core/lib/transport/call_spine.h +159 -334
  374. data/src/core/lib/transport/connectivity_state.cc +8 -10
  375. data/src/core/lib/transport/connectivity_state.h +0 -2
  376. data/src/core/lib/transport/interception_chain.cc +155 -0
  377. data/src/core/lib/transport/interception_chain.h +236 -0
  378. data/src/core/lib/transport/metadata_batch.h +10 -1
  379. data/src/core/lib/transport/metadata_info.h +1 -1
  380. data/src/core/lib/transport/transport.cc +3 -6
  381. data/src/core/lib/transport/transport.h +43 -40
  382. data/src/core/load_balancing/child_policy_handler.cc +8 -8
  383. data/src/core/load_balancing/endpoint_list.cc +5 -5
  384. data/src/core/load_balancing/endpoint_list.h +1 -1
  385. data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +1 -0
  386. data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +1 -0
  387. data/src/core/load_balancing/grpclb/grpclb.cc +25 -29
  388. data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc +1 -1
  389. data/src/core/load_balancing/grpclb/load_balancer_api.cc +3 -4
  390. data/src/core/load_balancing/health_check_client.cc +10 -13
  391. data/src/core/load_balancing/lb_policy.cc +5 -8
  392. data/src/core/load_balancing/lb_policy.h +19 -3
  393. data/src/core/load_balancing/lb_policy_factory.h +1 -1
  394. data/src/core/load_balancing/lb_policy_registry.cc +2 -3
  395. data/src/core/load_balancing/lb_policy_registry.h +1 -1
  396. data/src/core/load_balancing/oob_backend_metric.cc +2 -4
  397. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +33 -35
  398. data/src/core/load_balancing/outlier_detection/outlier_detection.h +3 -3
  399. data/src/core/load_balancing/pick_first/pick_first.cc +65 -65
  400. data/src/core/load_balancing/priority/priority.cc +26 -28
  401. data/src/core/load_balancing/ring_hash/ring_hash.cc +11 -13
  402. data/src/core/load_balancing/ring_hash/ring_hash.h +3 -3
  403. data/src/core/load_balancing/rls/rls.cc +82 -82
  404. data/src/core/load_balancing/round_robin/round_robin.cc +17 -20
  405. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +54 -43
  406. data/src/core/load_balancing/weighted_target/weighted_target.cc +21 -24
  407. data/src/core/load_balancing/xds/cds.cc +14 -16
  408. data/src/core/load_balancing/xds/xds_cluster_impl.cc +16 -18
  409. data/src/core/load_balancing/xds/xds_cluster_manager.cc +15 -17
  410. data/src/core/load_balancing/xds/xds_override_host.cc +40 -41
  411. data/src/core/load_balancing/xds/xds_override_host.h +3 -3
  412. data/src/core/load_balancing/xds/xds_wrr_locality.cc +10 -12
  413. data/src/core/plugin_registry/grpc_plugin_registry.cc +5 -1
  414. data/src/core/resolver/binder/binder_resolver.cc +3 -2
  415. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +3 -2
  416. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +1 -1
  417. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +7 -14
  418. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -5
  419. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  420. data/src/core/resolver/dns/dns_resolver_plugin.cc +6 -5
  421. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +4 -9
  422. data/src/core/resolver/dns/event_engine/service_config_helper.cc +5 -5
  423. data/src/core/resolver/dns/native/dns_resolver.cc +8 -9
  424. data/src/core/resolver/endpoint_addresses.cc +1 -1
  425. data/src/core/resolver/fake/fake_resolver.cc +1 -1
  426. data/src/core/resolver/fake/fake_resolver.h +1 -1
  427. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +13 -14
  428. data/src/core/resolver/polling_resolver.cc +30 -35
  429. data/src/core/resolver/resolver.cc +2 -6
  430. data/src/core/resolver/resolver.h +0 -2
  431. data/src/core/resolver/resolver_registry.cc +6 -8
  432. data/src/core/resolver/sockaddr/sockaddr_resolver.cc +3 -3
  433. data/src/core/resolver/xds/xds_dependency_manager.cc +22 -23
  434. data/src/core/resolver/xds/xds_resolver.cc +13 -15
  435. data/src/core/server/server.cc +269 -389
  436. data/src/core/server/server.h +37 -19
  437. data/src/core/server/server_call_tracer_filter.cc +7 -14
  438. data/src/core/server/server_config_selector.h +1 -1
  439. data/src/core/server/server_config_selector_filter.cc +3 -3
  440. data/src/core/server/server_interface.h +2 -0
  441. data/src/core/server/xds_channel_stack_modifier.cc +1 -1
  442. data/src/core/server/xds_channel_stack_modifier.h +1 -1
  443. data/src/core/server/xds_server_config_fetcher.cc +1 -4
  444. data/src/core/service_config/service_config.h +1 -1
  445. data/src/core/service_config/service_config_call_data.h +13 -11
  446. data/src/core/service_config/service_config_channel_arg_filter.cc +6 -4
  447. data/src/core/service_config/service_config_impl.cc +5 -5
  448. data/src/core/service_config/service_config_impl.h +1 -1
  449. data/src/core/service_config/service_config_parser.cc +3 -6
  450. data/src/core/service_config/service_config_parser.h +1 -1
  451. data/src/core/{lib/channel → telemetry}/call_tracer.cc +20 -30
  452. data/src/core/{lib/channel → telemetry}/call_tracer.h +32 -9
  453. data/src/core/{lib/debug → telemetry}/histogram_view.cc +1 -1
  454. data/src/core/{lib/debug → telemetry}/histogram_view.h +3 -3
  455. data/src/core/telemetry/metrics.cc +178 -0
  456. data/src/core/telemetry/metrics.h +562 -0
  457. data/src/core/{lib/debug → telemetry}/stats.cc +1 -1
  458. data/src/core/{lib/debug → telemetry}/stats.h +5 -5
  459. data/src/core/{lib/debug → telemetry}/stats_data.cc +1 -1
  460. data/src/core/{lib/debug → telemetry}/stats_data.h +4 -4
  461. data/src/core/{lib/channel → telemetry}/tcp_tracer.h +3 -3
  462. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +12 -13
  463. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +25 -27
  464. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +32 -33
  465. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -1
  466. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -1
  467. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +5 -4
  468. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +5 -3
  469. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
  470. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -3
  471. data/src/core/tsi/fake_transport_security.cc +14 -17
  472. data/src/core/tsi/local_transport_security.cc +6 -5
  473. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +4 -4
  474. data/src/core/tsi/ssl_transport_security.cc +76 -81
  475. data/src/core/tsi/ssl_transport_security_utils.cc +74 -18
  476. data/src/core/tsi/ssl_transport_security_utils.h +11 -0
  477. data/src/core/tsi/transport_security.cc +0 -4
  478. data/src/core/tsi/transport_security.h +0 -2
  479. data/src/core/tsi/transport_security_interface.h +0 -4
  480. data/src/core/{lib/gpr → util}/alloc.h +3 -3
  481. data/src/core/{lib/gpr → util}/android/log.cc +0 -19
  482. data/src/core/{lib/gpr → util}/atm.cc +1 -1
  483. data/src/core/{ext/gcp/metadata_query.cc → util/gcp_metadata_query.cc} +25 -26
  484. data/src/core/{ext/gcp/metadata_query.h → util/gcp_metadata_query.h} +11 -11
  485. data/src/core/{lib/http → util/http_client}/format_request.cc +4 -3
  486. data/src/core/{lib/http → util/http_client}/format_request.h +6 -5
  487. data/src/core/{lib/http → util/http_client}/httpcli.cc +9 -10
  488. data/src/core/{lib/http → util/http_client}/httpcli.h +6 -5
  489. data/src/core/{lib/http → util/http_client}/httpcli_security_connector.cc +9 -9
  490. data/src/core/{lib/http → util/http_client}/httpcli_ssl_credentials.h +5 -4
  491. data/src/core/{lib/http → util/http_client}/parser.cc +4 -5
  492. data/src/core/{lib/http → util/http_client}/parser.h +5 -6
  493. data/src/core/{lib → util}/json/json.h +5 -4
  494. data/src/core/{lib → util}/json/json_args.h +5 -5
  495. data/src/core/{lib → util}/json/json_channel_args.h +6 -6
  496. data/src/core/{lib → util}/json/json_object_loader.cc +3 -2
  497. data/src/core/{lib → util}/json/json_object_loader.h +7 -7
  498. data/src/core/{lib → util}/json/json_reader.cc +3 -2
  499. data/src/core/{lib → util}/json/json_reader.h +6 -6
  500. data/src/core/{lib → util}/json/json_util.cc +4 -4
  501. data/src/core/{lib → util}/json/json_util.h +6 -6
  502. data/src/core/{lib → util}/json/json_writer.cc +3 -3
  503. data/src/core/{lib → util}/json/json_writer.h +6 -6
  504. data/src/core/{lib/gpr → util}/linux/log.cc +0 -45
  505. data/src/core/util/log.cc +165 -0
  506. data/src/core/{lib/gpr → util}/msys/tmpfile.cc +2 -2
  507. data/src/core/{lib/gpr → util}/posix/cpu.cc +1 -1
  508. data/src/core/{lib/gpr → util}/posix/log.cc +0 -42
  509. data/src/core/{lib/gpr → util}/posix/time.cc +1 -1
  510. data/src/core/{lib/gpr → util}/posix/tmpfile.cc +2 -2
  511. data/src/core/{lib/gpr → util}/spinlock.h +3 -3
  512. data/src/core/{lib/gpr → util}/string.cc +2 -2
  513. data/src/core/{lib/gpr → util}/string.h +3 -3
  514. data/src/core/{lib/gpr → util}/time_precise.cc +1 -1
  515. data/src/core/{lib/gpr → util}/time_precise.h +3 -3
  516. data/src/core/{lib/gpr → util}/tmpfile.h +3 -3
  517. data/src/core/{lib/gpr → util}/useful.h +3 -3
  518. data/src/core/{lib/gpr → util}/windows/log.cc +1 -44
  519. data/src/core/{lib/gpr → util}/windows/string.cc +1 -1
  520. data/src/core/{lib/gpr → util}/windows/string_util.cc +1 -1
  521. data/src/core/{lib/gpr → util}/windows/time.cc +1 -1
  522. data/src/core/{lib/gpr → util}/windows/tmpfile.cc +1 -1
  523. data/src/core/xds/grpc/certificate_provider_store.cc +3 -3
  524. data/src/core/xds/grpc/certificate_provider_store.h +4 -4
  525. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
  526. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +3 -3
  527. data/src/core/xds/grpc/xds_audit_logger_registry.h +1 -1
  528. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +5 -5
  529. data/src/core/xds/grpc/xds_bootstrap_grpc.h +3 -3
  530. data/src/core/xds/grpc/xds_certificate_provider.h +1 -1
  531. data/src/core/xds/grpc/xds_client_grpc.cc +27 -23
  532. data/src/core/xds/grpc/xds_client_grpc.h +2 -2
  533. data/src/core/xds/grpc/xds_cluster.cc +4 -5
  534. data/src/core/xds/grpc/xds_cluster.h +1 -1
  535. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
  536. data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +1 -1
  537. data/src/core/xds/grpc/xds_common_types.cc +1 -1
  538. data/src/core/xds/grpc/xds_common_types.h +1 -1
  539. data/src/core/xds/grpc/xds_endpoint.cc +4 -5
  540. data/src/core/xds/grpc/xds_http_fault_filter.cc +2 -2
  541. data/src/core/xds/grpc/xds_http_filters.h +2 -2
  542. data/src/core/xds/grpc/xds_http_rbac_filter.cc +3 -3
  543. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +2 -2
  544. data/src/core/xds/grpc/xds_lb_policy_registry.h +1 -1
  545. data/src/core/xds/grpc/xds_listener.cc +4 -6
  546. data/src/core/xds/grpc/xds_route_config.cc +7 -8
  547. data/src/core/xds/grpc/xds_transport_grpc.cc +2 -2
  548. data/src/core/xds/grpc/xds_transport_grpc.h +1 -1
  549. data/src/core/xds/xds_client/xds_api.cc +5 -9
  550. data/src/core/xds/xds_client/xds_bootstrap.cc +1 -1
  551. data/src/core/xds/xds_client/xds_bootstrap.h +1 -1
  552. data/src/core/xds/xds_client/xds_client.cc +39 -45
  553. data/src/core/xds/xds_client/xds_client.h +0 -3
  554. data/src/core/xds/xds_client/xds_client_stats.cc +6 -6
  555. data/src/core/xds/xds_client/xds_client_stats.h +2 -2
  556. data/src/ruby/bin/math_pb.rb +1 -22
  557. data/src/ruby/ext/grpc/rb_call.c +8 -1
  558. data/src/ruby/ext/grpc/rb_completion_queue.c +15 -32
  559. data/src/ruby/ext/grpc/rb_completion_queue.h +7 -1
  560. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -2
  561. data/src/ruby/ext/grpc/rb_server.c +39 -22
  562. data/src/ruby/lib/grpc/version.rb +1 -1
  563. data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -22
  564. data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +5 -5
  565. data/src/ruby/pb/grpc/testing/metrics_pb.rb +10 -19
  566. data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +5 -5
  567. data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -22
  568. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -22
  569. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -22
  570. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +4 -0
  571. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +12 -12
  572. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +66 -41
  573. data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +1497 -0
  574. data/third_party/boringssl-with-bazel/src/crypto/dilithium/internal.h +58 -0
  575. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -3
  576. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +0 -2
  577. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +2 -0
  578. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +5 -0
  579. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +45 -1
  580. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +33 -23
  581. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +3 -6
  582. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +9 -4
  583. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +6 -0
  584. data/third_party/boringssl-with-bazel/src/crypto/internal.h +7 -0
  585. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +0 -4
  586. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c +49 -16
  587. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -10
  588. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +7 -17
  589. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +8 -6
  590. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +3 -0
  591. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +125 -0
  592. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +0 -23
  593. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +1 -1
  594. data/third_party/boringssl-with-bazel/src/ssl/internal.h +4 -10
  595. metadata +103 -93
  596. data/src/core/ext/transport/chttp2/transport/http_trace.cc +0 -19
  597. data/src/core/ext/transport/chttp2/transport/http_trace.h +0 -24
  598. data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -23
  599. data/src/core/handshaker/security/tsi_error.cc +0 -31
  600. data/src/core/handshaker/security/tsi_error.h +0 -30
  601. data/src/core/lib/channel/channel_stack_trace.cc +0 -19
  602. data/src/core/lib/channel/channel_stack_trace.h +0 -24
  603. data/src/core/lib/channel/context.h +0 -105
  604. data/src/core/lib/channel/metrics.cc +0 -334
  605. data/src/core/lib/channel/metrics.h +0 -365
  606. data/src/core/lib/event_engine/trace.cc +0 -25
  607. data/src/core/lib/gpr/log.cc +0 -166
  608. data/src/core/lib/iomgr/ev_windows.cc +0 -30
  609. data/src/core/lib/promise/trace.cc +0 -20
  610. data/src/core/lib/promise/trace.h +0 -24
  611. data/src/core/lib/resource_quota/trace.cc +0 -19
  612. data/src/core/lib/resource_quota/trace.h +0 -24
  613. data/src/core/lib/slice/slice_refcount.cc +0 -20
  614. data/src/core/lib/surface/api_trace.cc +0 -25
  615. data/src/core/lib/surface/call_trace.h +0 -24
  616. data/src/core/lib/surface/wait_for_cq_end_op.cc +0 -75
  617. data/src/core/lib/surface/wait_for_cq_end_op.h +0 -72
  618. data/src/core/lib/transport/batch_builder.cc +0 -172
  619. data/src/core/lib/transport/batch_builder.h +0 -474
  620. data/src/core/resolver/xds/xds_resolver_trace.cc +0 -25
  621. data/src/core/resolver/xds/xds_resolver_trace.h +0 -30
  622. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -122
  623. /data/src/core/{lib/gpr → util}/alloc.cc +0 -0
  624. /data/src/core/{lib/gpr → util}/iphone/cpu.cc +0 -0
  625. /data/src/core/{lib/gpr → util}/linux/cpu.cc +0 -0
  626. /data/src/core/{lib/gpr → util}/posix/string.cc +0 -0
  627. /data/src/core/{lib/gpr → util}/posix/sync.cc +0 -0
  628. /data/src/core/{lib/gpr → util}/sync.cc +0 -0
  629. /data/src/core/{lib/gpr → util}/sync_abseil.cc +0 -0
  630. /data/src/core/{lib/gpr → util}/time.cc +0 -0
  631. /data/src/core/{lib/gpr → util}/windows/cpu.cc +0 -0
  632. /data/src/core/{lib/gpr → util}/windows/sync.cc +0 -0
@@ -70,7 +70,6 @@
70
70
  #include "src/core/client_channel/client_channel_filter.h"
71
71
  #include "src/core/lib/backoff/backoff.h"
72
72
  #include "src/core/lib/channel/channel_args.h"
73
- #include "src/core/lib/channel/metrics.h"
74
73
  #include "src/core/lib/config/core_configuration.h"
75
74
  #include "src/core/lib/debug/trace.h"
76
75
  #include "src/core/lib/gprpp/debug_location.h"
@@ -88,10 +87,6 @@
88
87
  #include "src/core/lib/iomgr/error.h"
89
88
  #include "src/core/lib/iomgr/exec_ctx.h"
90
89
  #include "src/core/lib/iomgr/pollset_set.h"
91
- #include "src/core/lib/json/json.h"
92
- #include "src/core/lib/json/json_args.h"
93
- #include "src/core/lib/json/json_object_loader.h"
94
- #include "src/core/lib/json/json_writer.h"
95
90
  #include "src/core/lib/security/credentials/fake/fake_credentials.h"
96
91
  #include "src/core/lib/slice/slice.h"
97
92
  #include "src/core/lib/slice/slice_internal.h"
@@ -107,14 +102,17 @@
107
102
  #include "src/core/resolver/endpoint_addresses.h"
108
103
  #include "src/core/resolver/resolver_registry.h"
109
104
  #include "src/core/service_config/service_config_impl.h"
105
+ #include "src/core/telemetry/metrics.h"
106
+ #include "src/core/util/json/json.h"
107
+ #include "src/core/util/json/json_args.h"
108
+ #include "src/core/util/json/json_object_loader.h"
109
+ #include "src/core/util/json/json_writer.h"
110
110
  #include "src/proto/grpc/lookup/v1/rls.upb.h"
111
111
 
112
112
  using ::grpc_event_engine::experimental::EventEngine;
113
113
 
114
114
  namespace grpc_core {
115
115
 
116
- TraceFlag grpc_lb_rls_trace(false, "rls_lb");
117
-
118
116
  namespace {
119
117
 
120
118
  constexpr absl::string_view kMetricLabelRlsServerTarget =
@@ -128,26 +126,27 @@ constexpr absl::string_view kMetricLabelPickResult = "grpc.lb.pick_result";
128
126
  const auto kMetricCacheSize =
129
127
  GlobalInstrumentsRegistry::RegisterCallbackInt64Gauge(
130
128
  "grpc.lb.rls.cache_size", "EXPERIMENTAL. Size of the RLS cache.", "By",
131
- {kMetricLabelTarget, kMetricLabelRlsServerTarget,
132
- kMetricLabelRlsInstanceUuid},
133
- {}, false);
129
+ false)
130
+ .Labels(kMetricLabelTarget, kMetricLabelRlsServerTarget,
131
+ kMetricLabelRlsInstanceUuid)
132
+ .Build();
134
133
 
135
134
  const auto kMetricCacheEntries =
136
135
  GlobalInstrumentsRegistry::RegisterCallbackInt64Gauge(
137
136
  "grpc.lb.rls.cache_entries",
138
- "EXPERIMENTAL. Number of entries in the RLS cache.", "{entry}",
139
- {kMetricLabelTarget, kMetricLabelRlsServerTarget,
140
- kMetricLabelRlsInstanceUuid},
141
- {}, false);
137
+ "EXPERIMENTAL. Number of entries in the RLS cache.", "{entry}", false)
138
+ .Labels(kMetricLabelTarget, kMetricLabelRlsServerTarget,
139
+ kMetricLabelRlsInstanceUuid)
140
+ .Build();
142
141
 
143
142
  const auto kMetricDefaultTargetPicks =
144
143
  GlobalInstrumentsRegistry::RegisterUInt64Counter(
145
144
  "grpc.lb.rls.default_target_picks",
146
145
  "EXPERIMENTAL. Number of LB picks sent to the default target.",
147
- "{pick}",
148
- {kMetricLabelTarget, kMetricLabelRlsServerTarget,
149
- kMetricRlsDataPlaneTarget, kMetricLabelPickResult},
150
- {}, false);
146
+ "{pick}", false)
147
+ .Labels(kMetricLabelTarget, kMetricLabelRlsServerTarget,
148
+ kMetricRlsDataPlaneTarget, kMetricLabelPickResult)
149
+ .Build();
151
150
 
152
151
  const auto kMetricTargetPicks =
153
152
  GlobalInstrumentsRegistry::RegisterUInt64Counter(
@@ -156,17 +155,19 @@ const auto kMetricTargetPicks =
156
155
  "if the default target is also returned by the RLS server, RPCs sent "
157
156
  "to that target from the cache will be counted in this metric, not "
158
157
  "in grpc.rls.default_target_picks.",
159
- "{pick}",
160
- {kMetricLabelTarget, kMetricLabelRlsServerTarget,
161
- kMetricRlsDataPlaneTarget, kMetricLabelPickResult},
162
- {}, false);
158
+ "{pick}", false)
159
+ .Labels(kMetricLabelTarget, kMetricLabelRlsServerTarget,
160
+ kMetricRlsDataPlaneTarget, kMetricLabelPickResult)
161
+ .Build();
163
162
 
164
163
  const auto kMetricFailedPicks =
165
164
  GlobalInstrumentsRegistry::RegisterUInt64Counter(
166
165
  "grpc.lb.rls.failed_picks",
167
166
  "EXPERIMENTAL. Number of LB picks failed due to either a failed RLS "
168
167
  "request or the RLS channel being throttled.",
169
- "{pick}", {kMetricLabelTarget, kMetricLabelRlsServerTarget}, {}, false);
168
+ "{pick}", false)
169
+ .Labels(kMetricLabelTarget, kMetricLabelRlsServerTarget)
170
+ .Build();
170
171
 
171
172
  constexpr absl::string_view kRls = "rls_experimental";
172
173
  const char kGrpc[] = "grpc";
@@ -684,7 +685,7 @@ class RlsLb final : public LoadBalancingPolicy {
684
685
  RefCountedPtr<RlsLb> lb_policy_;
685
686
  bool is_shutdown_ = false;
686
687
 
687
- OrphanablePtr<Channel> channel_;
688
+ RefCountedPtr<Channel> channel_;
688
689
  RefCountedPtr<channelz::ChannelNode> parent_channelz_node_;
689
690
  StateWatcher* watcher_ = nullptr;
690
691
  Throttle throttle_ ABSL_GUARDED_BY(&RlsLb::mu_);
@@ -754,9 +755,9 @@ class RlsLb final : public LoadBalancingPolicy {
754
755
  // Updates the picker in the work serializer.
755
756
  void UpdatePickerLocked() ABSL_LOCKS_EXCLUDED(&mu_);
756
757
 
757
- void MaybeExportPickCount(
758
- GlobalInstrumentsRegistry::GlobalUInt64CounterHandle handle,
759
- absl::string_view target, const PickResult& pick_result);
758
+ template <typename HandleType>
759
+ void MaybeExportPickCount(HandleType handle, absl::string_view target,
760
+ const PickResult& pick_result);
760
761
 
761
762
  const std::string instance_uuid_;
762
763
 
@@ -794,8 +795,7 @@ class RlsLb final : public LoadBalancingPolicy {
794
795
  RlsLb::ChildPolicyWrapper::ChildPolicyWrapper(RefCountedPtr<RlsLb> lb_policy,
795
796
  std::string target)
796
797
  : DualRefCounted<ChildPolicyWrapper>(
797
- GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace) ? "ChildPolicyWrapper"
798
- : nullptr),
798
+ GRPC_TRACE_FLAG_ENABLED(rls_lb) ? "ChildPolicyWrapper" : nullptr),
799
799
  lb_policy_(std::move(lb_policy)),
800
800
  target_(std::move(target)),
801
801
  picker_(MakeRefCounted<QueuePicker>(nullptr)) {
@@ -803,7 +803,7 @@ RlsLb::ChildPolicyWrapper::ChildPolicyWrapper(RefCountedPtr<RlsLb> lb_policy,
803
803
  }
804
804
 
805
805
  void RlsLb::ChildPolicyWrapper::Orphaned() {
806
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
806
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
807
807
  gpr_log(GPR_INFO, "[rlslb %p] ChildPolicyWrapper=%p [%s]: shutdown",
808
808
  lb_policy_.get(), this, target_.c_str());
809
809
  }
@@ -862,7 +862,7 @@ void RlsLb::ChildPolicyWrapper::StartUpdate() {
862
862
  lb_policy_->config_->child_policy_config_target_field_name(), target_,
863
863
  lb_policy_->config_->child_policy_config(), &errors);
864
864
  CHECK(child_policy_config.has_value());
865
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
865
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
866
866
  gpr_log(
867
867
  GPR_INFO,
868
868
  "[rlslb %p] ChildPolicyWrapper=%p [%s]: validating update, config: %s",
@@ -874,7 +874,7 @@ void RlsLb::ChildPolicyWrapper::StartUpdate() {
874
874
  *child_policy_config);
875
875
  // Returned RLS target fails the validation.
876
876
  if (!config.ok()) {
877
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
877
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
878
878
  gpr_log(GPR_INFO,
879
879
  "[rlslb %p] ChildPolicyWrapper=%p [%s]: config failed to parse: "
880
880
  "%s",
@@ -902,8 +902,8 @@ absl::Status RlsLb::ChildPolicyWrapper::MaybeFinishUpdate() {
902
902
  WeakRef(DEBUG_LOCATION, "ChildPolicyHelper"));
903
903
  create_args.args = lb_policy_->channel_args_;
904
904
  child_policy_ = MakeOrphanable<ChildPolicyHandler>(std::move(create_args),
905
- &grpc_lb_rls_trace);
906
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
905
+ &rls_lb_trace);
906
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
907
907
  gpr_log(GPR_INFO,
908
908
  "[rlslb %p] ChildPolicyWrapper=%p [%s], created new child policy "
909
909
  "handler %p",
@@ -913,7 +913,7 @@ absl::Status RlsLb::ChildPolicyWrapper::MaybeFinishUpdate() {
913
913
  lb_policy_->interested_parties());
914
914
  }
915
915
  // Send the child the updated config.
916
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
916
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
917
917
  gpr_log(GPR_INFO,
918
918
  "[rlslb %p] ChildPolicyWrapper=%p [%s], updating child policy "
919
919
  "handler %p",
@@ -933,7 +933,7 @@ absl::Status RlsLb::ChildPolicyWrapper::MaybeFinishUpdate() {
933
933
  void RlsLb::ChildPolicyWrapper::ChildPolicyHelper::UpdateState(
934
934
  grpc_connectivity_state state, const absl::Status& status,
935
935
  RefCountedPtr<SubchannelPicker> picker) {
936
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
936
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
937
937
  gpr_log(GPR_INFO,
938
938
  "[rlslb %p] ChildPolicyWrapper=%p [%s] ChildPolicyHelper=%p: "
939
939
  "UpdateState(state=%s, status=%s, picker=%p)",
@@ -1041,7 +1041,7 @@ LoadBalancingPolicy::PickResult RlsLb::Picker::Pick(PickArgs args) {
1041
1041
  BuildKeyMap(config_->key_builder_map(), args.path,
1042
1042
  lb_policy_->channel_control_helper()->GetAuthority(),
1043
1043
  args.initial_metadata)};
1044
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1044
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1045
1045
  gpr_log(GPR_INFO, "[rlslb %p] picker=%p: request keys: %s",
1046
1046
  lb_policy_.get(), this, key.ToString().c_str());
1047
1047
  }
@@ -1079,7 +1079,7 @@ LoadBalancingPolicy::PickResult RlsLb::Picker::Pick(PickArgs args) {
1079
1079
  if (entry != nullptr) {
1080
1080
  // If the entry has non-expired data, use it.
1081
1081
  if (entry->data_expiration_time() >= now) {
1082
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1082
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1083
1083
  gpr_log(GPR_INFO, "[rlslb %p] picker=%p: using cache entry %p",
1084
1084
  lb_policy_.get(), this, entry);
1085
1085
  }
@@ -1095,7 +1095,7 @@ LoadBalancingPolicy::PickResult RlsLb::Picker::Pick(PickArgs args) {
1095
1095
  }
1096
1096
  }
1097
1097
  // RLS call pending. Queue the pick.
1098
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1098
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1099
1099
  gpr_log(GPR_INFO, "[rlslb %p] picker=%p: RLS request pending; queuing pick",
1100
1100
  lb_policy_.get(), this);
1101
1101
  }
@@ -1105,7 +1105,7 @@ LoadBalancingPolicy::PickResult RlsLb::Picker::Pick(PickArgs args) {
1105
1105
  LoadBalancingPolicy::PickResult RlsLb::Picker::PickFromDefaultTargetOrFail(
1106
1106
  const char* reason, PickArgs args, absl::Status status) {
1107
1107
  if (default_child_policy_ != nullptr) {
1108
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1108
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1109
1109
  gpr_log(GPR_INFO, "[rlslb %p] picker=%p: %s; using default target",
1110
1110
  lb_policy_.get(), this, reason);
1111
1111
  }
@@ -1114,7 +1114,7 @@ LoadBalancingPolicy::PickResult RlsLb::Picker::PickFromDefaultTargetOrFail(
1114
1114
  config_->default_target(), pick_result);
1115
1115
  return pick_result;
1116
1116
  }
1117
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1117
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1118
1118
  gpr_log(GPR_INFO, "[rlslb %p] picker=%p: %s; failing pick",
1119
1119
  lb_policy_.get(), this, reason);
1120
1120
  }
@@ -1151,7 +1151,7 @@ void RlsLb::Cache::Entry::BackoffTimer::Orphan() {
1151
1151
  if (backoff_timer_task_handle_.has_value() &&
1152
1152
  entry_->lb_policy_->channel_control_helper()->GetEventEngine()->Cancel(
1153
1153
  *backoff_timer_task_handle_)) {
1154
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1154
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1155
1155
  gpr_log(GPR_INFO, "[rlslb %p] cache entry=%p %s, backoff timer canceled",
1156
1156
  entry_->lb_policy_.get(), entry_.get(),
1157
1157
  entry_->is_shutdown_ ? "(shut down)"
@@ -1165,7 +1165,7 @@ void RlsLb::Cache::Entry::BackoffTimer::Orphan() {
1165
1165
  void RlsLb::Cache::Entry::BackoffTimer::OnBackoffTimerLocked() {
1166
1166
  {
1167
1167
  MutexLock lock(&entry_->lb_policy_->mu_);
1168
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1168
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1169
1169
  gpr_log(GPR_INFO, "[rlslb %p] cache entry=%p %s, backoff timer fired",
1170
1170
  entry_->lb_policy_.get(), entry_.get(),
1171
1171
  entry_->is_shutdown_ ? "(shut down)"
@@ -1195,8 +1195,8 @@ std::unique_ptr<BackOff> MakeCacheEntryBackoff() {
1195
1195
 
1196
1196
  RlsLb::Cache::Entry::Entry(RefCountedPtr<RlsLb> lb_policy,
1197
1197
  const RequestKey& key)
1198
- : InternallyRefCounted<Entry>(
1199
- GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace) ? "CacheEntry" : nullptr),
1198
+ : InternallyRefCounted<Entry>(GRPC_TRACE_FLAG_ENABLED(rls_lb) ? "CacheEntry"
1199
+ : nullptr),
1200
1200
  lb_policy_(std::move(lb_policy)),
1201
1201
  backoff_state_(MakeCacheEntryBackoff()),
1202
1202
  min_expiration_time_(Timestamp::Now() + kMinExpirationTime),
@@ -1204,7 +1204,7 @@ RlsLb::Cache::Entry::Entry(RefCountedPtr<RlsLb> lb_policy,
1204
1204
  lb_policy_->cache_.lru_list_.end(), key)) {}
1205
1205
 
1206
1206
  void RlsLb::Cache::Entry::Orphan() {
1207
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1207
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1208
1208
  gpr_log(GPR_INFO, "[rlslb %p] cache entry=%p %s: cache entry evicted",
1209
1209
  lb_policy_.get(), this, lru_iterator_->ToString().c_str());
1210
1210
  }
@@ -1235,7 +1235,7 @@ LoadBalancingPolicy::PickResult RlsLb::Cache::Entry::Pick(PickArgs args) {
1235
1235
  if (child_policy_wrapper->connectivity_state() ==
1236
1236
  GRPC_CHANNEL_TRANSIENT_FAILURE &&
1237
1237
  i < child_policy_wrappers_.size() - 1) {
1238
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1238
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1239
1239
  gpr_log(GPR_INFO,
1240
1240
  "[rlslb %p] cache entry=%p %s: target %s (%" PRIuPTR
1241
1241
  " of %" PRIuPTR ") in state TRANSIENT_FAILURE; skipping",
@@ -1249,7 +1249,7 @@ LoadBalancingPolicy::PickResult RlsLb::Cache::Entry::Pick(PickArgs args) {
1249
1249
  }
1250
1250
  // Child policy not in TRANSIENT_FAILURE or is the last target in
1251
1251
  // the list, so delegate.
1252
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1252
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1253
1253
  gpr_log(GPR_INFO,
1254
1254
  "[rlslb %p] cache entry=%p %s: target %s (%" PRIuPTR " of %" PRIuPTR
1255
1255
  ") in state %s; delegating",
@@ -1406,14 +1406,14 @@ RlsLb::Cache::Entry* RlsLb::Cache::FindOrInsert(const RequestKey& key) {
1406
1406
  lb_policy_->RefAsSubclass<RlsLb>(DEBUG_LOCATION, "CacheEntry"), key);
1407
1407
  map_.emplace(key, OrphanablePtr<Entry>(entry));
1408
1408
  size_ += entry_size;
1409
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1409
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1410
1410
  gpr_log(GPR_INFO, "[rlslb %p] key=%s: cache entry added, entry=%p",
1411
1411
  lb_policy_, key.ToString().c_str(), entry);
1412
1412
  }
1413
1413
  return entry;
1414
1414
  }
1415
1415
  // Entry found, so use it.
1416
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1416
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1417
1417
  gpr_log(GPR_INFO, "[rlslb %p] key=%s: found cache entry %p", lb_policy_,
1418
1418
  key.ToString().c_str(), it->second.get());
1419
1419
  }
@@ -1422,7 +1422,7 @@ RlsLb::Cache::Entry* RlsLb::Cache::FindOrInsert(const RequestKey& key) {
1422
1422
  }
1423
1423
 
1424
1424
  void RlsLb::Cache::Resize(size_t bytes) {
1425
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1425
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1426
1426
  gpr_log(GPR_INFO, "[rlslb %p] resizing cache to %" PRIuPTR " bytes",
1427
1427
  lb_policy_, bytes);
1428
1428
  }
@@ -1443,7 +1443,7 @@ void RlsLb::Cache::Shutdown() {
1443
1443
  if (cleanup_timer_handle_.has_value() &&
1444
1444
  lb_policy_->channel_control_helper()->GetEventEngine()->Cancel(
1445
1445
  *cleanup_timer_handle_)) {
1446
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1446
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1447
1447
  gpr_log(GPR_INFO, "[rlslb %p] cache cleanup timer canceled", lb_policy_);
1448
1448
  }
1449
1449
  }
@@ -1481,7 +1481,7 @@ void RlsLb::Cache::StartCleanupTimer() {
1481
1481
  }
1482
1482
 
1483
1483
  void RlsLb::Cache::OnCleanupTimer() {
1484
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1484
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1485
1485
  gpr_log(GPR_INFO, "[rlslb %p] cache cleanup timer fired", lb_policy_);
1486
1486
  }
1487
1487
  MutexLock lock(&lb_policy_->mu_);
@@ -1510,14 +1510,14 @@ void RlsLb::Cache::MaybeShrinkSize(size_t bytes) {
1510
1510
  auto map_it = map_.find(*lru_it);
1511
1511
  CHECK(map_it != map_.end());
1512
1512
  if (!map_it->second->CanEvict()) break;
1513
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1513
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1514
1514
  gpr_log(GPR_INFO, "[rlslb %p] LRU eviction: removing entry %p %s",
1515
1515
  lb_policy_, map_it->second.get(), lru_it->ToString().c_str());
1516
1516
  }
1517
1517
  size_ -= map_it->second->Size();
1518
1518
  map_.erase(map_it);
1519
1519
  }
1520
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1520
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1521
1521
  gpr_log(GPR_INFO,
1522
1522
  "[rlslb %p] LRU pass complete: desired size=%" PRIuPTR
1523
1523
  " size=%" PRIuPTR,
@@ -1532,7 +1532,7 @@ void RlsLb::Cache::MaybeShrinkSize(size_t bytes) {
1532
1532
  void RlsLb::RlsChannel::StateWatcher::OnConnectivityStateChange(
1533
1533
  grpc_connectivity_state new_state, const absl::Status& status) {
1534
1534
  auto* lb_policy = rls_channel_->lb_policy_.get();
1535
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1535
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1536
1536
  gpr_log(GPR_INFO,
1537
1537
  "[rlslb %p] RlsChannel=%p StateWatcher=%p: "
1538
1538
  "state changed to %s (%s)",
@@ -1597,7 +1597,7 @@ void RlsLb::RlsChannel::Throttle::RegisterResponse(bool success) {
1597
1597
 
1598
1598
  RlsLb::RlsChannel::RlsChannel(RefCountedPtr<RlsLb> lb_policy)
1599
1599
  : InternallyRefCounted<RlsChannel>(
1600
- GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace) ? "RlsChannel" : nullptr),
1600
+ GRPC_TRACE_FLAG_ENABLED(rls_lb) ? "RlsChannel" : nullptr),
1601
1601
  lb_policy_(std::move(lb_policy)) {
1602
1602
  // Get channel creds from parent channel.
1603
1603
  // Note that we are using the "unsafe" channel creds here, which do
@@ -1631,7 +1631,7 @@ RlsLb::RlsChannel::RlsChannel(RefCountedPtr<RlsLb> lb_policy)
1631
1631
  channel_.reset(Channel::FromC(
1632
1632
  grpc_channel_create(lb_policy_->config_->lookup_service().c_str(),
1633
1633
  creds.get(), args.ToC().get())));
1634
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1634
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1635
1635
  gpr_log(GPR_INFO, "[rlslb %p] RlsChannel=%p: created channel %p for %s",
1636
1636
  lb_policy_.get(), this, channel_.get(),
1637
1637
  lb_policy_->config_->lookup_service().c_str());
@@ -1654,7 +1654,7 @@ RlsLb::RlsChannel::RlsChannel(RefCountedPtr<RlsLb> lb_policy)
1654
1654
  }
1655
1655
 
1656
1656
  void RlsLb::RlsChannel::Orphan() {
1657
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1657
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1658
1658
  gpr_log(GPR_INFO, "[rlslb %p] RlsChannel=%p, channel=%p: shutdown",
1659
1659
  lb_policy_.get(), this, channel_.get());
1660
1660
  }
@@ -1713,14 +1713,14 @@ RlsLb::RlsRequest::RlsRequest(RefCountedPtr<RlsLb> lb_policy, RequestKey key,
1713
1713
  grpc_lookup_v1_RouteLookupRequest_Reason reason,
1714
1714
  std::string stale_header_data)
1715
1715
  : InternallyRefCounted<RlsRequest>(
1716
- GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace) ? "RlsRequest" : nullptr),
1716
+ GRPC_TRACE_FLAG_ENABLED(rls_lb) ? "RlsRequest" : nullptr),
1717
1717
  lb_policy_(std::move(lb_policy)),
1718
1718
  key_(std::move(key)),
1719
1719
  rls_channel_(std::move(rls_channel)),
1720
1720
  backoff_state_(std::move(backoff_state)),
1721
1721
  reason_(reason),
1722
1722
  stale_header_data_(std::move(stale_header_data)) {
1723
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1723
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1724
1724
  gpr_log(GPR_INFO,
1725
1725
  "[rlslb %p] rls_request=%p: RLS request created for key %s",
1726
1726
  lb_policy_.get(), this, key_.ToString().c_str());
@@ -1737,7 +1737,7 @@ RlsLb::RlsRequest::~RlsRequest() { CHECK_EQ(call_, nullptr); }
1737
1737
 
1738
1738
  void RlsLb::RlsRequest::Orphan() {
1739
1739
  if (call_ != nullptr) {
1740
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1740
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1741
1741
  gpr_log(GPR_INFO, "[rlslb %p] rls_request=%p %s: cancelling RLS call",
1742
1742
  lb_policy_.get(), this, key_.ToString().c_str());
1743
1743
  }
@@ -1810,7 +1810,7 @@ void RlsLb::RlsRequest::OnRlsCallComplete(void* arg, grpc_error_handle error) {
1810
1810
  }
1811
1811
 
1812
1812
  void RlsLb::RlsRequest::OnRlsCallCompleteLocked(grpc_error_handle error) {
1813
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1813
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1814
1814
  std::string status_message(StringViewFromSlice(status_details_recv_));
1815
1815
  gpr_log(GPR_INFO,
1816
1816
  "[rlslb %p] rls_request=%p %s, error=%s, status={%d, %s} RLS call "
@@ -1843,7 +1843,7 @@ void RlsLb::RlsRequest::OnRlsCallCompleteLocked(grpc_error_handle error) {
1843
1843
  grpc_call_unref(call_);
1844
1844
  call_ = nullptr;
1845
1845
  // Return result to cache.
1846
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1846
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1847
1847
  gpr_log(GPR_INFO, "[rlslb %p] rls_request=%p %s: response info: %s",
1848
1848
  lb_policy_.get(), this, key_.ToString().c_str(),
1849
1849
  response.ToString().c_str());
@@ -1961,8 +1961,8 @@ RlsLb::RlsLb(Args args)
1961
1961
  MutexLock lock(&mu_);
1962
1962
  cache_.ReportMetricsLocked(reporter);
1963
1963
  },
1964
- {kMetricCacheSize, kMetricCacheEntries})) {
1965
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1964
+ Duration::Seconds(5), kMetricCacheSize, kMetricCacheEntries)) {
1965
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1966
1966
  gpr_log(GPR_INFO, "[rlslb %p] policy created", this);
1967
1967
  }
1968
1968
  }
@@ -1989,14 +1989,14 @@ bool EndpointsEqual(
1989
1989
  }
1990
1990
 
1991
1991
  absl::Status RlsLb::UpdateLocked(UpdateArgs args) {
1992
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
1992
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
1993
1993
  gpr_log(GPR_INFO, "[rlslb %p] policy updated", this);
1994
1994
  }
1995
1995
  update_in_progress_ = true;
1996
1996
  // Swap out config.
1997
1997
  RefCountedPtr<RlsLbConfig> old_config = std::move(config_);
1998
1998
  config_ = args.config.TakeAsSubclass<RlsLbConfig>();
1999
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace) &&
1999
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb) &&
2000
2000
  (old_config == nullptr ||
2001
2001
  old_config->child_policy_config() != config_->child_policy_config())) {
2002
2002
  gpr_log(GPR_INFO, "[rlslb %p] updated child policy config: %s", this,
@@ -2024,14 +2024,14 @@ absl::Status RlsLb::UpdateLocked(UpdateArgs args) {
2024
2024
  if (old_config == nullptr ||
2025
2025
  config_->default_target() != old_config->default_target()) {
2026
2026
  if (config_->default_target().empty()) {
2027
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2027
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
2028
2028
  gpr_log(GPR_INFO, "[rlslb %p] unsetting default target", this);
2029
2029
  }
2030
2030
  default_child_policy_.reset();
2031
2031
  } else {
2032
2032
  auto it = child_policy_map_.find(config_->default_target());
2033
2033
  if (it == child_policy_map_.end()) {
2034
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2034
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
2035
2035
  gpr_log(GPR_INFO, "[rlslb %p] creating new default target", this);
2036
2036
  }
2037
2037
  default_child_policy_ = MakeRefCounted<ChildPolicyWrapper>(
@@ -2039,7 +2039,7 @@ absl::Status RlsLb::UpdateLocked(UpdateArgs args) {
2039
2039
  config_->default_target());
2040
2040
  created_default_child = true;
2041
2041
  } else {
2042
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2042
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
2043
2043
  gpr_log(GPR_INFO,
2044
2044
  "[rlslb %p] using existing child for default target", this);
2045
2045
  }
@@ -2064,14 +2064,14 @@ absl::Status RlsLb::UpdateLocked(UpdateArgs args) {
2064
2064
  }
2065
2065
  // Start update of child policies if needed.
2066
2066
  if (update_child_policies) {
2067
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2067
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
2068
2068
  gpr_log(GPR_INFO, "[rlslb %p] starting child policy updates", this);
2069
2069
  }
2070
2070
  for (auto& p : child_policy_map_) {
2071
2071
  p.second->StartUpdate();
2072
2072
  }
2073
2073
  } else if (created_default_child) {
2074
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2074
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
2075
2075
  gpr_log(GPR_INFO, "[rlslb %p] starting default child policy update",
2076
2076
  this);
2077
2077
  }
@@ -2081,7 +2081,7 @@ absl::Status RlsLb::UpdateLocked(UpdateArgs args) {
2081
2081
  // Now that we've released the lock, finish update of child policies.
2082
2082
  std::vector<std::string> errors;
2083
2083
  if (update_child_policies) {
2084
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2084
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
2085
2085
  gpr_log(GPR_INFO, "[rlslb %p] finishing child policy updates", this);
2086
2086
  }
2087
2087
  for (auto& p : child_policy_map_) {
@@ -2092,7 +2092,7 @@ absl::Status RlsLb::UpdateLocked(UpdateArgs args) {
2092
2092
  }
2093
2093
  }
2094
2094
  } else if (created_default_child) {
2095
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2095
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
2096
2096
  gpr_log(GPR_INFO, "[rlslb %p] finishing default child policy update",
2097
2097
  this);
2098
2098
  }
@@ -2137,7 +2137,7 @@ void RlsLb::ResetBackoffLocked() {
2137
2137
  }
2138
2138
 
2139
2139
  void RlsLb::ShutdownLocked() {
2140
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2140
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
2141
2141
  gpr_log(GPR_INFO, "[rlslb %p] policy shutdown", this);
2142
2142
  }
2143
2143
  registered_metric_callback_.reset();
@@ -2181,7 +2181,7 @@ void RlsLb::UpdatePickerLocked() {
2181
2181
  // all children. This avoids unnecessary picker churn while an update
2182
2182
  // is being propagated to our children.
2183
2183
  if (update_in_progress_) return;
2184
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2184
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
2185
2185
  gpr_log(GPR_INFO, "[rlslb %p] updating picker", this);
2186
2186
  }
2187
2187
  grpc_connectivity_state state = GRPC_CHANNEL_IDLE;
@@ -2194,7 +2194,7 @@ void RlsLb::UpdatePickerLocked() {
2194
2194
  if (is_shutdown_) return;
2195
2195
  for (auto& p : child_policy_map_) {
2196
2196
  grpc_connectivity_state child_state = p.second->connectivity_state();
2197
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2197
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
2198
2198
  gpr_log(GPR_INFO, "[rlslb %p] target %s in state %s", this,
2199
2199
  p.second->target().c_str(),
2200
2200
  ConnectivityStateName(child_state));
@@ -2217,7 +2217,7 @@ void RlsLb::UpdatePickerLocked() {
2217
2217
  }
2218
2218
  }
2219
2219
  }
2220
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_rls_trace)) {
2220
+ if (GRPC_TRACE_FLAG_ENABLED(rls_lb)) {
2221
2221
  gpr_log(GPR_INFO, "[rlslb %p] reporting state %s", this,
2222
2222
  ConnectivityStateName(state));
2223
2223
  }
@@ -2230,9 +2230,9 @@ void RlsLb::UpdatePickerLocked() {
2230
2230
  MakeRefCounted<Picker>(RefAsSubclass<RlsLb>(DEBUG_LOCATION, "Picker")));
2231
2231
  }
2232
2232
 
2233
- void RlsLb::MaybeExportPickCount(
2234
- GlobalInstrumentsRegistry::GlobalUInt64CounterHandle handle,
2235
- absl::string_view target, const PickResult& pick_result) {
2233
+ template <typename HandleType>
2234
+ void RlsLb::MaybeExportPickCount(HandleType handle, absl::string_view target,
2235
+ const PickResult& pick_result) {
2236
2236
  absl::string_view pick_result_string = Match(
2237
2237
  pick_result.result,
2238
2238
  [](const LoadBalancingPolicy::PickResult::Complete&) {