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
@@ -44,17 +44,15 @@
44
44
  #include "src/core/lib/gprpp/orphanable.h"
45
45
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
46
46
  #include "src/core/lib/gprpp/work_serializer.h"
47
- #include "src/core/lib/json/json.h"
48
47
  #include "src/core/lib/transport/connectivity_state.h"
49
48
  #include "src/core/load_balancing/endpoint_list.h"
50
49
  #include "src/core/load_balancing/lb_policy.h"
51
50
  #include "src/core/load_balancing/lb_policy_factory.h"
52
51
  #include "src/core/resolver/endpoint_addresses.h"
52
+ #include "src/core/util/json/json.h"
53
53
 
54
54
  namespace grpc_core {
55
55
 
56
- TraceFlag grpc_lb_round_robin_trace(false, "round_robin");
57
-
58
56
  namespace {
59
57
 
60
58
  constexpr absl::string_view kRoundRobin = "round_robin";
@@ -76,7 +74,7 @@ class RoundRobin final : public LoadBalancingPolicy {
76
74
  const ChannelArgs& args,
77
75
  std::vector<std::string>* errors)
78
76
  : EndpointList(std::move(round_robin),
79
- GRPC_TRACE_FLAG_ENABLED(grpc_lb_round_robin_trace)
77
+ GRPC_TRACE_FLAG_ENABLED(round_robin)
80
78
  ? "RoundRobinEndpointList"
81
79
  : nullptr) {
82
80
  Init(endpoints, args,
@@ -186,7 +184,7 @@ RoundRobin::Picker::Picker(
186
184
  // the picker, see https://github.com/grpc/grpc-go/issues/2580.
187
185
  size_t index = absl::Uniform<size_t>(parent->bit_gen_, 0, pickers_.size());
188
186
  last_picked_index_.store(index, std::memory_order_relaxed);
189
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_round_robin_trace)) {
187
+ if (GRPC_TRACE_FLAG_ENABLED(round_robin)) {
190
188
  gpr_log(GPR_INFO,
191
189
  "[RR %p picker %p] created picker from endpoint_list=%p "
192
190
  "with %" PRIuPTR " READY children; last_picked_index_=%" PRIuPTR,
@@ -198,7 +196,7 @@ RoundRobin::Picker::Picker(
198
196
  RoundRobin::PickResult RoundRobin::Picker::Pick(PickArgs args) {
199
197
  size_t index = last_picked_index_.fetch_add(1, std::memory_order_relaxed) %
200
198
  pickers_.size();
201
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_round_robin_trace)) {
199
+ if (GRPC_TRACE_FLAG_ENABLED(round_robin)) {
202
200
  gpr_log(GPR_INFO,
203
201
  "[RR %p picker %p] using picker index %" PRIuPTR ", picker=%p",
204
202
  parent_, this, index, pickers_[index].get());
@@ -211,13 +209,13 @@ RoundRobin::PickResult RoundRobin::Picker::Pick(PickArgs args) {
211
209
  //
212
210
 
213
211
  RoundRobin::RoundRobin(Args args) : LoadBalancingPolicy(std::move(args)) {
214
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_round_robin_trace)) {
212
+ if (GRPC_TRACE_FLAG_ENABLED(round_robin)) {
215
213
  gpr_log(GPR_INFO, "[RR %p] Created", this);
216
214
  }
217
215
  }
218
216
 
219
217
  RoundRobin::~RoundRobin() {
220
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_round_robin_trace)) {
218
+ if (GRPC_TRACE_FLAG_ENABLED(round_robin)) {
221
219
  gpr_log(GPR_INFO, "[RR %p] Destroying Round Robin policy", this);
222
220
  }
223
221
  CHECK(endpoint_list_ == nullptr);
@@ -225,7 +223,7 @@ RoundRobin::~RoundRobin() {
225
223
  }
226
224
 
227
225
  void RoundRobin::ShutdownLocked() {
228
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_round_robin_trace)) {
226
+ if (GRPC_TRACE_FLAG_ENABLED(round_robin)) {
229
227
  gpr_log(GPR_INFO, "[RR %p] Shutting down", this);
230
228
  }
231
229
  shutdown_ = true;
@@ -243,12 +241,12 @@ void RoundRobin::ResetBackoffLocked() {
243
241
  absl::Status RoundRobin::UpdateLocked(UpdateArgs args) {
244
242
  EndpointAddressesIterator* addresses = nullptr;
245
243
  if (args.addresses.ok()) {
246
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_round_robin_trace)) {
244
+ if (GRPC_TRACE_FLAG_ENABLED(round_robin)) {
247
245
  gpr_log(GPR_INFO, "[RR %p] received update", this);
248
246
  }
249
247
  addresses = args.addresses->get();
250
248
  } else {
251
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_round_robin_trace)) {
249
+ if (GRPC_TRACE_FLAG_ENABLED(round_robin)) {
252
250
  gpr_log(GPR_INFO, "[RR %p] received update with address error: %s", this,
253
251
  args.addresses.status().ToString().c_str());
254
252
  }
@@ -257,7 +255,7 @@ absl::Status RoundRobin::UpdateLocked(UpdateArgs args) {
257
255
  if (endpoint_list_ != nullptr) return args.addresses.status();
258
256
  }
259
257
  // Create new child list, replacing the previous pending list, if any.
260
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_round_robin_trace) &&
258
+ if (GRPC_TRACE_FLAG_ENABLED(round_robin) &&
261
259
  latest_pending_endpoint_list_ != nullptr) {
262
260
  gpr_log(GPR_INFO, "[RR %p] replacing previous pending child list %p", this,
263
261
  latest_pending_endpoint_list_.get());
@@ -269,8 +267,7 @@ absl::Status RoundRobin::UpdateLocked(UpdateArgs args) {
269
267
  // If the new list is empty, immediately promote it to
270
268
  // endpoint_list_ and report TRANSIENT_FAILURE.
271
269
  if (latest_pending_endpoint_list_->size() == 0) {
272
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_round_robin_trace) &&
273
- endpoint_list_ != nullptr) {
270
+ if (GRPC_TRACE_FLAG_ENABLED(round_robin) && endpoint_list_ != nullptr) {
274
271
  gpr_log(GPR_INFO, "[RR %p] replacing previous child list %p", this,
275
272
  endpoint_list_.get());
276
273
  }
@@ -305,7 +302,7 @@ void RoundRobin::RoundRobinEndpointList::RoundRobinEndpoint::OnStateUpdate(
305
302
  grpc_connectivity_state new_state, const absl::Status& status) {
306
303
  auto* rr_endpoint_list = endpoint_list<RoundRobinEndpointList>();
307
304
  auto* round_robin = policy<RoundRobin>();
308
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_round_robin_trace)) {
305
+ if (GRPC_TRACE_FLAG_ENABLED(round_robin)) {
309
306
  gpr_log(
310
307
  GPR_INFO,
311
308
  "[RR %p] connectivity changed for child %p, endpoint_list %p "
@@ -315,7 +312,7 @@ void RoundRobin::RoundRobinEndpointList::RoundRobinEndpoint::OnStateUpdate(
315
312
  ConnectivityStateName(new_state), status.ToString().c_str());
316
313
  }
317
314
  if (new_state == GRPC_CHANNEL_IDLE) {
318
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_round_robin_trace)) {
315
+ if (GRPC_TRACE_FLAG_ENABLED(round_robin)) {
319
316
  gpr_log(GPR_INFO, "[RR %p] child %p reported IDLE; requesting connection",
320
317
  round_robin, this);
321
318
  }
@@ -378,7 +375,7 @@ void RoundRobin::RoundRobinEndpointList::
378
375
  (round_robin->endpoint_list_->num_ready_ == 0 ||
379
376
  (num_ready_ > 0 && AllEndpointsSeenInitialState()) ||
380
377
  num_transient_failure_ == size())) {
381
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_round_robin_trace)) {
378
+ if (GRPC_TRACE_FLAG_ENABLED(round_robin)) {
382
379
  const std::string old_counters_string =
383
380
  round_robin->endpoint_list_ != nullptr
384
381
  ? round_robin->endpoint_list_->CountersString()
@@ -398,7 +395,7 @@ void RoundRobin::RoundRobinEndpointList::
398
395
  // 2) ANY child is CONNECTING => policy is CONNECTING.
399
396
  // 3) ALL children are TRANSIENT_FAILURE => policy is TRANSIENT_FAILURE.
400
397
  if (num_ready_ > 0) {
401
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_round_robin_trace)) {
398
+ if (GRPC_TRACE_FLAG_ENABLED(round_robin)) {
402
399
  gpr_log(GPR_INFO, "[RR %p] reporting READY with child list %p",
403
400
  round_robin, this);
404
401
  }
@@ -414,7 +411,7 @@ void RoundRobin::RoundRobinEndpointList::
414
411
  GRPC_CHANNEL_READY, absl::OkStatus(),
415
412
  MakeRefCounted<Picker>(round_robin, std::move(pickers)));
416
413
  } else if (num_connecting_ > 0) {
417
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_round_robin_trace)) {
414
+ if (GRPC_TRACE_FLAG_ENABLED(round_robin)) {
418
415
  gpr_log(GPR_INFO, "[RR %p] reporting CONNECTING with child list %p",
419
416
  round_robin, this);
420
417
  }
@@ -422,7 +419,7 @@ void RoundRobin::RoundRobinEndpointList::
422
419
  GRPC_CHANNEL_CONNECTING, absl::Status(),
423
420
  MakeRefCounted<QueuePicker>(nullptr));
424
421
  } else if (num_transient_failure_ == size()) {
425
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_round_robin_trace)) {
422
+ if (GRPC_TRACE_FLAG_ENABLED(round_robin)) {
426
423
  gpr_log(GPR_INFO,
427
424
  "[RR %p] reporting TRANSIENT_FAILURE with child list %p: %s",
428
425
  round_robin, this, status_for_tf.ToString().c_str());
@@ -45,10 +45,7 @@
45
45
  #include <grpc/support/port_platform.h>
46
46
 
47
47
  #include "src/core/lib/channel/channel_args.h"
48
- #include "src/core/lib/channel/metrics.h"
49
48
  #include "src/core/lib/config/core_configuration.h"
50
- #include "src/core/lib/debug/stats.h"
51
- #include "src/core/lib/debug/stats_data.h"
52
49
  #include "src/core/lib/debug/trace.h"
53
50
  #include "src/core/lib/experiments/experiments.h"
54
51
  #include "src/core/lib/gprpp/debug_location.h"
@@ -61,9 +58,6 @@
61
58
  #include "src/core/lib/gprpp/work_serializer.h"
62
59
  #include "src/core/lib/iomgr/exec_ctx.h"
63
60
  #include "src/core/lib/iomgr/resolved_address.h"
64
- #include "src/core/lib/json/json.h"
65
- #include "src/core/lib/json/json_args.h"
66
- #include "src/core/lib/json/json_object_loader.h"
67
61
  #include "src/core/lib/transport/connectivity_state.h"
68
62
  #include "src/core/load_balancing/backend_metric_data.h"
69
63
  #include "src/core/load_balancing/endpoint_list.h"
@@ -74,23 +68,31 @@
74
68
  #include "src/core/load_balancing/weighted_round_robin/static_stride_scheduler.h"
75
69
  #include "src/core/load_balancing/weighted_target/weighted_target.h"
76
70
  #include "src/core/resolver/endpoint_addresses.h"
71
+ #include "src/core/telemetry/metrics.h"
72
+ #include "src/core/telemetry/stats.h"
73
+ #include "src/core/telemetry/stats_data.h"
74
+ #include "src/core/util/json/json.h"
75
+ #include "src/core/util/json/json_args.h"
76
+ #include "src/core/util/json/json_object_loader.h"
77
77
 
78
78
  namespace grpc_core {
79
79
 
80
- TraceFlag grpc_lb_wrr_trace(false, "weighted_round_robin_lb");
81
-
82
80
  namespace {
83
81
 
84
82
  constexpr absl::string_view kWeightedRoundRobin = "weighted_round_robin";
85
83
 
86
84
  constexpr absl::string_view kMetricLabelLocality = "grpc.lb.locality";
87
85
 
88
- const auto kMetricRrFallback = GlobalInstrumentsRegistry::RegisterUInt64Counter(
89
- "grpc.lb.wrr.rr_fallback",
90
- "EXPERIMENTAL. Number of scheduler updates in which there were not "
91
- "enough endpoints with valid weight, which caused the WRR policy to "
92
- "fall back to RR behavior.",
93
- "{update}", {kMetricLabelTarget}, {kMetricLabelLocality}, false);
86
+ const auto kMetricRrFallback =
87
+ GlobalInstrumentsRegistry::RegisterUInt64Counter(
88
+ "grpc.lb.wrr.rr_fallback",
89
+ "EXPERIMENTAL. Number of scheduler updates in which there were not "
90
+ "enough endpoints with valid weight, which caused the WRR policy to "
91
+ "fall back to RR behavior.",
92
+ "{update}", false)
93
+ .Labels(kMetricLabelTarget)
94
+ .OptionalLabels(kMetricLabelLocality)
95
+ .Build();
94
96
 
95
97
  const auto kMetricEndpointWeightNotYetUsable =
96
98
  GlobalInstrumentsRegistry::RegisterUInt64Counter(
@@ -99,14 +101,20 @@ const auto kMetricEndpointWeightNotYetUsable =
99
101
  "don't yet have usable weight information (i.e., either the load "
100
102
  "report has not yet been received, or it is within the blackout "
101
103
  "period).",
102
- "{endpoint}", {kMetricLabelTarget}, {kMetricLabelLocality}, false);
104
+ "{endpoint}", false)
105
+ .Labels(kMetricLabelTarget)
106
+ .OptionalLabels(kMetricLabelLocality)
107
+ .Build();
103
108
 
104
109
  const auto kMetricEndpointWeightStale =
105
110
  GlobalInstrumentsRegistry::RegisterUInt64Counter(
106
111
  "grpc.lb.wrr.endpoint_weight_stale",
107
112
  "EXPERIMENTAL. Number of endpoints from each scheduler update whose "
108
113
  "latest weight is older than the expiration period.",
109
- "{endpoint}", {kMetricLabelTarget}, {kMetricLabelLocality}, false);
114
+ "{endpoint}", false)
115
+ .Labels(kMetricLabelTarget)
116
+ .OptionalLabels(kMetricLabelLocality)
117
+ .Build();
110
118
 
111
119
  const auto kMetricEndpointWeights =
112
120
  GlobalInstrumentsRegistry::RegisterDoubleHistogram(
@@ -115,7 +123,10 @@ const auto kMetricEndpointWeights =
115
123
  "Each bucket will be a counter that is incremented once for every "
116
124
  "endpoint whose weight is within that range. Note that endpoints "
117
125
  "without usable weights will have weight 0.",
118
- "{weight}", {kMetricLabelTarget}, {kMetricLabelLocality}, false);
126
+ "{weight}", false)
127
+ .Labels(kMetricLabelTarget)
128
+ .OptionalLabels(kMetricLabelLocality)
129
+ .Build();
119
130
 
120
131
  // Config for WRR policy.
121
132
  class WeightedRoundRobinConfig final : public LoadBalancingPolicy::Config {
@@ -269,7 +280,7 @@ class WeightedRoundRobin final : public LoadBalancingPolicy {
269
280
  EndpointAddressesIterator* endpoints,
270
281
  const ChannelArgs& args, std::vector<std::string>* errors)
271
282
  : EndpointList(std::move(wrr),
272
- GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)
283
+ GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)
273
284
  ? "WrrEndpointList"
274
285
  : nullptr) {
275
286
  Init(endpoints, args,
@@ -436,7 +447,7 @@ void WeightedRoundRobin::EndpointWeight::MaybeUpdateWeight(
436
447
  weight = qps / (utilization + penalty);
437
448
  }
438
449
  if (weight == 0) {
439
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
450
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
440
451
  gpr_log(GPR_INFO,
441
452
  "[WRR %p] subchannel %s: qps=%f, eps=%f, utilization=%f: "
442
453
  "error_util_penalty=%f, weight=%f (not updating)",
@@ -448,7 +459,7 @@ void WeightedRoundRobin::EndpointWeight::MaybeUpdateWeight(
448
459
  Timestamp now = Timestamp::Now();
449
460
  // Grab the lock and update the data.
450
461
  MutexLock lock(&mu_);
451
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
462
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
452
463
  gpr_log(GPR_INFO,
453
464
  "[WRR %p] subchannel %s: qps=%f, eps=%f, utilization=%f "
454
465
  "error_util_penalty=%f : setting weight=%f weight_=%f now=%s "
@@ -467,7 +478,7 @@ float WeightedRoundRobin::EndpointWeight::GetWeight(
467
478
  Timestamp now, Duration weight_expiration_period, Duration blackout_period,
468
479
  uint64_t* num_not_yet_usable, uint64_t* num_stale) {
469
480
  MutexLock lock(&mu_);
470
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
481
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
471
482
  gpr_log(GPR_INFO,
472
483
  "[WRR %p] subchannel %s: getting weight: now=%s "
473
484
  "weight_expiration_period=%s blackout_period=%s "
@@ -545,7 +556,7 @@ WeightedRoundRobin::Picker::Picker(RefCountedPtr<WeightedRoundRobin> wrr,
545
556
  }
546
557
  global_stats().IncrementWrrSubchannelListSize(endpoint_list->size());
547
558
  global_stats().IncrementWrrSubchannelReadySize(endpoints_.size());
548
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
559
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
549
560
  gpr_log(GPR_INFO,
550
561
  "[WRR %p picker %p] created picker from endpoint_list=%p "
551
562
  "with %" PRIuPTR " subchannels",
@@ -555,14 +566,14 @@ WeightedRoundRobin::Picker::Picker(RefCountedPtr<WeightedRoundRobin> wrr,
555
566
  }
556
567
 
557
568
  WeightedRoundRobin::Picker::~Picker() {
558
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
569
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
559
570
  gpr_log(GPR_INFO, "[WRR %p picker %p] destroying picker", wrr_.get(), this);
560
571
  }
561
572
  }
562
573
 
563
574
  void WeightedRoundRobin::Picker::Orphaned() {
564
575
  MutexLock lock(&timer_mu_);
565
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
576
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
566
577
  gpr_log(GPR_INFO, "[WRR %p picker %p] cancelling timer", wrr_.get(), this);
567
578
  }
568
579
  wrr_->channel_control_helper()->GetEventEngine()->Cancel(*timer_handle_);
@@ -574,7 +585,7 @@ WeightedRoundRobin::PickResult WeightedRoundRobin::Picker::Pick(PickArgs args) {
574
585
  size_t index = PickIndex();
575
586
  CHECK(index < endpoints_.size());
576
587
  auto& endpoint_info = endpoints_[index];
577
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
588
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
578
589
  gpr_log(GPR_INFO,
579
590
  "[WRR %p picker %p] returning index %" PRIuPTR ", picker=%p",
580
591
  wrr_.get(), this, index, endpoint_info.picker.get());
@@ -630,7 +641,7 @@ void WeightedRoundRobin::Picker::BuildSchedulerAndStartTimerLocked() {
630
641
  stats_plugins.AddCounter(kMetricEndpointWeightStale, num_stale,
631
642
  {wrr_->channel_control_helper()->GetTarget()},
632
643
  {wrr_->locality_name_});
633
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
644
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
634
645
  gpr_log(GPR_INFO, "[WRR %p picker %p] new weights: %s", wrr_.get(), this,
635
646
  absl::StrJoin(weights, " ").c_str());
636
647
  }
@@ -640,12 +651,12 @@ void WeightedRoundRobin::Picker::BuildSchedulerAndStartTimerLocked() {
640
651
  if (scheduler_or.has_value()) {
641
652
  scheduler =
642
653
  std::make_shared<StaticStrideScheduler>(std::move(*scheduler_or));
643
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
654
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
644
655
  gpr_log(GPR_INFO, "[WRR %p picker %p] new scheduler: %p", wrr_.get(),
645
656
  this, scheduler.get());
646
657
  }
647
658
  } else {
648
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
659
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
649
660
  gpr_log(GPR_INFO, "[WRR %p picker %p] no scheduler, falling back to RR",
650
661
  wrr_.get(), this);
651
662
  }
@@ -658,7 +669,7 @@ void WeightedRoundRobin::Picker::BuildSchedulerAndStartTimerLocked() {
658
669
  scheduler_ = std::move(scheduler);
659
670
  }
660
671
  // Start timer.
661
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
672
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
662
673
  gpr_log(GPR_INFO, "[WRR %p picker %p] scheduling timer for %s", wrr_.get(),
663
674
  this, config_->weight_update_period().ToString().c_str());
664
675
  }
@@ -671,7 +682,7 @@ void WeightedRoundRobin::Picker::BuildSchedulerAndStartTimerLocked() {
671
682
  {
672
683
  MutexLock lock(&self->timer_mu_);
673
684
  if (self->timer_handle_.has_value()) {
674
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
685
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
675
686
  gpr_log(GPR_INFO, "[WRR %p picker %p] timer fired",
676
687
  self->wrr_.get(), self.get());
677
688
  }
@@ -696,14 +707,14 @@ WeightedRoundRobin::WeightedRoundRobin(Args args)
696
707
  locality_name_(channel_args()
697
708
  .GetString(GRPC_ARG_LB_WEIGHTED_TARGET_CHILD)
698
709
  .value_or("")) {
699
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
710
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
700
711
  gpr_log(GPR_INFO, "[WRR %p] Created -- locality_name=\"%s\"", this,
701
712
  std::string(locality_name_).c_str());
702
713
  }
703
714
  }
704
715
 
705
716
  WeightedRoundRobin::~WeightedRoundRobin() {
706
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
717
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
707
718
  gpr_log(GPR_INFO, "[WRR %p] Destroying Round Robin policy", this);
708
719
  }
709
720
  CHECK(endpoint_list_ == nullptr);
@@ -711,7 +722,7 @@ WeightedRoundRobin::~WeightedRoundRobin() {
711
722
  }
712
723
 
713
724
  void WeightedRoundRobin::ShutdownLocked() {
714
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
725
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
715
726
  gpr_log(GPR_INFO, "[WRR %p] Shutting down", this);
716
727
  }
717
728
  shutdown_ = true;
@@ -731,7 +742,7 @@ absl::Status WeightedRoundRobin::UpdateLocked(UpdateArgs args) {
731
742
  config_ = args.config.TakeAsSubclass<WeightedRoundRobinConfig>();
732
743
  std::shared_ptr<EndpointAddressesIterator> addresses;
733
744
  if (args.addresses.ok()) {
734
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
745
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
735
746
  gpr_log(GPR_INFO, "[WRR %p] received update", this);
736
747
  }
737
748
  // Weed out duplicate endpoints. Also sort the endpoints so that if
@@ -759,7 +770,7 @@ absl::Status WeightedRoundRobin::UpdateLocked(UpdateArgs args) {
759
770
  std::make_shared<EndpointAddressesListIterator>(EndpointAddressesList(
760
771
  ordered_addresses.begin(), ordered_addresses.end()));
761
772
  } else {
762
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
773
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
763
774
  gpr_log(GPR_INFO, "[WRR %p] received update with address error: %s", this,
764
775
  args.addresses.status().ToString().c_str());
765
776
  }
@@ -768,7 +779,7 @@ absl::Status WeightedRoundRobin::UpdateLocked(UpdateArgs args) {
768
779
  if (endpoint_list_ != nullptr) return args.addresses.status();
769
780
  }
770
781
  // Create new endpoint list, replacing the previous pending list, if any.
771
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace) &&
782
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb) &&
772
783
  latest_pending_endpoint_list_ != nullptr) {
773
784
  gpr_log(GPR_INFO, "[WRR %p] replacing previous pending endpoint list %p",
774
785
  this, latest_pending_endpoint_list_.get());
@@ -779,7 +790,7 @@ absl::Status WeightedRoundRobin::UpdateLocked(UpdateArgs args) {
779
790
  // If the new list is empty, immediately promote it to
780
791
  // endpoint_list_ and report TRANSIENT_FAILURE.
781
792
  if (latest_pending_endpoint_list_->size() == 0) {
782
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace) &&
793
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb) &&
783
794
  endpoint_list_ != nullptr) {
784
795
  gpr_log(GPR_INFO, "[WRR %p] replacing previous endpoint list %p", this,
785
796
  endpoint_list_.get());
@@ -862,7 +873,7 @@ void WeightedRoundRobin::WrrEndpointList::WrrEndpoint::OnStateUpdate(
862
873
  grpc_connectivity_state new_state, const absl::Status& status) {
863
874
  auto* wrr_endpoint_list = endpoint_list<WrrEndpointList>();
864
875
  auto* wrr = policy<WeightedRoundRobin>();
865
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
876
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
866
877
  gpr_log(GPR_INFO,
867
878
  "[WRR %p] connectivity changed for child %p, endpoint_list %p "
868
879
  "(index %" PRIuPTR " of %" PRIuPTR
@@ -872,7 +883,7 @@ void WeightedRoundRobin::WrrEndpointList::WrrEndpoint::OnStateUpdate(
872
883
  ConnectivityStateName(new_state), status.ToString().c_str());
873
884
  }
874
885
  if (new_state == GRPC_CHANNEL_IDLE) {
875
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
886
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
876
887
  gpr_log(GPR_INFO,
877
888
  "[WRR %p] child %p reported IDLE; requesting connection", wrr,
878
889
  this);
@@ -953,7 +964,7 @@ void WeightedRoundRobin::WrrEndpointList::
953
964
  (wrr->endpoint_list_->num_ready_ == 0 ||
954
965
  (num_ready_ > 0 && AllEndpointsSeenInitialState()) ||
955
966
  num_transient_failure_ == size())) {
956
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
967
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
957
968
  const std::string old_counters_string =
958
969
  wrr->endpoint_list_ != nullptr ? wrr->endpoint_list_->CountersString()
959
970
  : "";
@@ -971,7 +982,7 @@ void WeightedRoundRobin::WrrEndpointList::
971
982
  // 2) ANY child is CONNECTING => policy is CONNECTING.
972
983
  // 3) ALL children are TRANSIENT_FAILURE => policy is TRANSIENT_FAILURE.
973
984
  if (num_ready_ > 0) {
974
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
985
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
975
986
  gpr_log(GPR_INFO, "[WRR %p] reporting READY with endpoint list %p", wrr,
976
987
  this);
977
988
  }
@@ -979,7 +990,7 @@ void WeightedRoundRobin::WrrEndpointList::
979
990
  GRPC_CHANNEL_READY, absl::Status(),
980
991
  MakeRefCounted<Picker>(wrr->RefAsSubclass<WeightedRoundRobin>(), this));
981
992
  } else if (num_connecting_ > 0) {
982
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
993
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
983
994
  gpr_log(GPR_INFO, "[WRR %p] reporting CONNECTING with endpoint list %p",
984
995
  wrr, this);
985
996
  }
@@ -987,7 +998,7 @@ void WeightedRoundRobin::WrrEndpointList::
987
998
  GRPC_CHANNEL_CONNECTING, absl::Status(),
988
999
  MakeRefCounted<QueuePicker>(nullptr));
989
1000
  } else if (num_transient_failure_ == size()) {
990
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_wrr_trace)) {
1001
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_round_robin_lb)) {
991
1002
  gpr_log(GPR_INFO,
992
1003
  "[WRR %p] reporting TRANSIENT_FAILURE with endpoint list %p: %s",
993
1004
  wrr, this, status_for_tf.ToString().c_str());
@@ -54,9 +54,6 @@
54
54
  #include "src/core/lib/gprpp/work_serializer.h"
55
55
  #include "src/core/lib/iomgr/exec_ctx.h"
56
56
  #include "src/core/lib/iomgr/pollset_set.h"
57
- #include "src/core/lib/json/json.h"
58
- #include "src/core/lib/json/json_args.h"
59
- #include "src/core/lib/json/json_object_loader.h"
60
57
  #include "src/core/lib/transport/connectivity_state.h"
61
58
  #include "src/core/load_balancing/address_filtering.h"
62
59
  #include "src/core/load_balancing/child_policy_handler.h"
@@ -65,13 +62,14 @@
65
62
  #include "src/core/load_balancing/lb_policy_factory.h"
66
63
  #include "src/core/load_balancing/lb_policy_registry.h"
67
64
  #include "src/core/resolver/endpoint_addresses.h"
65
+ #include "src/core/util/json/json.h"
66
+ #include "src/core/util/json/json_args.h"
67
+ #include "src/core/util/json/json_object_loader.h"
68
68
 
69
69
  // IWYU pragma: no_include <type_traits>
70
70
 
71
71
  namespace grpc_core {
72
72
 
73
- TraceFlag grpc_lb_weighted_target_trace(false, "weighted_target_lb");
74
-
75
73
  namespace {
76
74
 
77
75
  using ::grpc_event_engine::experimental::EventEngine;
@@ -286,13 +284,13 @@ WeightedTargetLb::PickResult WeightedTargetLb::WeightedPicker::Pick(
286
284
 
287
285
  WeightedTargetLb::WeightedTargetLb(Args args)
288
286
  : LoadBalancingPolicy(std::move(args)) {
289
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_weighted_target_trace)) {
287
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_target_lb)) {
290
288
  gpr_log(GPR_INFO, "[weighted_target_lb %p] created", this);
291
289
  }
292
290
  }
293
291
 
294
292
  WeightedTargetLb::~WeightedTargetLb() {
295
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_weighted_target_trace)) {
293
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_target_lb)) {
296
294
  gpr_log(GPR_INFO,
297
295
  "[weighted_target_lb %p] destroying weighted_target LB policy",
298
296
  this);
@@ -300,7 +298,7 @@ WeightedTargetLb::~WeightedTargetLb() {
300
298
  }
301
299
 
302
300
  void WeightedTargetLb::ShutdownLocked() {
303
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_weighted_target_trace)) {
301
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_target_lb)) {
304
302
  gpr_log(GPR_INFO, "[weighted_target_lb %p] shutting down", this);
305
303
  }
306
304
  shutting_down_ = true;
@@ -313,7 +311,7 @@ void WeightedTargetLb::ResetBackoffLocked() {
313
311
 
314
312
  absl::Status WeightedTargetLb::UpdateLocked(UpdateArgs args) {
315
313
  if (shutting_down_) return absl::OkStatus();
316
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_weighted_target_trace)) {
314
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_target_lb)) {
317
315
  gpr_log(GPR_INFO, "[weighted_target_lb %p] Received update", this);
318
316
  }
319
317
  update_in_progress_ = true;
@@ -385,7 +383,7 @@ void WeightedTargetLb::UpdateStateLocked() {
385
383
  // all children. This avoids unnecessary picker churn while an update
386
384
  // is being propagated to our children.
387
385
  if (update_in_progress_) return;
388
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_weighted_target_trace)) {
386
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_target_lb)) {
389
387
  gpr_log(GPR_INFO,
390
388
  "[weighted_target_lb %p] scanning children to determine "
391
389
  "connectivity state",
@@ -412,7 +410,7 @@ void WeightedTargetLb::UpdateStateLocked() {
412
410
  continue;
413
411
  }
414
412
  auto child_picker = child->picker();
415
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_weighted_target_trace)) {
413
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_target_lb)) {
416
414
  gpr_log(GPR_INFO,
417
415
  "[weighted_target_lb %p] child=%s state=%s weight=%u picker=%p",
418
416
  this, child_name.c_str(),
@@ -455,7 +453,7 @@ void WeightedTargetLb::UpdateStateLocked() {
455
453
  } else {
456
454
  connectivity_state = GRPC_CHANNEL_TRANSIENT_FAILURE;
457
455
  }
458
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_weighted_target_trace)) {
456
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_target_lb)) {
459
457
  gpr_log(GPR_INFO, "[weighted_target_lb %p] connectivity changed to %s",
460
458
  this, ConnectivityStateName(connectivity_state));
461
459
  }
@@ -499,7 +497,7 @@ WeightedTargetLb::WeightedChild::DelayedRemovalTimer::DelayedRemovalTimer(
499
497
 
500
498
  void WeightedTargetLb::WeightedChild::DelayedRemovalTimer::Orphan() {
501
499
  if (timer_handle_.has_value()) {
502
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_weighted_target_trace)) {
500
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_target_lb)) {
503
501
  gpr_log(GPR_INFO,
504
502
  "[weighted_target_lb %p] WeightedChild %p %s: cancelling "
505
503
  "delayed removal timer",
@@ -530,14 +528,14 @@ WeightedTargetLb::WeightedChild::WeightedChild(
530
528
  : weighted_target_policy_(std::move(weighted_target_policy)),
531
529
  name_(name),
532
530
  picker_(MakeRefCounted<QueuePicker>(nullptr)) {
533
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_weighted_target_trace)) {
531
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_target_lb)) {
534
532
  gpr_log(GPR_INFO, "[weighted_target_lb %p] created WeightedChild %p for %s",
535
533
  weighted_target_policy_.get(), this, name_.c_str());
536
534
  }
537
535
  }
538
536
 
539
537
  WeightedTargetLb::WeightedChild::~WeightedChild() {
540
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_weighted_target_trace)) {
538
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_target_lb)) {
541
539
  gpr_log(GPR_INFO,
542
540
  "[weighted_target_lb %p] WeightedChild %p %s: destroying child",
543
541
  weighted_target_policy_.get(), this, name_.c_str());
@@ -546,7 +544,7 @@ WeightedTargetLb::WeightedChild::~WeightedChild() {
546
544
  }
547
545
 
548
546
  void WeightedTargetLb::WeightedChild::Orphan() {
549
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_weighted_target_trace)) {
547
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_target_lb)) {
550
548
  gpr_log(GPR_INFO,
551
549
  "[weighted_target_lb %p] WeightedChild %p %s: shutting down child",
552
550
  weighted_target_policy_.get(), this, name_.c_str());
@@ -574,8 +572,8 @@ WeightedTargetLb::WeightedChild::CreateChildPolicyLocked(
574
572
  std::make_unique<Helper>(this->Ref(DEBUG_LOCATION, "Helper"));
575
573
  OrphanablePtr<LoadBalancingPolicy> lb_policy =
576
574
  MakeOrphanable<ChildPolicyHandler>(std::move(lb_policy_args),
577
- &grpc_lb_weighted_target_trace);
578
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_weighted_target_trace)) {
575
+ &weighted_target_lb_trace);
576
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_target_lb)) {
579
577
  gpr_log(GPR_INFO,
580
578
  "[weighted_target_lb %p] WeightedChild %p %s: Created new child "
581
579
  "policy handler %p",
@@ -597,15 +595,14 @@ absl::Status WeightedTargetLb::WeightedChild::UpdateLocked(
597
595
  const std::string& resolution_note, ChannelArgs args) {
598
596
  if (weighted_target_policy_->shutting_down_) return absl::OkStatus();
599
597
  // Update child weight.
600
- if (weight_ != config.weight &&
601
- GRPC_TRACE_FLAG_ENABLED(grpc_lb_weighted_target_trace)) {
598
+ if (weight_ != config.weight && GRPC_TRACE_FLAG_ENABLED(weighted_target_lb)) {
602
599
  gpr_log(GPR_INFO, "[weighted_target_lb %p] WeightedChild %p %s: weight=%u",
603
600
  weighted_target_policy_.get(), this, name_.c_str(), config.weight);
604
601
  }
605
602
  weight_ = config.weight;
606
603
  // Reactivate if needed.
607
604
  if (delayed_removal_timer_ != nullptr) {
608
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_weighted_target_trace)) {
605
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_target_lb)) {
609
606
  gpr_log(GPR_INFO,
610
607
  "[weighted_target_lb %p] WeightedChild %p %s: reactivating",
611
608
  weighted_target_policy_.get(), this, name_.c_str());
@@ -624,7 +621,7 @@ absl::Status WeightedTargetLb::WeightedChild::UpdateLocked(
624
621
  update_args.resolution_note = resolution_note;
625
622
  update_args.args = std::move(args);
626
623
  // Update the policy.
627
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_weighted_target_trace)) {
624
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_target_lb)) {
628
625
  gpr_log(GPR_INFO,
629
626
  "[weighted_target_lb %p] WeightedChild %p %s: Updating child "
630
627
  "policy handler %p",
@@ -643,7 +640,7 @@ void WeightedTargetLb::WeightedChild::OnConnectivityStateUpdateLocked(
643
640
  RefCountedPtr<SubchannelPicker> picker) {
644
641
  // Cache the picker in the WeightedChild.
645
642
  picker_ = std::move(picker);
646
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_weighted_target_trace)) {
643
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_target_lb)) {
647
644
  gpr_log(GPR_INFO,
648
645
  "[weighted_target_lb %p] WeightedChild %p %s: connectivity "
649
646
  "state update: state=%s (%s) picker=%p",
@@ -667,7 +664,7 @@ void WeightedTargetLb::WeightedChild::OnConnectivityStateUpdateLocked(
667
664
  void WeightedTargetLb::WeightedChild::DeactivateLocked() {
668
665
  // If already deactivated, don't do that again.
669
666
  if (weight_ == 0) return;
670
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_weighted_target_trace)) {
667
+ if (GRPC_TRACE_FLAG_ENABLED(weighted_target_lb)) {
671
668
  gpr_log(GPR_INFO,
672
669
  "[weighted_target_lb %p] WeightedChild %p %s: deactivating",
673
670
  weighted_target_policy_.get(), this, name_.c_str());