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
@@ -54,7 +54,6 @@
54
54
  #include <utility>
55
55
 
56
56
  #include "absl/functional/any_invocable.h"
57
- #include "absl/log/check.h"
58
57
  #include "absl/log/log.h"
59
58
  #include "absl/strings/match.h"
60
59
  #include "absl/strings/numbers.h"
@@ -70,6 +69,7 @@
70
69
  #include "src/core/lib/event_engine/time_util.h"
71
70
  #include "src/core/lib/iomgr/resolved_address.h"
72
71
  #include "src/core/util/debug_location.h"
72
+ #include "src/core/util/grpc_check.h"
73
73
  #include "src/core/util/host_port.h"
74
74
  #include "src/core/util/orphanable.h"
75
75
  #include "src/core/util/ref_counted_ptr.h"
@@ -280,9 +280,9 @@ AresResolver::AresResolver(
280
280
  }
281
281
 
282
282
  AresResolver::~AresResolver() {
283
- CHECK(fd_node_list_.empty());
284
- CHECK(callback_map_.empty());
285
- CHECK_NE(channel_, nullptr);
283
+ GRPC_CHECK(fd_node_list_.empty());
284
+ GRPC_CHECK(callback_map_.empty());
285
+ GRPC_CHECK_NE(channel_, nullptr);
286
286
  ares_destroy(channel_);
287
287
  }
288
288
 
@@ -367,7 +367,7 @@ void AresResolver::LookupHostname(
367
367
  grpc_core::MutexLock lock(&mutex_);
368
368
  callback_map_.emplace(++id_, std::move(callback));
369
369
  auto* resolver_arg = new HostnameQueryArg(this, id_, name, port);
370
- CHECK_NE(channel_, nullptr);
370
+ GRPC_CHECK_NE(channel_, nullptr);
371
371
  if (AresIsIpv6LoopbackAvailable()) {
372
372
  // Note that using AF_UNSPEC for both IPv6 and IPv4 queries does not work in
373
373
  // all cases, e.g. for localhost:<> it only gets back the IPv6 result (i.e.
@@ -415,7 +415,7 @@ void AresResolver::LookupSRV(
415
415
  grpc_core::MutexLock lock(&mutex_);
416
416
  callback_map_.emplace(++id_, std::move(callback));
417
417
  auto* resolver_arg = new QueryArg(this, id_, host);
418
- CHECK_NE(channel_, nullptr);
418
+ GRPC_CHECK_NE(channel_, nullptr);
419
419
  ares_query(channel_, std::string(host).c_str(), ns_c_in, ns_t_srv,
420
420
  &AresResolver::OnSRVQueryDoneLocked, resolver_arg);
421
421
  CheckSocketsLocked();
@@ -451,7 +451,7 @@ void AresResolver::LookupTXT(
451
451
  grpc_core::MutexLock lock(&mutex_);
452
452
  callback_map_.emplace(++id_, std::move(callback));
453
453
  auto* resolver_arg = new QueryArg(this, id_, host);
454
- CHECK_NE(channel_, nullptr);
454
+ GRPC_CHECK_NE(channel_, nullptr);
455
455
  ares_search(channel_, std::string(host).c_str(), ns_c_in, ns_t_txt,
456
456
  &AresResolver::OnTXTDoneLocked, resolver_arg);
457
457
  CheckSocketsLocked();
@@ -576,7 +576,7 @@ void AresResolver::MaybeStartTimerLocked() {
576
576
 
577
577
  void AresResolver::OnReadable(FdNode* fd_node, absl::Status status) {
578
578
  grpc_core::MutexLock lock(&mutex_);
579
- CHECK(fd_node->readable_registered);
579
+ GRPC_CHECK(fd_node->readable_registered);
580
580
  fd_node->readable_registered = false;
581
581
  GRPC_TRACE_LOG(cares_resolver, INFO)
582
582
  << "(EventEngine c-ares resolver) OnReadable: fd: " << fd_node->as
@@ -598,7 +598,7 @@ void AresResolver::OnReadable(FdNode* fd_node, absl::Status status) {
598
598
 
599
599
  void AresResolver::OnWritable(FdNode* fd_node, absl::Status status) {
600
600
  grpc_core::MutexLock lock(&mutex_);
601
- CHECK(fd_node->writable_registered);
601
+ GRPC_CHECK(fd_node->writable_registered);
602
602
  fd_node->writable_registered = false;
603
603
  GRPC_TRACE_LOG(cares_resolver, INFO)
604
604
  << "(EventEngine c-ares resolver) OnWritable: fd: " << fd_node->as
@@ -650,7 +650,7 @@ void AresResolver::OnHostbynameDoneLocked(void* arg, int status,
650
650
  int /*timeouts*/,
651
651
  struct hostent* hostent) {
652
652
  auto* hostname_qa = static_cast<HostnameQueryArg*>(arg);
653
- CHECK_GT(hostname_qa->pending_requests--, 0);
653
+ GRPC_CHECK_GT(hostname_qa->pending_requests--, 0);
654
654
  auto* ares_resolver = hostname_qa->ares_resolver;
655
655
  if (status != ARES_SUCCESS) {
656
656
  std::string error_msg =
@@ -722,8 +722,8 @@ void AresResolver::OnHostbynameDoneLocked(void* arg, int status,
722
722
  delete hostname_qa;
723
723
  return;
724
724
  }
725
- CHECK(std::holds_alternative<
726
- EventEngine::DNSResolver::LookupHostnameCallback>(nh.mapped()));
725
+ GRPC_CHECK(std::holds_alternative<
726
+ EventEngine::DNSResolver::LookupHostnameCallback>(nh.mapped()));
727
727
  auto callback = std::get<EventEngine::DNSResolver::LookupHostnameCallback>(
728
728
  std::move(nh.mapped()));
729
729
  if (!hostname_qa->result.empty() || hostname_qa->error_status.ok()) {
@@ -751,8 +751,9 @@ void AresResolver::OnSRVQueryDoneLocked(void* arg, int status, int /*timeouts*/,
751
751
  if (nh.empty()) {
752
752
  return;
753
753
  }
754
- CHECK(std::holds_alternative<EventEngine::DNSResolver::LookupSRVCallback>(
755
- nh.mapped()));
754
+ GRPC_CHECK(
755
+ std::holds_alternative<EventEngine::DNSResolver::LookupSRVCallback>(
756
+ nh.mapped()));
756
757
  auto callback = std::get<EventEngine::DNSResolver::LookupSRVCallback>(
757
758
  std::move(nh.mapped()));
758
759
  auto fail = [&](absl::string_view prefix) {
@@ -814,8 +815,9 @@ void AresResolver::OnTXTDoneLocked(void* arg, int status, int /*timeouts*/,
814
815
  if (nh.empty()) {
815
816
  return;
816
817
  }
817
- CHECK(std::holds_alternative<EventEngine::DNSResolver::LookupTXTCallback>(
818
- nh.mapped()));
818
+ GRPC_CHECK(
819
+ std::holds_alternative<EventEngine::DNSResolver::LookupTXTCallback>(
820
+ nh.mapped()));
819
821
  auto callback = std::get<EventEngine::DNSResolver::LookupTXTCallback>(
820
822
  std::move(nh.mapped()));
821
823
  auto fail = [&](absl::string_view prefix) {
@@ -894,7 +896,7 @@ void AresResolver::Reset(const absl::Status& reason) {
894
896
  callback_map_.clear();
895
897
  ShutdownLocked(reason, "resolver reset");
896
898
  CheckSocketsLocked();
897
- CHECK_NE(channel_, nullptr);
899
+ GRPC_CHECK_NE(channel_, nullptr);
898
900
  ares_destroy(channel_);
899
901
  channel_ = nullptr;
900
902
  }
@@ -903,10 +905,10 @@ void AresResolver::Restart() {
903
905
  grpc_core::MutexLock lock(&mutex_);
904
906
  polled_fd_factory_ = polled_fd_factory_->NewEmptyInstance();
905
907
  polled_fd_factory_->Initialize(&mutex_, event_engine_.get());
906
- CHECK_EQ(channel_, nullptr);
908
+ GRPC_CHECK_EQ(channel_, nullptr);
907
909
  absl::Status status =
908
910
  InitAresChannel(dns_server_, *polled_fd_factory_, &channel_);
909
- CHECK_OK(status);
911
+ GRPC_CHECK_OK(status);
910
912
  }
911
913
 
912
914
  #endif // GRPC_ENABLE_FORK_SUPPORT
@@ -922,7 +924,7 @@ void AresResolver::ShutdownLocked(const absl::Status& shutdown_status,
922
924
  GRPC_TRACE_LOG(cares_resolver, INFO) << absl::Substitute(
923
925
  "(EventEngine c-ares resolver) resolver: $0 shutdown fd: $1 ($2)",
924
926
  this, fd_node->polled_fd->GetName(), reason);
925
- CHECK(fd_node->polled_fd->ShutdownLocked(shutdown_status));
927
+ GRPC_CHECK(fd_node->polled_fd->ShutdownLocked(shutdown_status));
926
928
  fd_node->already_shutdown = true;
927
929
  }
928
930
  }
@@ -21,7 +21,6 @@
21
21
  #include <CoreFoundation/CoreFoundation.h>
22
22
  #include <grpc/support/cpu.h>
23
23
 
24
- #include "absl/log/check.h"
25
24
  #include "absl/log/log.h"
26
25
  #include "src/core/lib/event_engine/cf_engine/cf_engine.h"
27
26
  #include "src/core/lib/event_engine/cf_engine/cfsocket_listener.h"
@@ -32,6 +31,7 @@
32
31
  #include "src/core/lib/event_engine/thread_pool/thread_pool.h"
33
32
  #include "src/core/lib/event_engine/utils.h"
34
33
  #include "src/core/util/crash.h"
34
+ #include "src/core/util/grpc_check.h"
35
35
  #include "src/core/util/useful.h"
36
36
 
37
37
  #ifndef GRPC_CFSTREAM_MAX_THREADPOOL_SIZE
@@ -74,7 +74,7 @@ CFEventEngine::~CFEventEngine() {
74
74
  << HandleToString(handle);
75
75
  }
76
76
  }
77
- CHECK(GPR_LIKELY(known_handles_.empty()));
77
+ GRPC_CHECK(GPR_LIKELY(known_handles_.empty()));
78
78
  timer_manager_.Shutdown();
79
79
  }
80
80
  thread_pool_->Quiesce();
@@ -18,13 +18,13 @@
18
18
  #include <AvailabilityMacros.h>
19
19
  #ifdef AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER
20
20
 
21
- #include "absl/log/check.h"
22
21
  #include "absl/strings/str_cat.h"
23
22
  #include "absl/strings/str_format.h"
24
23
  #include "src/core/lib/address_utils/parse_address.h"
25
24
  #include "src/core/lib/event_engine/cf_engine/dns_service_resolver.h"
26
25
  #include "src/core/lib/event_engine/posix_engine/lockfree_event.h"
27
26
  #include "src/core/lib/event_engine/tcp_socket_utils.h"
27
+ #include "src/core/util/grpc_check.h"
28
28
  #include "src/core/util/host_port.h"
29
29
 
30
30
  namespace grpc_event_engine::experimental {
@@ -148,7 +148,7 @@ void DNSServiceResolverImpl::ResolveCallback(
148
148
 
149
149
  grpc_core::ReleasableMutexLock lock(&that->request_mu_);
150
150
  auto request_it = that->requests_.find(sdRef);
151
- CHECK(request_it != that->requests_.end());
151
+ GRPC_CHECK(request_it != that->requests_.end());
152
152
 
153
153
  if (errorCode != kDNSServiceErr_NoError &&
154
154
  errorCode != kDNSServiceErr_NoSuchRecord) {
@@ -24,8 +24,8 @@
24
24
  #include <grpc/event_engine/event_engine.h>
25
25
 
26
26
  #include "absl/container/flat_hash_map.h"
27
- #include "absl/log/check.h"
28
27
  #include "src/core/lib/event_engine/cf_engine/cf_engine.h"
28
+ #include "src/core/util/grpc_check.h"
29
29
  #include "src/core/util/ref_counted.h"
30
30
  #include "src/core/util/ref_counted_ptr.h"
31
31
 
@@ -45,7 +45,7 @@ class DNSServiceResolverImpl
45
45
  explicit DNSServiceResolverImpl(std::shared_ptr<CFEventEngine> engine)
46
46
  : engine_(std::move((engine))) {}
47
47
  ~DNSServiceResolverImpl() override {
48
- CHECK(requests_.empty());
48
+ GRPC_CHECK(requests_.empty());
49
49
  dispatch_release(queue_);
50
50
  }
51
51
 
@@ -30,7 +30,7 @@ class ChannelzExtension {
30
30
  static absl::string_view EndpointExtensionName() {
31
31
  return "io.grpc.event_engine.extension.channelz";
32
32
  }
33
- virtual void AddJson(grpc_core::channelz::DataSink& sink) = 0;
33
+ virtual void AddData(grpc_core::channelz::DataSink& sink) = 0;
34
34
 
35
35
  void SetSocketNode(
36
36
  grpc_core::RefCountedPtr<grpc_core::channelz::SocketNode> socket_node) {
@@ -51,7 +51,7 @@ class ChannelzExtension {
51
51
  }
52
52
  ~EndpointDataSource() { SourceDestructing(); }
53
53
  void AddData(grpc_core::channelz::DataSink sink) override {
54
- ep_->AddJson(sink);
54
+ ep_->AddData(sink);
55
55
  }
56
56
 
57
57
  private:
@@ -107,16 +107,16 @@ class EventEngineSupportsFdExtension {
107
107
  /// file descriptor. \a config - Additional configuration to applied to the
108
108
  /// endpoint. \a memory_allocator - The endpoint may use the provided memory
109
109
  /// allocator to track memory allocations.
110
- virtual std::unique_ptr<EventEngine::Endpoint> CreatePosixEndpointFromFd(
111
- int fd, const EndpointConfig& config,
112
- MemoryAllocator memory_allocator) = 0;
110
+ virtual absl::StatusOr<std::unique_ptr<EventEngine::Endpoint>>
111
+ CreatePosixEndpointFromFd(int fd, const EndpointConfig& config,
112
+ MemoryAllocator memory_allocator) = 0;
113
113
 
114
114
  /// Creates an EventEngine::Endpoint from an fd which is already assumed to be
115
115
  /// connected to a remote peer. See \a CreatePosixEndpointFromFd for details.
116
116
  /// This has the same behavior, but the \a memory_allocator is taken from the
117
117
  /// EndpointConfig's resource quota.
118
- virtual std::unique_ptr<EventEngine::Endpoint> CreateEndpointFromFd(
119
- int fd, const EndpointConfig& config) = 0;
118
+ virtual absl::StatusOr<std::unique_ptr<EventEngine::Endpoint>>
119
+ CreateEndpointFromFd(int fd, const EndpointConfig& config) = 0;
120
120
 
121
121
  /// Creates an EventEngine::Endpoint from a file descriptor that is configured
122
122
  /// and bound locally but not yet connected to a remote peer. Returns a
@@ -22,7 +22,6 @@
22
22
  #include <atomic>
23
23
  #include <memory>
24
24
 
25
- #include "absl/log/check.h"
26
25
  #include "absl/log/log.h"
27
26
  #include "absl/status/status.h"
28
27
  #include "absl/status/statusor.h"
@@ -32,6 +31,7 @@
32
31
  #include "src/core/lib/event_engine/time_util.h"
33
32
  #include "src/core/lib/iomgr/port.h"
34
33
  #include "src/core/util/crash.h"
34
+ #include "src/core/util/grpc_check.h"
35
35
 
36
36
  // This polling engine is only relevant on linux kernels supporting epoll
37
37
  // epoll_create() or epoll_create1()
@@ -247,13 +247,13 @@ Epoll1Poller::Epoll1Poller(std::shared_ptr<ThreadPool> thread_pool)
247
247
  : thread_pool_(thread_pool), was_kicked_(false), closed_(false) {
248
248
  g_epoll_set_.epfd = posix_interface().EpollCreateAndCloexec().value();
249
249
  wakeup_fd_ = CreateWakeupFd(&posix_interface()).value();
250
- CHECK(wakeup_fd_ != nullptr);
251
- CHECK(g_epoll_set_.epfd.ready());
250
+ GRPC_CHECK(wakeup_fd_ != nullptr);
251
+ GRPC_CHECK(g_epoll_set_.epfd.ready());
252
252
  GRPC_TRACE_LOG(event_engine_poller, INFO)
253
253
  << "grpc epoll fd: " << g_epoll_set_.epfd;
254
254
  auto result = posix_interface().EpollCtlAdd(
255
255
  g_epoll_set_.epfd, false, wakeup_fd_->ReadFd(), wakeup_fd_.get());
256
- CHECK(result.ok()) << result.StrError();
256
+ GRPC_CHECK(result.ok()) << result.StrError();
257
257
  g_epoll_set_.num_events = 0;
258
258
  g_epoll_set_.cursor = 0;
259
259
  }
@@ -330,7 +330,7 @@ bool Epoll1Poller::ProcessEpollEvents(int max_epoll_events_to_handle,
330
330
  struct epoll_event* ev = &g_epoll_set_.events[c];
331
331
  void* data_ptr = ev->data.ptr;
332
332
  if (data_ptr == wakeup_fd_.get()) {
333
- CHECK(wakeup_fd_->ConsumeWakeup().ok());
333
+ GRPC_CHECK(wakeup_fd_->ConsumeWakeup().ok());
334
334
  was_kicked = true;
335
335
  } else {
336
336
  Epoll1EventHandle* handle = reinterpret_cast<Epoll1EventHandle*>(
@@ -453,7 +453,7 @@ void Epoll1Poller::Kick() {
453
453
  return;
454
454
  }
455
455
  was_kicked_ = true;
456
- CHECK(wakeup_fd_->Wakeup().ok());
456
+ GRPC_CHECK(wakeup_fd_->Wakeup().ok());
457
457
  }
458
458
 
459
459
  #ifdef GRPC_ENABLE_FORK_SUPPORT
@@ -472,7 +472,7 @@ void Epoll1Poller::HandleForkInChild() {
472
472
  }
473
473
  g_epoll_set_ = {};
474
474
  g_epoll_set_.epfd = posix_interface().EpollCreateAndCloexec().value();
475
- CHECK(g_epoll_set_.epfd.ready());
475
+ GRPC_CHECK(g_epoll_set_.epfd.ready());
476
476
  GRPC_TRACE_LOG(event_engine_poller, INFO)
477
477
  << "Post-fork grpc epoll fd: " << g_epoll_set_.epfd;
478
478
  g_epoll_set_.num_events = 0;
@@ -488,7 +488,7 @@ void Epoll1Poller::ResetKickState() {
488
488
  wakeup_fd_ = *CreateWakeupFd(&posix_interface());
489
489
  auto status = posix_interface().EpollCtlAdd(
490
490
  g_epoll_set_.epfd, false, wakeup_fd_->ReadFd(), wakeup_fd_.get());
491
- CHECK(status.ok()) << status.StrError();
491
+ GRPC_CHECK(status.ok()) << status.StrError();
492
492
  grpc_core::MutexLock lock(&mu_);
493
493
  was_kicked_ = false;
494
494
  }
@@ -28,7 +28,6 @@
28
28
 
29
29
  #include "absl/container/inlined_vector.h"
30
30
  #include "absl/functional/any_invocable.h"
31
- #include "absl/log/check.h"
32
31
  #include "absl/status/status.h"
33
32
  #include "absl/status/statusor.h"
34
33
  #include "absl/strings/str_format.h"
@@ -38,6 +37,7 @@
38
37
  #include "src/core/lib/event_engine/posix_engine/posix_interface.h"
39
38
  #include "src/core/lib/iomgr/port.h"
40
39
  #include "src/core/util/crash.h"
40
+ #include "src/core/util/grpc_check.h"
41
41
 
42
42
  #ifdef GRPC_POSIX_SOCKET_EV_POLL
43
43
 
@@ -239,7 +239,7 @@ EventHandle* PollPoller::CreateHandle(FileDescriptor fd,
239
239
  bool track_err) {
240
240
  // Avoid unused-parameter warning for debug-only parameter
241
241
  (void)track_err;
242
- DCHECK(track_err == false);
242
+ GRPC_DCHECK(track_err == false);
243
243
  PollEventHandle* handle = new PollEventHandle(fd, shared_from_this());
244
244
  // We need to send a kick to the thread executing Work(..) so that it can
245
245
  // add this new Fd into the list of Fds to poll.
@@ -258,7 +258,7 @@ void PollEventHandle::OrphanHandle(PosixEngineClosure* on_done,
258
258
  if (release_fd != nullptr) {
259
259
  *release_fd = fd_;
260
260
  }
261
- CHECK(!is_orphaned_);
261
+ GRPC_CHECK(!is_orphaned_);
262
262
  is_orphaned_ = true;
263
263
  // Perform shutdown operations if not already done so.
264
264
  if (!is_shutdown_) {
@@ -473,7 +473,7 @@ void PollPoller::KickExternal(bool ext) {
473
473
  }
474
474
  was_kicked_ = true;
475
475
  was_kicked_ext_ = ext;
476
- CHECK(wakeup_fd_->Wakeup().ok());
476
+ GRPC_CHECK(wakeup_fd_->Wakeup().ok());
477
477
  }
478
478
 
479
479
  void PollPoller::Kick() { KickExternal(true); }
@@ -513,14 +513,14 @@ PollPoller::PollPoller(std::shared_ptr<ThreadPool> thread_pool,
513
513
  poll_handles_list_head_(nullptr),
514
514
  closed_(false) {
515
515
  wakeup_fd_ = *CreateWakeupFd(&posix_interface());
516
- CHECK(wakeup_fd_ != nullptr);
516
+ GRPC_CHECK(wakeup_fd_ != nullptr);
517
517
  }
518
518
 
519
519
  PollPoller::~PollPoller() {
520
520
  // Assert that no active handles are present at the time of destruction.
521
521
  // They should have been orphaned before reaching this state.
522
- CHECK_EQ(num_poll_handles_, 0);
523
- CHECK_EQ(poll_handles_list_head_, nullptr);
522
+ GRPC_CHECK_EQ(num_poll_handles_, 0);
523
+ GRPC_CHECK_EQ(poll_handles_list_head_, nullptr);
524
524
  }
525
525
 
526
526
  Poller::WorkResult PollPoller::Work(
@@ -563,7 +563,7 @@ Poller::WorkResult PollPoller::Work(
563
563
 
564
564
  pfd_count = 1;
565
565
  auto wakeup_fd = posix_interface().GetFd(wakeup_fd_->ReadFd());
566
- CHECK(wakeup_fd.ok()) << wakeup_fd.StrError();
566
+ GRPC_CHECK(wakeup_fd.ok()) << wakeup_fd.StrError();
567
567
  pfds[0].fd = *wakeup_fd;
568
568
  pfds[0].events = POLLIN;
569
569
  pfds[0].revents = 0;
@@ -575,7 +575,7 @@ Poller::WorkResult PollPoller::Work(
575
575
  // There shouldn't be any orphaned fds at this point. This is because
576
576
  // prior to marking a handle as orphaned it is first removed from
577
577
  // poll handle list for the poller under the poller lock.
578
- CHECK(!head->IsOrphaned());
578
+ GRPC_CHECK(!head->IsOrphaned());
579
579
  if (!head->IsPollhup()) {
580
580
  if (auto file_descriptor = posix_interface().GetFd(head->WrappedFd());
581
581
  file_descriptor.ok()) {
@@ -656,7 +656,7 @@ Poller::WorkResult PollPoller::Work(
656
656
  }
657
657
  } else {
658
658
  if (pfds[0].revents & kPollinCheck) {
659
- CHECK(wakeup_fd_->ConsumeWakeup().ok());
659
+ GRPC_CHECK(wakeup_fd_->ConsumeWakeup().ok());
660
660
  }
661
661
  for (i = 1; i < pfd_count; i++) {
662
662
  PollEventHandle* head = watchers[i];
@@ -19,11 +19,11 @@
19
19
  #include <atomic>
20
20
  #include <cstdint>
21
21
 
22
- #include "absl/log/check.h"
23
22
  #include "absl/status/status.h"
24
23
  #include "src/core/lib/event_engine/posix_engine/event_poller.h"
25
24
  #include "src/core/lib/event_engine/posix_engine/posix_engine_closure.h"
26
25
  #include "src/core/util/crash.h"
26
+ #include "src/core/util/grpc_check.h"
27
27
  #include "src/core/util/status_helper.h"
28
28
 
29
29
  // 'state' holds the to call when the fd is readable or writable respectively.
@@ -76,7 +76,7 @@ void LockfreeEvent::DestroyEvent() {
76
76
  if (curr & kShutdownBit) {
77
77
  grpc_core::internal::StatusFreeHeapPtr(curr & ~kShutdownBit);
78
78
  } else {
79
- CHECK(curr == kClosureNotReady || curr == kClosureReady);
79
+ GRPC_CHECK(curr == kClosureNotReady || curr == kClosureReady);
80
80
  }
81
81
  // we CAS in a shutdown, no error value here. If this event is interacted
82
82
  // with post-deletion (see the note in the constructor) we want the bit
@@ -31,7 +31,6 @@
31
31
  #include <string>
32
32
 
33
33
  #include "absl/functional/any_invocable.h"
34
- #include "absl/log/check.h"
35
34
  #include "absl/log/log.h"
36
35
  #include "absl/status/status.h"
37
36
  #include "absl/status/statusor.h"
@@ -46,6 +45,7 @@
46
45
  #include "src/core/lib/slice/slice.h"
47
46
  #include "src/core/telemetry/stats.h"
48
47
  #include "src/core/util/debug_location.h"
48
+ #include "src/core/util/grpc_check.h"
49
49
  #include "src/core/util/load_file.h"
50
50
  #include "src/core/util/ref_counted_ptr.h"
51
51
  #include "src/core/util/status_helper.h"
@@ -247,7 +247,7 @@ msg_iovlen_type TcpZerocopySendRecord::PopulateIovs(size_t* unwind_slice_idx,
247
247
  ++(out_offset_.slice_idx);
248
248
  out_offset_.byte_idx = 0;
249
249
  }
250
- DCHECK_GT(iov_size, 0u);
250
+ GRPC_DCHECK_GT(iov_size, 0u);
251
251
  return iov_size;
252
252
  }
253
253
 
@@ -310,8 +310,8 @@ bool PosixEndpointImpl::TcpDoRead(absl::Status& status) {
310
310
  iov[i].iov_len = slice.length();
311
311
  }
312
312
 
313
- CHECK_NE(incoming_buffer_->Length(), 0u);
314
- DCHECK_GT(min_progress_size_, 0);
313
+ GRPC_CHECK_NE(incoming_buffer_->Length(), 0u);
314
+ GRPC_DCHECK_GT(min_progress_size_, 0);
315
315
 
316
316
  do {
317
317
  // Assume there is something on the queue. If we receive TCP_INQ from
@@ -377,11 +377,12 @@ bool PosixEndpointImpl::TcpDoRead(absl::Status& status) {
377
377
  }
378
378
  grpc_core::global_stats().IncrementTcpReadSize(read_bytes);
379
379
  AddToEstimate(static_cast<size_t>(read_bytes));
380
- DCHECK((size_t)read_bytes <= incoming_buffer_->Length() - total_read_bytes);
380
+ GRPC_DCHECK((size_t)read_bytes <=
381
+ incoming_buffer_->Length() - total_read_bytes);
381
382
 
382
383
  #ifdef GRPC_HAVE_TCP_INQ
383
384
  if (inq_capable_) {
384
- DCHECK(!(msg.msg_flags & MSG_CTRUNC));
385
+ GRPC_DCHECK(!(msg.msg_flags & MSG_CTRUNC));
385
386
  struct cmsghdr* cmsg = CMSG_FIRSTHDR(&msg);
386
387
  for (; cmsg != nullptr; cmsg = CMSG_NXTHDR(&msg, cmsg)) {
387
388
  if (cmsg->cmsg_level == SOL_TCP && cmsg->cmsg_type == TCP_CM_INQ &&
@@ -430,7 +431,7 @@ bool PosixEndpointImpl::TcpDoRead(absl::Status& status) {
430
431
  inq_ = 1;
431
432
  }
432
433
 
433
- DCHECK_GT(total_read_bytes, 0u);
434
+ GRPC_DCHECK_GT(total_read_bytes, 0u);
434
435
  status = absl::OkStatus();
435
436
  if (grpc_core::IsTcpFrameSizeTuningEnabled()) {
436
437
  // Update min progress size based on the total number of bytes read in
@@ -613,7 +614,7 @@ bool PosixEndpointImpl::Read(absl::AnyInvocable<void(absl::Status)> on_read,
613
614
  grpc_core::ReleasableMutexLock lock(&read_mu_);
614
615
  GRPC_TRACE_LOG(event_engine_endpoint, INFO)
615
616
  << "Endpoint[" << this << "]: Read";
616
- CHECK(read_cb_ == nullptr);
617
+ GRPC_CHECK(read_cb_ == nullptr);
617
618
  incoming_buffer_ = buffer;
618
619
  incoming_buffer_->Clear();
619
620
  incoming_buffer_->Swap(last_read_buffer_);
@@ -687,8 +688,8 @@ TcpZerocopySendRecord* PosixEndpointImpl::TcpGetSendZerocopyRecord(
687
688
  }
688
689
  if (zerocopy_send_record != nullptr) {
689
690
  zerocopy_send_record->PrepareForSends(buf);
690
- DCHECK_EQ(buf.Count(), 0u);
691
- DCHECK_EQ(buf.Length(), 0u);
691
+ GRPC_DCHECK_EQ(buf.Count(), 0u);
692
+ GRPC_DCHECK_EQ(buf.Length(), 0u);
692
693
  outgoing_byte_idx_ = 0;
693
694
  outgoing_buffer_ = nullptr;
694
695
  }
@@ -775,10 +776,10 @@ void PosixEndpointImpl::ZerocopyDisableAndWaitForRemaining() {
775
776
 
776
777
  // Reads \a cmsg to process zerocopy control messages.
777
778
  void PosixEndpointImpl::ProcessZerocopy(struct cmsghdr* cmsg) {
778
- DCHECK(cmsg);
779
+ GRPC_DCHECK(cmsg);
779
780
  auto serr = reinterpret_cast<struct sock_extended_err*>(CMSG_DATA(cmsg));
780
- DCHECK_EQ(serr->ee_errno, 0u);
781
- DCHECK(serr->ee_origin == SO_EE_ORIGIN_ZEROCOPY);
781
+ GRPC_DCHECK_EQ(serr->ee_errno, 0u);
782
+ GRPC_DCHECK(serr->ee_origin == SO_EE_ORIGIN_ZEROCOPY);
782
783
  const uint32_t lo = serr->ee_info;
783
784
  const uint32_t hi = serr->ee_data;
784
785
  for (uint32_t seq = lo; seq <= hi; ++seq) {
@@ -788,7 +789,7 @@ void PosixEndpointImpl::ProcessZerocopy(struct cmsghdr* cmsg) {
788
789
  // both; if so, batch the unref/put.
789
790
  TcpZerocopySendRecord* record =
790
791
  tcp_zerocopy_send_ctx_->ReleaseSendRecord(seq);
791
- DCHECK(record);
792
+ GRPC_DCHECK(record);
792
793
  UnrefMaybePutZerocopySendRecord(record);
793
794
  }
794
795
  if (tcp_zerocopy_send_ctx_->UpdateZeroCopyOptMemStateAfterFree()) {
@@ -1086,7 +1087,7 @@ bool PosixEndpointImpl::TcpFlush(absl::Status& status) {
1086
1087
  outgoing_slice_idx++;
1087
1088
  outgoing_byte_idx_ = 0;
1088
1089
  }
1089
- CHECK_GT(iov_size, 0u);
1090
+ GRPC_CHECK_GT(iov_size, 0u);
1090
1091
 
1091
1092
  msg.msg_name = nullptr;
1092
1093
  msg.msg_namelen = 0;
@@ -1132,7 +1133,7 @@ bool PosixEndpointImpl::TcpFlush(absl::Status& status) {
1132
1133
  }
1133
1134
  }
1134
1135
 
1135
- CHECK_EQ(outgoing_byte_idx_, 0u);
1136
+ GRPC_CHECK_EQ(outgoing_byte_idx_, 0u);
1136
1137
  bytes_counter_ += *send_result;
1137
1138
  trailing = sending_length - static_cast<size_t>(*send_result);
1138
1139
  while (trailing > 0) {
@@ -1171,7 +1172,7 @@ void PosixEndpointImpl::HandleWrite(absl::Status status) {
1171
1172
  ? TcpFlushZerocopy(current_zerocopy_send_, status)
1172
1173
  : TcpFlush(status);
1173
1174
  if (!flush_result) {
1174
- DCHECK(status.ok());
1175
+ GRPC_DCHECK(status.ok());
1175
1176
  handle_->NotifyOnWrite(on_write_);
1176
1177
  } else {
1177
1178
  GRPC_TRACE_LOG(event_engine_endpoint, INFO)
@@ -1190,9 +1191,9 @@ bool PosixEndpointImpl::Write(
1190
1191
  absl::Status status = absl::OkStatus();
1191
1192
  TcpZerocopySendRecord* zerocopy_send_record = nullptr;
1192
1193
 
1193
- CHECK(write_cb_ == nullptr);
1194
- DCHECK_EQ(current_zerocopy_send_, nullptr);
1195
- DCHECK_NE(data, nullptr);
1194
+ GRPC_CHECK(write_cb_ == nullptr);
1195
+ GRPC_DCHECK_EQ(current_zerocopy_send_, nullptr);
1196
+ GRPC_DCHECK_NE(data, nullptr);
1196
1197
 
1197
1198
  GRPC_TRACE_LOG(event_engine_endpoint, INFO)
1198
1199
  << "Endpoint[" << this << "]: Write " << data->Length() << " bytes";
@@ -1293,7 +1294,7 @@ PosixEndpointImpl::PosixEndpointImpl(EventHandle* handle,
1293
1294
  poller_(handle->Poller()),
1294
1295
  engine_(engine) {
1295
1296
  FileDescriptor fd = handle_->WrappedFd();
1296
- CHECK(options.resource_quota != nullptr);
1297
+ GRPC_CHECK(options.resource_quota != nullptr);
1297
1298
  auto& posix_interface = poller_->posix_interface();
1298
1299
  auto peer_addr_string = posix_interface.PeerAddressString(fd);
1299
1300
  mem_quota_ = options.resource_quota->memory_quota();
@@ -1405,7 +1406,7 @@ std::unique_ptr<PosixEndpoint> CreatePosixEndpoint(
1405
1406
  EventHandle* handle, PosixEngineClosure* on_shutdown,
1406
1407
  std::shared_ptr<EventEngine> engine, MemoryAllocator&& allocator,
1407
1408
  const PosixTcpOptions& options) {
1408
- DCHECK_NE(handle, nullptr);
1409
+ GRPC_DCHECK_NE(handle, nullptr);
1409
1410
  return std::make_unique<PosixEndpoint>(handle, on_shutdown, std::move(engine),
1410
1411
  std::move(allocator), options);
1411
1412
  }