grpc 1.73.0 → 1.74.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +38 -17
  3. data/include/grpc/create_channel_from_endpoint.h +54 -0
  4. data/include/grpc/credentials.h +11 -5
  5. data/include/grpc/event_engine/event_engine.h +74 -17
  6. data/include/grpc/grpc_posix.h +20 -1
  7. data/include/grpc/impl/channel_arg_names.h +2 -4
  8. data/include/grpc/module.modulemap +1 -0
  9. data/include/grpc/support/json.h +24 -0
  10. data/src/core/call/interception_chain.h +7 -11
  11. data/src/core/channelz/channel_trace.cc +213 -115
  12. data/src/core/channelz/channel_trace.h +380 -86
  13. data/src/core/channelz/channelz.cc +270 -181
  14. data/src/core/channelz/channelz.h +168 -55
  15. data/src/core/channelz/channelz_registry.cc +2 -1
  16. data/src/core/channelz/channelz_registry.h +24 -0
  17. data/src/core/channelz/property_list.cc +357 -0
  18. data/src/core/channelz/property_list.h +202 -0
  19. data/src/core/channelz/ztrace_collector.h +3 -2
  20. data/src/core/client_channel/backup_poller.cc +17 -2
  21. data/src/core/client_channel/client_channel.cc +17 -28
  22. data/src/core/client_channel/client_channel_filter.cc +19 -29
  23. data/src/core/client_channel/config_selector.h +8 -2
  24. data/src/core/client_channel/dynamic_filters.cc +5 -6
  25. data/src/core/client_channel/dynamic_filters.h +1 -1
  26. data/src/core/client_channel/global_subchannel_pool.cc +4 -1
  27. data/src/core/client_channel/retry_filter.cc +21 -27
  28. data/src/core/client_channel/retry_filter.h +10 -7
  29. data/src/core/client_channel/retry_filter_legacy_call_data.cc +5 -5
  30. data/src/core/client_channel/retry_filter_legacy_call_data.h +1 -1
  31. data/src/core/client_channel/retry_interceptor.cc +30 -44
  32. data/src/core/client_channel/retry_interceptor.h +18 -17
  33. data/src/core/client_channel/retry_throttle.cc +46 -61
  34. data/src/core/client_channel/retry_throttle.h +17 -39
  35. data/src/core/client_channel/subchannel.cc +43 -19
  36. data/src/core/client_channel/subchannel.h +8 -0
  37. data/src/core/config/config_vars.cc +2 -0
  38. data/src/core/config/core_configuration.cc +1 -0
  39. data/src/core/config/core_configuration.h +11 -0
  40. data/src/core/credentials/call/call_creds_registry.h +125 -0
  41. data/src/core/credentials/call/call_creds_registry_init.cc +91 -0
  42. data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +6 -48
  43. data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +86 -0
  44. data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.h +74 -0
  45. data/src/core/credentials/call/jwt_util.cc +70 -0
  46. data/src/core/credentials/call/jwt_util.h +32 -0
  47. data/src/core/credentials/transport/channel_creds_registry_init.cc +1 -1
  48. data/src/core/credentials/transport/google_default/google_default_credentials.cc +72 -4
  49. data/src/core/credentials/transport/ssl/ssl_credentials.cc +0 -1
  50. data/src/core/credentials/transport/tls/load_system_roots_supported.cc +1 -0
  51. data/src/core/credentials/transport/xds/xds_credentials.cc +0 -3
  52. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +8 -8
  53. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +16 -16
  54. data/src/core/ext/filters/http/client_authority_filter.cc +2 -4
  55. data/src/core/ext/filters/http/message_compress/compression_filter.h +25 -22
  56. data/src/core/ext/filters/http/server/http_server_filter.h +12 -11
  57. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +120 -35
  58. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +6 -5
  59. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +162 -115
  60. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +0 -3
  61. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +1239 -3514
  62. data/src/core/ext/transport/chttp2/transport/decode_huff.h +1008 -1486
  63. data/src/core/ext/transport/chttp2/transport/flow_control.h +22 -17
  64. data/src/core/ext/transport/chttp2/transport/frame.cc +10 -0
  65. data/src/core/ext/transport/chttp2/transport/frame.h +2 -2
  66. data/src/core/ext/transport/chttp2/transport/frame_data.cc +1 -1
  67. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +7 -8
  68. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -5
  69. data/src/core/ext/transport/chttp2/transport/header_assembler.h +299 -0
  70. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +1 -1
  71. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +11 -5
  72. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +12 -1
  73. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +1017 -0
  74. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +593 -0
  75. data/src/core/ext/transport/chttp2/transport/http2_settings.h +19 -22
  76. data/{third_party/abseil-cpp/absl/strings/cord_buffer.cc → src/core/ext/transport/chttp2/transport/http2_stats_collector.cc} +14 -14
  77. data/src/core/ext/transport/chttp2/transport/http2_stats_collector.h +33 -0
  78. data/src/core/ext/transport/chttp2/transport/http2_status.h +6 -1
  79. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +43 -0
  80. data/src/core/ext/transport/chttp2/transport/http2_transport.h +65 -0
  81. data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +0 -29
  82. data/src/core/ext/transport/chttp2/transport/internal.h +18 -8
  83. data/src/core/ext/transport/chttp2/transport/keepalive.cc +105 -0
  84. data/src/core/ext/transport/chttp2/transport/keepalive.h +138 -0
  85. data/src/core/ext/transport/chttp2/transport/message_assembler.h +185 -0
  86. data/src/core/ext/transport/chttp2/transport/parsing.cc +2 -4
  87. data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +19 -0
  88. data/src/core/ext/transport/chttp2/transport/ping_promise.cc +151 -0
  89. data/src/core/ext/transport/chttp2/transport/ping_promise.h +180 -0
  90. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +5 -9
  91. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +11 -0
  92. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +39 -1
  93. data/src/core/ext/transport/chttp2/transport/transport_common.cc +19 -0
  94. data/src/core/ext/transport/chttp2/transport/transport_common.h +27 -0
  95. data/src/core/ext/transport/chttp2/transport/writing.cc +37 -11
  96. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +571 -0
  97. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +120 -0
  98. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +36 -0
  99. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +1272 -0
  100. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +312 -0
  101. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +50 -0
  102. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +984 -0
  103. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +226 -0
  104. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +44 -0
  105. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c +175 -0
  106. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.h +82 -0
  107. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.c +135 -0
  108. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.h +67 -0
  109. data/src/core/filter/auth/auth_filters.h +0 -25
  110. data/src/core/filter/auth/client_auth_filter.cc +0 -118
  111. data/src/core/filter/filter_args.h +9 -23
  112. data/src/core/handshaker/handshaker.cc +23 -14
  113. data/src/core/handshaker/handshaker.h +3 -0
  114. data/src/core/handshaker/http_connect/http_connect_handshaker.cc +3 -1
  115. data/src/core/handshaker/security/legacy_secure_endpoint.cc +6 -5
  116. data/src/core/handshaker/security/secure_endpoint.cc +70 -25
  117. data/src/core/handshaker/security/security_handshaker.cc +4 -1
  118. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +7 -1
  119. data/src/core/lib/channel/channel_args.cc +15 -0
  120. data/src/core/lib/channel/channel_args.h +3 -0
  121. data/src/core/lib/channel/channel_stack.cc +22 -23
  122. data/src/core/lib/channel/channel_stack.h +9 -7
  123. data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
  124. data/src/core/lib/channel/channel_stack_builder_impl.h +2 -7
  125. data/src/core/lib/channel/promise_based_filter.h +5 -5
  126. data/src/core/lib/debug/trace_impl.h +0 -1
  127. data/src/core/lib/event_engine/ares_resolver.cc +165 -46
  128. data/src/core/lib/event_engine/ares_resolver.h +48 -2
  129. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +3 -1
  130. data/src/core/lib/event_engine/cf_engine/cf_engine.h +1 -4
  131. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +2 -6
  132. data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.cc +40 -0
  133. data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.h +60 -0
  134. data/src/core/lib/event_engine/event_engine.cc +7 -0
  135. data/src/core/lib/event_engine/extensions/channelz.h +10 -6
  136. data/src/core/lib/event_engine/grpc_polled_fd.h +5 -0
  137. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +130 -162
  138. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +11 -15
  139. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +75 -117
  140. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +7 -9
  141. data/src/core/lib/event_engine/posix_engine/event_poller.h +18 -15
  142. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +0 -18
  143. data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +124 -0
  144. data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.h +243 -0
  145. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +29 -19
  146. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +6 -2
  147. data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +6 -1
  148. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +145 -92
  149. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +9 -19
  150. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +333 -116
  151. data/src/core/lib/event_engine/posix_engine/posix_engine.h +61 -18
  152. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +45 -37
  153. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +6 -4
  154. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +32 -142
  155. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +6 -5
  156. data/src/core/lib/event_engine/posix_engine/posix_interface.h +211 -0
  157. data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +1083 -0
  158. data/src/core/lib/event_engine/posix_engine/posix_interface_windows.cc +281 -0
  159. data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.cc +154 -0
  160. data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +174 -0
  161. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +3 -719
  162. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +10 -170
  163. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +33 -22
  164. data/src/core/lib/event_engine/posix_engine/timer_manager.h +13 -11
  165. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +117 -151
  166. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +26 -94
  167. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +26 -25
  168. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +6 -2
  169. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +36 -62
  170. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +6 -2
  171. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +7 -6
  172. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +12 -6
  173. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +3 -1
  174. data/src/core/lib/event_engine/shim.cc +9 -0
  175. data/src/core/lib/event_engine/shim.h +3 -0
  176. data/src/core/lib/event_engine/thread_pool/thread_pool.h +7 -3
  177. data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +0 -17
  178. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +4 -2
  179. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -2
  180. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +4 -0
  181. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +4 -0
  182. data/src/core/lib/event_engine/windows/windows_endpoint.h +2 -6
  183. data/src/core/lib/event_engine/windows/windows_engine.cc +0 -1
  184. data/src/core/lib/event_engine/windows/windows_engine.h +1 -3
  185. data/src/core/lib/event_engine/windows/windows_listener.cc +14 -2
  186. data/src/core/lib/experiments/experiments.cc +45 -93
  187. data/src/core/lib/experiments/experiments.h +21 -51
  188. data/src/core/lib/iomgr/endpoint.cc +4 -3
  189. data/src/core/lib/iomgr/endpoint.h +7 -4
  190. data/src/core/lib/iomgr/endpoint_cfstream.cc +3 -2
  191. data/src/core/lib/iomgr/ev_epoll1_linux.cc +7 -2
  192. data/src/core/lib/iomgr/ev_poll_posix.cc +7 -2
  193. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +4 -6
  194. data/src/core/lib/iomgr/tcp_posix.cc +12 -6
  195. data/src/core/lib/iomgr/tcp_windows.cc +3 -2
  196. data/src/core/lib/promise/activity.h +1 -0
  197. data/src/core/lib/promise/arena_promise.h +23 -7
  198. data/src/core/lib/promise/detail/promise_factory.h +10 -0
  199. data/src/core/lib/promise/detail/promise_like.h +118 -11
  200. data/src/core/lib/promise/detail/promise_variant.h +50 -0
  201. data/src/core/lib/promise/detail/seq_state.h +687 -548
  202. data/src/core/lib/promise/if.h +20 -0
  203. data/src/core/lib/promise/inter_activity_latch.h +147 -0
  204. data/src/core/lib/promise/inter_activity_mutex.h +547 -0
  205. data/src/core/lib/promise/loop.h +65 -3
  206. data/src/core/lib/promise/map.h +24 -0
  207. data/src/core/lib/promise/match_promise.h +103 -0
  208. data/src/core/lib/promise/mpsc.cc +425 -0
  209. data/src/core/lib/promise/mpsc.h +490 -0
  210. data/src/core/lib/promise/party.cc +50 -1
  211. data/src/core/lib/promise/party.h +66 -1
  212. data/src/core/lib/promise/race.h +31 -0
  213. data/src/core/lib/promise/seq.h +4 -1
  214. data/src/core/lib/promise/status_flag.h +7 -0
  215. data/src/core/lib/promise/try_seq.h +4 -1
  216. data/src/core/lib/promise/wait_set.cc +28 -0
  217. data/src/core/lib/promise/wait_set.h +86 -0
  218. data/src/core/lib/resource_quota/arena.h +19 -0
  219. data/src/core/lib/slice/slice.h +5 -0
  220. data/src/core/lib/surface/channel_create.cc +88 -13
  221. data/src/core/lib/surface/channel_create.h +4 -0
  222. data/src/core/lib/surface/channel_init.cc +164 -47
  223. data/src/core/lib/surface/channel_init.h +64 -1
  224. data/src/core/lib/surface/filter_stack_call.cc +18 -9
  225. data/src/core/lib/surface/init.cc +6 -15
  226. data/src/core/lib/surface/legacy_channel.cc +3 -5
  227. data/src/core/lib/surface/legacy_channel.h +3 -1
  228. data/src/core/lib/surface/version.cc +2 -2
  229. data/src/core/lib/transport/promise_endpoint.cc +110 -0
  230. data/src/core/lib/transport/promise_endpoint.h +307 -0
  231. data/src/core/load_balancing/child_policy_handler.cc +2 -4
  232. data/src/core/load_balancing/delegating_helper.h +2 -3
  233. data/src/core/load_balancing/health_check_client.cc +1 -5
  234. data/src/core/load_balancing/lb_policy.h +1 -3
  235. data/src/core/load_balancing/oob_backend_metric.cc +1 -5
  236. data/src/core/load_balancing/pick_first/pick_first.cc +3 -0
  237. data/src/core/load_balancing/xds/cds.cc +10 -1
  238. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
  239. data/src/core/resolver/xds/xds_config.cc +6 -3
  240. data/src/core/resolver/xds/xds_config.h +9 -4
  241. data/src/core/resolver/xds/xds_dependency_manager.cc +21 -6
  242. data/src/core/resolver/xds/xds_dependency_manager.h +2 -1
  243. data/src/core/resolver/xds/xds_resolver.cc +31 -11
  244. data/src/core/server/server.cc +83 -12
  245. data/src/core/server/server.h +21 -2
  246. data/src/core/server/xds_server_config_fetcher.cc +63 -25
  247. data/src/core/service_config/service_config.h +1 -1
  248. data/src/core/service_config/service_config_impl.h +1 -1
  249. data/src/core/telemetry/context_list_entry.cc +38 -0
  250. data/src/core/telemetry/context_list_entry.h +42 -12
  251. data/src/core/telemetry/stats_data.cc +233 -207
  252. data/src/core/telemetry/stats_data.h +250 -153
  253. data/src/core/telemetry/tcp_tracer.h +1 -1
  254. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +11 -3
  255. data/src/core/tsi/fake_transport_security.cc +17 -0
  256. data/src/core/tsi/ssl_transport_security.cc +2 -0
  257. data/src/core/tsi/transport_security_grpc.cc +8 -0
  258. data/src/core/tsi/transport_security_grpc.h +15 -0
  259. data/src/core/util/backoff.cc +1 -5
  260. data/src/core/util/backoff.h +1 -0
  261. data/src/core/util/down_cast.h +1 -1
  262. data/src/core/util/function_signature.h +15 -1
  263. data/src/core/util/http_client/httpcli.cc +12 -5
  264. data/src/core/util/http_client/httpcli.h +4 -1
  265. data/src/core/util/latent_see.h +8 -5
  266. data/src/core/util/log.cc +4 -0
  267. data/src/core/util/memory_usage.h +268 -0
  268. data/src/core/util/per_cpu.cc +2 -0
  269. data/src/core/util/per_cpu.h +7 -0
  270. data/src/core/util/shared_bit_gen.h +20 -0
  271. data/src/core/util/single_set_ptr.h +2 -2
  272. data/src/core/util/upb_utils.h +42 -0
  273. data/src/core/util/uri.cc +3 -2
  274. data/src/core/util/useful.h +53 -2
  275. data/src/core/util/wait_for_single_owner.cc +31 -0
  276. data/src/core/util/wait_for_single_owner.h +24 -0
  277. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +2 -0
  278. data/src/core/xds/grpc/xds_bootstrap_grpc.h +5 -0
  279. data/src/core/xds/grpc/xds_client_grpc.cc +6 -2
  280. data/src/core/xds/grpc/xds_common_types_parser.cc +138 -50
  281. data/src/core/xds/grpc/xds_common_types_parser.h +12 -0
  282. data/src/core/xds/grpc/xds_http_filter.h +7 -0
  283. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +22 -0
  284. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +3 -0
  285. data/src/core/xds/grpc/xds_route_config_parser.cc +15 -38
  286. data/src/core/xds/grpc/xds_server_grpc.cc +63 -13
  287. data/src/core/xds/grpc/xds_server_grpc.h +10 -2
  288. data/src/core/xds/grpc/xds_server_grpc_interface.h +4 -0
  289. data/src/core/xds/grpc/xds_transport_grpc.cc +18 -0
  290. data/src/core/xds/xds_client/xds_bootstrap.h +2 -0
  291. data/src/core/xds/xds_client/xds_client.cc +26 -5
  292. data/src/ruby/ext/grpc/extconf.rb +2 -0
  293. data/src/ruby/ext/grpc/rb_call.c +1 -8
  294. data/src/ruby/ext/grpc/rb_channel.c +72 -568
  295. data/src/ruby/ext/grpc/rb_channel.h +0 -3
  296. data/src/ruby/ext/grpc/rb_completion_queue.c +26 -14
  297. data/src/ruby/ext/grpc/rb_completion_queue.h +1 -7
  298. data/src/ruby/ext/grpc/rb_grpc.c +9 -5
  299. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
  300. data/src/ruby/ext/grpc/rb_loader.c +0 -4
  301. data/src/ruby/ext/grpc/rb_server.c +31 -50
  302. data/src/ruby/lib/grpc/generic/client_stub.rb +4 -4
  303. data/src/ruby/lib/grpc/version.rb +1 -1
  304. data/src/ruby/spec/core_spec.rb +22 -0
  305. data/src/ruby/spec/generic/active_call_spec.rb +1 -1
  306. data/third_party/abseil-cpp/absl/algorithm/container.h +2 -19
  307. data/third_party/abseil-cpp/absl/base/attributes.h +76 -7
  308. data/third_party/abseil-cpp/absl/base/call_once.h +11 -12
  309. data/third_party/abseil-cpp/absl/base/config.h +20 -129
  310. data/third_party/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
  311. data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
  312. data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
  313. data/third_party/abseil-cpp/absl/base/internal/endian.h +34 -38
  314. data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
  315. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -5
  316. data/third_party/abseil-cpp/absl/base/internal/{nullability_impl.h → nullability_deprecated.h} +45 -8
  317. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +0 -9
  318. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -13
  319. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
  320. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +8 -3
  321. data/third_party/abseil-cpp/absl/base/no_destructor.h +11 -32
  322. data/third_party/abseil-cpp/absl/base/nullability.h +84 -72
  323. data/third_party/abseil-cpp/absl/base/options.h +3 -80
  324. data/third_party/abseil-cpp/absl/base/policy_checks.h +7 -7
  325. data/third_party/abseil-cpp/absl/cleanup/cleanup.h +1 -3
  326. data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
  327. data/third_party/abseil-cpp/absl/container/btree_map.h +4 -2
  328. data/third_party/abseil-cpp/absl/container/btree_set.h +4 -2
  329. data/third_party/abseil-cpp/absl/container/fixed_array.h +7 -14
  330. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +5 -0
  331. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +6 -1
  332. data/third_party/abseil-cpp/absl/container/inlined_vector.h +8 -5
  333. data/third_party/abseil-cpp/absl/container/internal/btree.h +132 -29
  334. data/third_party/abseil-cpp/absl/container/internal/btree_container.h +175 -71
  335. data/third_party/abseil-cpp/absl/container/internal/common.h +43 -0
  336. data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -2
  337. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +9 -10
  338. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +1 -8
  339. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +0 -4
  340. data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +527 -0
  341. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +20 -4
  342. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +31 -12
  343. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +2 -7
  344. data/third_party/abseil-cpp/absl/container/internal/layout.h +26 -42
  345. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
  346. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +1354 -183
  347. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +881 -1424
  348. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +80 -0
  349. data/third_party/abseil-cpp/absl/crc/crc32c.cc +0 -4
  350. data/third_party/abseil-cpp/absl/crc/crc32c.h +7 -5
  351. data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
  352. data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +45 -74
  353. data/third_party/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
  354. data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
  355. data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
  356. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +8 -35
  357. data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
  358. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -37
  359. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
  360. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
  361. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
  362. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
  363. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +13 -4
  364. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
  365. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
  366. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +19 -9
  367. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +144 -27
  368. data/third_party/abseil-cpp/absl/debugging/stacktrace.h +73 -5
  369. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +19 -9
  370. data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
  371. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
  372. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +2 -2
  373. data/third_party/abseil-cpp/absl/flags/flag.h +4 -3
  374. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
  375. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +2 -1
  376. data/third_party/abseil-cpp/absl/flags/internal/flag.h +7 -6
  377. data/third_party/abseil-cpp/absl/flags/internal/registry.h +4 -3
  378. data/third_party/abseil-cpp/absl/flags/reflection.cc +2 -3
  379. data/third_party/abseil-cpp/absl/functional/any_invocable.h +8 -10
  380. data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -9
  381. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +110 -226
  382. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
  383. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
  384. data/third_party/abseil-cpp/absl/hash/hash.h +18 -0
  385. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +1 -5
  386. data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -61
  387. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +25 -68
  388. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +2 -6
  389. data/third_party/abseil-cpp/absl/hash/internal/weakly_mixed_integer.h +38 -0
  390. data/third_party/abseil-cpp/absl/log/check.h +2 -1
  391. data/third_party/abseil-cpp/absl/log/globals.h +4 -5
  392. data/third_party/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
  393. data/third_party/abseil-cpp/absl/log/internal/check_op.cc +22 -22
  394. data/third_party/abseil-cpp/absl/log/internal/check_op.h +65 -62
  395. data/third_party/abseil-cpp/absl/log/internal/conditions.cc +5 -3
  396. data/third_party/abseil-cpp/absl/log/internal/conditions.h +7 -2
  397. data/third_party/abseil-cpp/absl/log/internal/log_message.cc +85 -43
  398. data/third_party/abseil-cpp/absl/log/internal/log_message.h +84 -59
  399. data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -0
  400. data/third_party/abseil-cpp/absl/log/internal/proto.cc +3 -2
  401. data/third_party/abseil-cpp/absl/log/internal/proto.h +3 -3
  402. data/third_party/abseil-cpp/absl/log/internal/strip.h +4 -12
  403. data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
  404. data/third_party/abseil-cpp/absl/log/internal/voidify.h +10 -4
  405. data/third_party/abseil-cpp/absl/log/log.h +48 -35
  406. data/third_party/abseil-cpp/absl/log/log_sink_registry.h +2 -2
  407. data/third_party/abseil-cpp/absl/meta/type_traits.h +46 -175
  408. data/third_party/abseil-cpp/absl/numeric/bits.h +68 -2
  409. data/third_party/abseil-cpp/absl/numeric/int128.cc +0 -52
  410. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +7 -3
  411. data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
  412. data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +10 -11
  413. data/third_party/abseil-cpp/absl/random/distributions.h +6 -8
  414. data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +1 -1
  415. data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +5 -6
  416. data/third_party/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +22 -90
  417. data/third_party/abseil-cpp/absl/random/internal/entropy_pool.h +35 -0
  418. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
  419. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +1 -1
  420. data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
  421. data/third_party/abseil-cpp/absl/random/internal/seed_material.h +5 -5
  422. data/third_party/abseil-cpp/absl/random/random.h +88 -53
  423. data/third_party/abseil-cpp/absl/random/seed_sequences.cc +6 -2
  424. data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +3 -4
  425. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +3 -4
  426. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -3
  427. data/third_party/abseil-cpp/absl/status/status.cc +4 -8
  428. data/third_party/abseil-cpp/absl/status/status.h +8 -8
  429. data/third_party/abseil-cpp/absl/status/status_payload_printer.h +2 -2
  430. data/third_party/abseil-cpp/absl/status/statusor.cc +2 -2
  431. data/third_party/abseil-cpp/absl/status/statusor.h +6 -6
  432. data/third_party/abseil-cpp/absl/strings/ascii.cc +9 -9
  433. data/third_party/abseil-cpp/absl/strings/ascii.h +18 -18
  434. data/third_party/abseil-cpp/absl/strings/charconv.cc +21 -22
  435. data/third_party/abseil-cpp/absl/strings/charconv.h +5 -5
  436. data/third_party/abseil-cpp/absl/strings/cord.cc +54 -58
  437. data/third_party/abseil-cpp/absl/strings/cord.h +94 -83
  438. data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
  439. data/third_party/abseil-cpp/absl/strings/cord_analysis.h +3 -3
  440. data/third_party/abseil-cpp/absl/strings/escaping.cc +130 -149
  441. data/third_party/abseil-cpp/absl/strings/escaping.h +9 -10
  442. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
  443. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +6 -8
  444. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
  445. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +0 -4
  446. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
  447. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
  448. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
  449. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
  450. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
  451. data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
  452. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
  453. data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
  454. data/third_party/abseil-cpp/absl/strings/internal/utf8.h +15 -1
  455. data/third_party/abseil-cpp/absl/strings/numbers.cc +53 -32
  456. data/third_party/abseil-cpp/absl/strings/numbers.h +87 -58
  457. data/third_party/abseil-cpp/absl/strings/str_cat.cc +6 -7
  458. data/third_party/abseil-cpp/absl/strings/str_cat.h +32 -32
  459. data/third_party/abseil-cpp/absl/strings/str_format.h +18 -18
  460. data/third_party/abseil-cpp/absl/strings/str_replace.cc +3 -3
  461. data/third_party/abseil-cpp/absl/strings/str_replace.h +6 -6
  462. data/third_party/abseil-cpp/absl/strings/string_view.cc +4 -9
  463. data/third_party/abseil-cpp/absl/strings/string_view.h +27 -32
  464. data/third_party/abseil-cpp/absl/strings/strip.h +4 -4
  465. data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -4
  466. data/third_party/abseil-cpp/absl/strings/substitute.h +66 -64
  467. data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
  468. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
  469. data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
  470. data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
  471. data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
  472. data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
  473. data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
  474. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +1 -1
  475. data/third_party/abseil-cpp/absl/synchronization/mutex.h +97 -69
  476. data/third_party/abseil-cpp/absl/synchronization/notification.h +1 -1
  477. data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -0
  478. data/third_party/abseil-cpp/absl/time/duration.cc +12 -7
  479. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
  480. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +90 -111
  481. data/third_party/abseil-cpp/absl/time/time.h +20 -15
  482. data/third_party/abseil-cpp/absl/types/optional.h +7 -747
  483. data/third_party/abseil-cpp/absl/types/span.h +13 -11
  484. data/third_party/abseil-cpp/absl/types/variant.h +5 -784
  485. data/third_party/abseil-cpp/absl/utility/utility.h +10 -185
  486. metadata +72 -20
  487. data/src/core/lib/event_engine/forkable.cc +0 -105
  488. data/src/core/lib/event_engine/forkable.h +0 -67
  489. data/src/core/lib/iomgr/python_util.h +0 -46
  490. data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
  491. data/third_party/abseil-cpp/absl/base/internal/invoke.h +0 -241
  492. data/third_party/abseil-cpp/absl/log/log_entry.cc +0 -41
  493. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
  494. data/third_party/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
  495. data/third_party/abseil-cpp/absl/types/bad_optional_access.h +0 -78
  496. data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
  497. data/third_party/abseil-cpp/absl/types/bad_variant_access.h +0 -82
  498. data/third_party/abseil-cpp/absl/types/internal/optional.h +0 -352
  499. data/third_party/abseil-cpp/absl/types/internal/variant.h +0 -1622
@@ -0,0 +1,135 @@
1
+ /* This file was generated by upb_generator from the input file:
2
+ *
3
+ * src/proto/grpc/channelz/v2/property_list.proto
4
+ *
5
+ * Do not edit -- your changes will be discarded when the file is
6
+ * regenerated.
7
+ * NO CHECKED-IN PROTOBUF GENCODE */
8
+
9
+
10
+ #include "upb/reflection/def.h"
11
+ #include "src/proto/grpc/channelz/v2/property_list.upbdefs.h"
12
+ #include "src/proto/grpc/channelz/v2/property_list.upb_minitable.h"
13
+
14
+ extern _upb_DefPool_Init google_protobuf_any_proto_upbdefinit;
15
+ extern _upb_DefPool_Init google_protobuf_empty_proto_upbdefinit;
16
+ extern _upb_DefPool_Init google_protobuf_timestamp_proto_upbdefinit;
17
+ extern _upb_DefPool_Init google_protobuf_duration_proto_upbdefinit;
18
+
19
+ static const char descriptor[1190] = {
20
+ '\n', '.', 's', 'r', 'c', '/', 'p', 'r', 'o', 't', 'o', '/',
21
+ 'g', 'r', 'p', 'c', '/', 'c', 'h', 'a', 'n', 'n', 'e', 'l',
22
+ 'z', '/', 'v', '2', '/', 'p', 'r', 'o', 'p', 'e', 'r', 't',
23
+ 'y', '_', 'l', 'i', 's', 't', '.', 'p', 'r', 'o', 't', 'o',
24
+ '\022', '\020', 'g', 'r', 'p', 'c', '.', 'c', 'h', 'a', 'n', 'n',
25
+ 'e', 'l', 'z', '.', 'v', '2', '\032', '\031', 'g', 'o', 'o', 'g',
26
+ 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/',
27
+ 'a', 'n', 'y', '.', 'p', 'r', 'o', 't', 'o', '\032', '\033', 'g',
28
+ 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b',
29
+ 'u', 'f', '/', 'e', 'm', 'p', 't', 'y', '.', 'p', 'r', 'o',
30
+ 't', 'o', '\032', '\037', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p',
31
+ 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 't', 'i', 'm', 'e',
32
+ 's', 't', 'a', 'm', 'p', '.', 'p', 'r', 'o', 't', 'o', '\032',
33
+ '\036', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't',
34
+ 'o', 'b', 'u', 'f', '/', 'd', 'u', 'r', 'a', 't', 'i', 'o',
35
+ 'n', '.', 'p', 'r', 'o', 't', 'o', '\"', '\276', '\001', '\n', '\014',
36
+ 'P', 'r', 'o', 'p', 'e', 'r', 't', 'y', 'L', 'i', 's', 't',
37
+ '\022', 'N', '\n', '\n', 'p', 'r', 'o', 'p', 'e', 'r', 't', 'i',
38
+ 'e', 's', '\030', '\001', ' ', '\003', '(', '\013', '2', '.', '.', 'g',
39
+ 'r', 'p', 'c', '.', 'c', 'h', 'a', 'n', 'n', 'e', 'l', 'z',
40
+ '.', 'v', '2', '.', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'y',
41
+ 'L', 'i', 's', 't', '.', 'P', 'r', 'o', 'p', 'e', 'r', 't',
42
+ 'i', 'e', 's', 'E', 'n', 't', 'r', 'y', 'R', '\n', 'p', 'r',
43
+ 'o', 'p', 'e', 'r', 't', 'i', 'e', 's', '\032', '^', '\n', '\017',
44
+ 'P', 'r', 'o', 'p', 'e', 'r', 't', 'i', 'e', 's', 'E', 'n',
45
+ 't', 'r', 'y', '\022', '\020', '\n', '\003', 'k', 'e', 'y', '\030', '\001',
46
+ ' ', '\001', '(', '\t', 'R', '\003', 'k', 'e', 'y', '\022', '5', '\n',
47
+ '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\002', ' ', '\001', '(', '\013',
48
+ '2', '\037', '.', 'g', 'r', 'p', 'c', '.', 'c', 'h', 'a', 'n',
49
+ 'n', 'e', 'l', 'z', '.', 'v', '2', '.', 'P', 'r', 'o', 'p',
50
+ 'e', 'r', 't', 'y', 'V', 'a', 'l', 'u', 'e', 'R', '\005', 'v',
51
+ 'a', 'l', 'u', 'e', ':', '\002', '8', '\001', '\"', '\264', '\001', '\n',
52
+ '\014', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'y', 'G', 'r', 'i',
53
+ 'd', '\022', '\030', '\n', '\007', 'c', 'o', 'l', 'u', 'm', 'n', 's',
54
+ '\030', '\001', ' ', '\003', '(', '\t', 'R', '\007', 'c', 'o', 'l', 'u',
55
+ 'm', 'n', 's', '\022', '6', '\n', '\004', 'r', 'o', 'w', 's', '\030',
56
+ '\002', ' ', '\003', '(', '\013', '2', '\"', '.', 'g', 'r', 'p', 'c',
57
+ '.', 'c', 'h', 'a', 'n', 'n', 'e', 'l', 'z', '.', 'v', '2',
58
+ '.', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'y', 'G', 'r', 'i',
59
+ 'd', '.', 'R', 'o', 'w', 'R', '\004', 'r', 'o', 'w', 's', '\032',
60
+ 'R', '\n', '\003', 'R', 'o', 'w', '\022', '\024', '\n', '\005', 'l', 'a',
61
+ 'b', 'e', 'l', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\005', 'l',
62
+ 'a', 'b', 'e', 'l', '\022', '5', '\n', '\005', 'v', 'a', 'l', 'u',
63
+ 'e', '\030', '\002', ' ', '\003', '(', '\013', '2', '\037', '.', 'g', 'r',
64
+ 'p', 'c', '.', 'c', 'h', 'a', 'n', 'n', 'e', 'l', 'z', '.',
65
+ 'v', '2', '.', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'y', 'V',
66
+ 'a', 'l', 'u', 'e', 'R', '\005', 'v', 'a', 'l', 'u', 'e', '\"',
67
+ '\240', '\001', '\n', '\r', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'y',
68
+ 'T', 'a', 'b', 'l', 'e', '\022', '\030', '\n', '\007', 'c', 'o', 'l',
69
+ 'u', 'm', 'n', 's', '\030', '\001', ' ', '\003', '(', '\t', 'R', '\007',
70
+ 'c', 'o', 'l', 'u', 'm', 'n', 's', '\022', '7', '\n', '\004', 'r',
71
+ 'o', 'w', 's', '\030', '\002', ' ', '\003', '(', '\013', '2', '#', '.',
72
+ 'g', 'r', 'p', 'c', '.', 'c', 'h', 'a', 'n', 'n', 'e', 'l',
73
+ 'z', '.', 'v', '2', '.', 'P', 'r', 'o', 'p', 'e', 'r', 't',
74
+ 'y', 'T', 'a', 'b', 'l', 'e', '.', 'R', 'o', 'w', 'R', '\004',
75
+ 'r', 'o', 'w', 's', '\032', '<', '\n', '\003', 'R', 'o', 'w', '\022',
76
+ '5', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\001', ' ', '\003',
77
+ '(', '\013', '2', '\037', '.', 'g', 'r', 'p', 'c', '.', 'c', 'h',
78
+ 'a', 'n', 'n', 'e', 'l', 'z', '.', 'v', '2', '.', 'P', 'r',
79
+ 'o', 'p', 'e', 'r', 't', 'y', 'V', 'a', 'l', 'u', 'e', 'R',
80
+ '\005', 'v', 'a', 'l', 'u', 'e', '\"', '\305', '\003', '\n', '\r', 'P',
81
+ 'r', 'o', 'p', 'e', 'r', 't', 'y', 'V', 'a', 'l', 'u', 'e',
82
+ '\022', '9', '\n', '\013', 'e', 'm', 'p', 't', 'y', '_', 'v', 'a',
83
+ 'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', '\013', '2', '\026', '.',
84
+ 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o',
85
+ 'b', 'u', 'f', '.', 'E', 'm', 'p', 't', 'y', 'H', '\000', 'R',
86
+ '\n', 'e', 'm', 'p', 't', 'y', 'V', 'a', 'l', 'u', 'e', '\022',
87
+ '3', '\n', '\t', 'a', 'n', 'y', '_', 'v', 'a', 'l', 'u', 'e',
88
+ '\030', '\002', ' ', '\001', '(', '\013', '2', '\024', '.', 'g', 'o', 'o',
89
+ 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f',
90
+ '.', 'A', 'n', 'y', 'H', '\000', 'R', '\010', 'a', 'n', 'y', 'V',
91
+ 'a', 'l', 'u', 'e', '\022', '#', '\n', '\014', 's', 't', 'r', 'i',
92
+ 'n', 'g', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\003', ' ', '\001',
93
+ '(', '\t', 'H', '\000', 'R', '\013', 's', 't', 'r', 'i', 'n', 'g',
94
+ 'V', 'a', 'l', 'u', 'e', '\022', '!', '\n', '\013', 'i', 'n', 't',
95
+ '6', '4', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\004', ' ', '\001',
96
+ '(', '\003', 'H', '\000', 'R', '\n', 'i', 'n', 't', '6', '4', 'V',
97
+ 'a', 'l', 'u', 'e', '\022', '#', '\n', '\014', 'u', 'i', 'n', 't',
98
+ '6', '4', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\005', ' ', '\001',
99
+ '(', '\004', 'H', '\000', 'R', '\013', 'u', 'i', 'n', 't', '6', '4',
100
+ 'V', 'a', 'l', 'u', 'e', '\022', '#', '\n', '\014', 'd', 'o', 'u',
101
+ 'b', 'l', 'e', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\006', ' ',
102
+ '\001', '(', '\001', 'H', '\000', 'R', '\013', 'd', 'o', 'u', 'b', 'l',
103
+ 'e', 'V', 'a', 'l', 'u', 'e', '\022', '\037', '\n', '\n', 'b', 'o',
104
+ 'o', 'l', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\007', ' ', '\001',
105
+ '(', '\010', 'H', '\000', 'R', '\t', 'b', 'o', 'o', 'l', 'V', 'a',
106
+ 'l', 'u', 'e', '\022', 'E', '\n', '\017', 't', 'i', 'm', 'e', 's',
107
+ 't', 'a', 'm', 'p', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\010',
108
+ ' ', '\001', '(', '\013', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l',
109
+ 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'T',
110
+ 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', 'H', '\000', 'R', '\016',
111
+ 't', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', 'V', 'a', 'l',
112
+ 'u', 'e', '\022', 'B', '\n', '\016', 'd', 'u', 'r', 'a', 't', 'i',
113
+ 'o', 'n', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\t', ' ', '\001',
114
+ '(', '\013', '2', '\031', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.',
115
+ 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'D', 'u', 'r',
116
+ 'a', 't', 'i', 'o', 'n', 'H', '\000', 'R', '\r', 'd', 'u', 'r',
117
+ 'a', 't', 'i', 'o', 'n', 'V', 'a', 'l', 'u', 'e', 'B', '\006',
118
+ '\n', '\004', 'k', 'i', 'n', 'd', 'b', '\006', 'p', 'r', 'o', 't',
119
+ 'o', '3',
120
+ };
121
+
122
+ static _upb_DefPool_Init *deps[5] = {
123
+ &google_protobuf_any_proto_upbdefinit,
124
+ &google_protobuf_empty_proto_upbdefinit,
125
+ &google_protobuf_timestamp_proto_upbdefinit,
126
+ &google_protobuf_duration_proto_upbdefinit,
127
+ NULL,
128
+ };
129
+
130
+ _upb_DefPool_Init src_proto_grpc_channelz_v2_property_list_proto_upbdefinit = {
131
+ deps,
132
+ &src_proto_grpc_channelz_v2_property_list_proto_upb_file_layout,
133
+ "src/proto/grpc/channelz/v2/property_list.proto",
134
+ UPB_STRINGVIEW_INIT(descriptor, sizeof(descriptor)),
135
+ };
@@ -0,0 +1,67 @@
1
+ /* This file was generated by upb_generator from the input file:
2
+ *
3
+ * src/proto/grpc/channelz/v2/property_list.proto
4
+ *
5
+ * Do not edit -- your changes will be discarded when the file is
6
+ * regenerated.
7
+ * NO CHECKED-IN PROTOBUF GENCODE */
8
+
9
+
10
+
11
+ #ifndef SRC_PROTO_GRPC_CHANNELZ_V2_PROPERTY_LIST_PROTO_UPB_H__UPBDEFS_H_
12
+ #define SRC_PROTO_GRPC_CHANNELZ_V2_PROPERTY_LIST_PROTO_UPB_H__UPBDEFS_H_
13
+
14
+ #include "upb/reflection/def.h"
15
+ #include "upb/reflection/internal/def_pool.h"
16
+
17
+ #include "upb/port/def.inc"
18
+
19
+ #ifdef __cplusplus
20
+ extern "C" {
21
+ #endif
22
+
23
+ extern _upb_DefPool_Init src_proto_grpc_channelz_v2_property_list_proto_upbdefinit;
24
+
25
+ UPB_INLINE const upb_MessageDef *grpc_channelz_v2_PropertyList_getmsgdef(upb_DefPool *s) {
26
+ _upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_property_list_proto_upbdefinit);
27
+ return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.PropertyList");
28
+ }
29
+
30
+ UPB_INLINE const upb_MessageDef *grpc_channelz_v2_PropertyList_PropertiesEntry_getmsgdef(upb_DefPool *s) {
31
+ _upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_property_list_proto_upbdefinit);
32
+ return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.PropertyList.PropertiesEntry");
33
+ }
34
+
35
+ UPB_INLINE const upb_MessageDef *grpc_channelz_v2_PropertyGrid_getmsgdef(upb_DefPool *s) {
36
+ _upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_property_list_proto_upbdefinit);
37
+ return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.PropertyGrid");
38
+ }
39
+
40
+ UPB_INLINE const upb_MessageDef *grpc_channelz_v2_PropertyGrid_Row_getmsgdef(upb_DefPool *s) {
41
+ _upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_property_list_proto_upbdefinit);
42
+ return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.PropertyGrid.Row");
43
+ }
44
+
45
+ UPB_INLINE const upb_MessageDef *grpc_channelz_v2_PropertyTable_getmsgdef(upb_DefPool *s) {
46
+ _upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_property_list_proto_upbdefinit);
47
+ return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.PropertyTable");
48
+ }
49
+
50
+ UPB_INLINE const upb_MessageDef *grpc_channelz_v2_PropertyTable_Row_getmsgdef(upb_DefPool *s) {
51
+ _upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_property_list_proto_upbdefinit);
52
+ return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.PropertyTable.Row");
53
+ }
54
+
55
+ UPB_INLINE const upb_MessageDef *grpc_channelz_v2_PropertyValue_getmsgdef(upb_DefPool *s) {
56
+ _upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_property_list_proto_upbdefinit);
57
+ return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.PropertyValue");
58
+ }
59
+
60
+
61
+ #ifdef __cplusplus
62
+ } /* extern "C" */
63
+ #endif
64
+
65
+ #include "upb/port/undef.inc"
66
+
67
+ #endif /* SRC_PROTO_GRPC_CHANNELZ_V2_PROPERTY_LIST_PROTO_UPB_H__UPBDEFS_H_ */
@@ -127,31 +127,6 @@ class ClientAuthFilter final : public ImplementChannelFilter<ClientAuthFilter> {
127
127
  grpc_call_credentials::GetRequestMetadataArgs args_;
128
128
  };
129
129
 
130
- class LegacyClientAuthFilter final : public ChannelFilter {
131
- public:
132
- static const grpc_channel_filter kFilter;
133
-
134
- static absl::string_view TypeName() { return "client-auth-filter"; }
135
-
136
- LegacyClientAuthFilter(
137
- RefCountedPtr<grpc_channel_security_connector> security_connector,
138
- RefCountedPtr<grpc_auth_context> auth_context);
139
-
140
- static absl::StatusOr<std::unique_ptr<ClientAuthFilter>> Create(
141
- const ChannelArgs& args, ChannelFilter::Args);
142
-
143
- // Construct a promise for one call.
144
- ArenaPromise<ServerMetadataHandle> MakeCallPromise(
145
- CallArgs call_args, NextPromiseFactory next_promise_factory) override;
146
-
147
- private:
148
- ArenaPromise<absl::StatusOr<CallArgs>> GetCallCredsMetadata(
149
- CallArgs call_args);
150
-
151
- // Contains refs to security connector and auth context.
152
- grpc_call_credentials::GetRequestMetadataArgs args_;
153
- };
154
-
155
130
  class ServerAuthFilter final : public ImplementChannelFilter<ServerAuthFilter> {
156
131
  private:
157
132
  class RunApplicationCode {
@@ -189,122 +189,4 @@ absl::StatusOr<std::unique_ptr<ClientAuthFilter>> ClientAuthFilter::Create(
189
189
  const grpc_channel_filter ClientAuthFilter::kFilter =
190
190
  MakePromiseBasedFilter<ClientAuthFilter, FilterEndpoint::kClient>();
191
191
 
192
- // LegacyClientAuthFilter
193
-
194
- LegacyClientAuthFilter::LegacyClientAuthFilter(
195
- RefCountedPtr<grpc_channel_security_connector> security_connector,
196
- RefCountedPtr<grpc_auth_context> auth_context)
197
- : args_{std::move(security_connector), std::move(auth_context)} {}
198
-
199
- ArenaPromise<absl::StatusOr<CallArgs>>
200
- LegacyClientAuthFilter::GetCallCredsMetadata(CallArgs call_args) {
201
- auto* ctx = GetContext<grpc_client_security_context>();
202
- grpc_call_credentials* channel_call_creds =
203
- args_.security_connector->mutable_request_metadata_creds();
204
- const bool call_creds_has_md = (ctx != nullptr) && (ctx->creds != nullptr);
205
-
206
- if (channel_call_creds == nullptr && !call_creds_has_md) {
207
- // Skip sending metadata altogether.
208
- return Immediate(absl::StatusOr<CallArgs>(std::move(call_args)));
209
- }
210
-
211
- RefCountedPtr<grpc_call_credentials> creds;
212
- if (channel_call_creds != nullptr && call_creds_has_md) {
213
- creds = RefCountedPtr<grpc_call_credentials>(
214
- grpc_composite_call_credentials_create(channel_call_creds,
215
- ctx->creds.get(), nullptr));
216
- if (creds == nullptr) {
217
- return Immediate(absl::UnauthenticatedError(
218
- "Incompatible credentials set on channel and call."));
219
- }
220
- } else if (call_creds_has_md) {
221
- creds = ctx->creds->Ref();
222
- } else {
223
- creds = channel_call_creds->Ref();
224
- }
225
-
226
- // Check security level of call credential and channel, and do not send
227
- // metadata if the check fails.
228
- grpc_auth_property_iterator it = grpc_auth_context_find_properties_by_name(
229
- args_.auth_context.get(), GRPC_TRANSPORT_SECURITY_LEVEL_PROPERTY_NAME);
230
- const grpc_auth_property* prop = grpc_auth_property_iterator_next(&it);
231
- if (prop == nullptr) {
232
- return Immediate(
233
- absl::UnauthenticatedError("Established channel does not have an auth "
234
- "property representing a security level."));
235
- }
236
- const grpc_security_level call_cred_security_level =
237
- creds->min_security_level();
238
- const bool is_security_level_ok = grpc_check_security_level(
239
- convert_security_level_string_to_enum(prop->value),
240
- call_cred_security_level);
241
- if (!is_security_level_ok) {
242
- return Immediate(absl::UnauthenticatedError(
243
- "Established channel does not have a sufficient security level to "
244
- "transfer call credential."));
245
- }
246
-
247
- auto client_initial_metadata = std::move(call_args.client_initial_metadata);
248
- return TrySeq(
249
- Seq(creds->GetRequestMetadata(std::move(client_initial_metadata), &args_),
250
- [](absl::StatusOr<ClientMetadataHandle> new_metadata) mutable {
251
- if (!new_metadata.ok()) {
252
- return absl::StatusOr<ClientMetadataHandle>(
253
- MaybeRewriteIllegalStatusCode(new_metadata.status(),
254
- "call credentials"));
255
- }
256
- return new_metadata;
257
- }),
258
- [call_args =
259
- std::move(call_args)](ClientMetadataHandle new_metadata) mutable {
260
- call_args.client_initial_metadata = std::move(new_metadata);
261
- return Immediate<absl::StatusOr<CallArgs>>(
262
- absl::StatusOr<CallArgs>(std::move(call_args)));
263
- });
264
- }
265
-
266
- ArenaPromise<ServerMetadataHandle> LegacyClientAuthFilter::MakeCallPromise(
267
- CallArgs call_args, NextPromiseFactory next_promise_factory) {
268
- auto* sec_ctx = MaybeGetContext<grpc_client_security_context>();
269
- if (sec_ctx == nullptr) {
270
- sec_ctx = grpc_client_security_context_create(GetContext<Arena>(),
271
- /*creds=*/nullptr);
272
- SetContext<SecurityContext>(sec_ctx);
273
- }
274
- sec_ctx->auth_context = args_.auth_context;
275
-
276
- auto* host =
277
- call_args.client_initial_metadata->get_pointer(HttpAuthorityMetadata());
278
- if (host == nullptr) {
279
- return next_promise_factory(std::move(call_args));
280
- }
281
- return TrySeq(
282
- args_.security_connector->CheckCallHost(host->as_string_view(),
283
- args_.auth_context.get()),
284
- [this, call_args = std::move(call_args)]() mutable {
285
- return GetCallCredsMetadata(std::move(call_args));
286
- },
287
- next_promise_factory);
288
- }
289
-
290
- absl::StatusOr<std::unique_ptr<ClientAuthFilter>>
291
- LegacyClientAuthFilter::Create(const ChannelArgs& args, ChannelFilter::Args) {
292
- auto* sc = args.GetObject<grpc_security_connector>();
293
- if (sc == nullptr) {
294
- return absl::InvalidArgumentError(
295
- "Security connector missing from client auth filter args");
296
- }
297
- auto* auth_context = args.GetObject<grpc_auth_context>();
298
- if (auth_context == nullptr) {
299
- return absl::InvalidArgumentError(
300
- "Auth context missing from client auth filter args");
301
- }
302
- return std::make_unique<ClientAuthFilter>(
303
- sc->RefAsSubclass<grpc_channel_security_connector>(),
304
- auth_context->Ref());
305
- }
306
-
307
- const grpc_channel_filter LegacyClientAuthFilter::kFilter =
308
- MakePromiseBasedFilter<ClientAuthFilter, FilterEndpoint::kClient>();
309
-
310
192
  } // namespace grpc_core
@@ -31,23 +31,18 @@ class FilterArgs {
31
31
  grpc_channel_element* channel_element,
32
32
  size_t (*channel_stack_filter_instance_number)(
33
33
  grpc_channel_stack*, grpc_channel_element*),
34
- const Blackboard* old_blackboard = nullptr,
35
- Blackboard* new_blackboard = nullptr)
34
+ const Blackboard* blackboard = nullptr)
36
35
  : impl_(ChannelStackBased{channel_stack, channel_element,
37
36
  channel_stack_filter_instance_number}),
38
- old_blackboard_(old_blackboard),
39
- new_blackboard_(new_blackboard) {}
37
+ blackboard_(blackboard) {}
40
38
  // While we're moving to call-v3 we need to have access to
41
39
  // grpc_channel_stack & friends here. That means that we can't rely on this
42
40
  // type signature from interception_chain.h, which means that we need a way
43
41
  // of constructing this object without naming it ===> implicit construction.
44
42
  // TODO(ctiller): remove this once we're fully on call-v3
45
43
  // NOLINTNEXTLINE(google-explicit-constructor)
46
- FilterArgs(size_t instance_id, const Blackboard* old_blackboard = nullptr,
47
- Blackboard* new_blackboard = nullptr)
48
- : impl_(V3Based{instance_id}),
49
- old_blackboard_(old_blackboard),
50
- new_blackboard_(new_blackboard) {}
44
+ FilterArgs(size_t instance_id, const Blackboard* blackboard = nullptr)
45
+ : impl_(V3Based{instance_id}), blackboard_(blackboard) {}
51
46
 
52
47
  ABSL_DEPRECATED("Direct access to channel stack is deprecated")
53
48
  grpc_channel_stack* channel_stack() const {
@@ -71,19 +66,11 @@ class FilterArgs {
71
66
  [](const V3Based& v3) { return v3.instance_id; });
72
67
  }
73
68
 
74
- // If a filter state object of type T exists for key from a previous
75
- // filter stack, retains it for the new filter stack we're constructing.
76
- // Otherwise, invokes create_func() to create a new filter state
77
- // object for the new filter stack. Returns the new filter state object.
69
+ // Gets the filter state associated with a particular type and key.
78
70
  template <typename T>
79
- RefCountedPtr<T> GetOrCreateState(
80
- const std::string& key,
81
- absl::FunctionRef<RefCountedPtr<T>()> create_func) {
82
- RefCountedPtr<T> state;
83
- if (old_blackboard_ != nullptr) state = old_blackboard_->Get<T>(key);
84
- if (state == nullptr) state = create_func();
85
- if (new_blackboard_ != nullptr) new_blackboard_->Set(key, state);
86
- return state;
71
+ RefCountedPtr<T> GetState(const std::string& key) const {
72
+ if (blackboard_ == nullptr) return nullptr;
73
+ return blackboard_->Get<T>(key);
87
74
  }
88
75
 
89
76
  private:
@@ -103,8 +90,7 @@ class FilterArgs {
103
90
  using Impl = std::variant<ChannelStackBased, V3Based>;
104
91
  Impl impl_;
105
92
 
106
- const Blackboard* old_blackboard_ = nullptr;
107
- Blackboard* new_blackboard_ = nullptr;
93
+ const Blackboard* blackboard_ = nullptr;
108
94
  };
109
95
 
110
96
  } // namespace grpc_core
@@ -104,6 +104,16 @@ void HandshakeManager::DoHandshake(
104
104
  args_.args = channel_args;
105
105
  args_.event_engine = args_.args.GetObject<EventEngine>();
106
106
  args_.acceptor = acceptor;
107
+ // Add a channelz trace that we're performing a handshake.
108
+ // Note that we only commit this to the log if we see an error - otherwise
109
+ // it's ephemeral and is cleaned up when refs to it are released.
110
+ auto channelz_node = args_.args.GetObjectRef<channelz::BaseNode>();
111
+ args_.trace_node = channelz::TraceNode(
112
+ channelz_node.get() == nullptr
113
+ ? channelz::ChannelTrace::Node()
114
+ : channelz_node->NewTraceNode("Handshake connection"),
115
+ handshaker_trace,
116
+ [this]() { return absl::StrFormat("handshake manager %p: ", this); });
107
117
  if (acceptor != nullptr && acceptor->external_connection &&
108
118
  acceptor->pending_data != nullptr) {
109
119
  grpc_slice_buffer_swap(args_.read_buffer.c_slice_buffer(),
@@ -125,14 +135,12 @@ void HandshakeManager::DoHandshake(
125
135
  void HandshakeManager::Shutdown(absl::Status error) {
126
136
  MutexLock lock(&mu_);
127
137
  if (!is_shutdown_) {
128
- GRPC_TRACE_LOG(handshaker, INFO)
129
- << "handshake_manager " << this << ": Shutdown() called: " << error;
138
+ GRPC_CHANNELZ_LOG(args_.trace_node) << "Shutdown called: " << error;
130
139
  is_shutdown_ = true;
131
140
  // Shutdown the handshaker that's currently in progress, if any.
132
141
  if (index_ > 0) {
133
- GRPC_TRACE_LOG(handshaker, INFO)
134
- << "handshake_manager " << this
135
- << ": shutting down handshaker at index " << index_ - 1;
142
+ GRPC_CHANNELZ_LOG(args_.trace_node)
143
+ << "Shutting down handshaker at index " << (index_ - 1);
136
144
  handshakers_[index_ - 1]->Shutdown(std::move(error));
137
145
  }
138
146
  }
@@ -140,7 +148,7 @@ void HandshakeManager::Shutdown(absl::Status error) {
140
148
 
141
149
  void HandshakeManager::CallNextHandshakerLocked(absl::Status error) {
142
150
  GRPC_TRACE_LOG(handshaker, INFO)
143
- << "handshake_manager " << this << ": error=" << error
151
+ << "CallNextHandshakerLocked: error=" << error
144
152
  << " shutdown=" << is_shutdown_ << " index=" << index_
145
153
  << ", args=" << HandshakerArgsString(&args_);
146
154
  CHECK(index_ <= handshakers_.size());
@@ -153,10 +161,13 @@ void HandshakeManager::CallNextHandshakerLocked(absl::Status error) {
153
161
  error = GRPC_ERROR_CREATE("handshaker shutdown");
154
162
  args_.endpoint.reset();
155
163
  }
156
- GRPC_TRACE_LOG(handshaker, INFO) << "handshake_manager " << this
157
- << ": handshaking complete -- scheduling "
158
- "on_handshake_done with error="
159
- << error;
164
+ // Since there was a handshaking error, commit this node with the reason.
165
+ // This will make it available for inspection after the handshaker
166
+ // completes.
167
+ if (!error.ok()) {
168
+ GRPC_CHANNELZ_LOG(args_.trace_node) << "Failed with error: " << error;
169
+ }
170
+ args_.trace_node.Commit();
160
171
  // Cancel deadline timer, since we're invoking the on_handshake_done
161
172
  // callback now.
162
173
  args_.event_engine->Cancel(deadline_timer_handle_);
@@ -174,10 +185,8 @@ void HandshakeManager::CallNextHandshakerLocked(absl::Status error) {
174
185
  }
175
186
  // Call the next handshaker.
176
187
  auto handshaker = handshakers_[index_];
177
- GRPC_TRACE_LOG(handshaker, INFO)
178
- << "handshake_manager " << this << ": calling handshaker "
179
- << handshaker->name() << " [" << handshaker.get() << "] at index "
180
- << index_;
188
+ GRPC_CHANNELZ_LOG(args_.trace_node)
189
+ << " calling handshaker " << handshaker->name() << " at index " << index_;
181
190
  ++index_;
182
191
  handshaker->DoHandshake(&args_, [self = Ref()](absl::Status error) mutable {
183
192
  MutexLock lock(&self->mu_);
@@ -28,6 +28,7 @@
28
28
 
29
29
  #include "absl/base/thread_annotations.h"
30
30
  #include "absl/container/inlined_vector.h"
31
+ #include "src/core/channelz/channelz.h"
31
32
  #include "src/core/lib/channel/channel_args.h"
32
33
  #include "src/core/lib/iomgr/closure.h"
33
34
  #include "src/core/lib/iomgr/endpoint.h"
@@ -78,6 +79,8 @@ struct HandshakerArgs {
78
79
  // TODO(roth): Make this go away somehow as part of the EventEngine
79
80
  // migration?
80
81
  grpc_tcp_server_acceptor* acceptor = nullptr;
82
+ // Channelz trace node for the current handshaker
83
+ channelz::TraceNode trace_node;
81
84
  };
82
85
 
83
86
  ///
@@ -318,12 +318,14 @@ void HttpConnectHandshaker::DoHandshake(
318
318
  gpr_free(header_strings);
319
319
  // Take a new ref to be held by the write callback.
320
320
  Ref().release();
321
+ grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs write_args;
322
+ write_args.set_max_frame_size(INT_MAX);
321
323
  grpc_endpoint_write(
322
324
  args->endpoint.get(), write_buffer_.c_slice_buffer(),
323
325
  GRPC_CLOSURE_INIT(&on_write_done_scheduler_,
324
326
  &HttpConnectHandshaker::OnWriteDoneScheduler, this,
325
327
  grpc_schedule_on_exec_ctx),
326
- nullptr, /*max_frame_size=*/INT_MAX);
328
+ std::move(write_args));
327
329
  }
328
330
 
329
331
  HttpConnectHandshaker::HttpConnectHandshaker() {
@@ -397,8 +397,9 @@ static void on_write(void* user_data, grpc_error_handle error) {
397
397
  });
398
398
  }
399
399
 
400
- static void endpoint_write(grpc_endpoint* secure_ep, grpc_slice_buffer* slices,
401
- grpc_closure* cb, void* arg, int max_frame_size) {
400
+ static void endpoint_write(
401
+ grpc_endpoint* secure_ep, grpc_slice_buffer* slices, grpc_closure* cb,
402
+ grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs args) {
402
403
  GRPC_LATENT_SEE_INNER_SCOPE("secure_endpoint write");
403
404
  unsigned i;
404
405
  tsi_result result = TSI_OK;
@@ -427,10 +428,10 @@ static void endpoint_write(grpc_endpoint* secure_ep, grpc_slice_buffer* slices,
427
428
  // tsi_zero_copy_grpc_protector_protect on each chunk. This ensures that
428
429
  // the protector cannot create frames larger than the specified
429
430
  // max_frame_size.
430
- while (slices->length > static_cast<size_t>(max_frame_size) &&
431
+ while (slices->length > static_cast<size_t>(args.max_frame_size()) &&
431
432
  result == TSI_OK) {
432
433
  grpc_slice_buffer_move_first(slices,
433
- static_cast<size_t>(max_frame_size),
434
+ static_cast<size_t>(args.max_frame_size()),
434
435
  &ep->protector_staging_buffer);
435
436
  result = tsi_zero_copy_grpc_protector_protect(
436
437
  ep->zero_copy_protector, &ep->protector_staging_buffer,
@@ -523,7 +524,7 @@ static void endpoint_write(grpc_endpoint* secure_ep, grpc_slice_buffer* slices,
523
524
  SECURE_ENDPOINT_REF(ep, "write");
524
525
  ep->write_cb = cb;
525
526
  grpc_endpoint_write(ep->wrapped_ep.get(), &ep->output_buffer, &ep->on_write,
526
- arg, max_frame_size);
527
+ std::move(args));
527
528
  }
528
529
 
529
530
  static void endpoint_destroy(grpc_endpoint* secure_ep) {