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
@@ -32,6 +32,7 @@
32
32
  #include "absl/base/thread_annotations.h"
33
33
  #include "absl/functional/function_ref.h"
34
34
  #include "absl/log/check.h"
35
+ #include "absl/log/log.h"
35
36
  #include "absl/status/status.h"
36
37
  #include "absl/status/statusor.h"
37
38
  #include "absl/strings/str_cat.h"
@@ -69,9 +70,6 @@
69
70
  #include "src/core/lib/iomgr/iomgr_fwd.h"
70
71
  #include "src/core/lib/iomgr/pollset_set.h"
71
72
  #include "src/core/lib/iomgr/resolved_address.h"
72
- #include "src/core/lib/json/json.h"
73
- #include "src/core/lib/json/json_args.h"
74
- #include "src/core/lib/json/json_object_loader.h"
75
73
  #include "src/core/lib/transport/connectivity_state.h"
76
74
  #include "src/core/load_balancing/child_policy_handler.h"
77
75
  #include "src/core/load_balancing/delegating_helper.h"
@@ -81,14 +79,15 @@
81
79
  #include "src/core/load_balancing/subchannel_interface.h"
82
80
  #include "src/core/resolver/endpoint_addresses.h"
83
81
  #include "src/core/resolver/xds/xds_dependency_manager.h"
82
+ #include "src/core/util/json/json.h"
83
+ #include "src/core/util/json/json_args.h"
84
+ #include "src/core/util/json/json_object_loader.h"
84
85
  #include "src/core/xds/grpc/xds_health_status.h"
85
86
 
86
87
  namespace grpc_core {
87
88
 
88
89
  using ::grpc_event_engine::experimental::EventEngine;
89
90
 
90
- TraceFlag grpc_lb_xds_override_host_trace(false, "xds_override_host_lb");
91
-
92
91
  namespace {
93
92
  template <typename Value>
94
93
  struct PtrLessThan {
@@ -466,7 +465,7 @@ XdsOverrideHostLb::Picker::Picker(
466
465
  : policy_(std::move(xds_override_host_lb)),
467
466
  picker_(std::move(picker)),
468
467
  override_host_health_status_set_(override_host_health_status_set) {
469
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
468
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
470
469
  gpr_log(GPR_INFO, "[xds_override_host_lb %p] constructed new picker %p",
471
470
  policy_.get(), this);
472
471
  }
@@ -489,7 +488,7 @@ XdsOverrideHostLb::Picker::PickOverridenHost(
489
488
  if (it == policy_->subchannel_map_.end()) continue;
490
489
  if (!override_host_health_status_set_.Contains(
491
490
  it->second->eds_health_status())) {
492
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
491
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
493
492
  gpr_log(GPR_INFO,
494
493
  "Subchannel %s health status is not overridden (%s)",
495
494
  std::string(address).c_str(),
@@ -499,7 +498,7 @@ XdsOverrideHostLb::Picker::PickOverridenHost(
499
498
  }
500
499
  auto subchannel = it->second->GetSubchannelRef();
501
500
  if (subchannel == nullptr) {
502
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
501
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
503
502
  gpr_log(GPR_INFO, "No subchannel for %s",
504
503
  std::string(address).c_str());
505
504
  }
@@ -512,7 +511,7 @@ XdsOverrideHostLb::Picker::PickOverridenHost(
512
511
  if (connectivity_state == GRPC_CHANNEL_READY) {
513
512
  // Found a READY subchannel. Pass back the actual address list
514
513
  // and return the subchannel.
515
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
514
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
516
515
  gpr_log(GPR_INFO, "Picker override found READY subchannel %s",
517
516
  std::string(address).c_str());
518
517
  }
@@ -529,8 +528,8 @@ XdsOverrideHostLb::Picker::PickOverridenHost(
529
528
  // No READY subchannel found. If we found an IDLE subchannel, trigger
530
529
  // a connection attempt and queue the pick until that attempt completes.
531
530
  if (idle_subchannel != nullptr) {
532
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
533
- gpr_log(GPR_INFO, "Picker override found IDLE subchannel");
531
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
532
+ LOG(INFO) << "Picker override found IDLE subchannel";
534
533
  }
535
534
  // Deletes itself after the connection is requested.
536
535
  new SubchannelConnectionRequester(std::move(idle_subchannel));
@@ -539,8 +538,8 @@ XdsOverrideHostLb::Picker::PickOverridenHost(
539
538
  // No READY or IDLE subchannels. If we found a CONNECTING subchannel,
540
539
  // queue the pick and wait for the connection attempt to complete.
541
540
  if (found_connecting) {
542
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
543
- gpr_log(GPR_INFO, "Picker override found CONNECTING subchannel");
541
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
542
+ LOG(INFO) << "Picker override found CONNECTING subchannel";
544
543
  }
545
544
  return PickResult::Queue();
546
545
  }
@@ -548,8 +547,8 @@ XdsOverrideHostLb::Picker::PickOverridenHost(
548
547
  // entry that has no subchannel, then queue the pick and trigger
549
548
  // creation of a subchannel for that entry.
550
549
  if (!address_with_no_subchannel.empty()) {
551
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
552
- gpr_log(GPR_INFO, "Picker override found entry with no subchannel");
550
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
551
+ LOG(INFO) << "Picker override found entry with no subchannel";
553
552
  }
554
553
  if (!IsWorkSerializerDispatchEnabled()) {
555
554
  new SubchannelCreationRequester(policy_, address_with_no_subchannel);
@@ -610,7 +609,7 @@ XdsOverrideHostLb::IdleTimer::IdleTimer(RefCountedPtr<XdsOverrideHostLb> policy,
610
609
  // Min time between timer runs is 5s so that we don't kill ourselves
611
610
  // with lock contention and CPU usage due to sweeps over the map.
612
611
  duration = std::max(duration, Duration::Seconds(5));
613
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
612
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
614
613
  gpr_log(GPR_INFO,
615
614
  "[xds_override_host_lb %p] idle timer %p: subchannel cleanup "
616
615
  "pass will run in %s",
@@ -629,7 +628,7 @@ XdsOverrideHostLb::IdleTimer::IdleTimer(RefCountedPtr<XdsOverrideHostLb> policy,
629
628
 
630
629
  void XdsOverrideHostLb::IdleTimer::Orphan() {
631
630
  if (timer_handle_.has_value()) {
632
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
631
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
633
632
  gpr_log(GPR_INFO, "[xds_override_host_lb %p] idle timer %p: cancelling",
634
633
  policy_.get(), this);
635
634
  }
@@ -642,7 +641,7 @@ void XdsOverrideHostLb::IdleTimer::Orphan() {
642
641
  void XdsOverrideHostLb::IdleTimer::OnTimerLocked() {
643
642
  if (timer_handle_.has_value()) {
644
643
  timer_handle_.reset();
645
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
644
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
646
645
  gpr_log(GPR_INFO, "[xds_override_host_lb %p] idle timer %p: timer fired",
647
646
  policy_.get(), this);
648
647
  }
@@ -656,13 +655,13 @@ void XdsOverrideHostLb::IdleTimer::OnTimerLocked() {
656
655
 
657
656
  XdsOverrideHostLb::XdsOverrideHostLb(Args args)
658
657
  : LoadBalancingPolicy(std::move(args)) {
659
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
658
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
660
659
  gpr_log(GPR_INFO, "[xds_override_host_lb %p] created", this);
661
660
  }
662
661
  }
663
662
 
664
663
  XdsOverrideHostLb::~XdsOverrideHostLb() {
665
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
664
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
666
665
  gpr_log(GPR_INFO,
667
666
  "[xds_override_host_lb %p] destroying xds_override_host LB policy",
668
667
  this);
@@ -670,7 +669,7 @@ XdsOverrideHostLb::~XdsOverrideHostLb() {
670
669
  }
671
670
 
672
671
  void XdsOverrideHostLb::ShutdownLocked() {
673
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
672
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
674
673
  gpr_log(GPR_INFO, "[xds_override_host_lb %p] shutting down", this);
675
674
  }
676
675
  shutting_down_ = true;
@@ -703,7 +702,7 @@ void XdsOverrideHostLb::ResetState() {
703
702
  }
704
703
 
705
704
  void XdsOverrideHostLb::ReportTransientFailure(absl::Status status) {
706
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
705
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
707
706
  gpr_log(GPR_INFO,
708
707
  "[xds_override_host_lb %p] reporting TRANSIENT_FAILURE: %s", this,
709
708
  status.ToString().c_str());
@@ -741,7 +740,7 @@ class ChildEndpointIterator final : public EndpointAddressesIterator {
741
740
  parent_it_->ForEach([&](const EndpointAddresses& endpoint) {
742
741
  XdsHealthStatus status = GetEndpointHealthStatus(endpoint);
743
742
  if (status.status() != XdsHealthStatus::kDraining) {
744
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
743
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
745
744
  gpr_log(GPR_INFO,
746
745
  "[xds_override_host_lb %p] endpoint %s: not draining, "
747
746
  "passing to child",
@@ -757,7 +756,7 @@ class ChildEndpointIterator final : public EndpointAddressesIterator {
757
756
  };
758
757
 
759
758
  absl::Status XdsOverrideHostLb::UpdateLocked(UpdateArgs args) {
760
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
759
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
761
760
  gpr_log(GPR_INFO, "[xds_override_host_lb %p] Received update", this);
762
761
  }
763
762
  // Grab new LB policy config.
@@ -787,7 +786,7 @@ absl::Status XdsOverrideHostLb::UpdateLocked(UpdateArgs args) {
787
786
  args_ = std::move(args.args);
788
787
  override_host_status_set_ = it->second->cluster->override_host_statuses;
789
788
  connection_idle_timeout_ = it->second->cluster->connection_idle_timeout;
790
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
789
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
791
790
  gpr_log(GPR_INFO,
792
791
  "[xds_override_host_lb %p] override host status set: %s "
793
792
  "connection idle timeout: %s",
@@ -800,7 +799,7 @@ absl::Status XdsOverrideHostLb::UpdateLocked(UpdateArgs args) {
800
799
  args.addresses =
801
800
  std::make_shared<ChildEndpointIterator>(std::move(*args.addresses));
802
801
  } else {
803
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
802
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
804
803
  gpr_log(GPR_INFO, "[xds_override_host_lb %p] address error: %s", this,
805
804
  args.addresses.status().ToString().c_str());
806
805
  }
@@ -815,7 +814,7 @@ absl::Status XdsOverrideHostLb::UpdateLocked(UpdateArgs args) {
815
814
  update_args.resolution_note = std::move(args.resolution_note);
816
815
  update_args.config = new_config->child_config();
817
816
  update_args.args = args_;
818
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
817
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
819
818
  gpr_log(GPR_INFO,
820
819
  "[xds_override_host_lb %p] Updating child policy handler %p", this,
821
820
  child_policy_.get());
@@ -827,7 +826,7 @@ void XdsOverrideHostLb::MaybeUpdatePickerLocked() {
827
826
  if (picker_ != nullptr) {
828
827
  auto xds_override_host_picker = MakeRefCounted<Picker>(
829
828
  RefAsSubclass<XdsOverrideHostLb>(), picker_, override_host_status_set_);
830
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
829
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
831
830
  gpr_log(GPR_INFO,
832
831
  "[xds_override_host_lb %p] updating connectivity: state=%s "
833
832
  "status=(%s) picker=%p",
@@ -848,8 +847,8 @@ OrphanablePtr<LoadBalancingPolicy> XdsOverrideHostLb::CreateChildPolicyLocked(
848
847
  RefAsSubclass<XdsOverrideHostLb>(DEBUG_LOCATION, "Helper"));
849
848
  OrphanablePtr<LoadBalancingPolicy> lb_policy =
850
849
  MakeOrphanable<ChildPolicyHandler>(std::move(lb_policy_args),
851
- &grpc_lb_xds_override_host_trace);
852
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
850
+ &xds_override_host_lb_trace);
851
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
853
852
  gpr_log(GPR_INFO,
854
853
  "[xds_override_host_lb %p] Created new child policy handler %p",
855
854
  this, lb_policy.get());
@@ -877,7 +876,7 @@ void XdsOverrideHostLb::UpdateAddressMap(
877
876
  // Skip draining hosts if not in the override status set.
878
877
  if (status.status() == XdsHealthStatus::kDraining &&
879
878
  !override_host_status_set_.Contains(status)) {
880
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
879
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
881
880
  gpr_log(GPR_INFO,
882
881
  "[xds_override_host_lb %p] endpoint %s: draining but not in "
883
882
  "override_host_status set -- ignoring",
@@ -890,7 +889,7 @@ void XdsOverrideHostLb::UpdateAddressMap(
890
889
  for (const auto& address : endpoint.addresses()) {
891
890
  auto key = grpc_sockaddr_to_string(&address, /*normalize=*/false);
892
891
  if (!key.ok()) {
893
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
892
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
894
893
  gpr_log(GPR_INFO,
895
894
  "[xds_override_host_lb %p] no key for endpoint address; "
896
895
  "not adding to map",
@@ -922,7 +921,7 @@ void XdsOverrideHostLb::UpdateAddressMap(
922
921
  MutexLock lock(&mu_);
923
922
  for (auto it = subchannel_map_.begin(); it != subchannel_map_.end();) {
924
923
  if (addresses_for_map.find(it->first) == addresses_for_map.end()) {
925
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
924
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
926
925
  gpr_log(GPR_INFO, "[xds_override_host_lb %p] removing map key %s",
927
926
  this, it->first.c_str());
928
927
  }
@@ -937,14 +936,14 @@ void XdsOverrideHostLb::UpdateAddressMap(
937
936
  auto& address_info = p.second;
938
937
  auto it = subchannel_map_.find(address);
939
938
  if (it == subchannel_map_.end()) {
940
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
939
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
941
940
  gpr_log(GPR_INFO, "[xds_override_host_lb %p] adding map key %s", this,
942
941
  address.c_str());
943
942
  }
944
943
  it = subchannel_map_.emplace(address, MakeRefCounted<SubchannelEntry>())
945
944
  .first;
946
945
  }
947
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
946
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
948
947
  gpr_log(GPR_INFO,
949
948
  "[xds_override_host_lb %p] map key %s: setting "
950
949
  "eds_health_status=%s address_list=%s",
@@ -989,7 +988,7 @@ XdsOverrideHostLb::AdoptSubchannel(
989
988
  }
990
989
 
991
990
  void XdsOverrideHostLb::CreateSubchannelForAddress(absl::string_view address) {
992
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
991
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
993
992
  gpr_log(GPR_INFO,
994
993
  "[xds_override_host_lb %p] creating owned subchannel for %s", this,
995
994
  std::string(address).c_str());
@@ -1033,7 +1032,7 @@ void XdsOverrideHostLb::CleanupSubchannels() {
1033
1032
  if (p.second->last_used_time() <= idle_threshold) {
1034
1033
  auto subchannel = p.second->TakeOwnedSubchannel();
1035
1034
  if (subchannel != nullptr) {
1036
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
1035
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
1037
1036
  gpr_log(GPR_INFO,
1038
1037
  "[xds_override_host_lb %p] dropping subchannel for %s",
1039
1038
  this, p.first.c_str());
@@ -1060,7 +1059,7 @@ void XdsOverrideHostLb::CleanupSubchannels() {
1060
1059
  RefCountedPtr<SubchannelInterface> XdsOverrideHostLb::Helper::CreateSubchannel(
1061
1060
  const grpc_resolved_address& address, const ChannelArgs& per_address_args,
1062
1061
  const ChannelArgs& args) {
1063
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
1062
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
1064
1063
  auto key = grpc_sockaddr_to_string(&address, /*normalize=*/false);
1065
1064
  gpr_log(GPR_INFO,
1066
1065
  "[xds_override_host_lb %p] creating subchannel for %s, "
@@ -1113,7 +1112,7 @@ void XdsOverrideHostLb::SubchannelWrapper::CancelConnectivityStateWatch(
1113
1112
  }
1114
1113
 
1115
1114
  void XdsOverrideHostLb::SubchannelWrapper::Orphaned() {
1116
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
1115
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
1117
1116
  gpr_log(GPR_INFO,
1118
1117
  "[xds_override_host_lb %p] subchannel wrapper %p orphaned",
1119
1118
  policy_.get(), this);
@@ -1227,7 +1226,7 @@ void XdsOverrideHostLb::SubchannelEntry::OnSubchannelWrapperOrphan(
1227
1226
  auto* subchannel = GetSubchannel();
1228
1227
  if (subchannel != wrapper) return;
1229
1228
  if (last_used_time_ < (Timestamp::Now() - connection_idle_timeout)) {
1230
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
1229
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
1231
1230
  gpr_log(GPR_INFO,
1232
1231
  "[xds_override_host_lb] removing unowned subchannel wrapper %p",
1233
1232
  subchannel);
@@ -1238,7 +1237,7 @@ void XdsOverrideHostLb::SubchannelEntry::OnSubchannelWrapperOrphan(
1238
1237
  // is still within its idle timeout, so we make a new copy of
1239
1238
  // the wrapper with the same underlying subchannel, and we hold
1240
1239
  // our own ref to it.
1241
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_override_host_trace)) {
1240
+ if (GRPC_TRACE_FLAG_ENABLED(xds_override_host_lb)) {
1242
1241
  gpr_log(GPR_INFO,
1243
1242
  "[xds_override_host_lb] subchannel wrapper %p: cloning "
1244
1243
  "to gain ownership",
@@ -23,10 +23,10 @@
23
23
 
24
24
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
25
25
  #include "src/core/lib/gprpp/validation_errors.h"
26
- #include "src/core/lib/json/json.h"
27
- #include "src/core/lib/json/json_args.h"
28
- #include "src/core/lib/json/json_object_loader.h"
29
26
  #include "src/core/load_balancing/lb_policy.h"
27
+ #include "src/core/util/json/json.h"
28
+ #include "src/core/util/json/json_args.h"
29
+ #include "src/core/util/json/json_object_loader.h"
30
30
 
31
31
  namespace grpc_core {
32
32
 
@@ -40,22 +40,20 @@
40
40
  #include "src/core/lib/gprpp/ref_counted_string.h"
41
41
  #include "src/core/lib/gprpp/validation_errors.h"
42
42
  #include "src/core/lib/iomgr/pollset_set.h"
43
- #include "src/core/lib/json/json.h"
44
- #include "src/core/lib/json/json_args.h"
45
- #include "src/core/lib/json/json_object_loader.h"
46
- #include "src/core/lib/json/json_writer.h"
47
43
  #include "src/core/load_balancing/delegating_helper.h"
48
44
  #include "src/core/load_balancing/lb_policy.h"
49
45
  #include "src/core/load_balancing/lb_policy_factory.h"
50
46
  #include "src/core/load_balancing/lb_policy_registry.h"
51
47
  #include "src/core/load_balancing/xds/xds_channel_args.h"
52
48
  #include "src/core/resolver/endpoint_addresses.h"
49
+ #include "src/core/util/json/json.h"
50
+ #include "src/core/util/json/json_args.h"
51
+ #include "src/core/util/json/json_object_loader.h"
52
+ #include "src/core/util/json/json_writer.h"
53
53
  #include "src/core/xds/xds_client/xds_client_stats.h"
54
54
 
55
55
  namespace grpc_core {
56
56
 
57
- TraceFlag grpc_xds_wrr_locality_lb_trace(false, "xds_wrr_locality_lb");
58
-
59
57
  namespace {
60
58
 
61
59
  constexpr absl::string_view kXdsWrrLocality = "xds_wrr_locality_experimental";
@@ -137,13 +135,13 @@ XdsWrrLocalityLb::XdsWrrLocalityLb(Args args)
137
135
  : LoadBalancingPolicy(std::move(args)) {}
138
136
 
139
137
  XdsWrrLocalityLb::~XdsWrrLocalityLb() {
140
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_wrr_locality_lb_trace)) {
138
+ if (GRPC_TRACE_FLAG_ENABLED(xds_wrr_locality_lb)) {
141
139
  gpr_log(GPR_INFO, "[xds_wrr_locality_lb %p] destroying", this);
142
140
  }
143
141
  }
144
142
 
145
143
  void XdsWrrLocalityLb::ShutdownLocked() {
146
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_wrr_locality_lb_trace)) {
144
+ if (GRPC_TRACE_FLAG_ENABLED(xds_wrr_locality_lb)) {
147
145
  gpr_log(GPR_INFO, "[xds_wrr_locality_lb %p] shutting down", this);
148
146
  }
149
147
  if (child_policy_ != nullptr) {
@@ -162,7 +160,7 @@ void XdsWrrLocalityLb::ResetBackoffLocked() {
162
160
  }
163
161
 
164
162
  absl::Status XdsWrrLocalityLb::UpdateLocked(UpdateArgs args) {
165
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_wrr_locality_lb_trace)) {
163
+ if (GRPC_TRACE_FLAG_ENABLED(xds_wrr_locality_lb)) {
166
164
  gpr_log(GPR_INFO, "[xds_wrr_locality_lb %p] Received update", this);
167
165
  }
168
166
  auto config = args.config.TakeAsSubclass<XdsWrrLocalityLbConfig>();
@@ -204,7 +202,7 @@ absl::Status XdsWrrLocalityLb::UpdateLocked(UpdateArgs args) {
204
202
  })},
205
203
  }),
206
204
  });
207
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_wrr_locality_lb_trace)) {
205
+ if (GRPC_TRACE_FLAG_ENABLED(xds_wrr_locality_lb)) {
208
206
  gpr_log(GPR_INFO,
209
207
  "[xds_wrr_locality_lb %p] generated child policy config: %s", this,
210
208
  JsonDump(child_config_json, /*indent=*/1).c_str());
@@ -240,7 +238,7 @@ absl::Status XdsWrrLocalityLb::UpdateLocked(UpdateArgs args) {
240
238
  update_args.resolution_note = std::move(args.resolution_note);
241
239
  update_args.args = std::move(args.args);
242
240
  // Update the policy.
243
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_wrr_locality_lb_trace)) {
241
+ if (GRPC_TRACE_FLAG_ENABLED(xds_wrr_locality_lb)) {
244
242
  gpr_log(GPR_INFO, "[xds_wrr_locality_lb %p] updating child policy %p", this,
245
243
  child_policy_.get());
246
244
  }
@@ -257,7 +255,7 @@ OrphanablePtr<LoadBalancingPolicy> XdsWrrLocalityLb::CreateChildPolicyLocked(
257
255
  auto lb_policy =
258
256
  CoreConfiguration::Get().lb_policy_registry().CreateLoadBalancingPolicy(
259
257
  "weighted_target_experimental", std::move(lb_policy_args));
260
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_wrr_locality_lb_trace)) {
258
+ if (GRPC_TRACE_FLAG_ENABLED(xds_wrr_locality_lb)) {
261
259
  gpr_log(GPR_INFO, "[xds_wrr_locality_lb %p] created new child policy %p",
262
260
  this, lb_policy.get());
263
261
  }
@@ -67,6 +67,8 @@ extern void RegisterWeightedRoundRobinLbPolicy(
67
67
  CoreConfiguration::Builder* builder);
68
68
  extern void RegisterHttpProxyMapper(CoreConfiguration::Builder* builder);
69
69
  extern void RegisterConnectedChannel(CoreConfiguration::Builder* builder);
70
+ extern void RegisterLoadBalancedCallDestination(
71
+ CoreConfiguration::Builder* builder);
70
72
  #ifndef GRPC_NO_RLS
71
73
  extern void RegisterRlsLbPolicy(CoreConfiguration::Builder* builder);
72
74
  #endif // !GRPC_NO_RLS
@@ -79,10 +81,11 @@ namespace {
79
81
  void RegisterBuiltins(CoreConfiguration::Builder* builder) {
80
82
  RegisterServerCallTracerFilter(builder);
81
83
  builder->channel_init()
82
- ->RegisterFilter<LameClientFilter>(GRPC_CLIENT_LAME_CHANNEL)
84
+ ->RegisterV2Filter<LameClientFilter>(GRPC_CLIENT_LAME_CHANNEL)
83
85
  .Terminal();
84
86
  builder->channel_init()
85
87
  ->RegisterFilter(GRPC_SERVER_CHANNEL, &Server::kServerTopFilter)
88
+ .SkipV3()
86
89
  .BeforeAll();
87
90
  }
88
91
 
@@ -118,6 +121,7 @@ void BuildCoreConfiguration(CoreConfiguration::Builder* builder) {
118
121
  RegisterSockaddrResolver(builder);
119
122
  RegisterFakeResolver(builder);
120
123
  RegisterHttpProxyMapper(builder);
124
+ RegisterLoadBalancedCallDestination(builder);
121
125
  #ifdef GPR_SUPPORT_BINDER_TRANSPORT
122
126
  RegisterBinderResolver(builder);
123
127
  #endif
@@ -37,6 +37,7 @@
37
37
  #include <memory>
38
38
  #include <utility>
39
39
 
40
+ #include "absl/log/log.h"
40
41
  #include "absl/status/statusor.h"
41
42
  #include "absl/strings/str_cat.h"
42
43
  #include "absl/strings/string_view.h"
@@ -126,12 +127,12 @@ class BinderResolverFactory final : public ResolverFactory {
126
127
  grpc_resolved_address addr;
127
128
  {
128
129
  if (!uri.authority().empty()) {
129
- gpr_log(GPR_ERROR, "authority is not supported in binder scheme");
130
+ LOG(ERROR) << "authority is not supported in binder scheme";
130
131
  return false;
131
132
  }
132
133
  grpc_error_handle error = BinderAddrPopulate(uri.path(), &addr);
133
134
  if (!error.ok()) {
134
- gpr_log(GPR_ERROR, "%s", StatusToString(error).c_str());
135
+ LOG(ERROR) << StatusToString(error);
135
136
  return false;
136
137
  }
137
138
  }
@@ -24,6 +24,7 @@
24
24
  #include <vector>
25
25
 
26
26
  #include "absl/base/thread_annotations.h"
27
+ #include "absl/log/log.h"
27
28
  #include "absl/status/status.h"
28
29
  #include "absl/status/statusor.h"
29
30
  #include "absl/strings/match.h"
@@ -204,7 +205,7 @@ AresClientChannelDNSResolver::AresClientChannelDNSResolver(
204
205
  .set_jitter(GRPC_DNS_RECONNECT_JITTER)
205
206
  .set_max_backoff(Duration::Milliseconds(
206
207
  GRPC_DNS_RECONNECT_MAX_BACKOFF_SECONDS * 1000)),
207
- &grpc_trace_cares_resolver),
208
+ &cares_resolver_trace),
208
209
  request_service_config_(
209
210
  !channel_args()
210
211
  .GetBool(GRPC_ARG_SERVICE_CONFIG_DISABLE_RESOLUTION)
@@ -348,7 +349,7 @@ class AresClientChannelDNSResolverFactory final : public ResolverFactory {
348
349
 
349
350
  bool IsValidUri(const URI& uri) const override {
350
351
  if (absl::StripPrefix(uri.path(), "/").empty()) {
351
- gpr_log(GPR_ERROR, "no server name supplied in dns URI");
352
+ LOG(ERROR) << "no server name supplied in dns URI";
352
353
  return false;
353
354
  }
354
355
  return true;
@@ -39,7 +39,6 @@
39
39
  #include <grpc/support/time.h>
40
40
 
41
41
  #include "src/core/lib/address_utils/sockaddr_utils.h"
42
- #include "src/core/lib/gpr/string.h"
43
42
  #include "src/core/lib/gprpp/crash.h"
44
43
  #include "src/core/lib/gprpp/memory.h"
45
44
  #include "src/core/lib/iomgr/iocp_windows.h"
@@ -50,6 +49,7 @@
50
49
  #include "src/core/lib/slice/slice_internal.h"
51
50
  #include "src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h"
52
51
  #include "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h"
52
+ #include "src/core/util/string.h"
53
53
 
54
54
  // TODO(apolcyn): remove this hack after fixing upstream.
55
55
  // Our grpc/c-ares code on Windows uses the ares_set_socket_functions API,
@@ -19,6 +19,7 @@
19
19
  #include <algorithm>
20
20
  #include <vector>
21
21
 
22
+ #include "absl/log/log.h"
22
23
  #include "absl/strings/string_view.h"
23
24
 
24
25
  #include <grpc/impl/channel_arg_names.h>
@@ -60,7 +61,6 @@
60
61
  #include "src/core/lib/address_utils/parse_address.h"
61
62
  #include "src/core/lib/address_utils/sockaddr_utils.h"
62
63
  #include "src/core/lib/channel/channel_args.h"
63
- #include "src/core/lib/gpr/string.h"
64
64
  #include "src/core/lib/gprpp/debug_location.h"
65
65
  #include "src/core/lib/gprpp/host_port.h"
66
66
  #include "src/core/lib/gprpp/time.h"
@@ -71,15 +71,11 @@
71
71
  #include "src/core/lib/iomgr/timer.h"
72
72
  #include "src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h"
73
73
  #include "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h"
74
+ #include "src/core/util/string.h"
74
75
 
75
76
  using grpc_core::EndpointAddresses;
76
77
  using grpc_core::EndpointAddressesList;
77
78
 
78
- grpc_core::TraceFlag grpc_trace_cares_address_sorting(false,
79
- "cares_address_sorting");
80
-
81
- grpc_core::TraceFlag grpc_trace_cares_resolver(false, "cares_resolver");
82
-
83
79
  typedef struct fd_node {
84
80
  // default constructor exists only for linked list manipulation
85
81
  fd_node() : ev_driver(nullptr) {}
@@ -571,7 +567,7 @@ static void log_address_sorting_list(const grpc_ares_request* r,
571
567
 
572
568
  void grpc_cares_wrapper_address_sorting_sort(const grpc_ares_request* r,
573
569
  EndpointAddressesList* addresses) {
574
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_cares_address_sorting)) {
570
+ if (GRPC_TRACE_FLAG_ENABLED(cares_address_sorting)) {
575
571
  log_address_sorting_list(r, *addresses, "input");
576
572
  }
577
573
  address_sorting_sortable* sortables = static_cast<address_sorting_sortable*>(
@@ -591,7 +587,7 @@ void grpc_cares_wrapper_address_sorting_sort(const grpc_ares_request* r,
591
587
  }
592
588
  gpr_free(sortables);
593
589
  *addresses = std::move(sorted);
594
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_cares_address_sorting)) {
590
+ if (GRPC_TRACE_FLAG_ENABLED(cares_address_sorting)) {
595
591
  log_address_sorting_list(r, *addresses, "output");
596
592
  }
597
593
  }
@@ -883,14 +879,11 @@ grpc_error_handle grpc_dns_lookup_ares_continued(
883
879
  grpc_core::SplitHostPort(name, host, port);
884
880
  if (host->empty()) {
885
881
  error =
886
- grpc_error_set_str(GRPC_ERROR_CREATE("unparseable host:port"),
887
- grpc_core::StatusStrProperty::kTargetAddress, name);
882
+ GRPC_ERROR_CREATE(absl::StrCat("unparseable host:port \"", name, "\""));
888
883
  return error;
889
884
  } else if (check_port && port->empty()) {
890
885
  if (default_port == nullptr || strlen(default_port) == 0) {
891
- error = grpc_error_set_str(GRPC_ERROR_CREATE("no port in name"),
892
- grpc_core::StatusStrProperty::kTargetAddress,
893
- name);
886
+ error = GRPC_ERROR_CREATE(absl::StrCat("no port in name \"", name, "\""));
894
887
  return error;
895
888
  }
896
889
  *port = default_port;
@@ -952,7 +945,7 @@ static bool resolve_as_ip_literal_locked(
952
945
  static bool target_matches_localhost_inner(const char* name, std::string* host,
953
946
  std::string* port) {
954
947
  if (!grpc_core::SplitHostPort(name, host, port)) {
955
- gpr_log(GPR_ERROR, "Unable to split host and port for name: %s", name);
948
+ LOG(ERROR) << "Unable to split host and port for name: " << name;
956
949
  return false;
957
950
  }
958
951
  return gpr_stricmp(host->c_str(), "localhost") == 0;
@@ -39,13 +39,9 @@
39
39
 
40
40
  #define GRPC_DNS_ARES_DEFAULT_QUERY_TIMEOUT_MS 120000
41
41
 
42
- extern grpc_core::TraceFlag grpc_trace_cares_address_sorting;
43
-
44
- extern grpc_core::TraceFlag grpc_trace_cares_resolver;
45
-
46
42
  #define GRPC_CARES_TRACE_LOG(format, ...) \
47
43
  do { \
48
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_cares_resolver)) { \
44
+ if (GRPC_TRACE_FLAG_ENABLED(cares_resolver)) { \
49
45
  gpr_log(GPR_DEBUG, "(c-ares resolver) " format, __VA_ARGS__); \
50
46
  } \
51
47
  } while (0)
@@ -25,10 +25,10 @@
25
25
  #include <grpc/support/string_util.h>
26
26
 
27
27
  #include "src/core/lib/address_utils/parse_address.h"
28
- #include "src/core/lib/gpr/string.h"
29
28
  #include "src/core/lib/iomgr/socket_windows.h"
30
29
  #include "src/core/resolver/dns/c_ares/grpc_ares_wrapper.h"
31
30
  #include "src/core/resolver/endpoint_addresses.h"
31
+ #include "src/core/util/string.h"
32
32
 
33
33
  bool grpc_ares_query_ipv6() { return grpc_ipv6_loopback_available(); }
34
34
 
@@ -15,6 +15,7 @@
15
15
 
16
16
  #include <memory>
17
17
 
18
+ #include "absl/log/log.h"
18
19
  #include "absl/strings/match.h"
19
20
 
20
21
  #include <grpc/support/log.h>
@@ -31,15 +32,15 @@
31
32
  namespace grpc_core {
32
33
 
33
34
  void RegisterDnsResolver(CoreConfiguration::Builder* builder) {
34
- #ifdef GRPC_IOS_EVENT_ENGINE_CLIENT
35
- gpr_log(GPR_DEBUG, "Using EventEngine dns resolver");
35
+ #if GRPC_IOS_EVENT_ENGINE_CLIENT
36
+ VLOG(2) << "Using EventEngine dns resolver";
36
37
  builder->resolver_registry()->RegisterResolverFactory(
37
38
  std::make_unique<EventEngineClientChannelDNSResolverFactory>());
38
39
  return;
39
40
  #endif
40
41
  #ifndef GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER
41
42
  if (IsEventEngineDnsEnabled()) {
42
- gpr_log(GPR_DEBUG, "Using EventEngine dns resolver");
43
+ VLOG(2) << "Using EventEngine dns resolver";
43
44
  builder->resolver_registry()->RegisterResolverFactory(
44
45
  std::make_unique<EventEngineClientChannelDNSResolverFactory>());
45
46
  return;
@@ -48,14 +49,14 @@ void RegisterDnsResolver(CoreConfiguration::Builder* builder) {
48
49
  auto resolver = ConfigVars::Get().DnsResolver();
49
50
  // ---- Ares resolver ----
50
51
  if (ShouldUseAresDnsResolver(resolver)) {
51
- gpr_log(GPR_DEBUG, "Using ares dns resolver");
52
+ VLOG(2) << "Using ares dns resolver";
52
53
  RegisterAresDnsResolver(builder);
53
54
  return;
54
55
  }
55
56
  // ---- Native resolver ----
56
57
  if (absl::EqualsIgnoreCase(resolver, "native") ||
57
58
  !builder->resolver_registry()->HasResolverFactory("dns")) {
58
- gpr_log(GPR_DEBUG, "Using native dns resolver");
59
+ VLOG(2) << "Using native dns resolver";
59
60
  RegisterNativeDnsResolver(builder);
60
61
  return;
61
62
  }