grpc 1.63.0 → 1.65.2

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 (1196) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +105 -103
  3. data/include/grpc/credentials.h +1222 -0
  4. data/include/grpc/event_engine/event_engine.h +13 -6
  5. data/include/grpc/grpc.h +7 -0
  6. data/include/grpc/grpc_crl_provider.h +1 -0
  7. data/include/grpc/grpc_security.h +0 -1171
  8. data/include/grpc/impl/channel_arg_names.h +7 -6
  9. data/include/grpc/module.modulemap +2 -0
  10. data/include/grpc/passive_listener.h +62 -0
  11. data/include/grpc/support/log.h +7 -17
  12. data/include/grpc/support/port_platform.h +3 -0
  13. data/src/core/{lib/channel → channelz}/channel_trace.cc +57 -63
  14. data/src/core/{lib/channel → channelz}/channel_trace.h +22 -20
  15. data/src/core/{lib/channel → channelz}/channelz.cc +71 -9
  16. data/src/core/{lib/channel → channelz}/channelz.h +52 -13
  17. data/src/core/{lib/channel → channelz}/channelz_registry.cc +11 -9
  18. data/src/core/{lib/channel → channelz}/channelz_registry.h +6 -6
  19. data/src/core/client_channel/backup_poller.cc +4 -5
  20. data/src/core/client_channel/client_channel.cc +1324 -0
  21. data/src/core/client_channel/client_channel.h +243 -0
  22. data/src/core/client_channel/client_channel_filter.cc +312 -759
  23. data/src/core/client_channel/client_channel_filter.h +13 -68
  24. data/src/core/client_channel/client_channel_internal.h +19 -7
  25. data/src/core/client_channel/client_channel_plugin.cc +1 -14
  26. data/src/core/client_channel/client_channel_service_config.h +4 -4
  27. data/src/core/client_channel/config_selector.cc +1 -1
  28. data/src/core/client_channel/config_selector.h +5 -4
  29. data/src/core/client_channel/connector.h +1 -1
  30. data/src/core/client_channel/dynamic_filters.cc +6 -5
  31. data/src/core/client_channel/dynamic_filters.h +1 -3
  32. data/src/core/client_channel/load_balanced_call_destination.cc +336 -0
  33. data/src/core/client_channel/load_balanced_call_destination.h +49 -0
  34. data/src/core/client_channel/local_subchannel_pool.cc +5 -3
  35. data/src/core/client_channel/retry_filter.cc +3 -10
  36. data/src/core/client_channel/retry_filter.h +5 -9
  37. data/src/core/client_channel/retry_filter_legacy_call_data.cc +70 -76
  38. data/src/core/client_channel/retry_filter_legacy_call_data.h +0 -2
  39. data/src/core/client_channel/retry_service_config.cc +4 -5
  40. data/src/core/client_channel/retry_service_config.h +3 -3
  41. data/src/core/client_channel/subchannel.cc +241 -129
  42. data/src/core/client_channel/subchannel.h +31 -19
  43. data/src/core/client_channel/subchannel_pool_interface.cc +0 -2
  44. data/src/core/client_channel/subchannel_pool_interface.h +2 -4
  45. data/src/core/client_channel/subchannel_stream_client.cc +41 -52
  46. data/src/core/client_channel/subchannel_stream_client.h +2 -4
  47. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +11 -13
  48. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +3 -2
  49. data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +7 -0
  50. data/src/core/ext/filters/census/grpc_context.cc +2 -4
  51. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +16 -15
  52. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +12 -11
  53. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +11 -16
  54. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +5 -4
  55. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +3 -3
  56. data/src/core/ext/filters/http/client/http_client_filter.cc +6 -4
  57. data/src/core/ext/filters/http/client/http_client_filter.h +6 -5
  58. data/src/core/ext/filters/http/client_authority_filter.cc +5 -3
  59. data/src/core/ext/filters/http/client_authority_filter.h +6 -4
  60. data/src/core/ext/filters/http/message_compress/compression_filter.cc +19 -23
  61. data/src/core/ext/filters/http/message_compress/compression_filter.h +10 -8
  62. data/src/core/ext/filters/http/server/http_server_filter.cc +4 -4
  63. data/src/core/ext/filters/http/server/http_server_filter.h +6 -5
  64. data/src/core/ext/filters/message_size/message_size_filter.cc +16 -28
  65. data/src/core/ext/filters/message_size/message_size_filter.h +14 -12
  66. data/src/core/ext/filters/rbac/rbac_filter.cc +13 -11
  67. data/src/core/ext/filters/rbac/rbac_filter.h +6 -5
  68. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +2 -2
  69. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +1 -1
  70. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +14 -18
  71. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +4 -2
  72. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +3 -3
  73. data/src/core/ext/transport/chttp2/alpn/alpn.cc +5 -4
  74. data/src/core/ext/transport/chttp2/alpn/alpn.h +2 -2
  75. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +23 -38
  76. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +2 -8
  77. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +233 -158
  78. data/src/core/ext/transport/chttp2/server/chttp2_server.h +36 -3
  79. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +6 -6
  80. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +1 -2
  81. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +8 -7
  82. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -2
  83. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +190 -165
  84. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +10 -11
  85. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +3 -3
  86. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +2 -2
  87. data/src/core/ext/transport/chttp2/transport/decode_huff.h +2 -2
  88. data/src/core/ext/transport/chttp2/transport/flow_control.cc +6 -8
  89. data/src/core/ext/transport/chttp2/transport/flow_control.h +4 -6
  90. data/src/core/ext/transport/chttp2/transport/frame.cc +4 -4
  91. data/src/core/ext/transport/chttp2/transport/frame.h +2 -2
  92. data/src/core/ext/transport/chttp2/transport/frame_data.cc +3 -3
  93. data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -2
  94. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +5 -5
  95. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -2
  96. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -9
  97. data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -2
  98. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +4 -5
  99. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -2
  100. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +10 -7
  101. data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -2
  102. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -4
  103. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +1 -2
  104. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +2 -2
  105. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +9 -7
  106. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +10 -4
  107. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +10 -9
  108. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +2 -2
  109. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +4 -3
  110. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +3 -3
  111. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +29 -31
  112. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -3
  113. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +8 -13
  114. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +2 -2
  115. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +3 -3
  116. data/src/core/ext/transport/chttp2/transport/http2_settings.h +3 -3
  117. data/src/core/ext/transport/chttp2/transport/huffsyms.cc +2 -2
  118. data/src/core/ext/transport/chttp2/transport/internal.h +31 -23
  119. data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc +4 -3
  120. data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.h +2 -2
  121. data/src/core/ext/transport/chttp2/transport/parsing.cc +29 -39
  122. data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc +1 -2
  123. data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.h +2 -2
  124. data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +3 -5
  125. data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +1 -4
  126. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +30 -15
  127. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +7 -6
  128. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +10 -11
  129. data/src/core/ext/transport/chttp2/transport/varint.cc +2 -2
  130. data/src/core/ext/transport/chttp2/transport/varint.h +4 -3
  131. data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +4 -3
  132. data/src/core/ext/transport/chttp2/transport/write_size_policy.h +2 -2
  133. data/src/core/ext/transport/chttp2/transport/writing.cc +59 -47
  134. data/src/core/ext/transport/inproc/inproc_transport.cc +65 -41
  135. data/src/core/ext/transport/inproc/inproc_transport.h +2 -5
  136. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +20 -23
  137. data/src/core/ext/transport/inproc/legacy_inproc_transport.h +1 -4
  138. data/src/core/{lib/transport → handshaker/endpoint_info}/endpoint_info_handshaker.cc +6 -6
  139. data/src/core/{lib/transport → handshaker/endpoint_info}/endpoint_info_handshaker.h +3 -3
  140. data/src/core/{lib/transport → handshaker}/handshaker.cc +14 -20
  141. data/src/core/{lib/transport → handshaker}/handshaker.h +4 -5
  142. data/src/core/{lib/transport → handshaker}/handshaker_factory.h +19 -3
  143. data/src/core/{lib/transport → handshaker}/handshaker_registry.cc +3 -3
  144. data/src/core/{lib/transport → handshaker}/handshaker_registry.h +6 -6
  145. data/src/core/{lib/transport → handshaker/http_connect}/http_connect_handshaker.cc +16 -25
  146. data/src/core/{lib/transport → handshaker/http_connect}/http_connect_handshaker.h +3 -3
  147. data/src/core/{client_channel → handshaker/http_connect}/http_proxy_mapper.cc +16 -18
  148. data/src/core/{client_channel → handshaker/http_connect}/http_proxy_mapper.h +6 -6
  149. data/src/core/{lib/handshaker → handshaker}/proxy_mapper.h +5 -5
  150. data/src/core/{lib/handshaker → handshaker}/proxy_mapper_registry.cc +3 -3
  151. data/src/core/{lib/handshaker → handshaker}/proxy_mapper_registry.h +6 -6
  152. data/src/core/{lib/security/transport → handshaker/security}/secure_endpoint.cc +42 -36
  153. data/src/core/{lib/security/transport → handshaker/security}/secure_endpoint.h +4 -7
  154. data/src/core/{lib/security/transport → handshaker/security}/security_handshaker.cc +35 -47
  155. data/src/core/{lib/security/transport → handshaker/security}/security_handshaker.h +5 -6
  156. data/src/core/{lib/transport → handshaker/tcp_connect}/tcp_connect_handshaker.cc +10 -9
  157. data/src/core/{lib/transport → handshaker/tcp_connect}/tcp_connect_handshaker.h +3 -3
  158. data/src/core/lib/address_utils/parse_address.cc +30 -40
  159. data/src/core/lib/address_utils/parse_address.h +2 -2
  160. data/src/core/lib/address_utils/sockaddr_utils.cc +20 -15
  161. data/src/core/lib/address_utils/sockaddr_utils.h +2 -2
  162. data/src/core/lib/avl/avl.h +3 -3
  163. data/src/core/lib/backoff/backoff.cc +2 -2
  164. data/src/core/lib/backoff/backoff.h +2 -2
  165. data/src/core/lib/backoff/random_early_detection.cc +2 -2
  166. data/src/core/lib/backoff/random_early_detection.h +2 -2
  167. data/src/core/lib/channel/call_finalization.h +2 -2
  168. data/src/core/lib/channel/channel_args.cc +17 -21
  169. data/src/core/lib/channel/channel_args.h +20 -10
  170. data/src/core/lib/channel/channel_args_preconditioning.cc +2 -2
  171. data/src/core/lib/channel/channel_args_preconditioning.h +1 -2
  172. data/src/core/lib/channel/channel_stack.cc +13 -70
  173. data/src/core/lib/channel/channel_stack.h +14 -39
  174. data/src/core/lib/channel/channel_stack_builder.cc +2 -2
  175. data/src/core/lib/channel/channel_stack_builder.h +2 -7
  176. data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -150
  177. data/src/core/lib/channel/channel_stack_builder_impl.h +2 -4
  178. data/src/core/lib/channel/connected_channel.cc +40 -694
  179. data/src/core/lib/channel/promise_based_filter.cc +111 -122
  180. data/src/core/lib/channel/promise_based_filter.h +219 -531
  181. data/src/core/lib/channel/status_util.cc +3 -3
  182. data/src/core/lib/channel/status_util.h +1 -2
  183. data/src/core/lib/compression/compression.cc +2 -3
  184. data/src/core/lib/compression/compression_internal.cc +3 -3
  185. data/src/core/lib/compression/compression_internal.h +1 -2
  186. data/src/core/lib/compression/message_compress.cc +15 -14
  187. data/src/core/lib/compression/message_compress.h +1 -2
  188. data/src/core/lib/config/config_vars.cc +5 -10
  189. data/src/core/lib/config/config_vars.h +3 -7
  190. data/src/core/lib/config/config_vars_non_generated.cc +2 -2
  191. data/src/core/lib/config/core_configuration.cc +9 -8
  192. data/src/core/lib/config/core_configuration.h +8 -8
  193. data/src/core/lib/config/load_config.cc +4 -4
  194. data/src/core/lib/config/load_config.h +2 -2
  195. data/src/core/lib/debug/event_log.cc +3 -3
  196. data/src/core/lib/debug/event_log.h +3 -3
  197. data/src/core/lib/debug/trace.cc +44 -61
  198. data/src/core/lib/debug/trace.h +2 -97
  199. data/src/core/lib/debug/trace_flags.cc +255 -0
  200. data/src/core/lib/debug/trace_flags.h +133 -0
  201. data/src/core/lib/debug/trace_impl.h +115 -0
  202. data/src/core/lib/event_engine/ares_resolver.cc +23 -26
  203. data/src/core/lib/event_engine/ares_resolver.h +3 -5
  204. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +4 -2
  205. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +3 -3
  206. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +19 -23
  207. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +2 -1
  208. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +1 -2
  209. data/src/core/lib/event_engine/channel_args_endpoint_config.h +1 -2
  210. data/src/core/lib/event_engine/common_closures.h +1 -2
  211. data/src/core/lib/event_engine/default_event_engine.cc +1 -2
  212. data/src/core/lib/event_engine/default_event_engine.h +1 -2
  213. data/src/core/lib/event_engine/default_event_engine_factory.cc +1 -2
  214. data/src/core/lib/event_engine/default_event_engine_factory.h +1 -2
  215. data/src/core/lib/event_engine/event_engine.cc +29 -5
  216. data/src/core/lib/event_engine/event_engine_context.h +1 -2
  217. data/src/core/lib/event_engine/extensions/can_track_errors.h +2 -2
  218. data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +2 -2
  219. data/src/core/lib/event_engine/extensions/supports_fd.h +8 -2
  220. data/src/core/lib/event_engine/extensions/tcp_trace.h +43 -0
  221. data/src/core/lib/event_engine/forkable.cc +11 -11
  222. data/src/core/lib/event_engine/forkable.h +1 -13
  223. data/src/core/lib/event_engine/grpc_polled_fd.h +1 -2
  224. data/src/core/lib/event_engine/handle_containers.h +1 -2
  225. data/src/core/lib/event_engine/memory_allocator_factory.h +1 -2
  226. data/src/core/lib/event_engine/poller.h +1 -2
  227. data/src/core/lib/event_engine/posix.h +1 -2
  228. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +19 -19
  229. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +1 -2
  230. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +11 -11
  231. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +1 -2
  232. data/src/core/lib/event_engine/posix_engine/event_poller.h +1 -2
  233. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +2 -2
  234. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +2 -2
  235. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +1 -2
  236. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +5 -5
  237. data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +2 -2
  238. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +3 -3
  239. data/src/core/lib/event_engine/posix_engine/lockfree_event.h +2 -2
  240. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +1 -1
  241. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +2 -2
  242. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +43 -58
  243. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +14 -13
  244. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +34 -17
  245. data/src/core/lib/event_engine/posix_engine/posix_engine.h +3 -2
  246. data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +1 -2
  247. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +17 -18
  248. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +1 -2
  249. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +24 -28
  250. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +1 -2
  251. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +22 -20
  252. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +3 -3
  253. data/src/core/lib/event_engine/posix_engine/timer.cc +2 -3
  254. data/src/core/lib/event_engine/posix_engine/timer.h +1 -2
  255. data/src/core/lib/event_engine/posix_engine/timer_heap.cc +2 -2
  256. data/src/core/lib/event_engine/posix_engine/timer_heap.h +2 -2
  257. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +9 -11
  258. data/src/core/lib/event_engine/posix_engine/timer_manager.h +1 -2
  259. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +3 -3
  260. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +1 -2
  261. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +2 -2
  262. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +2 -2
  263. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +2 -2
  264. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +2 -2
  265. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +2 -2
  266. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +2 -2
  267. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +2 -2
  268. data/src/core/lib/event_engine/query_extensions.h +3 -2
  269. data/src/core/lib/event_engine/ref_counted_dns_resolver_interface.h +1 -2
  270. data/src/core/lib/event_engine/resolved_address.cc +5 -4
  271. data/src/core/lib/event_engine/resolved_address_internal.h +1 -2
  272. data/src/core/lib/event_engine/shim.cc +3 -3
  273. data/src/core/lib/event_engine/slice.cc +4 -3
  274. data/src/core/lib/event_engine/slice_buffer.cc +1 -2
  275. data/src/core/lib/event_engine/tcp_socket_utils.cc +18 -16
  276. data/src/core/lib/event_engine/tcp_socket_utils.h +1 -2
  277. data/src/core/lib/event_engine/thread_local.cc +2 -2
  278. data/src/core/lib/event_engine/thread_local.h +1 -1
  279. data/src/core/lib/event_engine/thread_pool/thread_count.cc +1 -2
  280. data/src/core/lib/event_engine/thread_pool/thread_count.h +2 -3
  281. data/src/core/lib/event_engine/thread_pool/thread_pool.h +1 -2
  282. data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +2 -2
  283. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +27 -28
  284. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +4 -8
  285. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +16 -15
  286. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +5 -5
  287. data/src/core/lib/event_engine/time_util.cc +1 -2
  288. data/src/core/lib/event_engine/time_util.h +1 -2
  289. data/src/core/lib/event_engine/trace.h +7 -19
  290. data/src/core/lib/event_engine/utils.cc +1 -2
  291. data/src/core/lib/event_engine/utils.h +1 -2
  292. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +31 -30
  293. data/src/core/lib/event_engine/windows/iocp.cc +10 -8
  294. data/src/core/lib/event_engine/windows/iocp.h +1 -1
  295. data/src/core/lib/event_engine/windows/win_socket.cc +32 -22
  296. data/src/core/lib/event_engine/windows/win_socket.h +4 -5
  297. data/src/core/lib/event_engine/windows/windows_endpoint.cc +24 -25
  298. data/src/core/lib/event_engine/windows/windows_engine.cc +205 -90
  299. data/src/core/lib/event_engine/windows/windows_engine.h +136 -25
  300. data/src/core/lib/event_engine/windows/windows_listener.cc +19 -29
  301. data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +2 -2
  302. data/src/core/lib/event_engine/work_queue/basic_work_queue.h +1 -2
  303. data/src/core/lib/event_engine/work_queue/work_queue.h +1 -2
  304. data/src/core/lib/experiments/config.cc +16 -14
  305. data/src/core/lib/experiments/config.h +2 -2
  306. data/src/core/lib/experiments/experiments.cc +57 -158
  307. data/src/core/lib/experiments/experiments.h +35 -52
  308. data/src/core/lib/gprpp/atomic_utils.h +2 -2
  309. data/src/core/lib/gprpp/bitset.h +3 -3
  310. data/src/core/lib/gprpp/chunked_vector.h +6 -5
  311. data/src/core/lib/gprpp/construct_destruct.h +2 -2
  312. data/src/core/lib/gprpp/crash.cc +3 -5
  313. data/src/core/lib/gprpp/crash.h +2 -2
  314. data/src/core/lib/gprpp/debug_location.h +2 -2
  315. data/src/core/lib/gprpp/directory_reader.h +2 -2
  316. data/src/core/lib/gprpp/down_cast.h +3 -3
  317. data/src/core/lib/gprpp/dual_ref_counted.h +54 -41
  318. data/src/core/lib/gprpp/dump_args.cc +54 -0
  319. data/src/core/lib/gprpp/dump_args.h +69 -0
  320. data/src/core/lib/gprpp/env.h +2 -2
  321. data/src/core/lib/gprpp/examine_stack.cc +2 -2
  322. data/src/core/lib/gprpp/examine_stack.h +2 -2
  323. data/src/core/lib/gprpp/fork.cc +1 -2
  324. data/src/core/lib/gprpp/fork.h +2 -2
  325. data/src/core/lib/gprpp/glob.cc +70 -0
  326. data/src/core/lib/gprpp/glob.h +29 -0
  327. data/src/core/lib/gprpp/host_port.cc +6 -4
  328. data/src/core/lib/gprpp/host_port.h +2 -2
  329. data/src/core/lib/gprpp/linux/env.cc +2 -2
  330. data/src/core/lib/gprpp/load_file.cc +1 -2
  331. data/src/core/lib/gprpp/load_file.h +2 -2
  332. data/src/core/lib/gprpp/manual_constructor.h +2 -2
  333. data/src/core/lib/gprpp/match.h +2 -2
  334. data/src/core/lib/gprpp/memory.h +1 -2
  335. data/src/core/lib/gprpp/mpscq.cc +2 -2
  336. data/src/core/lib/gprpp/mpscq.h +5 -4
  337. data/src/core/lib/gprpp/no_destruct.h +2 -2
  338. data/src/core/lib/gprpp/notification.h +2 -2
  339. data/src/core/lib/gprpp/orphanable.h +2 -2
  340. data/src/core/lib/gprpp/overload.h +2 -2
  341. data/src/core/lib/gprpp/per_cpu.cc +2 -3
  342. data/src/core/lib/gprpp/per_cpu.h +1 -2
  343. data/src/core/lib/gprpp/posix/directory_reader.cc +2 -2
  344. data/src/core/lib/gprpp/posix/stat.cc +8 -7
  345. data/src/core/lib/gprpp/posix/thd.cc +18 -19
  346. data/src/core/lib/gprpp/ref_counted.h +35 -26
  347. data/src/core/lib/gprpp/ref_counted_ptr.h +2 -2
  348. data/src/core/lib/gprpp/ref_counted_string.cc +1 -2
  349. data/src/core/lib/gprpp/ref_counted_string.h +2 -2
  350. data/src/core/lib/gprpp/single_set_ptr.h +9 -6
  351. data/src/core/lib/gprpp/sorted_pack.h +2 -2
  352. data/src/core/lib/gprpp/stat.h +2 -2
  353. data/src/core/lib/gprpp/status_helper.cc +14 -33
  354. data/src/core/lib/gprpp/status_helper.h +5 -33
  355. data/src/core/lib/gprpp/strerror.cc +2 -2
  356. data/src/core/lib/gprpp/strerror.h +2 -2
  357. data/src/core/lib/gprpp/sync.h +5 -5
  358. data/src/core/lib/gprpp/table.h +2 -2
  359. data/src/core/lib/gprpp/tchar.cc +2 -2
  360. data/src/core/lib/gprpp/thd.h +7 -7
  361. data/src/core/lib/gprpp/time.cc +9 -10
  362. data/src/core/lib/gprpp/time.h +4 -4
  363. data/src/core/lib/gprpp/time_averaged_stats.cc +2 -2
  364. data/src/core/lib/gprpp/time_util.cc +5 -4
  365. data/src/core/lib/gprpp/time_util.h +1 -2
  366. data/src/core/lib/gprpp/unique_type_name.h +3 -3
  367. data/src/core/lib/gprpp/uuid_v4.cc +2 -2
  368. data/src/core/lib/gprpp/uuid_v4.h +2 -2
  369. data/src/core/lib/gprpp/validation_errors.cc +12 -3
  370. data/src/core/lib/gprpp/validation_errors.h +13 -2
  371. data/src/core/lib/gprpp/windows/stat.cc +6 -5
  372. data/src/core/lib/gprpp/windows/thd.cc +7 -4
  373. data/src/core/lib/gprpp/work_serializer.cc +53 -62
  374. data/src/core/lib/gprpp/work_serializer.h +1 -2
  375. data/src/core/lib/iomgr/buffer_list.cc +5 -4
  376. data/src/core/lib/iomgr/buffer_list.h +1 -2
  377. data/src/core/lib/iomgr/call_combiner.cc +23 -31
  378. data/src/core/lib/iomgr/call_combiner.h +2 -5
  379. data/src/core/lib/iomgr/cfstream_handle.cc +4 -6
  380. data/src/core/lib/iomgr/closure.cc +2 -2
  381. data/src/core/lib/iomgr/closure.h +6 -7
  382. data/src/core/lib/iomgr/combiner.cc +13 -14
  383. data/src/core/lib/iomgr/combiner.h +1 -4
  384. data/src/core/lib/iomgr/endpoint.cc +1 -7
  385. data/src/core/lib/iomgr/endpoint.h +1 -4
  386. data/src/core/lib/iomgr/endpoint_cfstream.cc +26 -46
  387. data/src/core/lib/iomgr/endpoint_pair_posix.cc +6 -5
  388. data/src/core/lib/iomgr/endpoint_pair_windows.cc +15 -15
  389. data/src/core/lib/iomgr/error.cc +16 -24
  390. data/src/core/lib/iomgr/error.h +4 -4
  391. data/src/core/lib/iomgr/ev_apple.cc +3 -5
  392. data/src/core/lib/iomgr/ev_epoll1_linux.cc +58 -56
  393. data/src/core/lib/iomgr/ev_poll_posix.cc +47 -38
  394. data/src/core/lib/iomgr/ev_posix.cc +9 -11
  395. data/src/core/lib/iomgr/ev_posix.h +11 -8
  396. data/src/core/lib/iomgr/event_engine_shims/closure.cc +3 -4
  397. data/src/core/lib/iomgr/event_engine_shims/closure.h +1 -2
  398. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +17 -31
  399. data/src/core/lib/iomgr/event_engine_shims/endpoint.h +1 -2
  400. data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +1 -2
  401. data/src/core/lib/iomgr/event_engine_shims/tcp_client.h +1 -2
  402. data/src/core/lib/iomgr/exec_ctx.cc +7 -7
  403. data/src/core/lib/iomgr/exec_ctx.h +7 -5
  404. data/src/core/lib/iomgr/executor.cc +13 -23
  405. data/src/core/lib/iomgr/executor.h +1 -1
  406. data/src/core/lib/iomgr/fork_posix.cc +8 -10
  407. data/src/core/lib/iomgr/fork_windows.cc +3 -1
  408. data/src/core/lib/iomgr/grpc_if_nametoindex.h +2 -2
  409. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -3
  410. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +3 -5
  411. data/src/core/lib/iomgr/internal_errqueue.cc +5 -4
  412. data/src/core/lib/iomgr/iocp_windows.cc +13 -9
  413. data/src/core/lib/iomgr/iocp_windows.h +0 -1
  414. data/src/core/lib/iomgr/iomgr.cc +14 -19
  415. data/src/core/lib/iomgr/iomgr.h +2 -2
  416. data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
  417. data/src/core/lib/iomgr/iomgr_internal.h +2 -2
  418. data/src/core/lib/iomgr/iomgr_windows.cc +4 -2
  419. data/src/core/lib/iomgr/lockfree_event.cc +7 -8
  420. data/src/core/lib/iomgr/lockfree_event.h +1 -2
  421. data/src/core/lib/iomgr/polling_entity.cc +5 -5
  422. data/src/core/lib/iomgr/pollset.cc +2 -2
  423. data/src/core/lib/iomgr/pollset.h +0 -3
  424. data/src/core/lib/iomgr/pollset_set.cc +2 -2
  425. data/src/core/lib/iomgr/pollset_set_windows.cc +2 -2
  426. data/src/core/lib/iomgr/pollset_windows.cc +0 -2
  427. data/src/core/lib/iomgr/pollset_windows.h +0 -1
  428. data/src/core/lib/iomgr/python_util.h +1 -2
  429. data/src/core/lib/iomgr/resolve_address.cc +1 -2
  430. data/src/core/lib/iomgr/resolve_address.h +1 -2
  431. data/src/core/lib/iomgr/resolve_address_impl.h +2 -2
  432. data/src/core/lib/iomgr/resolve_address_posix.cc +7 -14
  433. data/src/core/lib/iomgr/resolve_address_posix.h +2 -2
  434. data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
  435. data/src/core/lib/iomgr/resolve_address_windows.h +2 -2
  436. data/src/core/lib/iomgr/resolved_address.h +2 -2
  437. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +3 -1
  438. data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
  439. data/src/core/lib/iomgr/socket_factory_posix.h +1 -2
  440. data/src/core/lib/iomgr/socket_mutator.cc +2 -3
  441. data/src/core/lib/iomgr/socket_mutator.h +1 -2
  442. data/src/core/lib/iomgr/socket_utils.h +2 -2
  443. data/src/core/lib/iomgr/socket_utils_common_posix.cc +28 -33
  444. data/src/core/lib/iomgr/socket_utils_posix.cc +2 -2
  445. data/src/core/lib/iomgr/socket_utils_posix.h +1 -2
  446. data/src/core/lib/iomgr/socket_windows.cc +8 -9
  447. data/src/core/lib/iomgr/tcp_client.cc +2 -2
  448. data/src/core/lib/iomgr/tcp_client.h +1 -2
  449. data/src/core/lib/iomgr/tcp_client_cfstream.cc +3 -5
  450. data/src/core/lib/iomgr/tcp_client_posix.cc +14 -19
  451. data/src/core/lib/iomgr/tcp_client_windows.cc +9 -9
  452. data/src/core/lib/iomgr/tcp_posix.cc +99 -125
  453. data/src/core/lib/iomgr/tcp_posix.h +0 -2
  454. data/src/core/lib/iomgr/tcp_server.cc +2 -2
  455. data/src/core/lib/iomgr/tcp_server.h +1 -2
  456. data/src/core/lib/iomgr/tcp_server_posix.cc +35 -38
  457. data/src/core/lib/iomgr/tcp_server_utils_posix.h +2 -2
  458. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +10 -12
  459. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -8
  460. data/src/core/lib/iomgr/tcp_server_windows.cc +25 -30
  461. data/src/core/lib/iomgr/tcp_windows.cc +33 -47
  462. data/src/core/lib/iomgr/timer.cc +2 -2
  463. data/src/core/lib/iomgr/timer.h +1 -2
  464. data/src/core/lib/iomgr/timer_generic.cc +20 -23
  465. data/src/core/lib/iomgr/timer_generic.h +0 -1
  466. data/src/core/lib/iomgr/timer_heap.cc +2 -3
  467. data/src/core/lib/iomgr/timer_manager.cc +21 -33
  468. data/src/core/lib/iomgr/timer_manager.h +2 -2
  469. data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -2
  470. data/src/core/lib/iomgr/unix_sockets_posix.h +1 -2
  471. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +3 -1
  472. data/src/core/lib/iomgr/vsock.cc +3 -3
  473. data/src/core/lib/iomgr/vsock.h +1 -2
  474. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +3 -3
  475. data/src/core/lib/matchers/matchers.cc +2 -2
  476. data/src/core/lib/matchers/matchers.h +2 -2
  477. data/src/core/lib/promise/activity.cc +4 -3
  478. data/src/core/lib/promise/activity.h +34 -11
  479. data/src/core/lib/promise/all_ok.h +2 -2
  480. data/src/core/lib/promise/arena_promise.h +2 -2
  481. data/src/core/lib/promise/cancel_callback.h +24 -0
  482. data/src/core/lib/promise/context.h +14 -3
  483. data/src/core/lib/promise/detail/basic_seq.h +1 -2
  484. data/src/core/lib/promise/detail/join_state.h +365 -408
  485. data/src/core/lib/promise/detail/promise_factory.h +2 -2
  486. data/src/core/lib/promise/detail/promise_like.h +15 -8
  487. data/src/core/lib/promise/detail/seq_state.h +1192 -1192
  488. data/src/core/lib/promise/detail/status.h +4 -3
  489. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +2 -2
  490. data/src/core/lib/promise/for_each.h +91 -30
  491. data/src/core/lib/promise/if.h +2 -2
  492. data/src/core/lib/promise/interceptor_list.h +9 -10
  493. data/src/core/lib/promise/latch.h +17 -17
  494. data/src/core/lib/promise/loop.h +2 -2
  495. data/src/core/lib/promise/map.h +19 -2
  496. data/src/core/lib/promise/observable.h +182 -0
  497. data/src/core/lib/promise/party.cc +22 -23
  498. data/src/core/lib/promise/party.h +19 -17
  499. data/src/core/lib/promise/pipe.h +31 -50
  500. data/src/core/lib/promise/poll.h +6 -5
  501. data/src/core/lib/promise/prioritized_race.h +2 -2
  502. data/src/core/lib/promise/promise.h +3 -2
  503. data/src/core/lib/promise/race.h +2 -2
  504. data/src/core/lib/promise/seq.h +2 -2
  505. data/src/core/lib/promise/sleep.cc +1 -2
  506. data/src/core/lib/promise/sleep.h +1 -2
  507. data/src/core/lib/promise/status_flag.h +10 -8
  508. data/src/core/lib/promise/try_join.h +4 -3
  509. data/src/core/lib/promise/try_seq.h +4 -3
  510. data/src/core/lib/resource_quota/api.cc +1 -2
  511. data/src/core/lib/resource_quota/api.h +1 -2
  512. data/src/core/lib/resource_quota/arena.cc +57 -81
  513. data/src/core/lib/resource_quota/arena.h +119 -211
  514. data/src/core/lib/resource_quota/connection_quota.cc +8 -9
  515. data/src/core/lib/resource_quota/connection_quota.h +2 -2
  516. data/src/core/lib/resource_quota/memory_quota.cc +20 -21
  517. data/src/core/lib/resource_quota/memory_quota.h +6 -7
  518. data/src/core/lib/resource_quota/periodic_update.cc +3 -3
  519. data/src/core/lib/resource_quota/periodic_update.h +2 -2
  520. data/src/core/lib/resource_quota/resource_quota.cc +2 -2
  521. data/src/core/lib/resource_quota/resource_quota.h +2 -3
  522. data/src/core/lib/resource_quota/thread_quota.cc +4 -3
  523. data/src/core/lib/resource_quota/thread_quota.h +2 -2
  524. data/src/core/lib/security/authorization/audit_logging.cc +6 -6
  525. data/src/core/lib/security/authorization/audit_logging.h +1 -2
  526. data/src/core/lib/security/authorization/authorization_engine.h +2 -2
  527. data/src/core/lib/security/authorization/authorization_policy_provider.h +2 -3
  528. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +2 -3
  529. data/src/core/lib/security/authorization/evaluate_args.cc +8 -11
  530. data/src/core/lib/security/authorization/evaluate_args.h +1 -2
  531. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +4 -3
  532. data/src/core/lib/security/authorization/grpc_authorization_engine.h +1 -2
  533. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +9 -11
  534. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +8 -8
  535. data/src/core/lib/security/authorization/matchers.cc +4 -5
  536. data/src/core/lib/security/authorization/matchers.h +2 -2
  537. data/src/core/lib/security/authorization/rbac_policy.cc +2 -2
  538. data/src/core/lib/security/authorization/rbac_policy.h +1 -2
  539. data/src/core/lib/security/authorization/stdout_logger.cc +4 -3
  540. data/src/core/lib/security/authorization/stdout_logger.h +1 -2
  541. data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +4 -4
  542. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +6 -6
  543. data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +2 -2
  544. data/src/core/lib/security/context/security_context.cc +17 -16
  545. data/src/core/lib/security/context/security_context.h +33 -10
  546. data/src/core/lib/security/credentials/alts/alts_credentials.cc +1 -2
  547. data/src/core/lib/security/credentials/alts/alts_credentials.h +3 -3
  548. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +4 -3
  549. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -3
  550. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +5 -6
  551. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +4 -5
  552. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +2 -2
  553. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -2
  554. data/src/core/lib/security/credentials/call_creds_util.cc +3 -3
  555. data/src/core/lib/security/credentials/call_creds_util.h +2 -2
  556. data/src/core/lib/security/credentials/channel_creds_registry.h +4 -4
  557. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +7 -5
  558. data/src/core/lib/security/credentials/composite/composite_credentials.cc +9 -8
  559. data/src/core/lib/security/credentials/composite/composite_credentials.h +3 -3
  560. data/src/core/lib/security/credentials/credentials.cc +10 -9
  561. data/src/core/lib/security/credentials/credentials.h +5 -4
  562. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +9 -8
  563. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +4 -4
  564. data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -2
  565. data/src/core/lib/security/credentials/external/aws_request_signer.h +2 -2
  566. data/src/core/lib/security/credentials/external/external_account_credentials.cc +16 -17
  567. data/src/core/lib/security/credentials/external/external_account_credentials.h +5 -5
  568. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +3 -4
  569. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +2 -2
  570. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -7
  571. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +3 -3
  572. data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
  573. data/src/core/lib/security/credentials/fake/fake_credentials.h +3 -3
  574. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +4 -5
  575. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +19 -18
  576. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +3 -3
  577. data/src/core/lib/security/credentials/iam/iam_credentials.cc +5 -5
  578. data/src/core/lib/security/credentials/iam/iam_credentials.h +3 -3
  579. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +2 -2
  580. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +2 -2
  581. data/src/core/lib/security/credentials/jwt/json_token.cc +19 -19
  582. data/src/core/lib/security/credentials/jwt/json_token.h +2 -3
  583. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +10 -8
  584. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +3 -3
  585. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +65 -69
  586. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -3
  587. data/src/core/lib/security/credentials/local/local_credentials.cc +1 -2
  588. data/src/core/lib/security/credentials/local/local_credentials.h +3 -3
  589. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
  590. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +6 -6
  591. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +9 -10
  592. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +3 -5
  593. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +28 -34
  594. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +6 -4
  595. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +26 -25
  596. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +2 -2
  597. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_match.cc +2 -2
  598. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +28 -36
  599. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +4 -4
  600. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +3 -3
  601. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +5 -4
  602. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +23 -22
  603. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +1 -0
  604. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +5 -7
  605. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.h +1 -2
  606. data/src/core/lib/security/credentials/tls/tls_credentials.cc +15 -18
  607. data/src/core/lib/security/credentials/tls/tls_credentials.h +2 -2
  608. data/src/core/lib/security/credentials/tls/tls_utils.cc +5 -6
  609. data/src/core/lib/security/credentials/tls/tls_utils.h +1 -2
  610. data/src/core/lib/security/credentials/xds/xds_credentials.cc +8 -8
  611. data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
  612. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +27 -30
  613. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +2 -2
  614. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +20 -17
  615. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -2
  616. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +6 -5
  617. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +3 -3
  618. data/src/core/lib/security/security_connector/load_system_roots.h +1 -2
  619. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +8 -8
  620. data/src/core/lib/security/security_connector/load_system_roots_supported.h +1 -2
  621. data/src/core/lib/security/security_connector/load_system_roots_windows.cc +1 -1
  622. data/src/core/lib/security/security_connector/local/local_security_connector.cc +19 -23
  623. data/src/core/lib/security/security_connector/local/local_security_connector.h +2 -2
  624. data/src/core/lib/security/security_connector/security_connector.cc +8 -10
  625. data/src/core/lib/security/security_connector/security_connector.h +4 -6
  626. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +23 -25
  627. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +2 -2
  628. data/src/core/lib/security/security_connector/ssl_utils.cc +29 -30
  629. data/src/core/lib/security/security_connector/ssl_utils.h +1 -2
  630. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +42 -53
  631. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +3 -3
  632. data/src/core/lib/security/transport/auth_filters.h +14 -13
  633. data/src/core/lib/security/transport/client_auth_filter.cc +13 -18
  634. data/src/core/lib/security/transport/server_auth_filter.cc +10 -13
  635. data/src/core/lib/security/util/json_util.cc +1 -2
  636. data/src/core/lib/security/util/json_util.h +1 -1
  637. data/src/core/lib/slice/percent_encoding.cc +4 -3
  638. data/src/core/lib/slice/slice.cc +11 -10
  639. data/src/core/lib/slice/slice.h +5 -5
  640. data/src/core/lib/slice/slice_buffer.cc +15 -14
  641. data/src/core/lib/slice/slice_buffer.h +1 -2
  642. data/src/core/lib/slice/slice_internal.h +3 -3
  643. data/src/core/lib/slice/slice_refcount.h +3 -6
  644. data/src/core/lib/slice/slice_string_helpers.cc +3 -3
  645. data/src/core/lib/slice/slice_string_helpers.h +1 -2
  646. data/src/core/lib/surface/api_trace.h +2 -5
  647. data/src/core/lib/surface/byte_buffer.cc +1 -2
  648. data/src/core/lib/surface/byte_buffer_reader.cc +4 -3
  649. data/src/core/lib/surface/call.cc +102 -3899
  650. data/src/core/lib/surface/call.h +158 -90
  651. data/src/core/lib/surface/call_details.cc +1 -2
  652. data/src/core/lib/surface/call_log_batch.cc +2 -3
  653. data/src/core/lib/surface/call_test_only.h +1 -2
  654. data/src/core/lib/surface/call_utils.cc +276 -0
  655. data/src/core/lib/surface/call_utils.h +449 -0
  656. data/src/core/lib/surface/channel.cc +17 -11
  657. data/src/core/lib/surface/channel.h +12 -10
  658. data/src/core/lib/surface/channel_create.cc +18 -9
  659. data/src/core/lib/surface/channel_create.h +5 -4
  660. data/src/core/lib/surface/channel_init.cc +27 -83
  661. data/src/core/lib/surface/channel_init.h +27 -100
  662. data/src/core/lib/surface/channel_stack_type.cc +2 -2
  663. data/src/core/lib/surface/client_call.cc +419 -0
  664. data/src/core/lib/surface/client_call.h +180 -0
  665. data/src/core/lib/surface/completion_queue.cc +45 -51
  666. data/src/core/lib/surface/completion_queue.h +1 -10
  667. data/src/core/lib/surface/completion_queue_factory.cc +9 -8
  668. data/src/core/lib/surface/completion_queue_factory.h +1 -2
  669. data/src/core/lib/surface/event_string.cc +2 -2
  670. data/src/core/lib/surface/event_string.h +1 -2
  671. data/src/core/lib/surface/filter_stack_call.cc +1157 -0
  672. data/src/core/lib/surface/filter_stack_call.h +369 -0
  673. data/src/core/lib/surface/init.cc +8 -8
  674. data/src/core/lib/surface/init_internally.cc +2 -2
  675. data/src/core/lib/surface/lame_client.cc +10 -13
  676. data/src/core/lib/surface/lame_client.h +6 -11
  677. data/src/core/lib/surface/legacy_channel.cc +52 -39
  678. data/src/core/lib/surface/legacy_channel.h +11 -21
  679. data/src/core/lib/surface/metadata_array.cc +1 -2
  680. data/src/core/lib/surface/server_call.cc +222 -0
  681. data/src/core/lib/surface/server_call.h +167 -0
  682. data/src/core/lib/surface/validate_metadata.cc +1 -2
  683. data/src/core/lib/surface/validate_metadata.h +3 -3
  684. data/src/core/lib/surface/version.cc +3 -4
  685. data/src/core/lib/transport/bdp_estimator.cc +7 -7
  686. data/src/core/lib/transport/bdp_estimator.h +6 -8
  687. data/src/core/lib/transport/{call_size_estimator.cc → call_arena_allocator.cc} +3 -3
  688. data/src/core/lib/transport/{call_size_estimator.h → call_arena_allocator.h} +29 -6
  689. data/src/core/lib/transport/call_destination.h +76 -0
  690. data/src/core/lib/transport/call_filters.cc +54 -21
  691. data/src/core/lib/transport/call_filters.h +240 -84
  692. data/src/core/lib/transport/call_final_info.cc +2 -2
  693. data/src/core/lib/transport/call_final_info.h +1 -2
  694. data/src/core/lib/transport/call_spine.cc +17 -19
  695. data/src/core/lib/transport/call_spine.h +238 -215
  696. data/src/core/lib/transport/connectivity_state.cc +9 -12
  697. data/src/core/lib/transport/connectivity_state.h +1 -4
  698. data/src/core/lib/transport/error_utils.cc +1 -2
  699. data/src/core/lib/transport/error_utils.h +1 -2
  700. data/src/core/lib/transport/interception_chain.cc +155 -0
  701. data/src/core/lib/transport/interception_chain.h +236 -0
  702. data/src/core/lib/transport/message.cc +1 -2
  703. data/src/core/lib/transport/metadata.cc +2 -2
  704. data/src/core/lib/transport/metadata_batch.cc +2 -2
  705. data/src/core/lib/transport/metadata_batch.h +43 -5
  706. data/src/core/lib/transport/metadata_compression_traits.h +2 -2
  707. data/src/core/lib/transport/metadata_info.cc +2 -2
  708. data/src/core/lib/transport/metadata_info.h +1 -1
  709. data/src/core/lib/transport/parsed_metadata.cc +2 -2
  710. data/src/core/lib/transport/parsed_metadata.h +1 -2
  711. data/src/core/lib/transport/simple_slice_based_metadata.h +2 -2
  712. data/src/core/lib/transport/status_conversion.cc +2 -2
  713. data/src/core/lib/transport/status_conversion.h +1 -2
  714. data/src/core/lib/transport/timeout_encoding.cc +5 -5
  715. data/src/core/lib/transport/timeout_encoding.h +2 -2
  716. data/src/core/lib/transport/transport.cc +4 -8
  717. data/src/core/lib/transport/transport.h +80 -74
  718. data/src/core/lib/transport/transport_op_string.cc +1 -2
  719. data/src/core/lib/uri/uri_parser.cc +3 -3
  720. data/src/core/lib/uri/uri_parser.h +2 -2
  721. data/src/core/load_balancing/address_filtering.cc +2 -2
  722. data/src/core/load_balancing/address_filtering.h +2 -2
  723. data/src/core/load_balancing/backend_metric_data.h +2 -2
  724. data/src/core/load_balancing/backend_metric_parser.cc +2 -2
  725. data/src/core/load_balancing/backend_metric_parser.h +2 -2
  726. data/src/core/load_balancing/child_policy_handler.cc +14 -14
  727. data/src/core/load_balancing/child_policy_handler.h +2 -2
  728. data/src/core/load_balancing/delegating_helper.h +2 -3
  729. data/src/core/load_balancing/endpoint_list.cc +11 -13
  730. data/src/core/load_balancing/endpoint_list.h +16 -10
  731. data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +29 -30
  732. data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +20 -8
  733. data/src/core/load_balancing/grpclb/grpclb.cc +65 -70
  734. data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc +3 -3
  735. data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.h +1 -2
  736. data/src/core/load_balancing/grpclb/grpclb_client_stats.cc +1 -2
  737. data/src/core/load_balancing/grpclb/grpclb_client_stats.h +1 -2
  738. data/src/core/load_balancing/grpclb/load_balancer_api.cc +4 -6
  739. data/src/core/load_balancing/grpclb/load_balancer_api.h +2 -3
  740. data/src/core/load_balancing/health_check_client.cc +14 -18
  741. data/src/core/load_balancing/health_check_client.h +2 -2
  742. data/src/core/load_balancing/health_check_client_internal.h +1 -2
  743. data/src/core/load_balancing/lb_policy.cc +7 -10
  744. data/src/core/load_balancing/lb_policy.h +20 -5
  745. data/src/core/load_balancing/lb_policy_factory.h +3 -3
  746. data/src/core/load_balancing/lb_policy_registry.cc +5 -6
  747. data/src/core/load_balancing/lb_policy_registry.h +3 -3
  748. data/src/core/load_balancing/oob_backend_metric.cc +6 -9
  749. data/src/core/load_balancing/oob_backend_metric.h +2 -2
  750. data/src/core/load_balancing/oob_backend_metric_internal.h +1 -2
  751. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +36 -38
  752. data/src/core/load_balancing/outlier_detection/outlier_detection.h +5 -5
  753. data/src/core/load_balancing/pick_first/pick_first.cc +1141 -156
  754. data/src/core/load_balancing/priority/priority.cc +41 -38
  755. data/src/core/load_balancing/ring_hash/ring_hash.cc +45 -30
  756. data/src/core/load_balancing/ring_hash/ring_hash.h +5 -5
  757. data/src/core/load_balancing/rls/rls.cc +106 -99
  758. data/src/core/load_balancing/round_robin/round_robin.cc +43 -35
  759. data/src/core/load_balancing/subchannel_interface.h +1 -2
  760. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +4 -4
  761. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.h +2 -2
  762. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +79 -58
  763. data/src/core/load_balancing/weighted_target/weighted_target.cc +29 -32
  764. data/src/core/load_balancing/weighted_target/weighted_target.h +1 -1
  765. data/src/core/load_balancing/xds/cds.cc +25 -28
  766. data/src/core/load_balancing/xds/xds_cluster_impl.cc +28 -28
  767. data/src/core/load_balancing/xds/xds_cluster_manager.cc +17 -20
  768. data/src/core/load_balancing/xds/xds_override_host.cc +46 -47
  769. data/src/core/load_balancing/xds/xds_override_host.h +5 -5
  770. data/src/core/load_balancing/xds/xds_wrr_locality.cc +12 -15
  771. data/src/core/plugin_registry/grpc_plugin_registry.cc +11 -10
  772. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +1 -2
  773. data/src/core/resolver/binder/binder_resolver.cc +7 -6
  774. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +8 -8
  775. data/src/core/resolver/dns/c_ares/dns_resolver_ares.h +2 -2
  776. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +3 -3
  777. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -3
  778. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +36 -35
  779. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +20 -27
  780. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +2 -7
  781. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +1 -1
  782. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +2 -2
  783. data/src/core/resolver/dns/dns_resolver_plugin.cc +10 -10
  784. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +9 -14
  785. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h +3 -3
  786. data/src/core/resolver/dns/event_engine/service_config_helper.cc +7 -7
  787. data/src/core/resolver/dns/event_engine/service_config_helper.h +2 -2
  788. data/src/core/resolver/dns/native/dns_resolver.cc +11 -13
  789. data/src/core/resolver/endpoint_addresses.cc +5 -5
  790. data/src/core/resolver/endpoint_addresses.h +2 -2
  791. data/src/core/resolver/fake/fake_resolver.cc +5 -5
  792. data/src/core/resolver/fake/fake_resolver.h +2 -3
  793. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +22 -23
  794. data/src/core/resolver/polling_resolver.cc +35 -40
  795. data/src/core/resolver/polling_resolver.h +1 -2
  796. data/src/core/resolver/resolver.cc +3 -7
  797. data/src/core/resolver/resolver.h +2 -4
  798. data/src/core/resolver/resolver_factory.h +3 -3
  799. data/src/core/resolver/resolver_registry.cc +11 -13
  800. data/src/core/resolver/resolver_registry.h +3 -3
  801. data/src/core/resolver/sockaddr/sockaddr_resolver.cc +5 -6
  802. data/src/core/resolver/xds/xds_dependency_manager.cc +27 -27
  803. data/src/core/resolver/xds/xds_dependency_manager.h +7 -7
  804. data/src/core/resolver/xds/xds_resolver.cc +32 -39
  805. data/src/core/resolver/xds/xds_resolver_attributes.h +2 -2
  806. data/src/core/{lib/surface → server}/server.cc +306 -424
  807. data/src/core/{lib/surface → server}/server.h +43 -26
  808. data/src/core/{lib/channel → server}/server_call_tracer_filter.cc +16 -20
  809. data/src/core/{lib/channel → server}/server_call_tracer_filter.h +3 -3
  810. data/src/core/{ext/filters/server_config_selector → server}/server_config_selector.h +6 -6
  811. data/src/core/{ext/filters/server_config_selector → server}/server_config_selector_filter.cc +39 -40
  812. data/src/core/{ext/filters/server_config_selector → server}/server_config_selector_filter.h +3 -3
  813. data/src/core/{lib/surface → server}/server_interface.h +6 -4
  814. data/src/core/{ext/xds → server}/xds_channel_stack_modifier.cc +4 -4
  815. data/src/core/{ext/xds → server}/xds_channel_stack_modifier.h +5 -6
  816. data/src/core/{ext/xds → server}/xds_server_config_fetcher.cc +24 -26
  817. data/src/core/service_config/service_config.h +2 -3
  818. data/src/core/service_config/service_config_call_data.h +15 -13
  819. data/src/core/service_config/service_config_channel_arg_filter.cc +12 -11
  820. data/src/core/service_config/service_config_impl.cc +7 -7
  821. data/src/core/service_config/service_config_impl.h +4 -4
  822. data/src/core/service_config/service_config_parser.cc +4 -8
  823. data/src/core/service_config/service_config_parser.h +3 -3
  824. data/src/core/{lib/channel → telemetry}/call_tracer.cc +25 -35
  825. data/src/core/{lib/channel → telemetry}/call_tracer.h +33 -11
  826. data/src/core/{lib/debug → telemetry}/histogram_view.cc +2 -2
  827. data/src/core/{lib/debug → telemetry}/histogram_view.h +5 -5
  828. data/src/core/telemetry/metrics.cc +178 -0
  829. data/src/core/telemetry/metrics.h +562 -0
  830. data/src/core/{lib/debug → telemetry}/stats.cc +3 -3
  831. data/src/core/{lib/debug → telemetry}/stats.h +7 -7
  832. data/src/core/{lib/debug → telemetry}/stats_data.cc +3 -3
  833. data/src/core/{lib/debug → telemetry}/stats_data.h +6 -6
  834. data/src/core/{lib/channel → telemetry}/tcp_tracer.h +5 -5
  835. data/src/core/tsi/alts/crypt/aes_gcm.cc +1 -2
  836. data/src/core/tsi/alts/crypt/gsec.cc +1 -2
  837. data/src/core/tsi/alts/crypt/gsec.h +1 -2
  838. data/src/core/tsi/alts/frame_protector/alts_counter.cc +1 -2
  839. data/src/core/tsi/alts/frame_protector/alts_counter.h +1 -2
  840. data/src/core/tsi/alts/frame_protector/alts_crypter.cc +1 -2
  841. data/src/core/tsi/alts/frame_protector/alts_crypter.h +1 -2
  842. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +13 -15
  843. data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +2 -2
  844. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +1 -2
  845. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +1 -2
  846. data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +1 -2
  847. data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +1 -2
  848. data/src/core/tsi/alts/frame_protector/frame_handler.cc +1 -2
  849. data/src/core/tsi/alts/frame_protector/frame_handler.h +2 -2
  850. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +63 -64
  851. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -2
  852. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +5 -4
  853. data/src/core/tsi/alts/handshaker/alts_shared_resource.h +1 -2
  854. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +54 -53
  855. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -2
  856. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +7 -5
  857. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -2
  858. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +4 -3
  859. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +1 -2
  860. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +10 -8
  861. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +2 -2
  862. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +6 -5
  863. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +2 -2
  864. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +1 -2
  865. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +10 -6
  866. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +1 -2
  867. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +2 -2
  868. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +9 -7
  869. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +2 -2
  870. data/src/core/tsi/fake_transport_security.cc +20 -21
  871. data/src/core/tsi/local_transport_security.cc +7 -7
  872. data/src/core/tsi/local_transport_security.h +1 -2
  873. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +6 -5
  874. data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +1 -2
  875. data/src/core/tsi/ssl/session_cache/ssl_session.h +1 -2
  876. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +15 -14
  877. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +1 -2
  878. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +3 -4
  879. data/src/core/tsi/ssl_transport_security.cc +96 -100
  880. data/src/core/tsi/ssl_transport_security.h +1 -2
  881. data/src/core/tsi/ssl_transport_security_utils.cc +85 -28
  882. data/src/core/tsi/ssl_transport_security_utils.h +12 -2
  883. data/src/core/tsi/ssl_types.h +2 -2
  884. data/src/core/tsi/transport_security.cc +1 -6
  885. data/src/core/tsi/transport_security.h +2 -4
  886. data/src/core/tsi/transport_security_grpc.cc +2 -2
  887. data/src/core/tsi/transport_security_grpc.h +1 -2
  888. data/src/core/tsi/transport_security_interface.h +2 -6
  889. data/src/core/{lib/gpr → util}/alloc.cc +3 -1
  890. data/src/core/{lib/gpr → util}/alloc.h +3 -3
  891. data/src/core/{lib/gpr → util}/android/log.cc +0 -19
  892. data/src/core/{lib/gpr → util}/atm.cc +1 -1
  893. data/src/core/{ext/gcp/metadata_query.cc → util/gcp_metadata_query.cc} +26 -26
  894. data/src/core/{ext/gcp/metadata_query.h → util/gcp_metadata_query.h} +9 -9
  895. data/src/core/{lib/http → util/http_client}/format_request.cc +2 -2
  896. data/src/core/{lib/http → util/http_client}/format_request.h +4 -4
  897. data/src/core/{lib/http → util/http_client}/httpcli.cc +12 -13
  898. data/src/core/{lib/http → util/http_client}/httpcli.h +5 -5
  899. data/src/core/{lib/http → util/http_client}/httpcli_security_connector.cc +10 -10
  900. data/src/core/{lib/http → util/http_client}/httpcli_ssl_credentials.h +3 -3
  901. data/src/core/{lib/http → util/http_client}/parser.cc +6 -7
  902. data/src/core/{lib/http → util/http_client}/parser.h +3 -5
  903. data/src/core/{lib → util}/json/json.h +3 -3
  904. data/src/core/{lib → util}/json/json_args.h +3 -3
  905. data/src/core/{lib → util}/json/json_channel_args.h +4 -4
  906. data/src/core/{lib → util}/json/json_object_loader.cc +1 -1
  907. data/src/core/{lib → util}/json/json_object_loader.h +5 -5
  908. data/src/core/{lib → util}/json/json_reader.cc +4 -3
  909. data/src/core/{lib → util}/json/json_reader.h +4 -4
  910. data/src/core/{lib → util}/json/json_util.cc +3 -3
  911. data/src/core/{lib → util}/json/json_util.h +4 -4
  912. data/src/core/{lib → util}/json/json_writer.cc +1 -1
  913. data/src/core/{lib → util}/json/json_writer.h +4 -4
  914. data/src/core/{lib/gpr → util}/linux/log.cc +0 -45
  915. data/src/core/util/log.cc +167 -0
  916. data/src/core/{lib/gpr → util}/msys/tmpfile.cc +2 -2
  917. data/src/core/{lib/gpr → util}/posix/cpu.cc +1 -1
  918. data/src/core/{lib/gpr → util}/posix/log.cc +0 -42
  919. data/src/core/{lib/gpr → util}/posix/sync.cc +25 -23
  920. data/src/core/{lib/gpr → util}/posix/time.cc +10 -7
  921. data/src/core/{lib/gpr → util}/posix/tmpfile.cc +5 -3
  922. data/src/core/{lib/gpr → util}/spinlock.h +3 -3
  923. data/src/core/{lib/gpr → util}/string.cc +2 -2
  924. data/src/core/{lib/gpr → util}/string.h +3 -3
  925. data/src/core/{lib/gpr → util}/sync.cc +5 -3
  926. data/src/core/{lib/gpr → util}/time.cc +10 -8
  927. data/src/core/{lib/gpr → util}/time_precise.cc +1 -1
  928. data/src/core/{lib/gpr → util}/time_precise.h +3 -3
  929. data/src/core/{lib/gpr → util}/tmpfile.h +3 -3
  930. data/src/core/{lib/gpr → util}/useful.h +3 -3
  931. data/src/core/{lib/gpr → util}/windows/log.cc +1 -44
  932. data/src/core/{lib/gpr → util}/windows/string.cc +1 -1
  933. data/src/core/{lib/gpr → util}/windows/string_util.cc +1 -1
  934. data/src/core/{lib/gpr → util}/windows/sync.cc +3 -1
  935. data/src/core/{lib/gpr → util}/windows/time.cc +5 -2
  936. data/src/core/{lib/gpr → util}/windows/tmpfile.cc +1 -1
  937. data/src/core/{ext/xds → xds/grpc}/certificate_provider_store.cc +5 -6
  938. data/src/core/{ext/xds → xds/grpc}/certificate_provider_store.h +8 -9
  939. data/src/core/{ext/xds → xds/grpc}/file_watcher_certificate_provider_factory.cc +5 -6
  940. data/src/core/{ext/xds → xds/grpc}/file_watcher_certificate_provider_factory.h +7 -8
  941. data/src/core/{ext/xds → xds/grpc}/upb_utils.h +5 -5
  942. data/src/core/{ext/xds → xds/grpc}/xds_audit_logger_registry.cc +4 -4
  943. data/src/core/{ext/xds → xds/grpc}/xds_audit_logger_registry.h +7 -7
  944. data/src/core/{ext/xds → xds/grpc}/xds_bootstrap_grpc.cc +7 -8
  945. data/src/core/{ext/xds → xds/grpc}/xds_bootstrap_grpc.h +14 -14
  946. data/src/core/{ext/xds → xds/grpc}/xds_certificate_provider.cc +5 -5
  947. data/src/core/{ext/xds → xds/grpc}/xds_certificate_provider.h +5 -6
  948. data/src/core/{ext/xds → xds/grpc}/xds_client_grpc.cc +51 -34
  949. data/src/core/{ext/xds → xds/grpc}/xds_client_grpc.h +10 -11
  950. data/src/core/{ext/xds → xds/grpc}/xds_cluster.cc +22 -14
  951. data/src/core/{ext/xds → xds/grpc}/xds_cluster.h +12 -13
  952. data/src/core/{ext/xds → xds/grpc}/xds_cluster_specifier_plugin.cc +6 -6
  953. data/src/core/{ext/xds → xds/grpc}/xds_cluster_specifier_plugin.h +7 -7
  954. data/src/core/{ext/xds → xds/grpc}/xds_common_types.cc +6 -7
  955. data/src/core/{ext/xds → xds/grpc}/xds_common_types.h +7 -7
  956. data/src/core/{ext/xds → xds/grpc}/xds_endpoint.cc +11 -12
  957. data/src/core/{ext/xds → xds/grpc}/xds_endpoint.h +9 -9
  958. data/src/core/{ext/xds → xds/grpc}/xds_health_status.cc +3 -3
  959. data/src/core/{ext/xds → xds/grpc}/xds_health_status.h +5 -5
  960. data/src/core/{ext/xds → xds/grpc}/xds_http_fault_filter.cc +6 -7
  961. data/src/core/{ext/xds → xds/grpc}/xds_http_fault_filter.h +8 -8
  962. data/src/core/{ext/xds → xds/grpc}/xds_http_filters.cc +8 -9
  963. data/src/core/{ext/xds → xds/grpc}/xds_http_filters.h +9 -9
  964. data/src/core/{ext/xds → xds/grpc}/xds_http_rbac_filter.cc +9 -10
  965. data/src/core/{ext/xds → xds/grpc}/xds_http_rbac_filter.h +8 -8
  966. data/src/core/{ext/xds → xds/grpc}/xds_http_stateful_session_filter.cc +7 -8
  967. data/src/core/{ext/xds → xds/grpc}/xds_http_stateful_session_filter.h +8 -8
  968. data/src/core/{ext/xds → xds/grpc}/xds_lb_policy_registry.cc +3 -4
  969. data/src/core/{ext/xds → xds/grpc}/xds_lb_policy_registry.h +7 -7
  970. data/src/core/{ext/xds → xds/grpc}/xds_listener.cc +12 -14
  971. data/src/core/{ext/xds → xds/grpc}/xds_listener.h +12 -12
  972. data/src/core/{ext/xds → xds/grpc}/xds_route_config.cc +23 -24
  973. data/src/core/{ext/xds → xds/grpc}/xds_route_config.h +11 -11
  974. data/src/core/{ext/xds → xds/grpc}/xds_routing.cc +6 -6
  975. data/src/core/{ext/xds → xds/grpc}/xds_routing.h +8 -8
  976. data/src/core/{ext/xds → xds/grpc}/xds_transport_grpc.cc +16 -16
  977. data/src/core/{ext/xds → xds/grpc}/xds_transport_grpc.h +7 -8
  978. data/src/core/{ext/xds → xds/xds_client}/xds_api.cc +9 -14
  979. data/src/core/{ext/xds → xds/xds_client}/xds_api.h +7 -7
  980. data/src/core/{ext/xds → xds/xds_client}/xds_bootstrap.cc +4 -4
  981. data/src/core/{ext/xds → xds/xds_client}/xds_bootstrap.h +6 -6
  982. data/src/core/{ext/xds → xds/xds_client}/xds_channel_args.h +3 -3
  983. data/src/core/{ext/xds → xds/xds_client}/xds_client.cc +60 -62
  984. data/src/core/{ext/xds → xds/xds_client}/xds_client.h +10 -14
  985. data/src/core/{ext/xds → xds/xds_client}/xds_client_stats.cc +23 -22
  986. data/src/core/{ext/xds → xds/xds_client}/xds_client_stats.h +8 -8
  987. data/src/core/{ext/xds → xds/xds_client}/xds_metrics.h +7 -5
  988. data/src/core/{ext/xds → xds/xds_client}/xds_resource_type.h +6 -6
  989. data/src/core/{ext/xds → xds/xds_client}/xds_resource_type_impl.h +7 -7
  990. data/src/core/{ext/xds → xds/xds_client}/xds_transport.h +6 -6
  991. data/src/ruby/bin/math_pb.rb +1 -22
  992. data/src/ruby/ext/grpc/rb_call.c +8 -1
  993. data/src/ruby/ext/grpc/rb_call_credentials.c +1 -0
  994. data/src/ruby/ext/grpc/rb_call_credentials.h +1 -0
  995. data/src/ruby/ext/grpc/rb_channel.c +1 -0
  996. data/src/ruby/ext/grpc/rb_channel_credentials.c +1 -0
  997. data/src/ruby/ext/grpc/rb_completion_queue.c +15 -32
  998. data/src/ruby/ext/grpc/rb_completion_queue.h +7 -1
  999. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +130 -130
  1000. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +198 -197
  1001. data/src/ruby/ext/grpc/rb_server.c +40 -22
  1002. data/src/ruby/ext/grpc/rb_server_credentials.c +1 -0
  1003. data/src/ruby/ext/grpc/rb_server_credentials.h +1 -0
  1004. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +1 -0
  1005. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +1 -0
  1006. data/src/ruby/ext/grpc/rb_xds_server_credentials.h +1 -0
  1007. data/src/ruby/lib/grpc/version.rb +1 -1
  1008. data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -22
  1009. data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +5 -5
  1010. data/src/ruby/pb/grpc/testing/metrics_pb.rb +10 -19
  1011. data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +5 -5
  1012. data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -22
  1013. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -22
  1014. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -22
  1015. data/third_party/abseil-cpp/absl/log/check.h +209 -0
  1016. data/third_party/abseil-cpp/absl/log/internal/check_impl.h +150 -0
  1017. data/third_party/abseil-cpp/absl/log/internal/check_op.cc +118 -0
  1018. data/third_party/abseil-cpp/absl/log/internal/check_op.h +420 -0
  1019. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +4 -0
  1020. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +13 -18
  1021. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +25 -10
  1022. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +3 -18
  1023. data/third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.c +3 -2
  1024. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +1 -1
  1025. data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +19 -15
  1026. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +7 -0
  1027. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_des.c +48 -66
  1028. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +7 -3
  1029. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +20 -28
  1030. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +9 -4
  1031. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +2 -2
  1032. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +66 -41
  1033. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.c +4 -1
  1034. data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.c +0 -15
  1035. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +7 -61
  1036. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +7 -7
  1037. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +1 -0
  1038. data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +1539 -0
  1039. data/third_party/boringssl-with-bazel/src/crypto/dilithium/internal.h +58 -0
  1040. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +36 -20
  1041. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +3 -4
  1042. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +2 -0
  1043. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +81 -60
  1044. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +41 -120
  1045. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +13 -13
  1046. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +7 -0
  1047. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh.c +137 -0
  1048. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.c +120 -0
  1049. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +30 -0
  1050. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +3 -4
  1051. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +30 -0
  1052. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +1 -4
  1053. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +30 -0
  1054. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +1 -4
  1055. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +6 -7
  1056. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +21 -0
  1057. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +31 -7
  1058. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +5 -2
  1059. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +1 -1
  1060. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +3 -3
  1061. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +1 -1
  1062. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +46 -2
  1063. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +8 -5
  1064. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +33 -23
  1065. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +1 -1
  1066. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +2 -2
  1067. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +14 -7
  1068. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +2 -1
  1069. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +0 -3
  1070. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +11 -7
  1071. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +5 -0
  1072. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +5 -1
  1073. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +3 -6
  1074. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +2 -1
  1075. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +11 -11
  1076. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +22 -8
  1077. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +6 -4
  1078. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +3 -6
  1079. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +78 -29
  1080. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +4 -4
  1081. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +3 -3
  1082. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +10 -4
  1083. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +7 -0
  1084. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +2 -0
  1085. data/third_party/boringssl-with-bazel/src/crypto/internal.h +62 -27
  1086. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +1 -1
  1087. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +2 -1
  1088. data/third_party/boringssl-with-bazel/src/crypto/mem.c +18 -9
  1089. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +18 -17
  1090. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +44 -41
  1091. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +13 -12
  1092. data/third_party/boringssl-with-bazel/src/crypto/spx/spx.c +7 -6
  1093. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +26 -33
  1094. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +1 -1
  1095. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +4 -5
  1096. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +5 -1
  1097. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_cpols.c +9 -4
  1098. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_crld.c +2 -2
  1099. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_info.c +1 -1
  1100. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_lib.c +2 -0
  1101. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c +49 -16
  1102. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -10
  1103. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +21 -25
  1104. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +8 -25
  1105. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +2 -2
  1106. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +1 -6
  1107. data/third_party/boringssl-with-bazel/{err_data.c → src/gen/crypto/err_data.c} +487 -485
  1108. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -1
  1109. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +85 -42
  1110. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +12 -4
  1111. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +10 -11
  1112. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +17 -1
  1113. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +10 -3
  1114. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +13 -0
  1115. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +25 -14
  1116. data/third_party/boringssl-with-bazel/src/include/openssl/evp_errors.h +1 -0
  1117. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +15 -3
  1118. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +131 -0
  1119. data/third_party/boringssl-with-bazel/src/include/openssl/{kyber.h → experimental/kyber.h} +10 -0
  1120. data/third_party/boringssl-with-bazel/src/{crypto/spx/internal.h → include/openssl/experimental/spx.h} +24 -13
  1121. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +2 -2
  1122. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +63 -53
  1123. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +19 -10
  1124. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +26 -12
  1125. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +358 -102
  1126. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +10 -3
  1127. data/third_party/boringssl-with-bazel/src/include/openssl/target.h +13 -10
  1128. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +2 -2
  1129. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +2931 -2453
  1130. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +6 -8
  1131. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +4 -4
  1132. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +1 -1
  1133. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +19 -18
  1134. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +3 -9
  1135. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +64 -58
  1136. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +1 -1
  1137. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +17 -7
  1138. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +69 -16
  1139. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +145 -114
  1140. data/third_party/boringssl-with-bazel/src/ssl/internal.h +243 -189
  1141. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +1 -1
  1142. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -1
  1143. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +59 -385
  1144. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +21 -19
  1145. data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +423 -0
  1146. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +2 -2
  1147. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +2 -1
  1148. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +108 -81
  1149. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +116 -93
  1150. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +6 -14
  1151. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +1 -1
  1152. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +48 -116
  1153. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +21 -27
  1154. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +36 -3
  1155. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +53 -18
  1156. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +1 -1
  1157. metadata +207 -196
  1158. data/src/core/client_channel/client_channel_channelz.cc +0 -93
  1159. data/src/core/client_channel/client_channel_channelz.h +0 -85
  1160. data/src/core/ext/filters/deadline/deadline_filter.cc +0 -407
  1161. data/src/core/ext/filters/deadline/deadline_filter.h +0 -85
  1162. data/src/core/ext/transport/chttp2/transport/http_trace.cc +0 -19
  1163. data/src/core/ext/transport/chttp2/transport/http_trace.h +0 -24
  1164. data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -23
  1165. data/src/core/lib/channel/channel_stack_trace.cc +0 -19
  1166. data/src/core/lib/channel/channel_stack_trace.h +0 -24
  1167. data/src/core/lib/channel/context.h +0 -77
  1168. data/src/core/lib/channel/metrics.cc +0 -396
  1169. data/src/core/lib/channel/metrics.h +0 -406
  1170. data/src/core/lib/event_engine/trace.cc +0 -25
  1171. data/src/core/lib/gpr/log.cc +0 -166
  1172. data/src/core/lib/gpr/log_internal.h +0 -55
  1173. data/src/core/lib/iomgr/ev_windows.cc +0 -30
  1174. data/src/core/lib/promise/trace.cc +0 -20
  1175. data/src/core/lib/promise/trace.h +0 -24
  1176. data/src/core/lib/resource_quota/trace.cc +0 -19
  1177. data/src/core/lib/resource_quota/trace.h +0 -24
  1178. data/src/core/lib/security/transport/tsi_error.cc +0 -31
  1179. data/src/core/lib/security/transport/tsi_error.h +0 -30
  1180. data/src/core/lib/slice/slice_refcount.cc +0 -20
  1181. data/src/core/lib/surface/api_trace.cc +0 -25
  1182. data/src/core/lib/surface/call_trace.h +0 -24
  1183. data/src/core/lib/surface/wait_for_cq_end_op.cc +0 -75
  1184. data/src/core/lib/surface/wait_for_cq_end_op.h +0 -72
  1185. data/src/core/lib/transport/batch_builder.cc +0 -170
  1186. data/src/core/lib/transport/batch_builder.h +0 -476
  1187. data/src/core/resolver/xds/xds_resolver_trace.cc +0 -25
  1188. data/src/core/resolver/xds/xds_resolver_trace.h +0 -30
  1189. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -122
  1190. data/third_party/boringssl-with-bazel/src/include/openssl/pki/certificate.h +0 -83
  1191. data/third_party/boringssl-with-bazel/src/include/openssl/pki/signature_verify_cache.h +0 -41
  1192. /data/src/core/{lib/gpr → util}/iphone/cpu.cc +0 -0
  1193. /data/src/core/{lib/gpr → util}/linux/cpu.cc +0 -0
  1194. /data/src/core/{lib/gpr → util}/posix/string.cc +0 -0
  1195. /data/src/core/{lib/gpr → util}/sync_abseil.cc +0 -0
  1196. /data/src/core/{lib/gpr → util}/windows/cpu.cc +0 -0
@@ -14,8 +14,6 @@
14
14
  // limitations under the License.
15
15
  //
16
16
 
17
- #include <grpc/support/port_platform.h>
18
-
19
17
  #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
20
18
 
21
19
  #include <inttypes.h>
@@ -36,6 +34,8 @@
36
34
  #include "absl/base/attributes.h"
37
35
  #include "absl/container/flat_hash_map.h"
38
36
  #include "absl/hash/hash.h"
37
+ #include "absl/log/check.h"
38
+ #include "absl/log/log.h"
39
39
  #include "absl/meta/type_traits.h"
40
40
  #include "absl/random/random.h"
41
41
  #include "absl/status/status.h"
@@ -54,6 +54,7 @@
54
54
  #include <grpc/status.h>
55
55
  #include <grpc/support/alloc.h>
56
56
  #include <grpc/support/log.h>
57
+ #include <grpc/support/port_platform.h>
57
58
  #include <grpc/support/time.h>
58
59
 
59
60
  #include "src/core/ext/transport/chttp2/transport/context_list_entry.h"
@@ -63,7 +64,6 @@
63
64
  #include "src/core/ext/transport/chttp2/transport/frame_rst_stream.h"
64
65
  #include "src/core/ext/transport/chttp2/transport/hpack_encoder.h"
65
66
  #include "src/core/ext/transport/chttp2/transport/http2_settings.h"
66
- #include "src/core/ext/transport/chttp2/transport/http_trace.h"
67
67
  #include "src/core/ext/transport/chttp2/transport/internal.h"
68
68
  #include "src/core/ext/transport/chttp2/transport/legacy_frame.h"
69
69
  #include "src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.h"
@@ -72,24 +72,21 @@
72
72
  #include "src/core/ext/transport/chttp2/transport/ping_rate_policy.h"
73
73
  #include "src/core/ext/transport/chttp2/transport/varint.h"
74
74
  #include "src/core/ext/transport/chttp2/transport/write_size_policy.h"
75
- #include "src/core/lib/channel/call_tracer.h"
76
75
  #include "src/core/lib/channel/channel_args.h"
77
- #include "src/core/lib/channel/context.h"
78
- #include "src/core/lib/channel/tcp_tracer.h"
79
- #include "src/core/lib/debug/stats.h"
80
- #include "src/core/lib/debug/stats_data.h"
76
+ #include "src/core/lib/config/config_vars.h"
77
+ #include "src/core/lib/event_engine/extensions/tcp_trace.h"
78
+ #include "src/core/lib/event_engine/query_extensions.h"
81
79
  #include "src/core/lib/experiments/experiments.h"
82
- #include "src/core/lib/gpr/string.h"
83
- #include "src/core/lib/gpr/useful.h"
84
80
  #include "src/core/lib/gprpp/bitset.h"
85
81
  #include "src/core/lib/gprpp/crash.h"
86
82
  #include "src/core/lib/gprpp/debug_location.h"
87
83
  #include "src/core/lib/gprpp/ref_counted.h"
88
84
  #include "src/core/lib/gprpp/status_helper.h"
89
85
  #include "src/core/lib/gprpp/time.h"
90
- #include "src/core/lib/http/parser.h"
91
86
  #include "src/core/lib/iomgr/combiner.h"
92
87
  #include "src/core/lib/iomgr/error.h"
88
+ #include "src/core/lib/iomgr/ev_posix.h"
89
+ #include "src/core/lib/iomgr/event_engine_shims/endpoint.h"
93
90
  #include "src/core/lib/iomgr/exec_ctx.h"
94
91
  #include "src/core/lib/iomgr/iomgr_fwd.h"
95
92
  #include "src/core/lib/iomgr/port.h"
@@ -97,7 +94,6 @@
97
94
  #include "src/core/lib/resource_quota/arena.h"
98
95
  #include "src/core/lib/resource_quota/memory_quota.h"
99
96
  #include "src/core/lib/resource_quota/resource_quota.h"
100
- #include "src/core/lib/resource_quota/trace.h"
101
97
  #include "src/core/lib/slice/slice.h"
102
98
  #include "src/core/lib/slice/slice_buffer.h"
103
99
  #include "src/core/lib/slice/slice_internal.h"
@@ -109,10 +105,13 @@
109
105
  #include "src/core/lib/transport/metadata_info.h"
110
106
  #include "src/core/lib/transport/status_conversion.h"
111
107
  #include "src/core/lib/transport/transport.h"
112
-
113
- #ifdef GRPC_POSIX_SOCKET_TCP
114
- #include "src/core/lib/iomgr/ev_posix.h"
115
- #endif
108
+ #include "src/core/telemetry/call_tracer.h"
109
+ #include "src/core/telemetry/stats.h"
110
+ #include "src/core/telemetry/stats_data.h"
111
+ #include "src/core/telemetry/tcp_tracer.h"
112
+ #include "src/core/util/http_client/parser.h"
113
+ #include "src/core/util/string.h"
114
+ #include "src/core/util/useful.h"
116
115
 
117
116
  #define DEFAULT_CONNECTION_WINDOW_TARGET (1024 * 1024)
118
117
  #define MAX_WINDOW 0x7fffffffu
@@ -142,9 +141,6 @@ static bool g_default_server_keepalive_permit_without_calls = false;
142
141
  #define GRPC_ARG_HTTP_TARPIT_MAX_DURATION_MS "grpc.http.tarpit_max_duration_ms"
143
142
 
144
143
  #define MAX_CLIENT_STREAM_ID 0x7fffffffu
145
- grpc_core::TraceFlag grpc_keepalive_trace(false, "http_keepalive");
146
- grpc_core::DebugOnlyTraceFlag grpc_trace_chttp2_refcount(false,
147
- "chttp2_refcount");
148
144
 
149
145
  // forward declarations of various callbacks that we'll build closures around
150
146
  static void write_action_begin_locked(
@@ -228,14 +224,13 @@ namespace {
228
224
 
229
225
  using TaskHandle = ::grpc_event_engine::experimental::EventEngine::TaskHandle;
230
226
 
231
- grpc_core::CallTracerInterface* CallTracerIfSampled(grpc_chttp2_stream* s) {
232
- if (s->context == nullptr || !grpc_core::IsTraceRecordCallopsEnabled()) {
227
+ grpc_core::CallTracerAnnotationInterface* CallTracerIfSampled(
228
+ grpc_chttp2_stream* s) {
229
+ if (!grpc_core::IsTraceRecordCallopsEnabled()) {
233
230
  return nullptr;
234
231
  }
235
- auto* call_tracer = static_cast<grpc_core::CallTracerInterface*>(
236
- static_cast<grpc_call_context_element*>(
237
- s->context)[GRPC_CONTEXT_CALL_TRACER_ANNOTATION_INTERFACE]
238
- .value);
232
+ auto* call_tracer =
233
+ s->arena->GetContext<grpc_core::CallTracerAnnotationInterface>();
239
234
  if (call_tracer == nullptr || !call_tracer->IsSampled()) {
240
235
  return nullptr;
241
236
  }
@@ -244,13 +239,11 @@ grpc_core::CallTracerInterface* CallTracerIfSampled(grpc_chttp2_stream* s) {
244
239
 
245
240
  std::shared_ptr<grpc_core::TcpTracerInterface> TcpTracerIfSampled(
246
241
  grpc_chttp2_stream* s) {
247
- if (s->context == nullptr || !grpc_core::IsTraceRecordCallopsEnabled()) {
242
+ if (!grpc_core::IsTraceRecordCallopsEnabled()) {
248
243
  return nullptr;
249
244
  }
250
- auto* call_attempt_tracer = static_cast<grpc_core::CallTracerInterface*>(
251
- static_cast<grpc_call_context_element*>(
252
- s->context)[GRPC_CONTEXT_CALL_TRACER]
253
- .value);
245
+ auto* call_attempt_tracer =
246
+ s->arena->GetContext<grpc_core::CallTracerInterface>();
254
247
  if (call_attempt_tracer == nullptr || !call_attempt_tracer->IsSampled()) {
255
248
  return nullptr;
256
249
  }
@@ -385,27 +378,27 @@ grpc_chttp2_transport::~grpc_chttp2_transport() {
385
378
  channelz_socket.reset();
386
379
  }
387
380
 
388
- grpc_endpoint_destroy(ep);
381
+ if (ep != nullptr) grpc_endpoint_destroy(ep);
389
382
 
390
383
  grpc_slice_buffer_destroy(&qbuf);
391
384
 
392
385
  grpc_error_handle error = GRPC_ERROR_CREATE("Transport destroyed");
393
386
  // ContextList::Execute follows semantics of a callback function and does not
394
387
  // take a ref on error
395
- if (cl != nullptr) {
396
- grpc_core::ForEachContextListEntryExecute(cl, nullptr, error);
388
+ if (context_list != nullptr) {
389
+ grpc_core::ForEachContextListEntryExecute(context_list, nullptr, error);
397
390
  }
398
- cl = nullptr;
391
+ context_list = nullptr;
399
392
 
400
393
  grpc_slice_buffer_destroy(&read_buffer);
401
394
  grpc_chttp2_goaway_parser_destroy(&goaway_parser);
402
395
 
403
396
  for (i = 0; i < STREAM_LIST_COUNT; i++) {
404
- GPR_ASSERT(lists[i].head == nullptr);
405
- GPR_ASSERT(lists[i].tail == nullptr);
397
+ CHECK_EQ(lists[i].head, nullptr);
398
+ CHECK_EQ(lists[i].tail, nullptr);
406
399
  }
407
400
 
408
- GPR_ASSERT(stream_map.empty());
401
+ CHECK(stream_map.empty());
409
402
  GRPC_COMBINER_UNREF(combiner, "chttp2_transport");
410
403
 
411
404
  while (write_cb_pool) {
@@ -576,7 +569,7 @@ static void read_channel_args(grpc_chttp2_transport* t,
576
569
  static void init_keepalive_pings_if_enabled_locked(
577
570
  grpc_core::RefCountedPtr<grpc_chttp2_transport> t,
578
571
  GRPC_UNUSED grpc_error_handle error) {
579
- GPR_DEBUG_ASSERT(error.ok());
572
+ DCHECK(error.ok());
580
573
  if (t->keepalive_time != grpc_core::Duration::Infinity()) {
581
574
  t->keepalive_state = GRPC_CHTTP2_KEEPALIVE_STATE_WAITING;
582
575
  t->keepalive_ping_timer_handle =
@@ -592,15 +585,13 @@ static void init_keepalive_pings_if_enabled_locked(
592
585
  }
593
586
  }
594
587
 
588
+ using grpc_event_engine::experimental::QueryExtension;
589
+ using grpc_event_engine::experimental::TcpTraceExtension;
590
+
595
591
  grpc_chttp2_transport::grpc_chttp2_transport(
596
592
  const grpc_core::ChannelArgs& channel_args, grpc_endpoint* ep,
597
593
  bool is_client)
598
- : grpc_core::RefCounted<grpc_chttp2_transport,
599
- grpc_core::NonPolymorphicRefCount>(
600
- GRPC_TRACE_FLAG_ENABLED(grpc_trace_chttp2_refcount)
601
- ? "chttp2_refcount"
602
- : nullptr),
603
- ep(ep),
594
+ : ep(ep),
604
595
  peer_string(
605
596
  grpc_core::Slice::FromCopiedString(grpc_endpoint_get_peer(ep))),
606
597
  memory_owner(channel_args.GetObject<grpc_core::ResourceQuota>()
@@ -623,9 +614,20 @@ grpc_chttp2_transport::grpc_chttp2_transport(
623
614
  &memory_owner),
624
615
  deframe_state(is_client ? GRPC_DTS_FH_0 : GRPC_DTS_CLIENT_PREFIX_0),
625
616
  is_client(is_client) {
626
- cl = new grpc_core::ContextList();
627
- GPR_ASSERT(strlen(GRPC_CHTTP2_CLIENT_CONNECT_STRING) ==
628
- GRPC_CHTTP2_CLIENT_CONNECT_STRLEN);
617
+ context_list = new grpc_core::ContextList();
618
+
619
+ if (channel_args.GetBool(GRPC_ARG_TCP_TRACING_ENABLED).value_or(false) &&
620
+ grpc_event_engine::experimental::grpc_is_event_engine_endpoint(ep)) {
621
+ auto epte = QueryExtension<TcpTraceExtension>(
622
+ grpc_event_engine::experimental::grpc_get_wrapped_event_engine_endpoint(
623
+ ep));
624
+ if (epte != nullptr) {
625
+ epte->InitializeAndReturnTcpTracer();
626
+ }
627
+ }
628
+
629
+ CHECK(strlen(GRPC_CHTTP2_CLIENT_CONNECT_STRING) ==
630
+ GRPC_CHTTP2_CLIENT_CONNECT_STRLEN);
629
631
 
630
632
  grpc_slice_buffer_init(&read_buffer);
631
633
  if (is_client) {
@@ -714,7 +716,7 @@ static void close_transport_locked(grpc_chttp2_transport* t,
714
716
  grpc_error_add_child(t->close_transport_on_writes_finished, error);
715
717
  return;
716
718
  }
717
- GPR_ASSERT(!error.ok());
719
+ CHECK(!error.ok());
718
720
  t->closed_with_error = error;
719
721
  connectivity_state_set(t, GRPC_CHANNEL_SHUTDOWN, absl::Status(),
720
722
  "close_transport");
@@ -758,10 +760,22 @@ static void close_transport_locked(grpc_chttp2_transport* t,
758
760
  while (grpc_chttp2_list_pop_writable_stream(t, &s)) {
759
761
  GRPC_CHTTP2_STREAM_UNREF(s, "chttp2_writing:close");
760
762
  }
761
- GPR_ASSERT(t->write_state == GRPC_CHTTP2_WRITE_STATE_IDLE);
762
- grpc_endpoint_shutdown(t->ep, error);
763
+ CHECK(t->write_state == GRPC_CHTTP2_WRITE_STATE_IDLE);
764
+ if (t->interested_parties_until_recv_settings != nullptr) {
765
+ grpc_endpoint_delete_from_pollset_set(
766
+ t->ep, t->interested_parties_until_recv_settings);
767
+ t->interested_parties_until_recv_settings = nullptr;
768
+ }
769
+ grpc_core::MutexLock lock(&t->ep_destroy_mu);
770
+ grpc_endpoint_destroy(t->ep);
771
+ t->ep = nullptr;
763
772
  }
764
773
  if (t->notify_on_receive_settings != nullptr) {
774
+ if (t->interested_parties_until_recv_settings != nullptr) {
775
+ grpc_endpoint_delete_from_pollset_set(
776
+ t->ep, t->interested_parties_until_recv_settings);
777
+ t->interested_parties_until_recv_settings = nullptr;
778
+ }
765
779
  grpc_core::ExecCtx::Run(DEBUG_LOCATION, t->notify_on_receive_settings,
766
780
  error);
767
781
  t->notify_on_receive_settings = nullptr;
@@ -790,7 +804,8 @@ void grpc_chttp2_stream_unref(grpc_chttp2_stream* s) {
790
804
 
791
805
  grpc_chttp2_stream::grpc_chttp2_stream(grpc_chttp2_transport* t,
792
806
  grpc_stream_refcount* refcount,
793
- const void* server_data)
807
+ const void* server_data,
808
+ grpc_core::Arena* arena)
794
809
  : t(t->Ref()),
795
810
  refcount([refcount]() {
796
811
  // We reserve one 'active stream' that's dropped when the stream is
@@ -804,14 +819,14 @@ grpc_chttp2_stream::grpc_chttp2_stream(grpc_chttp2_transport* t,
804
819
  #endif
805
820
  return refcount;
806
821
  }()),
822
+ arena(arena),
807
823
  flow_control(&t->flow_control) {
808
824
  t->streams_allocated.fetch_add(1, std::memory_order_relaxed);
809
825
  if (server_data) {
810
826
  id = static_cast<uint32_t>(reinterpret_cast<uintptr_t>(server_data));
811
- if (grpc_http_trace.enabled()) {
812
- gpr_log(GPR_DEBUG, "HTTP:%p/%p creating accept stream %d [from %p]", t,
813
- this, id, server_data);
814
- }
827
+ GRPC_TRACE_VLOG(http, 2)
828
+ << "HTTP:" << t << "/" << this << " creating accept stream " << id
829
+ << " [from " << server_data << "]";
815
830
  *t->accepting_stream = this;
816
831
  t->stream_map.emplace(id, this);
817
832
  post_destructive_reclaimer(t);
@@ -834,9 +849,9 @@ grpc_chttp2_stream::~grpc_chttp2_stream() {
834
849
  }
835
850
  }
836
851
 
837
- GPR_ASSERT((write_closed && read_closed) || id == 0);
852
+ CHECK((write_closed && read_closed) || id == 0);
838
853
  if (id != 0) {
839
- GPR_ASSERT(t->stream_map.count(id) == 0);
854
+ CHECK_EQ(t->stream_map.count(id), 0u);
840
855
  }
841
856
 
842
857
  grpc_slice_buffer_destroy(&frame_storage);
@@ -849,11 +864,11 @@ grpc_chttp2_stream::~grpc_chttp2_stream() {
849
864
  }
850
865
  }
851
866
 
852
- GPR_ASSERT(send_initial_metadata_finished == nullptr);
853
- GPR_ASSERT(send_trailing_metadata_finished == nullptr);
854
- GPR_ASSERT(recv_initial_metadata_ready == nullptr);
855
- GPR_ASSERT(recv_message_ready == nullptr);
856
- GPR_ASSERT(recv_trailing_metadata_finished == nullptr);
867
+ CHECK_EQ(send_initial_metadata_finished, nullptr);
868
+ CHECK_EQ(send_trailing_metadata_finished, nullptr);
869
+ CHECK_EQ(recv_initial_metadata_ready, nullptr);
870
+ CHECK_EQ(recv_message_ready, nullptr);
871
+ CHECK_EQ(recv_trailing_metadata_finished, nullptr);
857
872
  grpc_slice_buffer_destroy(&flow_controlled_buffer);
858
873
  grpc_core::ExecCtx::Run(DEBUG_LOCATION, destroy_stream_arg, absl::OkStatus());
859
874
  }
@@ -861,8 +876,8 @@ grpc_chttp2_stream::~grpc_chttp2_stream() {
861
876
  void grpc_chttp2_transport::InitStream(grpc_stream* gs,
862
877
  grpc_stream_refcount* refcount,
863
878
  const void* server_data,
864
- grpc_core::Arena*) {
865
- new (gs) grpc_chttp2_stream(this, refcount, server_data);
879
+ grpc_core::Arena* arena) {
880
+ new (gs) grpc_chttp2_stream(this, refcount, server_data, arena);
866
881
  }
867
882
 
868
883
  static void destroy_stream_locked(void* sp, grpc_error_handle /*error*/) {
@@ -886,7 +901,7 @@ grpc_chttp2_stream* grpc_chttp2_parsing_accept_stream(grpc_chttp2_transport* t,
886
901
  return nullptr;
887
902
  }
888
903
  grpc_chttp2_stream* accepting = nullptr;
889
- GPR_ASSERT(t->accepting_stream == nullptr);
904
+ CHECK_EQ(t->accepting_stream, nullptr);
890
905
  t->accepting_stream = &accepting;
891
906
  t->accept_stream_cb(t->accept_stream_cb_user_data, t,
892
907
  reinterpret_cast<void*>(id));
@@ -988,7 +1003,7 @@ static const char* begin_writing_desc(bool partial) {
988
1003
  static void write_action_begin_locked(
989
1004
  grpc_core::RefCountedPtr<grpc_chttp2_transport> t,
990
1005
  grpc_error_handle /*error_ignored*/) {
991
- GPR_ASSERT(t->write_state != GRPC_CHTTP2_WRITE_STATE_IDLE);
1006
+ CHECK(t->write_state != GRPC_CHTTP2_WRITE_STATE_IDLE);
992
1007
  grpc_chttp2_begin_write_result r;
993
1008
  if (!t->closed_with_error.ok()) {
994
1009
  r.writing = false;
@@ -1002,7 +1017,7 @@ static void write_action_begin_locked(
1002
1017
  begin_writing_desc(r.partial));
1003
1018
  write_action(t.get());
1004
1019
  if (t->reading_paused_on_pending_induced_frames) {
1005
- GPR_ASSERT(t->num_pending_induced_frames == 0);
1020
+ CHECK_EQ(t->num_pending_induced_frames, 0u);
1006
1021
  // We had paused reading, because we had many induced frames (SETTINGS
1007
1022
  // ACK, PINGS ACK and RST_STREAMS) pending in t->qbuf. Now that we have
1008
1023
  // been able to flush qbuf, we can resume reading.
@@ -1021,13 +1036,13 @@ static void write_action_begin_locked(
1021
1036
  }
1022
1037
 
1023
1038
  static void write_action(grpc_chttp2_transport* t) {
1024
- void* cl = t->cl;
1025
- if (!t->cl->empty()) {
1039
+ void* cl = t->context_list;
1040
+ if (!t->context_list->empty()) {
1026
1041
  // Transfer the ownership of the context list to the endpoint and create and
1027
1042
  // associate a new context list with the transport.
1028
1043
  // The old context list is stored in the cl local variable which is passed
1029
1044
  // to the endpoint. Its upto the endpoint to manage its lifetime.
1030
- t->cl = new grpc_core::ContextList();
1045
+ t->context_list = new grpc_core::ContextList();
1031
1046
  } else {
1032
1047
  // t->cl is Empty. There is nothing to trace in this endpoint_write. set cl
1033
1048
  // to nullptr.
@@ -1042,10 +1057,9 @@ static void write_action(grpc_chttp2_transport* t) {
1042
1057
  if (max_frame_size == 0) {
1043
1058
  max_frame_size = INT_MAX;
1044
1059
  }
1045
- if (GRPC_TRACE_FLAG_ENABLED(grpc_ping_trace)) {
1046
- gpr_log(GPR_INFO, "%s[%p]: Write %" PRIdPTR " bytes",
1047
- t->is_client ? "CLIENT" : "SERVER", t, t->outbuf.Length());
1048
- }
1060
+ GRPC_TRACE_LOG(http2_ping, INFO)
1061
+ << (t->is_client ? "CLIENT" : "SERVER") << "[" << t << "]: Write "
1062
+ << t->outbuf.Length() << " bytes";
1049
1063
  t->write_size_policy.BeginWrite(t->outbuf.Length());
1050
1064
  grpc_endpoint_write(t->ep, t->outbuf.c_slice_buffer(),
1051
1065
  grpc_core::InitTransportClosure<write_action_end>(
@@ -1056,10 +1070,8 @@ static void write_action(grpc_chttp2_transport* t) {
1056
1070
  static void write_action_end(grpc_core::RefCountedPtr<grpc_chttp2_transport> t,
1057
1071
  grpc_error_handle error) {
1058
1072
  auto* tp = t.get();
1059
- if (GRPC_TRACE_FLAG_ENABLED(grpc_ping_trace)) {
1060
- gpr_log(GPR_INFO, "%s[%p]: Finish write",
1061
- t->is_client ? "CLIENT" : "SERVER", t.get());
1062
- }
1073
+ GRPC_TRACE_LOG(http2_ping, INFO) << (t->is_client ? "CLIENT" : "SERVER")
1074
+ << "[" << t.get() << "]: Finish write";
1063
1075
  tp->combiner->Run(grpc_core::InitTransportClosure<write_action_end_locked>(
1064
1076
  std::move(t), &tp->write_action_end_locked),
1065
1077
  error);
@@ -1129,19 +1141,16 @@ void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
1129
1141
  uint32_t goaway_error,
1130
1142
  uint32_t last_stream_id,
1131
1143
  absl::string_view goaway_text) {
1132
- t->goaway_error = grpc_error_set_str(
1144
+ t->goaway_error = grpc_error_set_int(
1133
1145
  grpc_error_set_int(
1134
- grpc_error_set_int(
1135
- grpc_core::StatusCreate(
1136
- absl::StatusCode::kUnavailable,
1137
- absl::StrFormat(
1138
- "GOAWAY received; Error code: %u; Debug Text: %s",
1139
- goaway_error, goaway_text),
1140
- DEBUG_LOCATION, {}),
1141
- grpc_core::StatusIntProperty::kHttp2Error,
1142
- static_cast<intptr_t>(goaway_error)),
1143
- grpc_core::StatusIntProperty::kRpcStatus, GRPC_STATUS_UNAVAILABLE),
1144
- grpc_core::StatusStrProperty::kRawBytes, goaway_text);
1146
+ grpc_core::StatusCreate(
1147
+ absl::StatusCode::kUnavailable,
1148
+ absl::StrFormat("GOAWAY received; Error code: %u; Debug Text: %s",
1149
+ goaway_error, goaway_text),
1150
+ DEBUG_LOCATION, {}),
1151
+ grpc_core::StatusIntProperty::kHttp2Error,
1152
+ static_cast<intptr_t>(goaway_error)),
1153
+ grpc_core::StatusIntProperty::kRpcStatus, GRPC_STATUS_UNAVAILABLE);
1145
1154
 
1146
1155
  GRPC_CHTTP2_IF_TRACING(
1147
1156
  gpr_log(GPR_INFO, "transport %p got goaway with last stream id %d", t,
@@ -1219,7 +1228,7 @@ static void maybe_start_some_streams(grpc_chttp2_transport* t) {
1219
1228
  "HTTP:%s: Transport %p allocating new grpc_chttp2_stream %p to id %d",
1220
1229
  t->is_client ? "CLI" : "SVR", t, s, t->next_stream_id));
1221
1230
 
1222
- GPR_ASSERT(s->id == 0);
1231
+ CHECK_EQ(s->id, 0u);
1223
1232
  s->id = t->next_stream_id;
1224
1233
  t->next_stream_id += 2;
1225
1234
 
@@ -1279,7 +1288,7 @@ void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
1279
1288
  return;
1280
1289
  }
1281
1290
  closure->next_data.scratch -= CLOSURE_BARRIER_FIRST_REF_BIT;
1282
- if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
1291
+ if (GRPC_TRACE_FLAG_ENABLED(http)) {
1283
1292
  gpr_log(
1284
1293
  GPR_INFO,
1285
1294
  "complete_closure_step: t=%p %p refs=%d flags=0x%04x desc=%s err=%s "
@@ -1299,12 +1308,10 @@ void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
1299
1308
  if (cl_err.ok()) {
1300
1309
  cl_err = GRPC_ERROR_CREATE(absl::StrCat(
1301
1310
  "Error in HTTP transport completing operation: ", desc,
1302
- " write_state=", write_state_name(t->write_state), " refs=",
1303
- closure->next_data.scratch / CLOSURE_BARRIER_FIRST_REF_BIT, " flags=",
1304
- closure->next_data.scratch % CLOSURE_BARRIER_FIRST_REF_BIT));
1305
- cl_err = grpc_error_set_str(cl_err,
1306
- grpc_core::StatusStrProperty::kTargetAddress,
1307
- std::string(t->peer_string.as_string_view()));
1311
+ " write_state=", write_state_name(t->write_state),
1312
+ " refs=", closure->next_data.scratch / CLOSURE_BARRIER_FIRST_REF_BIT,
1313
+ " flags=", closure->next_data.scratch % CLOSURE_BARRIER_FIRST_REF_BIT,
1314
+ " peer_address=", t->peer_string.as_string_view()));
1308
1315
  }
1309
1316
  cl_err = grpc_error_add_child(cl_err, error);
1310
1317
  closure->error_data.error = grpc_core::internal::StatusAllocHeapPtr(cl_err);
@@ -1331,11 +1338,11 @@ static bool contains_non_ok_status(grpc_metadata_batch* batch) {
1331
1338
 
1332
1339
  static void log_metadata(const grpc_metadata_batch* md_batch, uint32_t id,
1333
1340
  bool is_client, bool is_initial) {
1334
- gpr_log(GPR_INFO, "--metadata--");
1341
+ VLOG(2) << "--metadata--";
1335
1342
  const std::string prefix = absl::StrCat(
1336
1343
  "HTTP:", id, is_initial ? ":HDR" : ":TRL", is_client ? ":CLI:" : ":SVR:");
1337
1344
  md_batch->Log([&prefix](absl::string_view key, absl::string_view value) {
1338
- gpr_log(GPR_INFO, "%s", absl::StrCat(prefix, key, ": ", value).c_str());
1345
+ VLOG(2) << absl::StrCat(prefix, key, ": ", value);
1339
1346
  });
1340
1347
  }
1341
1348
 
@@ -1348,11 +1355,10 @@ static void perform_stream_op_locked(void* stream_op,
1348
1355
  grpc_transport_stream_op_batch_payload* op_payload = op->payload;
1349
1356
  grpc_chttp2_transport* t = s->t.get();
1350
1357
 
1351
- s->context = op->payload->context;
1352
1358
  s->traced = op->is_traced;
1353
1359
  s->call_tracer = CallTracerIfSampled(s);
1354
1360
  s->tcp_tracer = TcpTracerIfSampled(s);
1355
- if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
1361
+ if (GRPC_TRACE_FLAG_ENABLED(http)) {
1356
1362
  gpr_log(GPR_INFO,
1357
1363
  "perform_stream_op_locked[s=%p; op=%p]: %s; on_complete = %p", s,
1358
1364
  op, grpc_transport_stream_op_batch_string(op, false).c_str(),
@@ -1382,7 +1388,7 @@ static void perform_stream_op_locked(void* stream_op,
1382
1388
  }
1383
1389
 
1384
1390
  if (op->send_initial_metadata) {
1385
- if (s->call_tracer) {
1391
+ if (s->call_tracer != nullptr) {
1386
1392
  s->call_tracer->RecordAnnotation(
1387
1393
  grpc_core::HttpAnnotation(grpc_core::HttpAnnotation::Type::kStart,
1388
1394
  gpr_now(GPR_CLOCK_REALTIME))
@@ -1392,7 +1398,7 @@ static void perform_stream_op_locked(void* stream_op,
1392
1398
  if (t->is_client && t->channelz_socket != nullptr) {
1393
1399
  t->channelz_socket->RecordStreamStartedFromLocal();
1394
1400
  }
1395
- GPR_ASSERT(s->send_initial_metadata_finished == nullptr);
1401
+ CHECK_EQ(s->send_initial_metadata_finished, nullptr);
1396
1402
  on_complete->next_data.scratch |= t->closure_barrier_may_cover_write;
1397
1403
 
1398
1404
  s->send_initial_metadata_finished = add_closure_barrier(on_complete);
@@ -1410,7 +1416,7 @@ static void perform_stream_op_locked(void* stream_op,
1410
1416
  if (!s->write_closed) {
1411
1417
  if (t->is_client) {
1412
1418
  if (t->closed_with_error.ok()) {
1413
- GPR_ASSERT(s->id == 0);
1419
+ CHECK_EQ(s->id, 0u);
1414
1420
  grpc_chttp2_list_add_waiting_for_concurrency(t, s);
1415
1421
  maybe_start_some_streams(t);
1416
1422
  } else {
@@ -1427,7 +1433,7 @@ static void perform_stream_op_locked(void* stream_op,
1427
1433
  false);
1428
1434
  }
1429
1435
  } else {
1430
- GPR_ASSERT(s->id != 0);
1436
+ CHECK_NE(s->id, 0u);
1431
1437
  grpc_chttp2_mark_stream_writable(t, s);
1432
1438
  if (!(op->send_message &&
1433
1439
  (op->payload->send_message.flags & GRPC_WRITE_BUFFER_HINT))) {
@@ -1528,7 +1534,7 @@ static void perform_stream_op_locked(void* stream_op,
1528
1534
  }
1529
1535
 
1530
1536
  if (op->send_trailing_metadata) {
1531
- GPR_ASSERT(s->send_trailing_metadata_finished == nullptr);
1537
+ CHECK_EQ(s->send_trailing_metadata_finished, nullptr);
1532
1538
  on_complete->next_data.scratch |= t->closure_barrier_may_cover_write;
1533
1539
  s->send_trailing_metadata_finished = add_closure_barrier(on_complete);
1534
1540
  s->send_trailing_metadata =
@@ -1558,7 +1564,7 @@ static void perform_stream_op_locked(void* stream_op,
1558
1564
  }
1559
1565
 
1560
1566
  if (op->recv_initial_metadata) {
1561
- GPR_ASSERT(s->recv_initial_metadata_ready == nullptr);
1567
+ CHECK_EQ(s->recv_initial_metadata_ready, nullptr);
1562
1568
  s->recv_initial_metadata_ready =
1563
1569
  op_payload->recv_initial_metadata.recv_initial_metadata_ready;
1564
1570
  s->recv_initial_metadata =
@@ -1572,7 +1578,7 @@ static void perform_stream_op_locked(void* stream_op,
1572
1578
  }
1573
1579
 
1574
1580
  if (op->recv_message) {
1575
- GPR_ASSERT(s->recv_message_ready == nullptr);
1581
+ CHECK_EQ(s->recv_message_ready, nullptr);
1576
1582
  s->recv_message_ready = op_payload->recv_message.recv_message_ready;
1577
1583
  s->recv_message = op_payload->recv_message.recv_message;
1578
1584
  s->recv_message->emplace();
@@ -1583,9 +1589,9 @@ static void perform_stream_op_locked(void* stream_op,
1583
1589
  }
1584
1590
 
1585
1591
  if (op->recv_trailing_metadata) {
1586
- GPR_ASSERT(s->collecting_stats == nullptr);
1592
+ CHECK_EQ(s->collecting_stats, nullptr);
1587
1593
  s->collecting_stats = op_payload->recv_trailing_metadata.collect_stats;
1588
- GPR_ASSERT(s->recv_trailing_metadata_finished == nullptr);
1594
+ CHECK_EQ(s->recv_trailing_metadata_finished, nullptr);
1589
1595
  s->recv_trailing_metadata_finished =
1590
1596
  op_payload->recv_trailing_metadata.recv_trailing_metadata_ready;
1591
1597
  s->recv_trailing_metadata =
@@ -1608,18 +1614,18 @@ void grpc_chttp2_transport::PerformStreamOp(
1608
1614
 
1609
1615
  if (!is_client) {
1610
1616
  if (op->send_initial_metadata) {
1611
- GPR_ASSERT(!op->payload->send_initial_metadata.send_initial_metadata
1612
- ->get(grpc_core::GrpcTimeoutMetadata())
1613
- .has_value());
1617
+ CHECK(!op->payload->send_initial_metadata.send_initial_metadata
1618
+ ->get(grpc_core::GrpcTimeoutMetadata())
1619
+ .has_value());
1614
1620
  }
1615
1621
  if (op->send_trailing_metadata) {
1616
- GPR_ASSERT(!op->payload->send_trailing_metadata.send_trailing_metadata
1617
- ->get(grpc_core::GrpcTimeoutMetadata())
1618
- .has_value());
1622
+ CHECK(!op->payload->send_trailing_metadata.send_trailing_metadata
1623
+ ->get(grpc_core::GrpcTimeoutMetadata())
1624
+ .has_value());
1619
1625
  }
1620
1626
  }
1621
1627
 
1622
- if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
1628
+ if (GRPC_TRACE_FLAG_ENABLED(http)) {
1623
1629
  gpr_log(GPR_INFO, "perform_stream_op[s=%p; op=%p]: %s", s, op,
1624
1630
  grpc_transport_stream_op_batch_string(op, false).c_str());
1625
1631
  }
@@ -1707,8 +1713,8 @@ void grpc_chttp2_retry_initiate_ping(
1707
1713
  static void retry_initiate_ping_locked(
1708
1714
  grpc_core::RefCountedPtr<grpc_chttp2_transport> t,
1709
1715
  GRPC_UNUSED grpc_error_handle error) {
1710
- GPR_DEBUG_ASSERT(error.ok());
1711
- GPR_ASSERT(t->delayed_ping_timer_handle != TaskHandle::kInvalid);
1716
+ DCHECK(error.ok());
1717
+ CHECK(t->delayed_ping_timer_handle != TaskHandle::kInvalid);
1712
1718
  t->delayed_ping_timer_handle = TaskHandle::kInvalid;
1713
1719
  grpc_chttp2_initiate_write(t.get(),
1714
1720
  GRPC_CHTTP2_INITIATE_WRITE_RETRY_SEND_PING);
@@ -1729,8 +1735,8 @@ void grpc_chttp2_keepalive_timeout(
1729
1735
  grpc_core::RefCountedPtr<grpc_chttp2_transport> t) {
1730
1736
  t->combiner->Run(
1731
1737
  grpc_core::NewClosure([t](grpc_error_handle) {
1732
- gpr_log(GPR_INFO, "%s: Keepalive timeout. Closing transport.",
1733
- std::string(t->peer_string.as_string_view()).c_str());
1738
+ GRPC_TRACE_LOG(http, INFO) << t->peer_string.as_string_view()
1739
+ << ": Keepalive timeout. Closing transport.";
1734
1740
  send_goaway(
1735
1741
  t.get(),
1736
1742
  grpc_error_set_int(GRPC_ERROR_CREATE("keepalive_timeout"),
@@ -1750,8 +1756,8 @@ void grpc_chttp2_ping_timeout(
1750
1756
  grpc_core::RefCountedPtr<grpc_chttp2_transport> t) {
1751
1757
  t->combiner->Run(
1752
1758
  grpc_core::NewClosure([t](grpc_error_handle) {
1753
- gpr_log(GPR_INFO, "%s: Ping timeout. Closing transport.",
1754
- std::string(t->peer_string.as_string_view()).c_str());
1759
+ GRPC_TRACE_LOG(http, INFO) << t->peer_string.as_string_view()
1760
+ << ": Ping timeout. Closing transport.";
1755
1761
  send_goaway(
1756
1762
  t.get(),
1757
1763
  grpc_error_set_int(GRPC_ERROR_CREATE("ping_timeout"),
@@ -1771,8 +1777,8 @@ void grpc_chttp2_settings_timeout(
1771
1777
  grpc_core::RefCountedPtr<grpc_chttp2_transport> t) {
1772
1778
  t->combiner->Run(
1773
1779
  grpc_core::NewClosure([t](grpc_error_handle) {
1774
- gpr_log(GPR_INFO, "%s: Settings timeout. Closing transport.",
1775
- std::string(t->peer_string.as_string_view()).c_str());
1780
+ GRPC_TRACE_LOG(http, INFO) << t->peer_string.as_string_view()
1781
+ << ": Settings timeout. Closing transport.";
1776
1782
  send_goaway(
1777
1783
  t.get(),
1778
1784
  grpc_error_set_int(GRPC_ERROR_CREATE("settings_timeout"),
@@ -1963,7 +1969,7 @@ static void perform_transport_op_locked(void* stream_op,
1963
1969
  }
1964
1970
 
1965
1971
  void grpc_chttp2_transport::PerformOp(grpc_transport_op* op) {
1966
- if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
1972
+ if (GRPC_TRACE_FLAG_ENABLED(http)) {
1967
1973
  gpr_log(GPR_INFO, "perform_transport_op[t=%p]: %s", this,
1968
1974
  grpc_transport_op_string(op).c_str());
1969
1975
  }
@@ -2016,7 +2022,7 @@ void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* t,
2016
2022
  // Lambda is immediately invoked as a big scoped section that can be
2017
2023
  // exited out of at any point by returning.
2018
2024
  [&]() {
2019
- if (grpc_http_trace.enabled()) {
2025
+ if (GRPC_TRACE_FLAG_ENABLED(http)) {
2020
2026
  gpr_log(GPR_DEBUG,
2021
2027
  "maybe_complete_recv_message %p final_metadata_requested=%d "
2022
2028
  "seen_error=%d",
@@ -2028,11 +2034,11 @@ void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* t,
2028
2034
  } else {
2029
2035
  if (s->frame_storage.length != 0) {
2030
2036
  while (true) {
2031
- GPR_ASSERT(s->frame_storage.length > 0);
2037
+ CHECK_GT(s->frame_storage.length, 0u);
2032
2038
  int64_t min_progress_size;
2033
2039
  auto r = grpc_deframe_unprocessed_incoming_frames(
2034
2040
  s, &min_progress_size, &**s->recv_message, s->recv_message_flags);
2035
- if (grpc_http_trace.enabled()) {
2041
+ if (GRPC_TRACE_FLAG_ENABLED(http)) {
2036
2042
  gpr_log(GPR_DEBUG, "Deframe data frame: %s",
2037
2043
  grpc_core::PollToString(r, [](absl::Status r) {
2038
2044
  return r.ToString();
@@ -2088,7 +2094,7 @@ void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* t,
2088
2094
  void grpc_chttp2_maybe_complete_recv_trailing_metadata(grpc_chttp2_transport* t,
2089
2095
  grpc_chttp2_stream* s) {
2090
2096
  grpc_chttp2_maybe_complete_recv_message(t, s);
2091
- if (grpc_http_trace.enabled()) {
2097
+ if (GRPC_TRACE_FLAG_ENABLED(http)) {
2092
2098
  gpr_log(GPR_DEBUG,
2093
2099
  "maybe_complete_recv_trailing_metadata cli=%d s=%p closure=%p "
2094
2100
  "read_closed=%d "
@@ -2114,7 +2120,7 @@ void grpc_chttp2_maybe_complete_recv_trailing_metadata(grpc_chttp2_transport* t,
2114
2120
  static grpc_chttp2_transport::RemovedStreamHandle remove_stream(
2115
2121
  grpc_chttp2_transport* t, uint32_t id, grpc_error_handle error) {
2116
2122
  grpc_chttp2_stream* s = t->stream_map.extract(id).mapped();
2117
- GPR_DEBUG_ASSERT(s);
2123
+ DCHECK(s);
2118
2124
  if (t->incoming_stream == s) {
2119
2125
  t->incoming_stream = nullptr;
2120
2126
  grpc_chttp2_parsing_become_skip_parser(t);
@@ -2299,7 +2305,7 @@ grpc_chttp2_transport::RemovedStreamHandle grpc_chttp2_mark_stream_closed(
2299
2305
  grpc_chttp2_transport* t, grpc_chttp2_stream* s, int close_reads,
2300
2306
  int close_writes, grpc_error_handle error) {
2301
2307
  grpc_chttp2_transport::RemovedStreamHandle rsh;
2302
- if (grpc_http_trace.enabled()) {
2308
+ if (GRPC_TRACE_FLAG_ENABLED(http)) {
2303
2309
  gpr_log(
2304
2310
  GPR_DEBUG, "MARK_STREAM_CLOSED: t=%p s=%p(id=%d) %s [%s]", t, s, s->id,
2305
2311
  (close_reads && close_writes)
@@ -2366,7 +2372,8 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
2366
2372
  grpc_error_get_status(error, s->deadline, &grpc_status, &message, nullptr,
2367
2373
  nullptr);
2368
2374
 
2369
- GPR_ASSERT(grpc_status >= 0 && (int)grpc_status < 100);
2375
+ CHECK_GE(grpc_status, 0);
2376
+ CHECK_LT((int)grpc_status, 100);
2370
2377
 
2371
2378
  auto remove_stream_handle = grpc_chttp2_mark_stream_closed(t, s, 1, 1, error);
2372
2379
  grpc_core::MaybeTarpit(
@@ -2407,7 +2414,7 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
2407
2414
  *p++ = '2';
2408
2415
  *p++ = '0';
2409
2416
  *p++ = '0';
2410
- GPR_ASSERT(p == GRPC_SLICE_END_PTR(http_status_hdr));
2417
+ CHECK(p == GRPC_SLICE_END_PTR(http_status_hdr));
2411
2418
  len += static_cast<uint32_t> GRPC_SLICE_LENGTH(http_status_hdr);
2412
2419
 
2413
2420
  content_type_hdr = GRPC_SLICE_MALLOC(31);
@@ -2443,7 +2450,7 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
2443
2450
  *p++ = 'r';
2444
2451
  *p++ = 'p';
2445
2452
  *p++ = 'c';
2446
- GPR_ASSERT(p == GRPC_SLICE_END_PTR(content_type_hdr));
2453
+ CHECK(p == GRPC_SLICE_END_PTR(content_type_hdr));
2447
2454
  len += static_cast<uint32_t> GRPC_SLICE_LENGTH(content_type_hdr);
2448
2455
  }
2449
2456
 
@@ -2470,11 +2477,11 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
2470
2477
  *p++ = static_cast<uint8_t>('0' + (grpc_status / 10));
2471
2478
  *p++ = static_cast<uint8_t>('0' + (grpc_status % 10));
2472
2479
  }
2473
- GPR_ASSERT(p == GRPC_SLICE_END_PTR(status_hdr));
2480
+ CHECK(p == GRPC_SLICE_END_PTR(status_hdr));
2474
2481
  len += static_cast<uint32_t> GRPC_SLICE_LENGTH(status_hdr);
2475
2482
 
2476
2483
  size_t msg_len = message.length();
2477
- GPR_ASSERT(msg_len <= UINT32_MAX);
2484
+ CHECK(msg_len <= UINT32_MAX);
2478
2485
  grpc_core::VarintWriter<1> msg_len_writer(
2479
2486
  static_cast<uint32_t>(msg_len));
2480
2487
  message_pfx = GRPC_SLICE_MALLOC(14 + msg_len_writer.length());
@@ -2495,7 +2502,7 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
2495
2502
  *p++ = 'e';
2496
2503
  msg_len_writer.Write(0, p);
2497
2504
  p += msg_len_writer.length();
2498
- GPR_ASSERT(p == GRPC_SLICE_END_PTR(message_pfx));
2505
+ CHECK(p == GRPC_SLICE_END_PTR(message_pfx));
2499
2506
  len += static_cast<uint32_t> GRPC_SLICE_LENGTH(message_pfx);
2500
2507
  len += static_cast<uint32_t>(msg_len);
2501
2508
 
@@ -2511,7 +2518,7 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
2511
2518
  *p++ = static_cast<uint8_t>(id >> 16);
2512
2519
  *p++ = static_cast<uint8_t>(id >> 8);
2513
2520
  *p++ = static_cast<uint8_t>(id);
2514
- GPR_ASSERT(p == GRPC_SLICE_END_PTR(hdr));
2521
+ CHECK(p == GRPC_SLICE_END_PTR(hdr));
2515
2522
 
2516
2523
  grpc_slice_buffer_add(&t->qbuf, hdr);
2517
2524
  if (!sent_initial_metadata) {
@@ -2618,9 +2625,9 @@ static grpc_error_handle try_http_parsing(grpc_chttp2_transport* t) {
2618
2625
  if (parse_error.ok() &&
2619
2626
  (parse_error = grpc_http_parser_eof(&parser)) == absl::OkStatus()) {
2620
2627
  error = grpc_error_set_int(
2621
- grpc_error_set_int(
2622
- GRPC_ERROR_CREATE("Trying to connect an http1.x server"),
2623
- grpc_core::StatusIntProperty::kHttpStatus, response.status),
2628
+ GRPC_ERROR_CREATE(
2629
+ absl::StrCat("Trying to connect an http1.x server (HTTP status ",
2630
+ response.status, ")")),
2624
2631
  grpc_core::StatusIntProperty::kRpcStatus,
2625
2632
  grpc_http2_status_to_grpc_status(response.status));
2626
2633
  }
@@ -2729,8 +2736,8 @@ static void read_action_locked(
2729
2736
  // got an incoming read, cancel any pending keepalive timers
2730
2737
  t->keepalive_incoming_data_wanted = false;
2731
2738
  if (t->keepalive_ping_timeout_handle != TaskHandle::kInvalid) {
2732
- if (GRPC_TRACE_FLAG_ENABLED(grpc_ping_trace) ||
2733
- GRPC_TRACE_FLAG_ENABLED(grpc_keepalive_trace)) {
2739
+ if (GRPC_TRACE_FLAG_ENABLED(http2_ping) ||
2740
+ GRPC_TRACE_FLAG_ENABLED(http_keepalive)) {
2734
2741
  gpr_log(GPR_INFO,
2735
2742
  "%s[%p]: Clear keepalive timer because data was received",
2736
2743
  t->is_client ? "CLIENT" : "SERVER", t.get());
@@ -2783,7 +2790,7 @@ static void start_bdp_ping(grpc_core::RefCountedPtr<grpc_chttp2_transport> t,
2783
2790
  static void start_bdp_ping_locked(
2784
2791
  grpc_core::RefCountedPtr<grpc_chttp2_transport> t,
2785
2792
  grpc_error_handle error) {
2786
- if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
2793
+ if (GRPC_TRACE_FLAG_ENABLED(http)) {
2787
2794
  gpr_log(GPR_INFO, "%s: Start BDP ping err=%s",
2788
2795
  std::string(t->peer_string.as_string_view()).c_str(),
2789
2796
  grpc_core::StatusToString(error).c_str());
@@ -2810,7 +2817,7 @@ static void finish_bdp_ping(grpc_core::RefCountedPtr<grpc_chttp2_transport> t,
2810
2817
  static void finish_bdp_ping_locked(
2811
2818
  grpc_core::RefCountedPtr<grpc_chttp2_transport> t,
2812
2819
  grpc_error_handle error) {
2813
- if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
2820
+ if (GRPC_TRACE_FLAG_ENABLED(http)) {
2814
2821
  gpr_log(GPR_INFO, "%s: Complete BDP ping err=%s",
2815
2822
  std::string(t->peer_string.as_string_view()).c_str(),
2816
2823
  grpc_core::StatusToString(error).c_str());
@@ -2829,7 +2836,7 @@ static void finish_bdp_ping_locked(
2829
2836
  t->flow_control.bdp_estimator()->CompletePing();
2830
2837
  grpc_chttp2_act_on_flowctl_action(t->flow_control.PeriodicUpdate(), t.get(),
2831
2838
  nullptr);
2832
- GPR_ASSERT(t->next_bdp_ping_timer_handle == TaskHandle::kInvalid);
2839
+ CHECK(t->next_bdp_ping_timer_handle == TaskHandle::kInvalid);
2833
2840
  t->next_bdp_ping_timer_handle =
2834
2841
  t->event_engine->RunAfter(next_ping - grpc_core::Timestamp::Now(), [t] {
2835
2842
  grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
@@ -2848,7 +2855,7 @@ static void next_bdp_ping_timer_expired(grpc_chttp2_transport* t) {
2848
2855
  static void next_bdp_ping_timer_expired_locked(
2849
2856
  grpc_core::RefCountedPtr<grpc_chttp2_transport> t,
2850
2857
  GRPC_UNUSED grpc_error_handle error) {
2851
- GPR_DEBUG_ASSERT(error.ok());
2858
+ DCHECK(error.ok());
2852
2859
  t->next_bdp_ping_timer_handle = TaskHandle::kInvalid;
2853
2860
  if (t->flow_control.bdp_estimator()->accumulator() == 0) {
2854
2861
  // Block the bdp ping till we receive more data.
@@ -2916,9 +2923,9 @@ static void init_keepalive_ping(
2916
2923
  static void init_keepalive_ping_locked(
2917
2924
  grpc_core::RefCountedPtr<grpc_chttp2_transport> t,
2918
2925
  GRPC_UNUSED grpc_error_handle error) {
2919
- GPR_DEBUG_ASSERT(error.ok());
2920
- GPR_ASSERT(t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_WAITING);
2921
- GPR_ASSERT(t->keepalive_ping_timer_handle != TaskHandle::kInvalid);
2926
+ DCHECK(error.ok());
2927
+ CHECK(t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_WAITING);
2928
+ CHECK(t->keepalive_ping_timer_handle != TaskHandle::kInvalid);
2922
2929
  t->keepalive_ping_timer_handle = TaskHandle::kInvalid;
2923
2930
  if (t->destroying || !t->closed_with_error.ok()) {
2924
2931
  t->keepalive_state = GRPC_CHTTP2_KEEPALIVE_STATE_DYING;
@@ -2954,13 +2961,13 @@ static void finish_keepalive_ping_locked(
2954
2961
  grpc_error_handle error) {
2955
2962
  if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_PINGING) {
2956
2963
  if (error.ok()) {
2957
- if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace) ||
2958
- GRPC_TRACE_FLAG_ENABLED(grpc_keepalive_trace)) {
2964
+ if (GRPC_TRACE_FLAG_ENABLED(http) ||
2965
+ GRPC_TRACE_FLAG_ENABLED(http_keepalive)) {
2959
2966
  gpr_log(GPR_INFO, "%s: Finish keepalive ping",
2960
2967
  std::string(t->peer_string.as_string_view()).c_str());
2961
2968
  }
2962
2969
  t->keepalive_state = GRPC_CHTTP2_KEEPALIVE_STATE_WAITING;
2963
- GPR_ASSERT(t->keepalive_ping_timer_handle == TaskHandle::kInvalid);
2970
+ CHECK(t->keepalive_ping_timer_handle == TaskHandle::kInvalid);
2964
2971
  t->keepalive_ping_timer_handle =
2965
2972
  t->event_engine->RunAfter(t->keepalive_time, [t] {
2966
2973
  grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
@@ -2976,8 +2983,8 @@ static void maybe_reset_keepalive_ping_timer_locked(grpc_chttp2_transport* t) {
2976
2983
  t->event_engine->Cancel(t->keepalive_ping_timer_handle)) {
2977
2984
  // Cancel succeeds, resets the keepalive ping timer. Note that we don't
2978
2985
  // need to Ref or Unref here since we still hold the Ref.
2979
- if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace) ||
2980
- GRPC_TRACE_FLAG_ENABLED(grpc_keepalive_trace)) {
2986
+ if (GRPC_TRACE_FLAG_ENABLED(http) ||
2987
+ GRPC_TRACE_FLAG_ENABLED(http_keepalive)) {
2981
2988
  gpr_log(GPR_INFO, "%s: Keepalive ping cancelled. Resetting timer.",
2982
2989
  std::string(t->peer_string.as_string_view()).c_str());
2983
2990
  }
@@ -3010,12 +3017,22 @@ static void connectivity_state_set(grpc_chttp2_transport* t,
3010
3017
 
3011
3018
  void grpc_chttp2_transport::SetPollset(grpc_stream* /*gs*/,
3012
3019
  grpc_pollset* pollset) {
3013
- grpc_endpoint_add_to_pollset(ep, pollset);
3020
+ // We don't want the overhead of acquiring the mutex unless we're
3021
+ // using the "poll" polling engine, which is the only one that
3022
+ // actually uses pollsets.
3023
+ if (strcmp(grpc_get_poll_strategy_name(), "poll") != 0) return;
3024
+ grpc_core::MutexLock lock(&ep_destroy_mu);
3025
+ if (ep != nullptr) grpc_endpoint_add_to_pollset(ep, pollset);
3014
3026
  }
3015
3027
 
3016
3028
  void grpc_chttp2_transport::SetPollsetSet(grpc_stream* /*gs*/,
3017
3029
  grpc_pollset_set* pollset_set) {
3018
- grpc_endpoint_add_to_pollset_set(ep, pollset_set);
3030
+ // We don't want the overhead of acquiring the mutex unless we're
3031
+ // using the "poll" polling engine, which is the only one that
3032
+ // actually uses pollsets.
3033
+ if (strcmp(grpc_get_poll_strategy_name(), "poll") != 0) return;
3034
+ grpc_core::MutexLock lock(&ep_destroy_mu);
3035
+ if (ep != nullptr) grpc_endpoint_add_to_pollset_set(ep, pollset_set);
3019
3036
  }
3020
3037
 
3021
3038
  //
@@ -3066,7 +3083,7 @@ static void benign_reclaimer_locked(
3066
3083
  if (error.ok() && t->stream_map.empty()) {
3067
3084
  // Channel with no active streams: send a goaway to try and make it
3068
3085
  // disconnect cleanly
3069
- if (GRPC_TRACE_FLAG_ENABLED(grpc_resource_quota_trace)) {
3086
+ if (GRPC_TRACE_FLAG_ENABLED(resource_quota)) {
3070
3087
  gpr_log(GPR_INFO, "HTTP2: %s - send goaway to free memory",
3071
3088
  std::string(t->peer_string.as_string_view()).c_str());
3072
3089
  }
@@ -3075,7 +3092,7 @@ static void benign_reclaimer_locked(
3075
3092
  grpc_core::StatusIntProperty::kHttp2Error,
3076
3093
  GRPC_HTTP2_ENHANCE_YOUR_CALM),
3077
3094
  /*immediate_disconnect_hint=*/true);
3078
- } else if (error.ok() && GRPC_TRACE_FLAG_ENABLED(grpc_resource_quota_trace)) {
3095
+ } else if (error.ok() && GRPC_TRACE_FLAG_ENABLED(resource_quota)) {
3079
3096
  gpr_log(GPR_INFO,
3080
3097
  "HTTP2: %s - skip benign reclamation, there are still %" PRIdPTR
3081
3098
  " streams",
@@ -3095,7 +3112,7 @@ static void destructive_reclaimer_locked(
3095
3112
  if (error.ok() && !t->stream_map.empty()) {
3096
3113
  // As stream_map is a hash map, this selects effectively a random stream.
3097
3114
  grpc_chttp2_stream* s = t->stream_map.begin()->second;
3098
- if (GRPC_TRACE_FLAG_ENABLED(grpc_resource_quota_trace)) {
3115
+ if (GRPC_TRACE_FLAG_ENABLED(resource_quota)) {
3099
3116
  gpr_log(GPR_INFO, "HTTP2: %s - abandon stream id %d",
3100
3117
  std::string(t->peer_string.as_string_view()).c_str(), s->id);
3101
3118
  }
@@ -3173,8 +3190,6 @@ const char* grpc_chttp2_initiate_write_reason_string(
3173
3190
  GPR_UNREACHABLE_CODE(return "unknown");
3174
3191
  }
3175
3192
 
3176
- grpc_endpoint* grpc_chttp2_transport::GetEndpoint() { return ep; }
3177
-
3178
3193
  size_t grpc_chttp2_transport::SizeOfStream() const {
3179
3194
  return sizeof(grpc_chttp2_stream);
3180
3195
  }
@@ -3203,7 +3218,9 @@ grpc_core::Transport* grpc_create_chttp2_transport(
3203
3218
 
3204
3219
  void grpc_chttp2_transport_start_reading(
3205
3220
  grpc_core::Transport* transport, grpc_slice_buffer* read_buffer,
3206
- grpc_closure* notify_on_receive_settings, grpc_closure* notify_on_close) {
3221
+ grpc_closure* notify_on_receive_settings,
3222
+ grpc_pollset_set* interested_parties_until_recv_settings,
3223
+ grpc_closure* notify_on_close) {
3207
3224
  auto t = reinterpret_cast<grpc_chttp2_transport*>(transport)->Ref();
3208
3225
  if (read_buffer != nullptr) {
3209
3226
  grpc_slice_buffer_move_into(read_buffer, &t->read_buffer);
@@ -3212,9 +3229,15 @@ void grpc_chttp2_transport_start_reading(
3212
3229
  auto* tp = t.get();
3213
3230
  tp->combiner->Run(
3214
3231
  grpc_core::NewClosure([t = std::move(t), notify_on_receive_settings,
3232
+ interested_parties_until_recv_settings,
3215
3233
  notify_on_close](grpc_error_handle) mutable {
3216
3234
  if (!t->closed_with_error.ok()) {
3217
3235
  if (notify_on_receive_settings != nullptr) {
3236
+ if (t->ep != nullptr &&
3237
+ interested_parties_until_recv_settings != nullptr) {
3238
+ grpc_endpoint_delete_from_pollset_set(
3239
+ t->ep, interested_parties_until_recv_settings);
3240
+ }
3218
3241
  grpc_core::ExecCtx::Run(DEBUG_LOCATION, notify_on_receive_settings,
3219
3242
  t->closed_with_error);
3220
3243
  }
@@ -3224,6 +3247,8 @@ void grpc_chttp2_transport_start_reading(
3224
3247
  }
3225
3248
  return;
3226
3249
  }
3250
+ t->interested_parties_until_recv_settings =
3251
+ interested_parties_until_recv_settings;
3227
3252
  t->notify_on_receive_settings = notify_on_receive_settings;
3228
3253
  t->notify_on_close = notify_on_close;
3229
3254
  read_action_locked(std::move(t), absl::OkStatus());