grpc 1.75.0.pre1 → 1.76.0.pre1

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 (387) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +18 -5
  3. data/include/grpc/credentials.h +21 -5
  4. data/src/core/call/call_filters.cc +4 -4
  5. data/src/core/call/call_filters.h +36 -36
  6. data/src/core/call/call_spine.h +27 -27
  7. data/src/core/call/client_call.cc +6 -5
  8. data/src/core/call/filter_fusion.h +5 -5
  9. data/src/core/call/metadata_batch.h +3 -3
  10. data/src/core/call/security_context.cc +1 -1
  11. data/src/core/call/server_call.cc +4 -4
  12. data/src/core/call/server_call.h +1 -1
  13. data/src/core/channelz/channelz.cc +12 -18
  14. data/src/core/channelz/channelz.h +32 -16
  15. data/src/core/channelz/channelz_registry.h +11 -0
  16. data/src/core/channelz/property_list.cc +18 -0
  17. data/src/core/channelz/property_list.h +10 -1
  18. data/src/core/channelz/text_encode.cc +66 -0
  19. data/src/core/channelz/text_encode.h +29 -0
  20. data/src/core/channelz/v2tov1/convert.cc +11 -0
  21. data/src/core/channelz/v2tov1/legacy_api.cc +15 -8
  22. data/src/core/channelz/ztrace_collector.h +247 -86
  23. data/src/core/client_channel/backup_poller.cc +5 -6
  24. data/src/core/client_channel/client_channel.cc +20 -13
  25. data/src/core/client_channel/client_channel_filter.cc +53 -45
  26. data/src/core/client_channel/client_channel_filter.h +2 -2
  27. data/src/core/client_channel/client_channel_internal.h +3 -4
  28. data/src/core/client_channel/config_selector.h +3 -3
  29. data/src/core/client_channel/dynamic_filters.cc +3 -3
  30. data/src/core/client_channel/global_subchannel_pool.cc +0 -37
  31. data/src/core/client_channel/global_subchannel_pool.h +0 -27
  32. data/src/core/client_channel/load_balanced_call_destination.cc +7 -7
  33. data/src/core/client_channel/local_subchannel_pool.cc +4 -4
  34. data/src/core/client_channel/retry_filter.h +3 -3
  35. data/src/core/client_channel/retry_filter_legacy_call_data.cc +5 -5
  36. data/src/core/client_channel/subchannel.cc +8 -8
  37. data/src/core/client_channel/subchannel_stream_client.cc +4 -4
  38. data/src/core/config/config_vars.cc +30 -1
  39. data/src/core/config/config_vars.h +21 -0
  40. data/src/core/config/core_configuration.cc +5 -5
  41. data/src/core/config/core_configuration.h +7 -7
  42. data/src/core/config/load_config.cc +12 -0
  43. data/src/core/config/load_config.h +2 -0
  44. data/src/core/credentials/call/call_credentials.h +2 -2
  45. data/src/core/credentials/call/call_creds_util.cc +4 -3
  46. data/src/core/credentials/call/composite/composite_call_credentials.cc +4 -4
  47. data/src/core/credentials/call/external/aws_external_account_credentials.cc +3 -3
  48. data/src/core/credentials/call/external/external_account_credentials.cc +1 -1
  49. data/src/core/credentials/call/external/url_external_account_credentials.cc +1 -1
  50. data/src/core/credentials/call/iam/iam_credentials.cc +4 -4
  51. data/src/core/credentials/call/jwt/json_token.cc +3 -3
  52. data/src/core/credentials/call/jwt/jwt_credentials.cc +2 -2
  53. data/src/core/credentials/call/jwt/jwt_verifier.cc +14 -13
  54. data/src/core/credentials/call/oauth2/oauth2_credentials.cc +20 -12
  55. data/src/core/credentials/call/plugin/plugin_credentials.cc +2 -2
  56. data/src/core/credentials/transport/alts/alts_credentials.cc +4 -4
  57. data/src/core/credentials/transport/alts/alts_security_connector.cc +14 -12
  58. data/src/core/credentials/transport/alts/grpc_alts_credentials_client_options.cc +22 -2
  59. data/src/core/credentials/transport/alts/grpc_alts_credentials_options.cc +10 -1
  60. data/src/core/credentials/transport/alts/grpc_alts_credentials_options.h +31 -0
  61. data/src/core/credentials/transport/alts/grpc_alts_credentials_server_options.cc +8 -3
  62. data/src/core/credentials/transport/composite/composite_channel_credentials.cc +5 -5
  63. data/src/core/credentials/transport/fake/fake_security_connector.cc +2 -2
  64. data/src/core/credentials/transport/google_default/google_default_credentials.cc +78 -28
  65. data/src/core/credentials/transport/insecure/insecure_security_connector.cc +3 -3
  66. data/src/core/credentials/transport/local/local_security_connector.cc +8 -8
  67. data/src/core/credentials/transport/security_connector.cc +5 -5
  68. data/src/core/credentials/transport/ssl/ssl_credentials.cc +12 -12
  69. data/src/core/credentials/transport/ssl/ssl_credentials.h +2 -2
  70. data/src/core/credentials/transport/ssl/ssl_security_connector.cc +3 -3
  71. data/src/core/credentials/transport/tls/certificate_provider_registry.cc +2 -2
  72. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +24 -24
  73. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +5 -5
  74. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +2 -2
  75. data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.cc +2 -2
  76. data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.h +2 -2
  77. data/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc +17 -17
  78. data/src/core/credentials/transport/tls/ssl_utils.cc +14 -9
  79. data/src/core/credentials/transport/tls/tls_credentials.cc +2 -2
  80. data/src/core/credentials/transport/tls/tls_security_connector.cc +11 -11
  81. data/src/core/credentials/transport/transport_credentials.cc +2 -2
  82. data/src/core/credentials/transport/transport_credentials.h +2 -2
  83. data/src/core/credentials/transport/xds/xds_credentials.cc +5 -5
  84. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +2 -0
  85. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +1 -1
  86. data/src/core/ext/filters/http/message_compress/compression_filter.cc +8 -8
  87. data/src/core/ext/filters/http/message_compress/compression_filter.h +3 -3
  88. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +7 -7
  89. data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -2
  90. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +10 -9
  91. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +10 -7
  92. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +5 -5
  93. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +6 -6
  94. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +96 -88
  95. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
  96. data/src/core/ext/transport/chttp2/transport/flow_control.h +12 -7
  97. data/src/core/ext/transport/chttp2/transport/flow_control_manager.h +60 -0
  98. data/src/core/ext/transport/chttp2/transport/frame.cc +32 -10
  99. data/src/core/ext/transport/chttp2/transport/frame.h +16 -2
  100. data/src/core/ext/transport/chttp2/transport/frame_data.cc +2 -2
  101. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +4 -4
  102. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +2 -2
  103. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -2
  104. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +3 -3
  105. data/src/core/ext/transport/chttp2/transport/header_assembler.h +28 -12
  106. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +2 -2
  107. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +4 -2
  108. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +8 -8
  109. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +2 -2
  110. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +2 -2
  111. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +27 -27
  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 +4 -4
  114. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +543 -366
  115. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +198 -277
  116. data/src/core/ext/transport/chttp2/transport/http2_settings_manager.cc +3 -0
  117. data/src/core/ext/transport/chttp2/transport/http2_settings_manager.h +11 -0
  118. data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +179 -0
  119. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +51 -23
  120. data/src/core/ext/transport/chttp2/transport/http2_transport.h +13 -6
  121. data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +115 -71
  122. data/src/core/ext/transport/chttp2/transport/internal.h +6 -14
  123. data/src/core/ext/transport/chttp2/transport/message_assembler.h +7 -7
  124. data/src/core/ext/transport/chttp2/transport/parsing.cc +17 -15
  125. data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +2 -2
  126. data/src/core/ext/transport/chttp2/transport/ping_promise.cc +62 -26
  127. data/src/core/ext/transport/chttp2/transport/ping_promise.h +58 -22
  128. data/src/core/ext/transport/chttp2/transport/stream.h +207 -0
  129. data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +328 -187
  130. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +7 -7
  131. data/src/core/ext/transport/chttp2/transport/transport_common.cc +17 -1
  132. data/src/core/ext/transport/chttp2/transport/transport_common.h +52 -0
  133. data/src/core/ext/transport/chttp2/transport/varint.h +2 -2
  134. data/src/core/ext/transport/chttp2/transport/writable_streams.h +181 -79
  135. data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +2 -2
  136. data/src/core/ext/transport/chttp2/transport/writing.cc +3 -3
  137. data/src/core/ext/transport/inproc/inproc_transport.cc +1 -1
  138. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +3 -3
  139. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb.h +740 -0
  140. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c +218 -0
  141. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.h +46 -0
  142. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +87 -55
  143. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +23 -21
  144. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.c +80 -0
  145. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.h +47 -0
  146. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/service.upbdefs.c +129 -0
  147. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/service.upbdefs.h +72 -0
  148. data/src/core/filter/auth/server_auth_filter.cc +2 -2
  149. data/src/core/handshaker/handshaker.cc +3 -3
  150. data/src/core/handshaker/http_connect/http_proxy_mapper.cc +2 -2
  151. data/src/core/handshaker/security/legacy_secure_endpoint.cc +2 -2
  152. data/src/core/handshaker/security/pipelined_secure_endpoint.cc +31 -8
  153. data/src/core/handshaker/security/secure_endpoint.cc +16 -6
  154. data/src/core/handshaker/security/security_handshaker.cc +3 -3
  155. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +2 -2
  156. data/src/core/lib/channel/channel_stack.cc +8 -5
  157. data/src/core/lib/channel/channel_stack.h +3 -0
  158. data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -0
  159. data/src/core/lib/channel/connected_channel.cc +2 -2
  160. data/src/core/lib/channel/promise_based_filter.cc +69 -64
  161. data/src/core/lib/channel/promise_based_filter.h +16 -15
  162. data/src/core/lib/compression/compression_internal.cc +2 -2
  163. data/src/core/lib/compression/message_compress.cc +7 -7
  164. data/src/core/lib/event_engine/ares_resolver.cc +22 -20
  165. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +2 -2
  166. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +2 -2
  167. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +2 -2
  168. data/src/core/lib/event_engine/extensions/channelz.h +2 -2
  169. data/src/core/lib/event_engine/extensions/supports_fd.h +5 -5
  170. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +8 -8
  171. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +10 -10
  172. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +2 -2
  173. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +23 -22
  174. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +11 -11
  175. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +168 -170
  176. data/src/core/lib/event_engine/posix_engine/posix_engine.h +33 -54
  177. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +4 -3
  178. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +5 -5
  179. data/src/core/lib/event_engine/posix_engine/posix_interface.h +1 -1
  180. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +1 -1
  181. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +3 -3
  182. data/src/core/lib/event_engine/resolved_address.cc +3 -3
  183. data/src/core/lib/event_engine/shim.cc +8 -11
  184. data/src/core/lib/event_engine/shim.h +2 -1
  185. data/src/core/lib/event_engine/slice.cc +2 -2
  186. data/src/core/lib/event_engine/tcp_socket_utils.cc +11 -11
  187. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +7 -7
  188. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +31 -31
  189. data/src/core/lib/event_engine/windows/iocp.cc +10 -10
  190. data/src/core/lib/event_engine/windows/win_socket.cc +6 -6
  191. data/src/core/lib/event_engine/windows/windows_endpoint.cc +11 -11
  192. data/src/core/lib/event_engine/windows/windows_engine.cc +16 -14
  193. data/src/core/lib/event_engine/windows/windows_listener.cc +7 -7
  194. data/src/core/lib/experiments/experiments.cc +105 -18
  195. data/src/core/lib/experiments/experiments.h +43 -11
  196. data/src/core/lib/iomgr/call_combiner.cc +3 -3
  197. data/src/core/lib/iomgr/endpoint_cfstream.cc +6 -6
  198. data/src/core/lib/iomgr/endpoint_pair_posix.cc +5 -5
  199. data/src/core/lib/iomgr/endpoint_pair_windows.cc +15 -14
  200. data/src/core/lib/iomgr/ev_epoll1_linux.cc +15 -15
  201. data/src/core/lib/iomgr/ev_poll_posix.cc +11 -11
  202. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +5 -4
  203. data/src/core/lib/iomgr/event_engine_shims/endpoint.h +1 -1
  204. data/src/core/lib/iomgr/iocp_windows.cc +8 -8
  205. data/src/core/lib/iomgr/iomgr_windows.cc +3 -3
  206. data/src/core/lib/iomgr/lockfree_event.cc +2 -2
  207. data/src/core/lib/iomgr/polling_entity.cc +3 -3
  208. data/src/core/lib/iomgr/socket_utils_common_posix.cc +2 -2
  209. data/src/core/lib/iomgr/socket_windows.cc +4 -4
  210. data/src/core/lib/iomgr/tcp_client_posix.cc +4 -4
  211. data/src/core/lib/iomgr/tcp_client_windows.cc +4 -4
  212. data/src/core/lib/iomgr/tcp_posix.cc +42 -42
  213. data/src/core/lib/iomgr/tcp_server.cc +5 -0
  214. data/src/core/lib/iomgr/tcp_server.h +7 -0
  215. data/src/core/lib/iomgr/tcp_server_posix.cc +47 -27
  216. data/src/core/lib/iomgr/tcp_server_utils_posix.h +3 -0
  217. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -5
  218. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +2 -2
  219. data/src/core/lib/iomgr/tcp_server_windows.cc +68 -29
  220. data/src/core/lib/iomgr/tcp_windows.cc +7 -7
  221. data/src/core/lib/iomgr/timer_generic.cc +2 -2
  222. data/src/core/lib/iomgr/timer_manager.cc +2 -2
  223. data/src/core/lib/iomgr/unix_sockets_posix.cc +2 -2
  224. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +2 -2
  225. data/src/core/lib/promise/activity.cc +2 -2
  226. data/src/core/lib/promise/activity.h +6 -6
  227. data/src/core/lib/promise/context.h +2 -2
  228. data/src/core/lib/promise/detail/join_state.h +9 -9
  229. data/src/core/lib/promise/detail/seq_state.h +13 -13
  230. data/src/core/lib/promise/detail/status.h +2 -2
  231. data/src/core/lib/promise/for_each.h +5 -5
  232. data/src/core/lib/promise/interceptor_list.h +2 -2
  233. data/src/core/lib/promise/latch.h +7 -7
  234. data/src/core/lib/promise/mpsc.cc +26 -26
  235. data/src/core/lib/promise/mpsc.h +2 -2
  236. data/src/core/lib/promise/observable.h +4 -4
  237. data/src/core/lib/promise/party.cc +32 -25
  238. data/src/core/lib/promise/party.h +16 -19
  239. data/src/core/lib/promise/pipe.h +15 -15
  240. data/src/core/lib/promise/poll.h +5 -4
  241. data/src/core/lib/promise/promise.h +0 -2
  242. data/src/core/lib/promise/sleep.cc +3 -1
  243. data/src/core/lib/promise/status_flag.h +7 -7
  244. data/src/core/lib/promise/try_join.h +2 -2
  245. data/src/core/lib/promise/try_seq.h +2 -2
  246. data/src/core/lib/resource_quota/arena.h +15 -2
  247. data/src/core/lib/resource_quota/connection_quota.cc +9 -7
  248. data/src/core/lib/resource_quota/memory_quota.cc +45 -24
  249. data/src/core/lib/resource_quota/memory_quota.h +48 -16
  250. data/src/core/lib/resource_quota/telemetry.h +54 -0
  251. data/src/core/lib/resource_quota/thread_quota.cc +2 -2
  252. data/src/core/lib/resource_tracker/resource_tracker.cc +33 -0
  253. data/src/core/lib/resource_tracker/resource_tracker.h +46 -0
  254. data/src/core/lib/security/authorization/audit_logging.cc +5 -5
  255. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +2 -2
  256. data/src/core/lib/security/authorization/stdout_logger.cc +3 -3
  257. data/src/core/lib/surface/byte_buffer_reader.cc +2 -2
  258. data/src/core/lib/surface/call.cc +16 -14
  259. data/src/core/lib/surface/call.h +1 -1
  260. data/src/core/lib/surface/call_utils.cc +2 -2
  261. data/src/core/lib/surface/call_utils.h +2 -2
  262. data/src/core/lib/surface/channel.cc +4 -4
  263. data/src/core/lib/surface/channel_create.cc +10 -6
  264. data/src/core/lib/surface/channel_init.cc +80 -23
  265. data/src/core/lib/surface/channel_init.h +26 -11
  266. data/src/core/lib/surface/completion_queue.cc +17 -16
  267. data/src/core/lib/surface/completion_queue_factory.cc +7 -7
  268. data/src/core/lib/surface/connection_context.h +45 -2
  269. data/src/core/lib/surface/filter_stack_call.cc +12 -23
  270. data/src/core/lib/surface/filter_stack_call.h +3 -4
  271. data/src/core/lib/surface/legacy_channel.cc +7 -7
  272. data/src/core/lib/surface/validate_metadata.h +2 -2
  273. data/src/core/lib/surface/version.cc +2 -2
  274. data/src/core/lib/transport/bdp_estimator.cc +2 -2
  275. data/src/core/lib/transport/bdp_estimator.h +3 -3
  276. data/src/core/lib/transport/promise_endpoint.cc +3 -3
  277. data/src/core/lib/transport/promise_endpoint.h +8 -8
  278. data/src/core/lib/transport/timeout_encoding.cc +4 -4
  279. data/src/core/load_balancing/child_policy_handler.cc +4 -4
  280. data/src/core/load_balancing/endpoint_list.cc +2 -2
  281. data/src/core/load_balancing/grpclb/grpclb.cc +24 -24
  282. data/src/core/load_balancing/health_check_client.cc +4 -4
  283. data/src/core/load_balancing/health_check_client_internal.h +2 -2
  284. data/src/core/load_balancing/lb_policy_registry.cc +2 -2
  285. data/src/core/load_balancing/oob_backend_metric.cc +4 -4
  286. data/src/core/load_balancing/oob_backend_metric_internal.h +2 -2
  287. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +2 -2
  288. data/src/core/load_balancing/pick_first/pick_first.cc +14 -14
  289. data/src/core/load_balancing/priority/priority.cc +23 -24
  290. data/src/core/load_balancing/ring_hash/ring_hash.cc +3 -3
  291. data/src/core/load_balancing/rls/rls.cc +13 -13
  292. data/src/core/load_balancing/round_robin/round_robin.cc +9 -9
  293. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +3 -3
  294. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +33 -26
  295. data/src/core/load_balancing/weighted_target/weighted_target.cc +5 -5
  296. data/src/core/load_balancing/xds/cds.cc +76 -32
  297. data/src/core/load_balancing/xds/xds_cluster_impl.cc +3 -3
  298. data/src/core/load_balancing/xds/xds_override_host.cc +4 -4
  299. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
  300. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +33 -33
  301. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +10 -10
  302. data/src/core/resolver/dns/dns_resolver_plugin.cc +6 -3
  303. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +2 -2
  304. data/src/core/resolver/endpoint_addresses.cc +3 -3
  305. data/src/core/resolver/endpoint_addresses.h +3 -0
  306. data/src/core/resolver/fake/fake_resolver.cc +2 -2
  307. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +41 -54
  308. data/src/core/resolver/polling_resolver.cc +3 -3
  309. data/src/core/resolver/resolver_registry.cc +5 -4
  310. data/src/core/resolver/xds/xds_dependency_manager.cc +5 -5
  311. data/src/core/resolver/xds/xds_resolver.cc +9 -9
  312. data/src/core/server/server.cc +38 -38
  313. data/src/core/server/server_call_tracer_filter.h +4 -4
  314. data/src/core/server/server_config_selector_filter.cc +2 -2
  315. data/src/core/server/xds_server_config_fetcher.cc +9 -8
  316. data/src/core/service_config/service_config_impl.h +2 -2
  317. data/src/core/telemetry/call_tracer.cc +39 -49
  318. data/src/core/telemetry/call_tracer.h +199 -22
  319. data/src/core/telemetry/histogram.h +205 -0
  320. data/src/core/telemetry/instrument.cc +719 -0
  321. data/src/core/telemetry/instrument.h +932 -0
  322. data/src/core/telemetry/metrics.cc +13 -5
  323. data/src/core/telemetry/metrics.h +3 -1
  324. data/src/core/telemetry/stats_data.cc +0 -19
  325. data/src/core/telemetry/stats_data.h +0 -19
  326. data/src/core/transport/auth_context.cc +2 -2
  327. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +78 -45
  328. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -0
  329. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +3 -3
  330. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +39 -31
  331. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +3 -3
  332. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +3 -3
  333. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +7 -7
  334. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +3 -3
  335. data/src/core/tsi/fake_transport_security.cc +4 -4
  336. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +4 -4
  337. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +9 -9
  338. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +3 -3
  339. data/src/core/tsi/ssl_transport_security.cc +26 -25
  340. data/src/core/tsi/ssl_transport_security_utils.cc +9 -9
  341. data/src/core/util/chunked_vector.h +4 -4
  342. data/src/core/util/event_log.cc +2 -2
  343. data/src/core/util/gcp_metadata_query.cc +2 -2
  344. data/src/core/util/grpc_check.cc +22 -0
  345. data/src/core/util/grpc_check.h +103 -0
  346. data/src/core/util/http_client/httpcli.cc +3 -3
  347. data/src/core/util/http_client/parser.cc +4 -4
  348. data/src/core/util/latent_see.h +7 -4
  349. data/src/core/util/lru_cache.h +4 -4
  350. data/src/core/util/memory_usage.h +16 -0
  351. data/src/core/util/posix/directory_reader.cc +3 -2
  352. data/src/core/util/posix/sync.cc +24 -24
  353. data/src/core/util/postmortem_emit.cc +52 -0
  354. data/src/core/util/postmortem_emit.h +30 -0
  355. data/src/core/util/ref_counted_ptr.h +5 -0
  356. data/src/core/util/trie_lookup.h +170 -0
  357. data/src/core/util/unique_ptr_with_bitset.h +5 -5
  358. data/src/core/xds/grpc/xds_bootstrap_grpc.h +6 -1
  359. data/src/core/xds/grpc/xds_certificate_provider.cc +3 -3
  360. data/src/core/xds/grpc/xds_client_grpc.cc +34 -15
  361. data/src/core/xds/grpc/xds_client_grpc.h +4 -1
  362. data/src/core/xds/grpc/xds_cluster_parser.cc +2 -2
  363. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
  364. data/src/core/xds/grpc/xds_endpoint_parser.cc +2 -2
  365. data/src/core/xds/grpc/xds_http_filter_registry.cc +4 -3
  366. data/src/core/xds/grpc/xds_listener_parser.cc +3 -3
  367. data/src/core/xds/grpc/xds_matcher.cc +277 -0
  368. data/src/core/xds/grpc/xds_matcher.h +432 -0
  369. data/src/core/xds/grpc/xds_matcher_action.cc +47 -0
  370. data/src/core/xds/grpc/xds_matcher_action.h +48 -0
  371. data/src/core/xds/grpc/xds_matcher_context.cc +29 -0
  372. data/src/core/xds/grpc/xds_matcher_context.h +46 -0
  373. data/src/core/xds/grpc/xds_matcher_input.cc +79 -0
  374. data/src/core/xds/grpc/xds_matcher_input.h +105 -0
  375. data/src/core/xds/grpc/xds_matcher_parse.cc +356 -0
  376. data/src/core/xds/grpc/xds_matcher_parse.h +39 -0
  377. data/src/core/xds/grpc/xds_metadata.cc +4 -3
  378. data/src/core/xds/grpc/xds_route_config_parser.cc +6 -6
  379. data/src/core/xds/grpc/xds_routing.cc +3 -3
  380. data/src/core/xds/grpc/xds_transport_grpc.cc +10 -10
  381. data/src/core/xds/xds_client/lrs_client.cc +6 -6
  382. data/src/core/xds/xds_client/xds_client.cc +9 -9
  383. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -2
  384. data/src/ruby/lib/grpc/version.rb +1 -1
  385. data/third_party/abseil-cpp/absl/container/internal/node_slot_policy.h +95 -0
  386. data/third_party/abseil-cpp/absl/container/node_hash_map.h +687 -0
  387. metadata +37 -2
@@ -0,0 +1,80 @@
1
+ /* This file was generated by upb_generator from the input file:
2
+ *
3
+ * src/proto/grpc/channelz/v2/channelz.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/channelz.upbdefs.h"
12
+ #include "src/proto/grpc/channelz/v2/channelz.upb_minitable.h"
13
+
14
+ extern _upb_DefPool_Init google_protobuf_any_proto_upbdefinit;
15
+ extern _upb_DefPool_Init google_protobuf_timestamp_proto_upbdefinit;
16
+
17
+ static const char descriptor[578] = {
18
+ '\n', ')', 's', 'r', 'c', '/', 'p', 'r', 'o', 't', 'o', '/',
19
+ 'g', 'r', 'p', 'c', '/', 'c', 'h', 'a', 'n', 'n', 'e', 'l',
20
+ 'z', '/', 'v', '2', '/', 'c', 'h', 'a', 'n', 'n', 'e', 'l',
21
+ 'z', '.', 'p', 'r', 'o', 't', 'o', '\022', '\020', 'g', 'r', 'p',
22
+ 'c', '.', 'c', 'h', 'a', 'n', 'n', 'e', 'l', 'z', '.', 'v',
23
+ '2', '\032', '\031', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r',
24
+ 'o', 't', 'o', 'b', 'u', 'f', '/', 'a', 'n', 'y', '.', 'p',
25
+ 'r', 'o', 't', 'o', '\032', '\037', 'g', 'o', 'o', 'g', 'l', 'e',
26
+ '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 't', 'i',
27
+ 'm', 'e', 's', 't', 'a', 'm', 'p', '.', 'p', 'r', 'o', 't',
28
+ 'o', '\"', 'F', '\n', '\004', 'D', 'a', 't', 'a', '\022', '\022', '\n',
29
+ '\004', 'n', 'a', 'm', 'e', '\030', '\001', ' ', '\001', '(', '\t', 'R',
30
+ '\004', 'n', 'a', 'm', 'e', '\022', '*', '\n', '\005', 'v', 'a', 'l',
31
+ 'u', 'e', '\030', '\002', ' ', '\001', '(', '\013', '2', '\024', '.', 'g',
32
+ 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b',
33
+ 'u', 'f', '.', 'A', 'n', 'y', 'R', '\005', 'v', 'a', 'l', 'u',
34
+ 'e', '\"', '\337', '\001', '\n', '\006', 'E', 'n', 't', 'i', 't', 'y',
35
+ '\022', '\016', '\n', '\002', 'i', 'd', '\030', '\001', ' ', '\001', '(', '\003',
36
+ 'R', '\002', 'i', 'd', '\022', '\022', '\n', '\004', 'k', 'i', 'n', 'd',
37
+ '\030', '\002', ' ', '\001', '(', '\t', 'R', '\004', 'k', 'i', 'n', 'd',
38
+ '\022', '\030', '\n', '\007', 'p', 'a', 'r', 'e', 'n', 't', 's', '\030',
39
+ '\003', ' ', '\003', '(', '\003', 'R', '\007', 'p', 'a', 'r', 'e', 'n',
40
+ 't', 's', '\022', '\032', '\n', '\010', 'o', 'r', 'p', 'h', 'a', 'n',
41
+ 'e', 'd', '\030', '\004', ' ', '\001', '(', '\010', 'R', '\010', 'o', 'r',
42
+ 'p', 'h', 'a', 'n', 'e', 'd', '\022', '\033', '\n', '\t', 't', 'i',
43
+ 'm', 'e', 'd', '_', 'o', 'u', 't', '\030', '\005', ' ', '\001', '(',
44
+ '\010', 'R', '\010', 't', 'i', 'm', 'e', 'd', 'O', 'u', 't', '\022',
45
+ '*', '\n', '\004', 'd', 'a', 't', 'a', '\030', '\006', ' ', '\003', '(',
46
+ '\013', '2', '\026', '.', 'g', 'r', 'p', 'c', '.', 'c', 'h', 'a',
47
+ 'n', 'n', 'e', 'l', 'z', '.', 'v', '2', '.', 'D', 'a', 't',
48
+ 'a', 'R', '\004', 'd', 'a', 't', 'a', '\022', '2', '\n', '\005', 't',
49
+ 'r', 'a', 'c', 'e', '\030', '\007', ' ', '\003', '(', '\013', '2', '\034',
50
+ '.', 'g', 'r', 'p', 'c', '.', 'c', 'h', 'a', 'n', 'n', 'e',
51
+ 'l', 'z', '.', 'v', '2', '.', 'T', 'r', 'a', 'c', 'e', 'E',
52
+ 'v', 'e', 'n', 't', 'R', '\005', 't', 'r', 'a', 'c', 'e', '\"',
53
+ '\224', '\001', '\n', '\n', 'T', 'r', 'a', 'c', 'e', 'E', 'v', 'e',
54
+ 'n', 't', '\022', ' ', '\n', '\013', 'd', 'e', 's', 'c', 'r', 'i',
55
+ 'p', 't', 'i', 'o', 'n', '\030', '\001', ' ', '\001', '(', '\t', 'R',
56
+ '\013', 'd', 'e', 's', 'c', 'r', 'i', 'p', 't', 'i', 'o', 'n',
57
+ '\022', '8', '\n', '\t', 't', 'i', 'm', 'e', 's', 't', 'a', 'm',
58
+ 'p', '\030', '\002', ' ', '\001', '(', '\013', '2', '\032', '.', 'g', 'o',
59
+ 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u',
60
+ 'f', '.', 'T', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', 'R',
61
+ '\t', 't', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', '\022', '*',
62
+ '\n', '\004', 'd', 'a', 't', 'a', '\030', '\003', ' ', '\003', '(', '\013',
63
+ '2', '\026', '.', 'g', 'r', 'p', 'c', '.', 'c', 'h', 'a', 'n',
64
+ 'n', 'e', 'l', 'z', '.', 'v', '2', '.', 'D', 'a', 't', 'a',
65
+ 'R', '\004', 'd', 'a', 't', 'a', 'b', '\006', 'p', 'r', 'o', 't',
66
+ 'o', '3',
67
+ };
68
+
69
+ static _upb_DefPool_Init *deps[3] = {
70
+ &google_protobuf_any_proto_upbdefinit,
71
+ &google_protobuf_timestamp_proto_upbdefinit,
72
+ NULL,
73
+ };
74
+
75
+ _upb_DefPool_Init src_proto_grpc_channelz_v2_channelz_proto_upbdefinit = {
76
+ deps,
77
+ &src_proto_grpc_channelz_v2_channelz_proto_upb_file_layout,
78
+ "src/proto/grpc/channelz/v2/channelz.proto",
79
+ UPB_STRINGVIEW_INIT(descriptor, sizeof(descriptor)),
80
+ };
@@ -0,0 +1,47 @@
1
+ /* This file was generated by upb_generator from the input file:
2
+ *
3
+ * src/proto/grpc/channelz/v2/channelz.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_CHANNELZ_PROTO_UPB_H__UPBDEFS_H_
12
+ #define SRC_PROTO_GRPC_CHANNELZ_V2_CHANNELZ_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_channelz_proto_upbdefinit;
24
+
25
+ UPB_INLINE const upb_MessageDef *grpc_channelz_v2_Data_getmsgdef(upb_DefPool *s) {
26
+ _upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_channelz_proto_upbdefinit);
27
+ return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.Data");
28
+ }
29
+
30
+ UPB_INLINE const upb_MessageDef *grpc_channelz_v2_Entity_getmsgdef(upb_DefPool *s) {
31
+ _upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_channelz_proto_upbdefinit);
32
+ return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.Entity");
33
+ }
34
+
35
+ UPB_INLINE const upb_MessageDef *grpc_channelz_v2_TraceEvent_getmsgdef(upb_DefPool *s) {
36
+ _upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_channelz_proto_upbdefinit);
37
+ return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.TraceEvent");
38
+ }
39
+
40
+
41
+ #ifdef __cplusplus
42
+ } /* extern "C" */
43
+ #endif
44
+
45
+ #include "upb/port/undef.inc"
46
+
47
+ #endif /* SRC_PROTO_GRPC_CHANNELZ_V2_CHANNELZ_PROTO_UPB_H__UPBDEFS_H_ */
@@ -0,0 +1,129 @@
1
+ /* This file was generated by upb_generator from the input file:
2
+ *
3
+ * src/proto/grpc/channelz/v2/service.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/service.upbdefs.h"
12
+ #include "src/proto/grpc/channelz/v2/service.upb_minitable.h"
13
+
14
+ extern _upb_DefPool_Init src_proto_grpc_channelz_v2_channelz_proto_upbdefinit;
15
+
16
+ static const char descriptor[1193] = {
17
+ '\n', '(', 's', 'r', 'c', '/', 'p', 'r', 'o', 't', 'o', '/',
18
+ 'g', 'r', 'p', 'c', '/', 'c', 'h', 'a', 'n', 'n', 'e', 'l',
19
+ 'z', '/', 'v', '2', '/', 's', 'e', 'r', 'v', 'i', 'c', 'e',
20
+ '.', 'p', 'r', 'o', 't', 'o', '\022', '\020', 'g', 'r', 'p', 'c',
21
+ '.', 'c', 'h', 'a', 'n', 'n', 'e', 'l', 'z', '.', 'v', '2',
22
+ '\032', ')', 's', 'r', 'c', '/', 'p', 'r', 'o', 't', 'o', '/',
23
+ 'g', 'r', 'p', 'c', '/', 'c', 'h', 'a', 'n', 'n', 'e', 'l',
24
+ 'z', '/', 'v', '2', '/', 'c', 'h', 'a', 'n', 'n', 'e', 'l',
25
+ 'z', '.', 'p', 'r', 'o', 't', 'o', '\"', 'j', '\n', '\024', 'Q',
26
+ 'u', 'e', 'r', 'y', 'E', 'n', 't', 'i', 't', 'i', 'e', 's',
27
+ 'R', 'e', 'q', 'u', 'e', 's', 't', '\022', '\022', '\n', '\004', 'k',
28
+ 'i', 'n', 'd', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\004', 'k',
29
+ 'i', 'n', 'd', '\022', '\026', '\n', '\006', 'p', 'a', 'r', 'e', 'n',
30
+ 't', '\030', '\002', ' ', '\001', '(', '\003', 'R', '\006', 'p', 'a', 'r',
31
+ 'e', 'n', 't', '\022', '&', '\n', '\017', 's', 't', 'a', 'r', 't',
32
+ '_', 'e', 'n', 't', 'i', 't', 'y', '_', 'i', 'd', '\030', '\003',
33
+ ' ', '\001', '(', '\003', 'R', '\r', 's', 't', 'a', 'r', 't', 'E',
34
+ 'n', 't', 'i', 't', 'y', 'I', 'd', '\"', '_', '\n', '\025', 'Q',
35
+ 'u', 'e', 'r', 'y', 'E', 'n', 't', 'i', 't', 'i', 'e', 's',
36
+ 'R', 'e', 's', 'p', 'o', 'n', 's', 'e', '\022', '4', '\n', '\010',
37
+ 'e', 'n', 't', 'i', 't', 'i', 'e', 's', '\030', '\001', ' ', '\003',
38
+ '(', '\013', '2', '\030', '.', 'g', 'r', 'p', 'c', '.', 'c', 'h',
39
+ 'a', 'n', 'n', 'e', 'l', 'z', '.', 'v', '2', '.', 'E', 'n',
40
+ 't', 'i', 't', 'y', 'R', '\010', 'e', 'n', 't', 'i', 't', 'i',
41
+ 'e', 's', '\022', '\020', '\n', '\003', 'e', 'n', 'd', '\030', '\002', ' ',
42
+ '\001', '(', '\010', 'R', '\003', 'e', 'n', 'd', '\"', '\"', '\n', '\020',
43
+ 'G', 'e', 't', 'E', 'n', 't', 'i', 't', 'y', 'R', 'e', 'q',
44
+ 'u', 'e', 's', 't', '\022', '\016', '\n', '\002', 'i', 'd', '\030', '\001',
45
+ ' ', '\001', '(', '\003', 'R', '\002', 'i', 'd', '\"', 'E', '\n', '\021',
46
+ 'G', 'e', 't', 'E', 'n', 't', 'i', 't', 'y', 'R', 'e', 's',
47
+ 'p', 'o', 'n', 's', 'e', '\022', '0', '\n', '\006', 'e', 'n', 't',
48
+ 'i', 't', 'y', '\030', '\001', ' ', '\001', '(', '\013', '2', '\030', '.',
49
+ 'g', 'r', 'p', 'c', '.', 'c', 'h', 'a', 'n', 'n', 'e', 'l',
50
+ 'z', '.', 'v', '2', '.', 'E', 'n', 't', 'i', 't', 'y', 'R',
51
+ '\006', 'e', 'n', 't', 'i', 't', 'y', '\"', '\345', '\002', '\n', '\021',
52
+ 'Q', 'u', 'e', 'r', 'y', 'T', 'r', 'a', 'c', 'e', 'R', 'e',
53
+ 'q', 'u', 'e', 's', 't', '\022', '\016', '\n', '\002', 'i', 'd', '\030',
54
+ '\001', ' ', '\001', '(', '\003', 'R', '\002', 'i', 'd', '\022', '\022', '\n',
55
+ '\004', 'n', 'a', 'm', 'e', '\030', '\002', ' ', '\001', '(', '\t', 'R',
56
+ '\004', 'n', 'a', 'm', 'e', '\022', 'A', '\n', '\004', 'a', 'r', 'g',
57
+ 's', '\030', '\004', ' ', '\003', '(', '\013', '2', '-', '.', 'g', 'r',
58
+ 'p', 'c', '.', 'c', 'h', 'a', 'n', 'n', 'e', 'l', 'z', '.',
59
+ 'v', '2', '.', 'Q', 'u', 'e', 'r', 'y', 'T', 'r', 'a', 'c',
60
+ 'e', 'R', 'e', 'q', 'u', 'e', 's', 't', '.', 'A', 'r', 'g',
61
+ 's', 'E', 'n', 't', 'r', 'y', 'R', '\004', 'a', 'r', 'g', 's',
62
+ '\032', '}', '\n', '\r', 'Q', 'u', 'e', 'r', 'y', 'A', 'r', 'g',
63
+ 'V', 'a', 'l', 'u', 'e', '\022', '\035', '\n', '\t', 'i', 'n', 't',
64
+ '_', 'v', 'a', 'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', '\003',
65
+ 'H', '\000', 'R', '\010', 'i', 'n', 't', 'V', 'a', 'l', 'u', 'e',
66
+ '\022', '#', '\n', '\014', 's', 't', 'r', 'i', 'n', 'g', '_', 'v',
67
+ 'a', 'l', 'u', 'e', '\030', '\002', ' ', '\001', '(', '\t', 'H', '\000',
68
+ 'R', '\013', 's', 't', 'r', 'i', 'n', 'g', 'V', 'a', 'l', 'u',
69
+ 'e', '\022', '\037', '\n', '\n', 'b', 'o', 'o', 'l', '_', 'v', 'a',
70
+ 'l', 'u', 'e', '\030', '\003', ' ', '\001', '(', '\010', 'H', '\000', 'R',
71
+ '\t', 'b', 'o', 'o', 'l', 'V', 'a', 'l', 'u', 'e', 'B', '\007',
72
+ '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\032', 'j', '\n', '\t', 'A',
73
+ 'r', 'g', 's', 'E', 'n', 't', 'r', 'y', '\022', '\020', '\n', '\003',
74
+ 'k', 'e', 'y', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\003', 'k',
75
+ 'e', 'y', '\022', 'G', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030',
76
+ '\002', ' ', '\001', '(', '\013', '2', '1', '.', 'g', 'r', 'p', 'c',
77
+ '.', 'c', 'h', 'a', 'n', 'n', 'e', 'l', 'z', '.', 'v', '2',
78
+ '.', 'Q', 'u', 'e', 'r', 'y', 'T', 'r', 'a', 'c', 'e', 'R',
79
+ 'e', 'q', 'u', 'e', 's', 't', '.', 'Q', 'u', 'e', 'r', 'y',
80
+ 'A', 'r', 'g', 'V', 'a', 'l', 'u', 'e', 'R', '\005', 'v', 'a',
81
+ 'l', 'u', 'e', ':', '\002', '8', '\001', '\"', 'x', '\n', '\022', 'Q',
82
+ 'u', 'e', 'r', 'y', 'T', 'r', 'a', 'c', 'e', 'R', 'e', 's',
83
+ 'p', 'o', 'n', 's', 'e', '\022', '4', '\n', '\006', 'e', 'v', 'e',
84
+ 'n', 't', 's', '\030', '\001', ' ', '\003', '(', '\013', '2', '\034', '.',
85
+ 'g', 'r', 'p', 'c', '.', 'c', 'h', 'a', 'n', 'n', 'e', 'l',
86
+ 'z', '.', 'v', '2', '.', 'T', 'r', 'a', 'c', 'e', 'E', 'v',
87
+ 'e', 'n', 't', 'R', '\006', 'e', 'v', 'e', 'n', 't', 's', '\022',
88
+ ',', '\n', '\022', 'n', 'u', 'm', '_', 'e', 'v', 'e', 'n', 't',
89
+ 's', '_', 'm', 'a', 't', 'c', 'h', 'e', 'd', '\030', '\002', ' ',
90
+ '\001', '(', '\003', 'R', '\020', 'n', 'u', 'm', 'E', 'v', 'e', 'n',
91
+ 't', 's', 'M', 'a', 't', 'c', 'h', 'e', 'd', '2', '\235', '\002',
92
+ '\n', '\010', 'C', 'h', 'a', 'n', 'n', 'e', 'l', 'z', '\022', '`',
93
+ '\n', '\r', 'Q', 'u', 'e', 'r', 'y', 'E', 'n', 't', 'i', 't',
94
+ 'i', 'e', 's', '\022', '&', '.', 'g', 'r', 'p', 'c', '.', 'c',
95
+ 'h', 'a', 'n', 'n', 'e', 'l', 'z', '.', 'v', '2', '.', 'Q',
96
+ 'u', 'e', 'r', 'y', 'E', 'n', 't', 'i', 't', 'i', 'e', 's',
97
+ 'R', 'e', 'q', 'u', 'e', 's', 't', '\032', '\'', '.', 'g', 'r',
98
+ 'p', 'c', '.', 'c', 'h', 'a', 'n', 'n', 'e', 'l', 'z', '.',
99
+ 'v', '2', '.', 'Q', 'u', 'e', 'r', 'y', 'E', 'n', 't', 'i',
100
+ 't', 'i', 'e', 's', 'R', 'e', 's', 'p', 'o', 'n', 's', 'e',
101
+ '\022', 'T', '\n', '\t', 'G', 'e', 't', 'E', 'n', 't', 'i', 't',
102
+ 'y', '\022', '\"', '.', 'g', 'r', 'p', 'c', '.', 'c', 'h', 'a',
103
+ 'n', 'n', 'e', 'l', 'z', '.', 'v', '2', '.', 'G', 'e', 't',
104
+ 'E', 'n', 't', 'i', 't', 'y', 'R', 'e', 'q', 'u', 'e', 's',
105
+ 't', '\032', '#', '.', 'g', 'r', 'p', 'c', '.', 'c', 'h', 'a',
106
+ 'n', 'n', 'e', 'l', 'z', '.', 'v', '2', '.', 'G', 'e', 't',
107
+ 'E', 'n', 't', 'i', 't', 'y', 'R', 'e', 's', 'p', 'o', 'n',
108
+ 's', 'e', '\022', 'Y', '\n', '\n', 'Q', 'u', 'e', 'r', 'y', 'T',
109
+ 'r', 'a', 'c', 'e', '\022', '#', '.', 'g', 'r', 'p', 'c', '.',
110
+ 'c', 'h', 'a', 'n', 'n', 'e', 'l', 'z', '.', 'v', '2', '.',
111
+ 'Q', 'u', 'e', 'r', 'y', 'T', 'r', 'a', 'c', 'e', 'R', 'e',
112
+ 'q', 'u', 'e', 's', 't', '\032', '$', '.', 'g', 'r', 'p', 'c',
113
+ '.', 'c', 'h', 'a', 'n', 'n', 'e', 'l', 'z', '.', 'v', '2',
114
+ '.', 'Q', 'u', 'e', 'r', 'y', 'T', 'r', 'a', 'c', 'e', 'R',
115
+ 'e', 's', 'p', 'o', 'n', 's', 'e', '0', '\001', 'b', '\006', 'p',
116
+ 'r', 'o', 't', 'o', '3',
117
+ };
118
+
119
+ static _upb_DefPool_Init *deps[2] = {
120
+ &src_proto_grpc_channelz_v2_channelz_proto_upbdefinit,
121
+ NULL,
122
+ };
123
+
124
+ _upb_DefPool_Init src_proto_grpc_channelz_v2_service_proto_upbdefinit = {
125
+ deps,
126
+ &src_proto_grpc_channelz_v2_service_proto_upb_file_layout,
127
+ "src/proto/grpc/channelz/v2/service.proto",
128
+ UPB_STRINGVIEW_INIT(descriptor, sizeof(descriptor)),
129
+ };
@@ -0,0 +1,72 @@
1
+ /* This file was generated by upb_generator from the input file:
2
+ *
3
+ * src/proto/grpc/channelz/v2/service.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_SERVICE_PROTO_UPB_H__UPBDEFS_H_
12
+ #define SRC_PROTO_GRPC_CHANNELZ_V2_SERVICE_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_service_proto_upbdefinit;
24
+
25
+ UPB_INLINE const upb_MessageDef *grpc_channelz_v2_QueryEntitiesRequest_getmsgdef(upb_DefPool *s) {
26
+ _upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_service_proto_upbdefinit);
27
+ return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.QueryEntitiesRequest");
28
+ }
29
+
30
+ UPB_INLINE const upb_MessageDef *grpc_channelz_v2_QueryEntitiesResponse_getmsgdef(upb_DefPool *s) {
31
+ _upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_service_proto_upbdefinit);
32
+ return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.QueryEntitiesResponse");
33
+ }
34
+
35
+ UPB_INLINE const upb_MessageDef *grpc_channelz_v2_GetEntityRequest_getmsgdef(upb_DefPool *s) {
36
+ _upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_service_proto_upbdefinit);
37
+ return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.GetEntityRequest");
38
+ }
39
+
40
+ UPB_INLINE const upb_MessageDef *grpc_channelz_v2_GetEntityResponse_getmsgdef(upb_DefPool *s) {
41
+ _upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_service_proto_upbdefinit);
42
+ return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.GetEntityResponse");
43
+ }
44
+
45
+ UPB_INLINE const upb_MessageDef *grpc_channelz_v2_QueryTraceRequest_getmsgdef(upb_DefPool *s) {
46
+ _upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_service_proto_upbdefinit);
47
+ return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.QueryTraceRequest");
48
+ }
49
+
50
+ UPB_INLINE const upb_MessageDef *grpc_channelz_v2_QueryTraceRequest_QueryArgValue_getmsgdef(upb_DefPool *s) {
51
+ _upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_service_proto_upbdefinit);
52
+ return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.QueryTraceRequest.QueryArgValue");
53
+ }
54
+
55
+ UPB_INLINE const upb_MessageDef *grpc_channelz_v2_QueryTraceRequest_ArgsEntry_getmsgdef(upb_DefPool *s) {
56
+ _upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_service_proto_upbdefinit);
57
+ return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.QueryTraceRequest.ArgsEntry");
58
+ }
59
+
60
+ UPB_INLINE const upb_MessageDef *grpc_channelz_v2_QueryTraceResponse_getmsgdef(upb_DefPool *s) {
61
+ _upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_service_proto_upbdefinit);
62
+ return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.QueryTraceResponse");
63
+ }
64
+
65
+
66
+ #ifdef __cplusplus
67
+ } /* extern "C" */
68
+ #endif
69
+
70
+ #include "upb/port/undef.inc"
71
+
72
+ #endif /* SRC_PROTO_GRPC_CHANNELZ_V2_SERVICE_PROTO_UPB_H__UPBDEFS_H_ */
@@ -30,7 +30,6 @@
30
30
  #include <memory>
31
31
  #include <utility>
32
32
 
33
- #include "absl/log/check.h"
34
33
  #include "absl/log/log.h"
35
34
  #include "absl/status/status.h"
36
35
  #include "absl/status/statusor.h"
@@ -56,6 +55,7 @@
56
55
  #include "src/core/lib/transport/transport.h"
57
56
  #include "src/core/transport/auth_context.h"
58
57
  #include "src/core/util/debug_location.h"
58
+ #include "src/core/util/grpc_check.h"
59
59
  #include "src/core/util/ref_counted_ptr.h"
60
60
  #include "src/core/util/status_helper.h"
61
61
 
@@ -199,7 +199,7 @@ ServerAuthFilter::ServerAuthFilter(
199
199
  absl::StatusOr<std::unique_ptr<ServerAuthFilter>> ServerAuthFilter::Create(
200
200
  const ChannelArgs& args, ChannelFilter::Args) {
201
201
  auto auth_context = args.GetObjectRef<grpc_auth_context>();
202
- CHECK(auth_context != nullptr);
202
+ GRPC_CHECK(auth_context != nullptr);
203
203
  auto creds = args.GetObjectRef<grpc_server_credentials>();
204
204
  return std::make_unique<ServerAuthFilter>(std::move(creds),
205
205
  std::move(auth_context));
@@ -29,7 +29,6 @@
29
29
  #include <utility>
30
30
 
31
31
  #include "absl/functional/any_invocable.h"
32
- #include "absl/log/check.h"
33
32
  #include "absl/log/log.h"
34
33
  #include "absl/status/status.h"
35
34
  #include "absl/status/statusor.h"
@@ -40,6 +39,7 @@
40
39
  #include "src/core/lib/iomgr/event_engine_shims/endpoint.h"
41
40
  #include "src/core/lib/iomgr/exec_ctx.h"
42
41
  #include "src/core/util/debug_location.h"
42
+ #include "src/core/util/grpc_check.h"
43
43
  #include "src/core/util/status_helper.h"
44
44
  #include "src/core/util/time.h"
45
45
 
@@ -95,7 +95,7 @@ void HandshakeManager::DoHandshake(
95
95
  // last ref to this object.
96
96
  auto self = Ref();
97
97
  MutexLock lock(&mu_);
98
- CHECK_EQ(index_, 0u);
98
+ GRPC_CHECK_EQ(index_, 0u);
99
99
  on_handshake_done_ = std::move(on_handshake_done);
100
100
  // Construct handshaker args. These will be passed through all
101
101
  // handshakers and eventually be freed by the on_handshake_done callback.
@@ -151,7 +151,7 @@ void HandshakeManager::CallNextHandshakerLocked(absl::Status error) {
151
151
  << "CallNextHandshakerLocked: error=" << error
152
152
  << " shutdown=" << is_shutdown_ << " index=" << index_
153
153
  << ", args=" << HandshakerArgsString(&args_);
154
- CHECK(index_ <= handshakers_.size());
154
+ GRPC_CHECK(index_ <= handshakers_.size());
155
155
  // If we got an error or we've been shut down or we're exiting early or
156
156
  // we've finished the last handshaker, invoke the on_handshake_done
157
157
  // callback.
@@ -29,7 +29,6 @@
29
29
  #include <string>
30
30
  #include <utility>
31
31
 
32
- #include "absl/log/check.h"
33
32
  #include "absl/log/log.h"
34
33
  #include "absl/status/status.h"
35
34
  #include "absl/status/statusor.h"
@@ -47,6 +46,7 @@
47
46
  #include "src/core/lib/channel/channel_args.h"
48
47
  #include "src/core/lib/iomgr/resolve_address.h"
49
48
  #include "src/core/util/env.h"
49
+ #include "src/core/util/grpc_check.h"
50
50
  #include "src/core/util/host_port.h"
51
51
  #include "src/core/util/memory.h"
52
52
  #include "src/core/util/string.h"
@@ -105,7 +105,7 @@ bool AddressIncluded(const std::optional<grpc_resolved_address>& target_address,
105
105
  ///
106
106
  std::optional<std::string> GetHttpProxyServer(
107
107
  const ChannelArgs& args, std::optional<std::string>* user_cred) {
108
- CHECK_NE(user_cred, nullptr);
108
+ GRPC_CHECK_NE(user_cred, nullptr);
109
109
  absl::StatusOr<URI> uri;
110
110
  // We check the following places to determine the HTTP proxy to use, stopping
111
111
  // at the first one that is set:
@@ -33,7 +33,6 @@
33
33
  #include <utility>
34
34
 
35
35
  #include "absl/base/thread_annotations.h"
36
- #include "absl/log/check.h"
37
36
  #include "absl/log/log.h"
38
37
  #include "absl/status/status.h"
39
38
  #include "absl/strings/string_view.h"
@@ -53,6 +52,7 @@
53
52
  #include "src/core/tsi/transport_security_grpc.h"
54
53
  #include "src/core/tsi/transport_security_interface.h"
55
54
  #include "src/core/util/debug_location.h"
55
+ #include "src/core/util/grpc_check.h"
56
56
  #include "src/core/util/orphanable.h"
57
57
  #include "src/core/util/ref_counted_ptr.h"
58
58
  #include "src/core/util/string.h"
@@ -367,7 +367,7 @@ static void endpoint_read(grpc_endpoint* secure_ep, grpc_slice_buffer* slices,
367
367
  SECURE_ENDPOINT_REF(ep, "read");
368
368
  if (ep->leftover_bytes.count) {
369
369
  grpc_slice_buffer_swap(&ep->leftover_bytes, &ep->source_buffer);
370
- CHECK_EQ(ep->leftover_bytes.count, 0u);
370
+ GRPC_CHECK_EQ(ep->leftover_bytes.count, 0u);
371
371
  on_read(ep, absl::OkStatus());
372
372
  return;
373
373
  }
@@ -36,7 +36,6 @@
36
36
 
37
37
  #include "absl/base/thread_annotations.h"
38
38
  #include "absl/functional/any_invocable.h"
39
- #include "absl/log/check.h"
40
39
  #include "absl/log/log.h"
41
40
  #include "absl/status/status.h"
42
41
  #include "absl/strings/str_cat.h"
@@ -56,6 +55,7 @@
56
55
  #include "src/core/lib/slice/slice_string_helpers.h"
57
56
  #include "src/core/tsi/transport_security_grpc.h"
58
57
  #include "src/core/tsi/transport_security_interface.h"
58
+ #include "src/core/util/grpc_check.h"
59
59
  #include "src/core/util/latent_see.h"
60
60
  #include "src/core/util/orphanable.h"
61
61
  #include "src/core/util/ref_counted.h"
@@ -98,6 +98,7 @@ class FrameProtector : public RefCounted<FrameProtector> {
98
98
  write_staging_buffer_ =
99
99
  memory_owner_.MakeSlice(MemoryRequest(STAGING_BUFFER_SIZE));
100
100
  }
101
+ is_zero_copy_protector_ = zero_copy_protector_ != nullptr;
101
102
  }
102
103
 
103
104
  ~FrameProtector() override {
@@ -180,6 +181,8 @@ class FrameProtector : public RefCounted<FrameProtector> {
180
181
  read_buffer_ = nullptr;
181
182
  }
182
183
 
184
+ bool IsZeroCopyProtector() const { return is_zero_copy_protector_; }
185
+
183
186
  absl::Status Unprotect(absl::Status read_status)
184
187
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(read_mu_) {
185
188
  if (shutdown_) {
@@ -451,6 +454,7 @@ class FrameProtector : public RefCounted<FrameProtector> {
451
454
  int min_progress_size_ = 1;
452
455
  SliceBuffer protector_staging_buffer_;
453
456
  bool shutdown_ = false;
457
+ bool is_zero_copy_protector_ = false;
454
458
  };
455
459
  } // namespace
456
460
  } // namespace grpc_core
@@ -597,15 +601,17 @@ class PipelinedSecureEndpoint final : public EventEngine::Endpoint {
597
601
  // called again once that read completes.
598
602
  if (unprotecting_.value()) {
599
603
  lock.Release();
600
- event_engine_->Run(
601
- [impl = Ref()]() mutable { ContinueUnprotect(std::move(impl)); });
604
+ event_engine_->Run([impl = Ref()]() mutable {
605
+ grpc_core::ExecCtx exec_ctx;
606
+ ContinueUnprotect(std::move(impl));
607
+ });
602
608
  }
603
609
  return true;
604
610
  }
605
611
 
606
612
  // If we're already unprotecting on another thread, we need to store the
607
613
  // buffer until we have some unprotected bytes to give it.
608
- CHECK(on_read_ == nullptr);
614
+ GRPC_CHECK(on_read_ == nullptr);
609
615
  pending_output_buffer_ = buffer;
610
616
  on_read_ = std::move(on_read);
611
617
  last_read_args_ = std::move(args);
@@ -672,8 +678,8 @@ class PipelinedSecureEndpoint final : public EventEngine::Endpoint {
672
678
  void StartFirstRead() ABSL_LOCKS_EXCLUDED(read_queue_mu_) {
673
679
  grpc_core::ReleasableMutexLock lock(&read_queue_mu_);
674
680
  unprotecting_ = true;
675
- CHECK(protected_data_buffer_ == nullptr);
676
- CHECK(unprotected_data_buffer_ == nullptr);
681
+ GRPC_CHECK(protected_data_buffer_ == nullptr);
682
+ GRPC_CHECK(unprotected_data_buffer_ == nullptr);
677
683
  // First, check if there are any leftover bytes to unprotect. If there
678
684
  // are, we can immediately start unprotecting those bytes.
679
685
  if (frame_protector_.MaybeReadLeftoverBytes(
@@ -690,6 +696,7 @@ class PipelinedSecureEndpoint final : public EventEngine::Endpoint {
690
696
  args.set_read_hint_bytes(frame_protector_.min_progress_size());
691
697
  lock.Release();
692
698
  event_engine_->Run([impl = Ref(), args = std::move(args)]() mutable {
699
+ grpc_core::ExecCtx exec_ctx;
693
700
  // If the endpoint closed whilst waiting for this callback, then
694
701
  // fail out the read and we're done.
695
702
  grpc_core::ReleasableMutexLock lock(impl->frame_protector_.read_mu());
@@ -701,6 +708,7 @@ class PipelinedSecureEndpoint final : public EventEngine::Endpoint {
701
708
  }
702
709
  const bool read_finished_immediately = impl->wrapped_ep_->Read(
703
710
  [impl = impl->Ref()](absl::Status status) mutable {
711
+ grpc_core::ExecCtx exec_ctx;
704
712
  FinishFirstRead(std::move(impl), status);
705
713
  },
706
714
  impl->staging_protected_data_buffer_.get(), std::move(args));
@@ -803,20 +811,34 @@ class PipelinedSecureEndpoint final : public EventEngine::Endpoint {
803
811
  impl->frame_protector_.TraceOp("data",
804
812
  source_buffer->c_slice_buffer());
805
813
  args = std::move(impl->last_read_args_);
806
- args.set_read_hint_bytes(impl->frame_protector_.min_progress_size());
814
+ if (impl->frame_protector_.IsZeroCopyProtector()) {
815
+ // We currently only track min progress size for zero copy
816
+ // protectors. Once we add this for non-zero copy protectors, we
817
+ // should remove the if condition.
818
+ // Since we start unprotecting after the first read, the min
819
+ // progress size does not account for the bytes we have already read
820
+ // in the previous read, so we need to subtract them here.
821
+ args.set_read_hint_bytes(
822
+ std::max<size_t>(1, impl->frame_protector_.min_progress_size() -
823
+ source_buffer->Length()));
824
+ } else if (args.read_hint_bytes() > 0) {
825
+ args.set_read_hint_bytes(std::max<size_t>(
826
+ 1, args.read_hint_bytes() - source_buffer->Length()));
827
+ }
807
828
  }
808
829
 
809
830
  // Kick off the next read in another thread while we unprotect in this
810
831
  // thread.
811
832
  impl->event_engine_->Run(
812
833
  [impl = impl->Ref(), args = std::move(args)]() mutable {
834
+ grpc_core::ExecCtx exec_ctx;
813
835
  StartAsyncRead(std::move(impl), std::move(args));
814
836
  });
815
837
 
816
838
  {
817
839
  grpc_core::ReleasableMutexLock lock(impl->frame_protector_.read_mu());
818
840
  // Unprotect the bytes.
819
- CHECK(read_buffer == nullptr);
841
+ GRPC_CHECK(read_buffer == nullptr);
820
842
  impl->frame_protector_.SetSourceBuffer(std::move(source_buffer));
821
843
  read_buffer = std::make_unique<SliceBuffer>();
822
844
  impl->frame_protector_.BeginRead(read_buffer->c_slice_buffer());
@@ -864,6 +886,7 @@ class PipelinedSecureEndpoint final : public EventEngine::Endpoint {
864
886
  }
865
887
  const bool read_finished_immediately = impl->wrapped_ep_->Read(
866
888
  [impl = impl->Ref()](absl::Status status) mutable {
889
+ grpc_core::ExecCtx exec_ctx;
867
890
  FinishAsyncRead(std::move(impl), status);
868
891
  },
869
892
  impl->staging_protected_data_buffer_.get(), std::move(args));