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
@@ -28,6 +28,7 @@
28
28
  #include "src/core/lib/gprpp/crash.h"
29
29
  #include "src/core/lib/promise/promise.h"
30
30
  #include "src/core/lib/promise/try_seq.h"
31
+ #include "src/core/lib/resource_quota/resource_quota.h"
31
32
  #include "src/core/lib/surface/channel_create.h"
32
33
  #include "src/core/lib/transport/transport.h"
33
34
  #include "src/core/server/server.h"
@@ -35,11 +36,22 @@
35
36
  namespace grpc_core {
36
37
 
37
38
  namespace {
38
- class InprocServerTransport final : public RefCounted<InprocServerTransport>,
39
- public ServerTransport {
39
+ class InprocClientTransport;
40
+
41
+ class InprocServerTransport final : public ServerTransport {
40
42
  public:
41
- void SetAcceptor(Acceptor* acceptor) override {
42
- acceptor_ = acceptor;
43
+ explicit InprocServerTransport(const ChannelArgs& args)
44
+ : event_engine_(
45
+ args.GetObjectRef<grpc_event_engine::experimental::EventEngine>()),
46
+ call_arena_allocator_(MakeRefCounted<CallArenaAllocator>(
47
+ args.GetObject<ResourceQuota>()
48
+ ->memory_quota()
49
+ ->CreateMemoryAllocator("inproc_server"),
50
+ 1024)) {}
51
+
52
+ void SetCallDestination(
53
+ RefCountedPtr<UnstartedCallDestination> unstarted_call_handler) override {
54
+ unstarted_call_handler_ = unstarted_call_handler;
43
55
  ConnectionState expect = ConnectionState::kInitial;
44
56
  state_.compare_exchange_strong(expect, ConnectionState::kReady,
45
57
  std::memory_order_acq_rel,
@@ -73,7 +85,6 @@ class InprocServerTransport final : public RefCounted<InprocServerTransport>,
73
85
  Crash("set_accept_stream not supported on inproc transport");
74
86
  }
75
87
  }
76
- grpc_endpoint* GetEndpoint() override { return nullptr; }
77
88
 
78
89
  void Disconnect(absl::Status error) {
79
90
  if (disconnecting_.exchange(true, std::memory_order_relaxed)) return;
@@ -94,43 +105,54 @@ class InprocServerTransport final : public RefCounted<InprocServerTransport>,
94
105
  case ConnectionState::kReady:
95
106
  break;
96
107
  }
97
- return acceptor_->CreateCall(std::move(md), acceptor_->CreateArena());
108
+ auto server_call = MakeCallPair(std::move(md), event_engine_.get(),
109
+ call_arena_allocator_->MakeArena());
110
+ unstarted_call_handler_->StartCall(std::move(server_call.handler));
111
+ return std::move(server_call.initiator);
98
112
  }
99
113
 
114
+ OrphanablePtr<InprocClientTransport> MakeClientTransport();
115
+
100
116
  private:
101
117
  enum class ConnectionState : uint8_t { kInitial, kReady, kDisconnected };
102
118
 
103
119
  std::atomic<ConnectionState> state_{ConnectionState::kInitial};
104
120
  std::atomic<bool> disconnecting_{false};
105
- Acceptor* acceptor_;
121
+ RefCountedPtr<UnstartedCallDestination> unstarted_call_handler_;
106
122
  absl::Status disconnect_error_;
107
123
  Mutex state_tracker_mu_;
108
124
  ConnectivityStateTracker state_tracker_ ABSL_GUARDED_BY(state_tracker_mu_){
109
125
  "inproc_server_transport", GRPC_CHANNEL_CONNECTING};
126
+ const std::shared_ptr<grpc_event_engine::experimental::EventEngine>
127
+ event_engine_;
128
+ const RefCountedPtr<CallArenaAllocator> call_arena_allocator_;
110
129
  };
111
130
 
112
131
  class InprocClientTransport final : public ClientTransport {
113
132
  public:
114
- void StartCall(CallHandler call_handler) override {
115
- call_handler.SpawnGuarded(
133
+ explicit InprocClientTransport(
134
+ RefCountedPtr<InprocServerTransport> server_transport)
135
+ : server_transport_(std::move(server_transport)) {}
136
+
137
+ void StartCall(CallHandler child_call_handler) override {
138
+ child_call_handler.SpawnGuarded(
116
139
  "pull_initial_metadata",
117
- TrySeq(call_handler.PullClientInitialMetadata(),
140
+ TrySeq(child_call_handler.PullClientInitialMetadata(),
118
141
  [server_transport = server_transport_,
119
- call_handler](ClientMetadataHandle md) {
120
- auto call_initiator =
142
+ child_call_handler](ClientMetadataHandle md) {
143
+ auto server_call_initiator =
121
144
  server_transport->AcceptCall(std::move(md));
122
- if (!call_initiator.ok()) return call_initiator.status();
123
- ForwardCall(call_handler, std::move(*call_initiator));
145
+ if (!server_call_initiator.ok()) {
146
+ return server_call_initiator.status();
147
+ }
148
+ ForwardCall(child_call_handler,
149
+ std::move(*server_call_initiator));
124
150
  return absl::OkStatus();
125
151
  }));
126
152
  }
127
153
 
128
154
  void Orphan() override { delete this; }
129
155
 
130
- OrphanablePtr<Transport> GetServerTransport() {
131
- return OrphanablePtr<Transport>(server_transport_->Ref().release());
132
- }
133
-
134
156
  FilterStackTransport* filter_stack_transport() override { return nullptr; }
135
157
  ClientTransport* client_transport() override { return this; }
136
158
  ServerTransport* server_transport() override { return nullptr; }
@@ -138,7 +160,6 @@ class InprocClientTransport final : public ClientTransport {
138
160
  void SetPollset(grpc_stream*, grpc_pollset*) override {}
139
161
  void SetPollsetSet(grpc_stream*, grpc_pollset_set*) override {}
140
162
  void PerformOp(grpc_transport_op*) override { Crash("unimplemented"); }
141
- grpc_endpoint* GetEndpoint() override { return nullptr; }
142
163
 
143
164
  private:
144
165
  ~InprocClientTransport() override {
@@ -146,18 +167,20 @@ class InprocClientTransport final : public ClientTransport {
146
167
  absl::UnavailableError("Client transport closed"));
147
168
  }
148
169
 
149
- RefCountedPtr<InprocServerTransport> server_transport_ =
150
- MakeRefCounted<InprocServerTransport>();
170
+ const RefCountedPtr<InprocServerTransport> server_transport_;
151
171
  };
152
172
 
153
173
  bool UsePromiseBasedTransport() {
154
- if (!IsPromiseBasedInprocTransportEnabled()) return false;
155
- CHECK(IsPromiseBasedClientCallEnabled());
156
- CHECK(IsPromiseBasedServerCallEnabled());
157
- return true;
174
+ return IsPromiseBasedInprocTransportEnabled();
175
+ }
176
+
177
+ OrphanablePtr<InprocClientTransport>
178
+ InprocServerTransport::MakeClientTransport() {
179
+ return MakeOrphanable<InprocClientTransport>(
180
+ RefAsSubclass<InprocServerTransport>());
158
181
  }
159
182
 
160
- OrphanablePtr<Channel> MakeLameChannel(absl::string_view why,
183
+ RefCountedPtr<Channel> MakeLameChannel(absl::string_view why,
161
184
  absl::Status error) {
162
185
  gpr_log(GPR_ERROR, "%s: %s", std::string(why).c_str(),
163
186
  std::string(error.message()).c_str());
@@ -166,13 +189,13 @@ OrphanablePtr<Channel> MakeLameChannel(absl::string_view why,
166
189
  if (grpc_error_get_int(error, StatusIntProperty::kRpcStatus, &integer)) {
167
190
  status = static_cast<grpc_status_code>(integer);
168
191
  }
169
- return OrphanablePtr<Channel>(Channel::FromC(grpc_lame_client_channel_create(
192
+ return RefCountedPtr<Channel>(Channel::FromC(grpc_lame_client_channel_create(
170
193
  nullptr, status, std::string(why).c_str())));
171
194
  }
172
195
 
173
- OrphanablePtr<Channel> MakeInprocChannel(Server* server,
196
+ RefCountedPtr<Channel> MakeInprocChannel(Server* server,
174
197
  ChannelArgs client_channel_args) {
175
- auto transports = MakeInProcessTransportPair();
198
+ auto transports = MakeInProcessTransportPair(server->channel_args());
176
199
  auto client_transport = std::move(transports.first);
177
200
  auto server_transport = std::move(transports.second);
178
201
  auto error =
@@ -197,9 +220,10 @@ OrphanablePtr<Channel> MakeInprocChannel(Server* server,
197
220
  } // namespace
198
221
 
199
222
  std::pair<OrphanablePtr<Transport>, OrphanablePtr<Transport>>
200
- MakeInProcessTransportPair() {
201
- auto client_transport = MakeOrphanable<InprocClientTransport>();
202
- auto server_transport = client_transport->GetServerTransport();
223
+ MakeInProcessTransportPair(const ChannelArgs& server_channel_args) {
224
+ auto server_transport =
225
+ MakeOrphanable<InprocServerTransport>(server_channel_args);
226
+ auto client_transport = server_transport->MakeClientTransport();
203
227
  return std::make_pair(std::move(client_transport),
204
228
  std::move(server_transport));
205
229
  }
@@ -25,12 +25,10 @@ grpc_channel* grpc_inproc_channel_create(grpc_server* server,
25
25
  const grpc_channel_args* args,
26
26
  void* reserved);
27
27
 
28
- extern grpc_core::TraceFlag grpc_inproc_trace;
29
-
30
28
  namespace grpc_core {
31
29
 
32
30
  std::pair<OrphanablePtr<Transport>, OrphanablePtr<Transport>>
33
- MakeInProcessTransportPair();
31
+ MakeInProcessTransportPair(const ChannelArgs& server_channel_args);
34
32
 
35
33
  }
36
34
 
@@ -28,6 +28,7 @@
28
28
  #include <utility>
29
29
 
30
30
  #include "absl/log/check.h"
31
+ #include "absl/log/log.h"
31
32
  #include "absl/status/status.h"
32
33
  #include "absl/status/statusor.h"
33
34
  #include "absl/strings/str_cat.h"
@@ -68,11 +69,11 @@
68
69
  #include "src/core/lib/transport/transport.h"
69
70
  #include "src/core/server/server.h"
70
71
 
71
- #define INPROC_LOG(...) \
72
- do { \
73
- if (GRPC_TRACE_FLAG_ENABLED(grpc_inproc_trace)) { \
74
- gpr_log(__VA_ARGS__); \
75
- } \
72
+ #define INPROC_LOG(...) \
73
+ do { \
74
+ if (GRPC_TRACE_FLAG_ENABLED(inproc)) { \
75
+ gpr_log(__VA_ARGS__); \
76
+ } \
76
77
  } while (0)
77
78
 
78
79
  namespace {
@@ -134,7 +135,6 @@ struct inproc_transport final : public grpc_core::FilterStackTransport {
134
135
  void SetPollsetSet(grpc_stream* stream,
135
136
  grpc_pollset_set* pollset_set) override;
136
137
  void PerformOp(grpc_transport_op* op) override;
137
- grpc_endpoint* GetEndpoint() override;
138
138
 
139
139
  size_t SizeOfStream() const override;
140
140
  bool HackyDisableStreamOpBatchCoalescingInConnectedChannel() const override {
@@ -319,7 +319,7 @@ void log_metadata(const grpc_metadata_batch* md_batch, bool is_client,
319
319
  std::string prefix = absl::StrCat(
320
320
  "INPROC:", is_initial ? "HDR:" : "TRL:", is_client ? "CLI:" : "SVR:");
321
321
  md_batch->Log([&prefix](absl::string_view key, absl::string_view value) {
322
- gpr_log(GPR_INFO, "%s", absl::StrCat(prefix, key, ": ", value).c_str());
322
+ LOG(INFO) << absl::StrCat(prefix, key, ": ", value);
323
323
  });
324
324
  }
325
325
 
@@ -352,7 +352,7 @@ class CopySink {
352
352
 
353
353
  void fill_in_metadata(inproc_stream* s, const grpc_metadata_batch* metadata,
354
354
  grpc_metadata_batch* out_md, bool* markfilled) {
355
- if (GRPC_TRACE_FLAG_ENABLED(grpc_inproc_trace)) {
355
+ if (GRPC_TRACE_FLAG_ENABLED(inproc)) {
356
356
  log_metadata(metadata, s->t->is_client,
357
357
  metadata->get_pointer(grpc_core::WaitForReady()) != nullptr);
358
358
  }
@@ -949,7 +949,7 @@ void inproc_transport::PerformStreamOp(grpc_stream* gs,
949
949
  gpr_mu* mu = &s->t->mu->mu; // save aside in case s gets closed
950
950
  gpr_mu_lock(mu);
951
951
 
952
- if (GRPC_TRACE_FLAG_ENABLED(grpc_inproc_trace)) {
952
+ if (GRPC_TRACE_FLAG_ENABLED(inproc)) {
953
953
  if (op->send_initial_metadata) {
954
954
  log_metadata(op->payload->send_initial_metadata.send_initial_metadata,
955
955
  s->t->is_client, true);
@@ -1213,8 +1213,6 @@ void inproc_transport::SetPollsetSet(grpc_stream* /*gs*/,
1213
1213
  // Nothing to do here
1214
1214
  }
1215
1215
 
1216
- grpc_endpoint* inproc_transport::GetEndpoint() { return nullptr; }
1217
-
1218
1216
  //******************************************************************************
1219
1217
  // Main inproc transport functions
1220
1218
  //
@@ -1268,8 +1266,8 @@ grpc_channel* grpc_legacy_inproc_channel_create(grpc_server* server,
1268
1266
  "inproc", client_args, GRPC_CLIENT_DIRECT_CHANNEL, client_transport);
1269
1267
  if (!new_channel.ok()) {
1270
1268
  CHECK(!channel);
1271
- gpr_log(GPR_ERROR, "Failed to create client channel: %s",
1272
- grpc_core::StatusToString(error).c_str());
1269
+ LOG(ERROR) << "Failed to create client channel: "
1270
+ << grpc_core::StatusToString(error);
1273
1271
  intptr_t integer;
1274
1272
  grpc_status_code status = GRPC_STATUS_INTERNAL;
1275
1273
  if (grpc_error_get_int(error, grpc_core::StatusIntProperty::kRpcStatus,
@@ -1286,8 +1284,8 @@ grpc_channel* grpc_legacy_inproc_channel_create(grpc_server* server,
1286
1284
  }
1287
1285
  } else {
1288
1286
  CHECK(!channel);
1289
- gpr_log(GPR_ERROR, "Failed to create server channel: %s",
1290
- grpc_core::StatusToString(error).c_str());
1287
+ LOG(ERROR) << "Failed to create server channel: "
1288
+ << grpc_core::StatusToString(error);
1291
1289
  intptr_t integer;
1292
1290
  grpc_status_code status = GRPC_STATUS_INTERNAL;
1293
1291
  if (grpc_error_get_int(error, grpc_core::StatusIntProperty::kRpcStatus,
@@ -24,6 +24,4 @@ grpc_channel* grpc_legacy_inproc_channel_create(grpc_server* server,
24
24
  const grpc_channel_args* args,
25
25
  void* reserved);
26
26
 
27
- extern grpc_core::TraceFlag grpc_inproc_trace;
28
-
29
27
  #endif // GRPC_SRC_CORE_EXT_TRANSPORT_INPROC_LEGACY_INPROC_TRANSPORT_H
@@ -43,8 +43,6 @@
43
43
 
44
44
  namespace grpc_core {
45
45
 
46
- TraceFlag grpc_handshaker_trace(false, "handshaker");
47
-
48
46
  namespace {
49
47
 
50
48
  using ::grpc_event_engine::experimental::EventEngine;
@@ -62,13 +60,12 @@ std::string HandshakerArgsString(HandshakerArgs* args) {
62
60
  } // namespace
63
61
 
64
62
  HandshakeManager::HandshakeManager()
65
- : RefCounted(GRPC_TRACE_FLAG_ENABLED(grpc_handshaker_trace)
66
- ? "HandshakeManager"
67
- : nullptr) {}
63
+ : RefCounted(GRPC_TRACE_FLAG_ENABLED(handshaker) ? "HandshakeManager"
64
+ : nullptr) {}
68
65
 
69
66
  void HandshakeManager::Add(RefCountedPtr<Handshaker> handshaker) {
70
67
  MutexLock lock(&mu_);
71
- if (GRPC_TRACE_FLAG_ENABLED(grpc_handshaker_trace)) {
68
+ if (GRPC_TRACE_FLAG_ENABLED(handshaker)) {
72
69
  gpr_log(
73
70
  GPR_INFO,
74
71
  "handshake_manager %p: adding handshaker %s [%p] at index %" PRIuPTR,
@@ -94,7 +91,7 @@ void HandshakeManager::Shutdown(grpc_error_handle why) {
94
91
  // on_handshake_done callback.
95
92
  // Returns true if we've scheduled the on_handshake_done callback.
96
93
  bool HandshakeManager::CallNextHandshakerLocked(grpc_error_handle error) {
97
- if (GRPC_TRACE_FLAG_ENABLED(grpc_handshaker_trace)) {
94
+ if (GRPC_TRACE_FLAG_ENABLED(handshaker)) {
98
95
  gpr_log(GPR_INFO,
99
96
  "handshake_manager %p: error=%s shutdown=%d index=%" PRIuPTR
100
97
  ", args=%s",
@@ -113,11 +110,6 @@ bool HandshakeManager::CallNextHandshakerLocked(grpc_error_handle error) {
113
110
  // a shutdown call while this callback was sitting on the ExecCtx
114
111
  // with no error.
115
112
  if (args_.endpoint != nullptr) {
116
- // TODO(roth): It is currently necessary to shutdown endpoints
117
- // before destroying then, even when we know that there are no
118
- // pending read/write callbacks. This should be fixed, at which
119
- // point this can be removed.
120
- grpc_endpoint_shutdown(args_.endpoint, error);
121
113
  grpc_endpoint_destroy(args_.endpoint);
122
114
  args_.endpoint = nullptr;
123
115
  }
@@ -128,7 +120,7 @@ bool HandshakeManager::CallNextHandshakerLocked(grpc_error_handle error) {
128
120
  }
129
121
  args_.args = ChannelArgs();
130
122
  }
131
- if (GRPC_TRACE_FLAG_ENABLED(grpc_handshaker_trace)) {
123
+ if (GRPC_TRACE_FLAG_ENABLED(handshaker)) {
132
124
  gpr_log(GPR_INFO,
133
125
  "handshake_manager %p: handshaking complete -- scheduling "
134
126
  "on_handshake_done with error=%s",
@@ -141,7 +133,7 @@ bool HandshakeManager::CallNextHandshakerLocked(grpc_error_handle error) {
141
133
  is_shutdown_ = true;
142
134
  } else {
143
135
  auto handshaker = handshakers_[index_];
144
- if (GRPC_TRACE_FLAG_ENABLED(grpc_handshaker_trace)) {
136
+ if (GRPC_TRACE_FLAG_ENABLED(handshaker)) {
145
137
  gpr_log(
146
138
  GPR_INFO,
147
139
  "handshake_manager %p: calling handshaker %s [%p] at index %" PRIuPTR,
@@ -41,18 +41,18 @@
41
41
  #include "src/core/handshaker/handshaker_registry.h"
42
42
  #include "src/core/lib/channel/channel_args.h"
43
43
  #include "src/core/lib/config/core_configuration.h"
44
- #include "src/core/lib/gpr/string.h"
45
44
  #include "src/core/lib/gprpp/debug_location.h"
46
45
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
47
46
  #include "src/core/lib/gprpp/sync.h"
48
- #include "src/core/lib/http/format_request.h"
49
- #include "src/core/lib/http/parser.h"
50
47
  #include "src/core/lib/iomgr/closure.h"
51
48
  #include "src/core/lib/iomgr/endpoint.h"
52
49
  #include "src/core/lib/iomgr/error.h"
53
50
  #include "src/core/lib/iomgr/exec_ctx.h"
54
51
  #include "src/core/lib/iomgr/iomgr_fwd.h"
55
52
  #include "src/core/lib/iomgr/tcp_server.h"
53
+ #include "src/core/util/http_client/format_request.h"
54
+ #include "src/core/util/http_client/parser.h"
55
+ #include "src/core/util/string.h"
56
56
 
57
57
  namespace grpc_core {
58
58
 
@@ -80,8 +80,7 @@ class HttpConnectHandshaker : public Handshaker {
80
80
  Mutex mu_;
81
81
 
82
82
  bool is_shutdown_ ABSL_GUARDED_BY(mu_) = false;
83
- // Endpoint and read buffer to destroy after a shutdown.
84
- grpc_endpoint* endpoint_to_destroy_ ABSL_GUARDED_BY(mu_) = nullptr;
83
+ // Read buffer to destroy after a shutdown.
85
84
  grpc_slice_buffer* read_buffer_to_destroy_ ABSL_GUARDED_BY(mu_) = nullptr;
86
85
 
87
86
  // State saved while performing the handshake.
@@ -97,9 +96,6 @@ class HttpConnectHandshaker : public Handshaker {
97
96
  };
98
97
 
99
98
  HttpConnectHandshaker::~HttpConnectHandshaker() {
100
- if (endpoint_to_destroy_ != nullptr) {
101
- grpc_endpoint_destroy(endpoint_to_destroy_);
102
- }
103
99
  if (read_buffer_to_destroy_ != nullptr) {
104
100
  grpc_slice_buffer_destroy(read_buffer_to_destroy_);
105
101
  gpr_free(read_buffer_to_destroy_);
@@ -112,8 +108,6 @@ HttpConnectHandshaker::~HttpConnectHandshaker() {
112
108
  // Set args fields to nullptr, saving the endpoint and read buffer for
113
109
  // later destruction.
114
110
  void HttpConnectHandshaker::CleanupArgsForFailureLocked() {
115
- endpoint_to_destroy_ = args_->endpoint;
116
- args_->endpoint = nullptr;
117
111
  read_buffer_to_destroy_ = args_->read_buffer;
118
112
  args_->read_buffer = nullptr;
119
113
  args_->args = ChannelArgs();
@@ -129,13 +123,10 @@ void HttpConnectHandshaker::HandshakeFailedLocked(grpc_error_handle error) {
129
123
  error = GRPC_ERROR_CREATE("Handshaker shutdown");
130
124
  }
131
125
  if (!is_shutdown_) {
132
- // TODO(ctiller): It is currently necessary to shutdown endpoints
133
- // before destroying them, even if we know that there are no
134
- // pending read/write callbacks. This should be fixed, at which
135
- // point this can be removed.
136
- grpc_endpoint_shutdown(args_->endpoint, error);
137
126
  // Not shutting down, so the handshake failed. Clean up before
138
127
  // invoking the callback.
128
+ grpc_endpoint_destroy(args_->endpoint);
129
+ args_->endpoint = nullptr;
139
130
  CleanupArgsForFailureLocked();
140
131
  // Set shutdown to true so that subsequent calls to
141
132
  // http_connect_handshaker_shutdown() do nothing.
@@ -276,12 +267,13 @@ done:
276
267
  // Public handshaker methods
277
268
  //
278
269
 
279
- void HttpConnectHandshaker::Shutdown(grpc_error_handle why) {
270
+ void HttpConnectHandshaker::Shutdown(grpc_error_handle /*why*/) {
280
271
  {
281
272
  MutexLock lock(&mu_);
282
273
  if (!is_shutdown_) {
283
274
  is_shutdown_ = true;
284
- grpc_endpoint_shutdown(args_->endpoint, why);
275
+ grpc_endpoint_destroy(args_->endpoint);
276
+ args_->endpoint = nullptr;
285
277
  CleanupArgsForFailureLocked();
286
278
  }
287
279
  }
@@ -26,6 +26,7 @@
26
26
  #include <utility>
27
27
 
28
28
  #include "absl/log/check.h"
29
+ #include "absl/log/log.h"
29
30
  #include "absl/status/status.h"
30
31
  #include "absl/status/statusor.h"
31
32
  #include "absl/strings/ascii.h"
@@ -47,12 +48,12 @@
47
48
  #include "src/core/lib/address_utils/parse_address.h"
48
49
  #include "src/core/lib/address_utils/sockaddr_utils.h"
49
50
  #include "src/core/lib/channel/channel_args.h"
50
- #include "src/core/lib/gpr/string.h"
51
51
  #include "src/core/lib/gprpp/env.h"
52
52
  #include "src/core/lib/gprpp/host_port.h"
53
53
  #include "src/core/lib/gprpp/memory.h"
54
54
  #include "src/core/lib/iomgr/resolve_address.h"
55
55
  #include "src/core/lib/uri/uri_parser.h"
56
+ #include "src/core/util/string.h"
56
57
 
57
58
  namespace grpc_core {
58
59
  namespace {
@@ -150,7 +151,7 @@ absl::optional<std::string> GetHttpProxyServer(
150
151
  // User cred found
151
152
  *user_cred = authority_strs[0];
152
153
  proxy_name = authority_strs[1];
153
- gpr_log(GPR_DEBUG, "userinfo found in proxy URI");
154
+ VLOG(2) << "userinfo found in proxy URI";
154
155
  } else {
155
156
  // Bad authority
156
157
  proxy_name = absl::nullopt;