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
@@ -39,7 +39,6 @@
39
39
  #include <grpc/support/port_platform.h>
40
40
  #include <grpc/support/time.h>
41
41
 
42
- #include "src/core/lib/channel/context.h"
43
42
  #include "src/core/lib/debug/trace.h"
44
43
  #include "src/core/lib/gprpp/orphanable.h"
45
44
  #include "src/core/lib/gprpp/ref_counted.h"
@@ -55,6 +54,7 @@
55
54
  #include "src/core/lib/promise/pipe.h"
56
55
  #include "src/core/lib/resource_quota/arena.h"
57
56
  #include "src/core/lib/slice/slice_buffer.h"
57
+ #include "src/core/lib/transport/call_destination.h"
58
58
  #include "src/core/lib/transport/call_final_info.h"
59
59
  #include "src/core/lib/transport/call_spine.h"
60
60
  #include "src/core/lib/transport/connectivity_state.h"
@@ -163,8 +163,6 @@ using NextPromiseFactory =
163
163
  // for a stream.
164
164
  typedef struct grpc_stream grpc_stream;
165
165
 
166
- extern grpc_core::DebugOnlyTraceFlag grpc_trace_stream_refcount;
167
-
168
166
  typedef struct grpc_stream_refcount {
169
167
  grpc_core::RefCount refs;
170
168
  grpc_closure destroy;
@@ -192,7 +190,7 @@ void grpc_stream_ref_init(grpc_stream_refcount* refcount, int initial_refs,
192
190
  #ifndef NDEBUG
193
191
  inline void grpc_stream_ref(grpc_stream_refcount* refcount,
194
192
  const char* reason) {
195
- if (grpc_trace_stream_refcount.enabled()) {
193
+ if (GRPC_TRACE_FLAG_ENABLED(stream_refcount)) {
196
194
  gpr_log(GPR_DEBUG, "%s %p:%p REF %s", refcount->object_type, refcount,
197
195
  refcount->destroy.cb_arg, reason);
198
196
  }
@@ -209,7 +207,7 @@ void grpc_stream_destroy(grpc_stream_refcount* refcount);
209
207
  #ifndef NDEBUG
210
208
  inline void grpc_stream_unref(grpc_stream_refcount* refcount,
211
209
  const char* reason) {
212
- if (grpc_trace_stream_refcount.enabled()) {
210
+ if (GRPC_TRACE_FLAG_ENABLED(stream_refcount)) {
213
211
  gpr_log(GPR_DEBUG, "%s %p:%p UNREF %s", refcount->object_type, refcount,
214
212
  refcount->destroy.cb_arg, reason);
215
213
  }
@@ -318,9 +316,6 @@ struct grpc_transport_stream_op_batch {
318
316
  };
319
317
 
320
318
  struct grpc_transport_stream_op_batch_payload {
321
- explicit grpc_transport_stream_op_batch_payload(
322
- grpc_call_context_element* context)
323
- : context(context) {}
324
319
  struct {
325
320
  grpc_metadata_batch* send_initial_metadata = nullptr;
326
321
  } send_initial_metadata;
@@ -410,9 +405,6 @@ struct grpc_transport_stream_op_batch_payload {
410
405
  // initial metadata.
411
406
  bool tarpit = false;
412
407
  } cancel_stream;
413
-
414
- // Indexes correspond to grpc_context_index enum values
415
- grpc_call_context_element* context;
416
408
  };
417
409
 
418
410
  /// Transport op: a set of operations to perform on a transport as a whole
@@ -481,6 +473,15 @@ typedef struct grpc_transport_op {
481
473
  grpc_handler_private_op_data handler_private;
482
474
  } grpc_transport_op;
483
475
 
476
+ // Allocate a grpc_transport_op, and preconfigure the on_complete closure to
477
+ // \a on_complete and then delete the returned transport op
478
+ grpc_transport_op* grpc_make_transport_op(grpc_closure* on_complete);
479
+ // Allocate a grpc_transport_stream_op_batch, and preconfigure the on_complete
480
+ // closure
481
+ // to \a on_complete and then delete the returned transport op
482
+ grpc_transport_stream_op_batch* grpc_make_transport_stream_op(
483
+ grpc_closure* on_complete);
484
+
484
485
  void grpc_transport_stream_op_batch_finish_with_failure(
485
486
  grpc_transport_stream_op_batch* batch, grpc_error_handle error,
486
487
  grpc_core::CallCombiner* call_combiner);
@@ -502,11 +503,26 @@ class FilterStackTransport;
502
503
  class ClientTransport;
503
504
  class ServerTransport;
504
505
 
505
- class Transport : public Orphanable {
506
+ class Transport : public InternallyRefCounted<Transport> {
506
507
  public:
507
508
  struct RawPointerChannelArgTag {};
508
509
  static absl::string_view ChannelArgName() { return GRPC_ARG_TRANSPORT; }
509
510
 
511
+ // Though internally ref counted transports expose their "Ref" method to
512
+ // create a RefCountedPtr to themselves. The OrphanablePtr owner is the
513
+ // singleton decision maker on whether the transport should be destroyed or
514
+ // not.
515
+ // TODO(ctiller): consider moving to a DualRefCounted model (with the
516
+ // disadvantage that we would accidentally have many strong owners which is
517
+ // unnecessary for this type).
518
+ RefCountedPtr<Transport> Ref() {
519
+ return InternallyRefCounted<Transport>::Ref();
520
+ }
521
+ template <typename T>
522
+ RefCountedPtr<T> RefAsSubclass() {
523
+ return InternallyRefCounted<Transport>::RefAsSubclass<T>();
524
+ }
525
+
510
526
  virtual FilterStackTransport* filter_stack_transport() = 0;
511
527
  virtual ClientTransport* client_transport() = 0;
512
528
  virtual ServerTransport* server_transport() = 0;
@@ -527,8 +543,19 @@ class Transport : public Orphanable {
527
543
  // implementation of grpc_transport_perform_op
528
544
  virtual void PerformOp(grpc_transport_op* op) = 0;
529
545
 
530
- // implementation of grpc_transport_get_endpoint
531
- virtual grpc_endpoint* GetEndpoint() = 0;
546
+ void StartConnectivityWatch(
547
+ OrphanablePtr<ConnectivityStateWatcherInterface> watcher) {
548
+ grpc_transport_op* op = grpc_make_transport_op(nullptr);
549
+ op->start_connectivity_watch = std::move(watcher);
550
+ PerformOp(op);
551
+ }
552
+
553
+ void DisconnectWithError(grpc_error_handle error) {
554
+ CHECK(!error.ok()) << error;
555
+ grpc_transport_op* op = grpc_make_transport_op(nullptr);
556
+ op->disconnect_with_error = error;
557
+ PerformOp(op);
558
+ }
532
559
  };
533
560
 
534
561
  class FilterStackTransport : public Transport {
@@ -582,24 +609,9 @@ class ClientTransport : public Transport {
582
609
 
583
610
  class ServerTransport : public Transport {
584
611
  public:
585
- // Acceptor helps transports create calls.
586
- class Acceptor {
587
- public:
588
- // Returns an arena that can be used to allocate memory for initial metadata
589
- // parsing, and later passed to CreateCall() as the underlying arena for
590
- // that call.
591
- virtual Arena* CreateArena() = 0;
592
- // Create a call at the server (or fail)
593
- // arena must have been previously allocated by CreateArena()
594
- virtual absl::StatusOr<CallInitiator> CreateCall(
595
- ClientMetadataHandle client_initial_metadata, Arena* arena) = 0;
596
-
597
- protected:
598
- ~Acceptor() = default;
599
- };
600
-
601
612
  // Called once slightly after transport setup to register the accept function.
602
- virtual void SetAcceptor(Acceptor* acceptor) = 0;
613
+ virtual void SetCallDestination(
614
+ RefCountedPtr<UnstartedCallDestination> unstarted_call_handler) = 0;
603
615
 
604
616
  protected:
605
617
  ~ServerTransport() override = default;
@@ -607,15 +619,6 @@ class ServerTransport : public Transport {
607
619
 
608
620
  } // namespace grpc_core
609
621
 
610
- // Allocate a grpc_transport_op, and preconfigure the on_complete closure to
611
- // \a on_complete and then delete the returned transport op
612
- grpc_transport_op* grpc_make_transport_op(grpc_closure* on_complete);
613
- // Allocate a grpc_transport_stream_op_batch, and preconfigure the on_complete
614
- // closure
615
- // to \a on_complete and then delete the returned transport op
616
- grpc_transport_stream_op_batch* grpc_make_transport_stream_op(
617
- grpc_closure* on_complete);
618
-
619
622
  namespace grpc_core {
620
623
  // This is the key to be used for loading/storing keepalive_throttling in the
621
624
  // absl::Status object.
@@ -67,7 +67,7 @@ class ChildPolicyHandler::Helper final
67
67
  // it reports something other than CONNECTING, at which point we swap it
68
68
  // into place.
69
69
  if (CalledByPendingChild()) {
70
- if (GRPC_TRACE_FLAG_ENABLED(*(parent()->tracer_))) {
70
+ if (GRPC_TRACE_FLAG_ENABLED_OBJ(*(parent()->tracer_))) {
71
71
  gpr_log(GPR_INFO,
72
72
  "[child_policy_handler %p] helper %p: pending child policy %p "
73
73
  "reports state=%s (%s)",
@@ -97,7 +97,7 @@ class ChildPolicyHandler::Helper final
97
97
  ? parent()->pending_child_policy_.get()
98
98
  : parent()->child_policy_.get();
99
99
  if (child_ != latest_child_policy) return;
100
- if (GRPC_TRACE_FLAG_ENABLED(*(parent()->tracer_))) {
100
+ if (GRPC_TRACE_FLAG_ENABLED_OBJ(*(parent()->tracer_))) {
101
101
  gpr_log(GPR_INFO, "[child_policy_handler %p] requesting re-resolution",
102
102
  parent());
103
103
  }
@@ -132,12 +132,12 @@ class ChildPolicyHandler::Helper final
132
132
  //
133
133
 
134
134
  void ChildPolicyHandler::ShutdownLocked() {
135
- if (GRPC_TRACE_FLAG_ENABLED(*tracer_)) {
135
+ if (GRPC_TRACE_FLAG_ENABLED_OBJ(*tracer_)) {
136
136
  gpr_log(GPR_INFO, "[child_policy_handler %p] shutting down", this);
137
137
  }
138
138
  shutting_down_ = true;
139
139
  if (child_policy_ != nullptr) {
140
- if (GRPC_TRACE_FLAG_ENABLED(*tracer_)) {
140
+ if (GRPC_TRACE_FLAG_ENABLED_OBJ(*tracer_)) {
141
141
  gpr_log(GPR_INFO, "[child_policy_handler %p] shutting down lb_policy %p",
142
142
  this, child_policy_.get());
143
143
  }
@@ -146,7 +146,7 @@ void ChildPolicyHandler::ShutdownLocked() {
146
146
  child_policy_.reset();
147
147
  }
148
148
  if (pending_child_policy_ != nullptr) {
149
- if (GRPC_TRACE_FLAG_ENABLED(*tracer_)) {
149
+ if (GRPC_TRACE_FLAG_ENABLED_OBJ(*tracer_)) {
150
150
  gpr_log(GPR_INFO,
151
151
  "[child_policy_handler %p] shutting down pending lb_policy %p",
152
152
  this, pending_child_policy_.get());
@@ -223,7 +223,7 @@ absl::Status ChildPolicyHandler::UpdateLocked(UpdateArgs args) {
223
223
  // that there's an upper bound on the amount of time it takes us to
224
224
  // switch to the new policy, even if the new policy stays in
225
225
  // CONNECTING for a very long period of time.
226
- if (GRPC_TRACE_FLAG_ENABLED(*tracer_)) {
226
+ if (GRPC_TRACE_FLAG_ENABLED_OBJ(*tracer_)) {
227
227
  gpr_log(GPR_INFO,
228
228
  "[child_policy_handler %p] creating new %schild policy %s", this,
229
229
  child_policy_ == nullptr ? "" : "pending ",
@@ -243,7 +243,7 @@ absl::Status ChildPolicyHandler::UpdateLocked(UpdateArgs args) {
243
243
  }
244
244
  CHECK_NE(policy_to_update, nullptr);
245
245
  // Update the policy.
246
- if (GRPC_TRACE_FLAG_ENABLED(*tracer_)) {
246
+ if (GRPC_TRACE_FLAG_ENABLED_OBJ(*tracer_)) {
247
247
  gpr_log(GPR_INFO, "[child_policy_handler %p] updating %schild policy %p",
248
248
  this,
249
249
  policy_to_update == pending_child_policy_.get() ? "pending " : "",
@@ -287,7 +287,7 @@ OrphanablePtr<LoadBalancingPolicy> ChildPolicyHandler::CreateChildPolicy(
287
287
  return nullptr;
288
288
  }
289
289
  helper->set_child(lb_policy.get());
290
- if (GRPC_TRACE_FLAG_ENABLED(*tracer_)) {
290
+ if (GRPC_TRACE_FLAG_ENABLED_OBJ(*tracer_)) {
291
291
  gpr_log(GPR_INFO,
292
292
  "[child_policy_handler %p] created new LB policy \"%s\" (%p)", this,
293
293
  std::string(child_policy_name).c_str(), lb_policy.get());
@@ -23,13 +23,13 @@
23
23
  #include <vector>
24
24
 
25
25
  #include "absl/log/check.h"
26
+ #include "absl/log/log.h"
26
27
  #include "absl/status/status.h"
27
28
  #include "absl/status/statusor.h"
28
29
  #include "absl/types/optional.h"
29
30
 
30
31
  #include <grpc/impl/connectivity_state.h>
31
32
  #include <grpc/support/json.h>
32
- #include <grpc/support/log.h>
33
33
  #include <grpc/support/port_platform.h>
34
34
 
35
35
  #include "src/core/lib/channel/channel_args.h"
@@ -38,12 +38,12 @@
38
38
  #include "src/core/lib/gprpp/orphanable.h"
39
39
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
40
40
  #include "src/core/lib/iomgr/pollset_set.h"
41
- #include "src/core/lib/json/json.h"
42
41
  #include "src/core/load_balancing/delegating_helper.h"
43
42
  #include "src/core/load_balancing/lb_policy.h"
44
43
  #include "src/core/load_balancing/lb_policy_registry.h"
45
44
  #include "src/core/load_balancing/pick_first/pick_first.h"
46
45
  #include "src/core/resolver/endpoint_addresses.h"
46
+ #include "src/core/util/json/json.h"
47
47
 
48
48
  namespace grpc_core {
49
49
 
@@ -103,9 +103,9 @@ absl::Status EndpointList::Endpoint::Init(
103
103
  CoreConfiguration::Get().lb_policy_registry().CreateLoadBalancingPolicy(
104
104
  "pick_first", std::move(lb_policy_args));
105
105
  if (GPR_UNLIKELY(endpoint_list_->tracer_ != nullptr)) {
106
- gpr_log(GPR_INFO, "[%s %p] endpoint %p: created child policy %p",
107
- endpoint_list_->tracer_, endpoint_list_->policy_.get(), this,
108
- child_policy_.get());
106
+ LOG(INFO) << "[" << endpoint_list_->tracer_ << " "
107
+ << endpoint_list_->policy_.get() << "] endpoint " << this
108
+ << ": created child policy " << child_policy_.get();
109
109
  }
110
110
  // Add our interested_parties pollset_set to that of the newly created
111
111
  // child policy. This will make the child policy progress upon activity on
@@ -56,7 +56,7 @@ class MyEndpointList : public EndpointList {
56
56
  const ChannelArgs& args,
57
57
  std::vector<std::string>* errors)
58
58
  : EndpointList(std::move(lb_policy),
59
- GRPC_TRACE_FLAG_ENABLED(grpc_my_tracer)
59
+ GRPC_TRACE_FLAG_ENABLED(my_tracer)
60
60
  ? "MyEndpointList"
61
61
  : nullptr) {
62
62
  Init(endpoints, args,
@@ -41,6 +41,7 @@ namespace grpc_core {
41
41
 
42
42
  const NoInterceptor ClientLoadReportingFilter::Call::OnServerToClientMessage;
43
43
  const NoInterceptor ClientLoadReportingFilter::Call::OnClientToServerMessage;
44
+ const NoInterceptor ClientLoadReportingFilter::Call::OnClientToServerHalfClose;
44
45
  const NoInterceptor ClientLoadReportingFilter::Call::OnFinalize;
45
46
 
46
47
  const grpc_channel_filter ClientLoadReportingFilter::kFilter =
@@ -43,6 +43,7 @@ class ClientLoadReportingFilter final
43
43
  void OnServerTrailingMetadata(ServerMetadata& server_trailing_metadata);
44
44
  static const NoInterceptor OnServerToClientMessage;
45
45
  static const NoInterceptor OnClientToServerMessage;
46
+ static const NoInterceptor OnClientToServerHalfClose;
46
47
  static const NoInterceptor OnFinalize;
47
48
 
48
49
  private:
@@ -101,8 +101,6 @@
101
101
  #include "src/core/lib/config/core_configuration.h"
102
102
  #include "src/core/lib/debug/trace.h"
103
103
  #include "src/core/lib/experiments/experiments.h"
104
- #include "src/core/lib/gpr/string.h"
105
- #include "src/core/lib/gpr/useful.h"
106
104
  #include "src/core/lib/gprpp/crash.h"
107
105
  #include "src/core/lib/gprpp/debug_location.h"
108
106
  #include "src/core/lib/gprpp/orphanable.h"
@@ -119,9 +117,6 @@
119
117
  #include "src/core/lib/iomgr/resolved_address.h"
120
118
  #include "src/core/lib/iomgr/sockaddr.h"
121
119
  #include "src/core/lib/iomgr/socket_utils.h"
122
- #include "src/core/lib/json/json.h"
123
- #include "src/core/lib/json/json_args.h"
124
- #include "src/core/lib/json/json_object_loader.h"
125
120
  #include "src/core/lib/security/credentials/credentials.h"
126
121
  #include "src/core/lib/slice/slice.h"
127
122
  #include "src/core/lib/slice/slice_string_helpers.h"
@@ -143,6 +138,11 @@
143
138
  #include "src/core/resolver/endpoint_addresses.h"
144
139
  #include "src/core/resolver/fake/fake_resolver.h"
145
140
  #include "src/core/resolver/resolver.h"
141
+ #include "src/core/util/json/json.h"
142
+ #include "src/core/util/json/json_args.h"
143
+ #include "src/core/util/json/json_object_loader.h"
144
+ #include "src/core/util/string.h"
145
+ #include "src/core/util/useful.h"
146
146
 
147
147
  #define GRPC_GRPCLB_INITIAL_CONNECT_BACKOFF_SECONDS 1
148
148
  #define GRPC_GRPCLB_RECONNECT_BACKOFF_MULTIPLIER 1.6
@@ -157,8 +157,6 @@
157
157
 
158
158
  namespace grpc_core {
159
159
 
160
- TraceFlag grpc_lb_glb_trace(false, "glb");
161
-
162
160
  namespace {
163
161
 
164
162
  using ::grpc_event_engine::experimental::EventEngine;
@@ -550,7 +548,7 @@ class GrpcLb final : public LoadBalancingPolicy {
550
548
  bool shutting_down_ = false;
551
549
 
552
550
  // The channel for communicating with the LB server.
553
- OrphanablePtr<Channel> lb_channel_;
551
+ RefCountedPtr<Channel> lb_channel_;
554
552
  StateWatcher* watcher_ = nullptr;
555
553
  // Response generator to inject address updates into lb_channel_.
556
554
  RefCountedPtr<FakeResolverResponseGenerator> response_generator_;
@@ -853,7 +851,7 @@ void GrpcLb::Helper::UpdateState(grpc_connectivity_state state,
853
851
  parent()->lb_calld_->client_stats() != nullptr) {
854
852
  client_stats = parent()->lb_calld_->client_stats()->Ref();
855
853
  }
856
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
854
+ if (GRPC_TRACE_FLAG_ENABLED(glb)) {
857
855
  gpr_log(GPR_INFO,
858
856
  "[grpclb %p helper %p] state=%s (%s) wrapping child "
859
857
  "picker %p (serverlist=%p, client_stats=%p)",
@@ -882,8 +880,7 @@ void GrpcLb::Helper::RequestReresolution() {
882
880
  GrpcLb::BalancerCallState::BalancerCallState(
883
881
  RefCountedPtr<LoadBalancingPolicy> parent_grpclb_policy)
884
882
  : InternallyRefCounted<BalancerCallState>(
885
- GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace) ? "BalancerCallState"
886
- : nullptr),
883
+ GRPC_TRACE_FLAG_ENABLED(glb) ? "BalancerCallState" : nullptr),
887
884
  grpclb_policy_(std::move(parent_grpclb_policy)) {
888
885
  CHECK(grpclb_policy_ != nullptr);
889
886
  CHECK(!grpclb_policy()->shutting_down_);
@@ -951,7 +948,7 @@ void GrpcLb::BalancerCallState::Orphan() {
951
948
 
952
949
  void GrpcLb::BalancerCallState::StartQuery() {
953
950
  CHECK_NE(lb_call_, nullptr);
954
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
951
+ if (GRPC_TRACE_FLAG_ENABLED(glb)) {
955
952
  gpr_log(GPR_INFO, "[grpclb %p] lb_calld=%p: Starting LB call %p",
956
953
  grpclb_policy_.get(), this, lb_call_);
957
954
  }
@@ -1180,7 +1177,7 @@ void GrpcLb::BalancerCallState::OnBalancerMessageReceivedLocked() {
1180
1177
  if (response.client_stats_report_interval != Duration::Zero()) {
1181
1178
  client_stats_report_interval_ = std::max(
1182
1179
  Duration::Seconds(1), response.client_stats_report_interval);
1183
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
1180
+ if (GRPC_TRACE_FLAG_ENABLED(glb)) {
1184
1181
  gpr_log(GPR_INFO,
1185
1182
  "[grpclb %p] lb_calld=%p: Received initial LB response "
1186
1183
  "message; client load reporting interval = %" PRId64
@@ -1188,7 +1185,7 @@ void GrpcLb::BalancerCallState::OnBalancerMessageReceivedLocked() {
1188
1185
  grpclb_policy(), this,
1189
1186
  client_stats_report_interval_.millis());
1190
1187
  }
1191
- } else if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
1188
+ } else if (GRPC_TRACE_FLAG_ENABLED(glb)) {
1192
1189
  gpr_log(GPR_INFO,
1193
1190
  "[grpclb %p] lb_calld=%p: Received initial LB response "
1194
1191
  "message; client load reporting NOT enabled",
@@ -1201,7 +1198,7 @@ void GrpcLb::BalancerCallState::OnBalancerMessageReceivedLocked() {
1201
1198
  CHECK_NE(lb_call_, nullptr);
1202
1199
  auto serverlist_wrapper =
1203
1200
  MakeRefCounted<Serverlist>(std::move(response.serverlist));
1204
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
1201
+ if (GRPC_TRACE_FLAG_ENABLED(glb)) {
1205
1202
  gpr_log(GPR_INFO,
1206
1203
  "[grpclb %p] lb_calld=%p: Serverlist with %" PRIuPTR
1207
1204
  " servers received:\n%s",
@@ -1222,7 +1219,7 @@ void GrpcLb::BalancerCallState::OnBalancerMessageReceivedLocked() {
1222
1219
  // Check if the serverlist differs from the previous one.
1223
1220
  if (grpclb_policy()->serverlist_ != nullptr &&
1224
1221
  *grpclb_policy()->serverlist_ == *serverlist_wrapper) {
1225
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
1222
+ if (GRPC_TRACE_FLAG_ENABLED(glb)) {
1226
1223
  gpr_log(GPR_INFO,
1227
1224
  "[grpclb %p] lb_calld=%p: Incoming server list identical "
1228
1225
  "to current, ignoring.",
@@ -1320,7 +1317,7 @@ void GrpcLb::BalancerCallState::OnBalancerStatusReceived(
1320
1317
  void GrpcLb::BalancerCallState::OnBalancerStatusReceivedLocked(
1321
1318
  grpc_error_handle error) {
1322
1319
  CHECK_NE(lb_call_, nullptr);
1323
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
1320
+ if (GRPC_TRACE_FLAG_ENABLED(glb)) {
1324
1321
  char* status_details = grpc_slice_to_c_string(lb_call_status_details_);
1325
1322
  gpr_log(GPR_INFO,
1326
1323
  "[grpclb %p] lb_calld=%p: Status from LB server received. "
@@ -1470,7 +1467,7 @@ GrpcLb::GrpcLb(Args args)
1470
1467
  GRPC_ARG_GRPCLB_SUBCHANNEL_CACHE_INTERVAL_MS)
1471
1468
  .value_or(Duration::Milliseconds(
1472
1469
  GRPC_GRPCLB_DEFAULT_SUBCHANNEL_DELETION_DELAY_MS)))) {
1473
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
1470
+ if (GRPC_TRACE_FLAG_ENABLED(glb)) {
1474
1471
  gpr_log(GPR_INFO,
1475
1472
  "[grpclb %p] Will use '%s' as the server name for LB request.",
1476
1473
  this,
@@ -1540,7 +1537,7 @@ class GrpcLb::NullLbTokenEndpointIterator final
1540
1537
  void ForEach(absl::FunctionRef<void(const EndpointAddresses&)> callback)
1541
1538
  const override {
1542
1539
  parent_it_->ForEach([&](const EndpointAddresses& endpoint) {
1543
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
1540
+ if (GRPC_TRACE_FLAG_ENABLED(glb)) {
1544
1541
  gpr_log(GPR_INFO, "[grpclb %p] fallback address: %s", this,
1545
1542
  endpoint.ToString().c_str());
1546
1543
  }
@@ -1556,7 +1553,7 @@ class GrpcLb::NullLbTokenEndpointIterator final
1556
1553
  };
1557
1554
 
1558
1555
  absl::Status GrpcLb::UpdateLocked(UpdateArgs args) {
1559
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
1556
+ if (GRPC_TRACE_FLAG_ENABLED(glb)) {
1560
1557
  gpr_log(GPR_INFO, "[grpclb %p] received update", this);
1561
1558
  }
1562
1559
  const bool is_initial_update = lb_channel_ == nullptr;
@@ -1613,7 +1610,7 @@ absl::Status GrpcLb::UpdateLocked(UpdateArgs args) {
1613
1610
  absl::Status GrpcLb::UpdateBalancerChannelLocked() {
1614
1611
  // Get balancer addresses.
1615
1612
  EndpointAddressesList balancer_addresses = ExtractBalancerAddresses(args_);
1616
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
1613
+ if (GRPC_TRACE_FLAG_ENABLED(glb)) {
1617
1614
  for (const auto& endpoint : balancer_addresses) {
1618
1615
  gpr_log(GPR_INFO, "[grpclb %p] balancer address: %s", this,
1619
1616
  endpoint.ToString().c_str());
@@ -1670,7 +1667,7 @@ void GrpcLb::StartBalancerCallLocked() {
1670
1667
  // Init the LB call data.
1671
1668
  CHECK(lb_calld_ == nullptr);
1672
1669
  lb_calld_ = MakeOrphanable<BalancerCallState>(Ref());
1673
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
1670
+ if (GRPC_TRACE_FLAG_ENABLED(glb)) {
1674
1671
  gpr_log(GPR_INFO,
1675
1672
  "[grpclb %p] Query for backends (lb_channel: %p, lb_calld: %p)",
1676
1673
  this, lb_channel_.get(), lb_calld_.get());
@@ -1680,7 +1677,7 @@ void GrpcLb::StartBalancerCallLocked() {
1680
1677
 
1681
1678
  void GrpcLb::StartBalancerCallRetryTimerLocked() {
1682
1679
  Duration timeout = lb_call_backoff_.NextAttemptTime() - Timestamp::Now();
1683
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
1680
+ if (GRPC_TRACE_FLAG_ENABLED(glb)) {
1684
1681
  gpr_log(GPR_INFO, "[grpclb %p] Connection to LB server lost...", this);
1685
1682
  if (timeout > Duration::Zero()) {
1686
1683
  gpr_log(GPR_INFO, "[grpclb %p] ... retry_timer_active in %" PRId64 "ms.",
@@ -1709,7 +1706,7 @@ void GrpcLb::StartBalancerCallRetryTimerLocked() {
1709
1706
  void GrpcLb::OnBalancerCallRetryTimerLocked() {
1710
1707
  lb_call_retry_timer_handle_.reset();
1711
1708
  if (!shutting_down_ && lb_calld_ == nullptr) {
1712
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
1709
+ if (GRPC_TRACE_FLAG_ENABLED(glb)) {
1713
1710
  gpr_log(GPR_INFO, "[grpclb %p] Restarting call to LB server", this);
1714
1711
  }
1715
1712
  StartBalancerCallLocked();
@@ -1778,9 +1775,8 @@ OrphanablePtr<LoadBalancingPolicy> GrpcLb::CreateChildPolicyLocked(
1778
1775
  lb_policy_args.channel_control_helper =
1779
1776
  std::make_unique<Helper>(RefAsSubclass<GrpcLb>(DEBUG_LOCATION, "Helper"));
1780
1777
  OrphanablePtr<LoadBalancingPolicy> lb_policy =
1781
- MakeOrphanable<ChildPolicyHandler>(std::move(lb_policy_args),
1782
- &grpc_lb_glb_trace);
1783
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
1778
+ MakeOrphanable<ChildPolicyHandler>(std::move(lb_policy_args), &glb_trace);
1779
+ if (GRPC_TRACE_FLAG_ENABLED(glb)) {
1784
1780
  gpr_log(GPR_INFO, "[grpclb %p] Created new child policy handler (%p)", this,
1785
1781
  lb_policy.get());
1786
1782
  }
@@ -1834,7 +1830,7 @@ void GrpcLb::CreateOrUpdateChildPolicyLocked() {
1834
1830
  child_policy_ = CreateChildPolicyLocked(update_args.args);
1835
1831
  }
1836
1832
  // Update the policy.
1837
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
1833
+ if (GRPC_TRACE_FLAG_ENABLED(glb)) {
1838
1834
  gpr_log(GPR_INFO, "[grpclb %p] Updating child policy handler %p", this,
1839
1835
  child_policy_.get());
1840
1836
  }
@@ -1879,7 +1875,7 @@ void GrpcLb::OnSubchannelCacheTimerLocked() {
1879
1875
  subchannel_cache_timer_handle_.reset();
1880
1876
  auto it = cached_subchannels_.begin();
1881
1877
  if (it != cached_subchannels_.end()) {
1882
- if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
1878
+ if (GRPC_TRACE_FLAG_ENABLED(glb)) {
1883
1879
  gpr_log(GPR_INFO,
1884
1880
  "[grpclb %p] removing %" PRIuPTR " subchannels from cache",
1885
1881
  this, it->second.size());
@@ -23,7 +23,7 @@
23
23
  #include <grpc/support/port_platform.h>
24
24
 
25
25
  #include "src/core/lib/channel/channel_args.h"
26
- #include "src/core/lib/gpr/useful.h"
26
+ #include "src/core/util/useful.h"
27
27
 
28
28
  // Channel arg key for the list of balancer addresses.
29
29
  #define GRPC_ARG_GRPCLB_BALANCER_ADDRESSES \
@@ -22,11 +22,11 @@
22
22
 
23
23
  #include <algorithm>
24
24
 
25
+ #include "absl/log/log.h"
25
26
  #include "google/protobuf/duration.upb.h"
26
27
  #include "google/protobuf/timestamp.upb.h"
27
28
  #include "upb/base/string_view.h"
28
29
 
29
- #include <grpc/support/log.h>
30
30
  #include <grpc/support/port_platform.h>
31
31
  #include <grpc/support/time.h>
32
32
 
@@ -145,9 +145,8 @@ bool ParseServerList(const grpc_lb_v1_LoadBalanceResponse& response,
145
145
  } else if (token.size <= GRPC_GRPCLB_SERVER_LOAD_BALANCE_TOKEN_MAX_SIZE) {
146
146
  memcpy(cur.load_balance_token, token.data, token.size);
147
147
  } else {
148
- gpr_log(GPR_ERROR,
149
- "grpc_lb_v1_LoadBalanceResponse has too long token. len=%zu",
150
- token.size);
148
+ LOG(ERROR) << "grpc_lb_v1_LoadBalanceResponse has too long token. len="
149
+ << token.size;
151
150
  }
152
151
  cur.drop = grpc_lb_v1_Server_drop(servers[i]);
153
152
  }
@@ -65,8 +65,6 @@
65
65
 
66
66
  namespace grpc_core {
67
67
 
68
- TraceFlag grpc_health_check_client_trace(false, "health_check_client");
69
-
70
68
  namespace {
71
69
 
72
70
  // A fire-and-forget class to asynchronously drain a WorkSerializer queue.
@@ -147,7 +145,7 @@ void HealthProducer::HealthChecker::OnConnectivityStateChangeLocked(
147
145
  }
148
146
 
149
147
  void HealthProducer::HealthChecker::StartHealthStreamLocked() {
150
- if (GRPC_TRACE_FLAG_ENABLED(grpc_health_check_client_trace)) {
148
+ if (GRPC_TRACE_FLAG_ENABLED(health_check_client)) {
151
149
  gpr_log(GPR_INFO,
152
150
  "HealthProducer %p HealthChecker %p: "
153
151
  "creating HealthClient for \"%s\"",
@@ -157,13 +155,12 @@ void HealthProducer::HealthChecker::StartHealthStreamLocked() {
157
155
  stream_client_ = MakeOrphanable<SubchannelStreamClient>(
158
156
  producer_->connected_subchannel_, producer_->subchannel_->pollset_set(),
159
157
  std::make_unique<HealthStreamEventHandler>(Ref()),
160
- GRPC_TRACE_FLAG_ENABLED(grpc_health_check_client_trace) ? "HealthClient"
161
- : nullptr);
158
+ GRPC_TRACE_FLAG_ENABLED(health_check_client) ? "HealthClient" : nullptr);
162
159
  }
163
160
 
164
161
  void HealthProducer::HealthChecker::NotifyWatchersLocked(
165
162
  grpc_connectivity_state state, absl::Status status) {
166
- if (GRPC_TRACE_FLAG_ENABLED(grpc_health_check_client_trace)) {
163
+ if (GRPC_TRACE_FLAG_ENABLED(health_check_client)) {
167
164
  gpr_log(
168
165
  GPR_INFO,
169
166
  "HealthProducer %p HealthChecker %p: reporting state %s to watchers",
@@ -303,7 +300,7 @@ class HealthProducer::HealthChecker::HealthStreamEventHandler final
303
300
  void SetHealthStatusLocked(SubchannelStreamClient* client,
304
301
  grpc_connectivity_state state,
305
302
  const char* reason) {
306
- if (GRPC_TRACE_FLAG_ENABLED(grpc_health_check_client_trace)) {
303
+ if (GRPC_TRACE_FLAG_ENABLED(health_check_client)) {
307
304
  gpr_log(GPR_INFO, "HealthCheckClient %p: setting state=%s reason=%s",
308
305
  client, ConnectivityStateName(state), reason);
309
306
  }
@@ -346,7 +343,7 @@ class HealthProducer::ConnectivityWatcher final
346
343
  //
347
344
 
348
345
  void HealthProducer::Start(RefCountedPtr<Subchannel> subchannel) {
349
- if (GRPC_TRACE_FLAG_ENABLED(grpc_health_check_client_trace)) {
346
+ if (GRPC_TRACE_FLAG_ENABLED(health_check_client)) {
350
347
  gpr_log(GPR_INFO, "HealthProducer %p: starting with subchannel %p", this,
351
348
  subchannel.get());
352
349
  }
@@ -362,7 +359,7 @@ void HealthProducer::Start(RefCountedPtr<Subchannel> subchannel) {
362
359
  }
363
360
 
364
361
  void HealthProducer::Orphaned() {
365
- if (GRPC_TRACE_FLAG_ENABLED(grpc_health_check_client_trace)) {
362
+ if (GRPC_TRACE_FLAG_ENABLED(health_check_client)) {
366
363
  gpr_log(GPR_INFO, "HealthProducer %p: shutting down", this);
367
364
  }
368
365
  {
@@ -412,7 +409,7 @@ void HealthProducer::RemoveWatcher(
412
409
 
413
410
  void HealthProducer::OnConnectivityStateChange(grpc_connectivity_state state,
414
411
  const absl::Status& status) {
415
- if (GRPC_TRACE_FLAG_ENABLED(grpc_health_check_client_trace)) {
412
+ if (GRPC_TRACE_FLAG_ENABLED(health_check_client)) {
416
413
  gpr_log(GPR_INFO,
417
414
  "HealthProducer %p: subchannel state update: state=%s status=%s",
418
415
  this, ConnectivityStateName(state), status.ToString().c_str());
@@ -438,7 +435,7 @@ void HealthProducer::OnConnectivityStateChange(grpc_connectivity_state state,
438
435
  //
439
436
 
440
437
  HealthWatcher::~HealthWatcher() {
441
- if (GRPC_TRACE_FLAG_ENABLED(grpc_health_check_client_trace)) {
438
+ if (GRPC_TRACE_FLAG_ENABLED(health_check_client)) {
442
439
  gpr_log(GPR_INFO,
443
440
  "HealthWatcher %p: unregistering from producer %p "
444
441
  "(health_check_service_name=\"%s\")",
@@ -474,7 +471,7 @@ void HealthWatcher::SetSubchannel(Subchannel* subchannel) {
474
471
  if (created) producer_->Start(subchannel->Ref());
475
472
  // Register ourself with the producer.
476
473
  producer_->AddWatcher(this, health_check_service_name_);
477
- if (GRPC_TRACE_FLAG_ENABLED(grpc_health_check_client_trace)) {
474
+ if (GRPC_TRACE_FLAG_ENABLED(health_check_client)) {
478
475
  gpr_log(GPR_INFO,
479
476
  "HealthWatcher %p: registered with producer %p (created=%d, "
480
477
  "health_check_service_name=\"%s\")",
@@ -506,7 +503,7 @@ MakeHealthCheckWatcher(
506
503
  health_check_service_name =
507
504
  args.GetOwnedString(GRPC_ARG_HEALTH_CHECK_SERVICE_NAME);
508
505
  }
509
- if (GRPC_TRACE_FLAG_ENABLED(grpc_health_check_client_trace)) {
506
+ if (GRPC_TRACE_FLAG_ENABLED(health_check_client)) {
510
507
  gpr_log(GPR_INFO,
511
508
  "creating HealthWatcher -- health_check_service_name=\"%s\"",
512
509
  health_check_service_name.value_or("N/A").c_str());