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
@@ -48,13 +48,6 @@
48
48
  #include "src/core/lib/event_engine/posix_engine/tcp_socket_utils.h"
49
49
  #endif // GRPC_POSIX_SOCKET_TCP
50
50
 
51
- #if defined(GRPC_POSIX_SOCKET_TCP) && \
52
- !defined(GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER)
53
- #define GRPC_PLATFORM_SUPPORTS_POSIX_POLLING true
54
- #else
55
- #define GRPC_PLATFORM_SUPPORTS_POSIX_POLLING false
56
- #endif
57
-
58
51
  namespace grpc_event_engine::experimental {
59
52
 
60
53
  #ifdef GRPC_POSIX_SOCKET_TCP
@@ -127,10 +120,10 @@ class PosixEventEngine final : public PosixEventEngineWithFdSupport {
127
120
 
128
121
  ~PosixEventEngine() override;
129
122
 
130
- std::unique_ptr<EventEngine::Endpoint> CreatePosixEndpointFromFd(
131
- int fd, const EndpointConfig& config,
132
- MemoryAllocator memory_allocator) override;
133
- std::unique_ptr<EventEngine::Endpoint> CreateEndpointFromFd(
123
+ absl::StatusOr<std::unique_ptr<EventEngine::Endpoint>>
124
+ CreatePosixEndpointFromFd(int fd, const EndpointConfig& config,
125
+ MemoryAllocator memory_allocator) override;
126
+ absl::StatusOr<std::unique_ptr<EventEngine::Endpoint>> CreateEndpointFromFd(
134
127
  int fd, const EndpointConfig& config) override;
135
128
 
136
129
  ConnectionHandle CreateEndpointFromUnconnectedFd(
@@ -194,19 +187,14 @@ class PosixEventEngine final : public PosixEventEngineWithFdSupport {
194
187
 
195
188
  PosixEventEngine();
196
189
 
197
- #if GRPC_PLATFORM_SUPPORTS_POSIX_POLLING
190
+ #ifdef GRPC_POSIX_SOCKET_TCP
198
191
  // Constructs an EventEngine which has a shared ownership of the poller. Use
199
192
  // the MakeTestOnlyPosixEventEngine static method to call this. Its expected
200
193
  // to be used only in tests.
201
194
  explicit PosixEventEngine(
202
195
  std::shared_ptr<grpc_event_engine::experimental::PosixEventPoller>
203
196
  poller);
204
- #endif // GRPC_PLATFORM_SUPPORTS_POSIX_POLLING
205
197
 
206
- EventEngine::TaskHandle RunAfterInternal(Duration when,
207
- absl::AnyInvocable<void()> cb);
208
-
209
- #ifdef GRPC_POSIX_SOCKET_TCP
210
198
  friend class AsyncConnect;
211
199
  struct ConnectionShard {
212
200
  grpc_core::Mutex mu;
@@ -214,40 +202,8 @@ class PosixEventEngine final : public PosixEventEngineWithFdSupport {
214
202
  ABSL_GUARDED_BY(&mu);
215
203
  };
216
204
 
217
- ConnectionHandle CreateEndpointFromUnconnectedFdInternal(
218
- const FileDescriptor& fd, EventEngine::OnConnectCallback on_connect,
219
- const EventEngine::ResolvedAddress& addr, const PosixTcpOptions& options,
220
- MemoryAllocator memory_allocator, EventEngine::Duration timeout);
221
-
222
205
  void OnConnectFinishInternal(int connection_handle);
223
206
 
224
- std::vector<ConnectionShard> connection_shards_;
225
- std::atomic<int64_t> last_connection_id_{1};
226
-
227
- #endif // GRPC_POSIX_SOCKET_TCP
228
-
229
- #if GRPC_ENABLE_FORK_SUPPORT
230
- void AfterForkInChild();
231
- #endif
232
-
233
- grpc_core::Mutex mu_;
234
- TaskHandleSet known_handles_ ABSL_GUARDED_BY(mu_);
235
- std::atomic<intptr_t> aba_token_{0};
236
- #if GRPC_ARES == 1 && defined(GRPC_POSIX_SOCKET_ARES_EV_DRIVER)
237
-
238
- void RegisterAresResolverForFork(AresResolver* resolver);
239
-
240
- #if GRPC_ENABLE_FORK_SUPPORT
241
- // A separate mutex to avoid deadlocks.
242
- grpc_core::Mutex resolver_handles_mu_;
243
- absl::InlinedVector<std::weak_ptr<AresResolver::ReinitHandle>, 16>
244
- resolver_handles_ ABSL_GUARDED_BY(resolver_handles_mu_);
245
- #endif // GRPC_ENABLE_FORK_SUPPORT
246
- #endif // GRPC_ARES == 1 && defined(GRPC_POSIX_SOCKET_ARES_EV_DRIVER)
247
- std::shared_ptr<ThreadPool> executor_;
248
-
249
- #if GRPC_PLATFORM_SUPPORTS_POSIX_POLLING
250
-
251
207
  // RAII wrapper for a polling cycle. Starts a new one in ctor and stops
252
208
  // in dtor.
253
209
  class PollingCycle {
@@ -272,18 +228,41 @@ class PosixEventEngine final : public PosixEventEngineWithFdSupport {
272
228
  void SchedulePoller();
273
229
  void ResetPollCycle();
274
230
 
275
- PosixEventPoller* GetPollerChecked() const {
276
- CHECK_NE(poller_, nullptr);
277
- return poller_.get();
278
- }
231
+ ConnectionHandle CreateEndpointFromUnconnectedFdInternal(
232
+ const FileDescriptor& fd, EventEngine::OnConnectCallback on_connect,
233
+ const EventEngine::ResolvedAddress& addr, const PosixTcpOptions& options,
234
+ MemoryAllocator memory_allocator, EventEngine::Duration timeout);
279
235
 
236
+ std::vector<ConnectionShard> connection_shards_;
237
+ std::atomic<int64_t> last_connection_id_{1};
280
238
  std::shared_ptr<grpc_event_engine::experimental::PosixEventPoller> poller_;
281
239
 
282
240
  // Ensures there's ever only one of these.
283
241
  std::optional<PollingCycle> polling_cycle_ ABSL_GUARDED_BY(&mu_);
242
+ #endif // GRPC_POSIX_SOCKET_TCP
284
243
 
285
- #endif // GRPC_PLATFORM_SUPPORTS_POSIX_POLLING
244
+ EventEngine::TaskHandle RunAfterInternal(Duration when,
245
+ absl::AnyInvocable<void()> cb);
286
246
 
247
+ #if GRPC_ENABLE_FORK_SUPPORT
248
+ void AfterForkInChild();
249
+ #endif
250
+
251
+ grpc_core::Mutex mu_;
252
+ TaskHandleSet known_handles_ ABSL_GUARDED_BY(mu_);
253
+ std::atomic<intptr_t> aba_token_{0};
254
+ #if GRPC_ARES == 1 && defined(GRPC_POSIX_SOCKET_ARES_EV_DRIVER)
255
+
256
+ void RegisterAresResolverForFork(AresResolver* resolver);
257
+
258
+ #if GRPC_ENABLE_FORK_SUPPORT
259
+ // A separate mutex to avoid deadlocks.
260
+ grpc_core::Mutex resolver_handles_mu_;
261
+ absl::InlinedVector<std::weak_ptr<AresResolver::ReinitHandle>, 16>
262
+ resolver_handles_ ABSL_GUARDED_BY(resolver_handles_mu_);
263
+ #endif // GRPC_ENABLE_FORK_SUPPORT
264
+ #endif // GRPC_ARES == 1 && defined(GRPC_POSIX_SOCKET_ARES_EV_DRIVER)
265
+ std::shared_ptr<ThreadPool> executor_;
287
266
  std::shared_ptr<TimerManager> timer_manager_;
288
267
  };
289
268
 
@@ -33,7 +33,6 @@
33
33
  #include <utility>
34
34
 
35
35
  #include "absl/functional/any_invocable.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/str_cat.h"
@@ -44,7 +43,9 @@
44
43
  #include "src/core/lib/event_engine/posix_engine/posix_interface.h"
45
44
  #include "src/core/lib/event_engine/posix_engine/tcp_socket_utils.h"
46
45
  #include "src/core/lib/event_engine/tcp_socket_utils.h"
46
+ #include "src/core/lib/iomgr/socket_mutator.h"
47
47
  #include "src/core/net/socket_mutator.h"
48
+ #include "src/core/util/grpc_check.h"
48
49
  #include "src/core/util/status_helper.h"
49
50
  #include "src/core/util/strerror.h"
50
51
  #include "src/core/util/time.h"
@@ -77,7 +78,7 @@ absl::StatusOr<int> PosixEngineListenerImpl::Bind(
77
78
  EventEngine::ResolvedAddress res_addr = addr;
78
79
  EventEngine::ResolvedAddress addr6_v4mapped;
79
80
  int requested_port = ResolvedAddressGetPort(res_addr);
80
- CHECK(addr.size() <= EventEngine::ResolvedAddress::MAX_SIZE_BYTES);
81
+ GRPC_CHECK(addr.size() <= EventEngine::ResolvedAddress::MAX_SIZE_BYTES);
81
82
  UnlinkIfUnixDomainSocket(addr);
82
83
 
83
84
  EventEnginePosixInterface& posix_interface = poller_->posix_interface();
@@ -307,7 +308,7 @@ void PosixEngineListenerImpl::AsyncConnectionAcceptor::Shutdown() {
307
308
  absl::Status PosixEngineListenerImpl::Start() {
308
309
  grpc_core::MutexLock lock(&this->mu_);
309
310
  // Start each asynchronous acceptor.
310
- CHECK(!this->started_);
311
+ GRPC_CHECK(!this->started_);
311
312
  this->started_ = true;
312
313
  for (auto it = acceptors_.begin(); it != acceptors_.end(); it++) {
313
314
  (*it)->Start();
@@ -24,7 +24,6 @@
24
24
  #include <string>
25
25
 
26
26
  #include "absl/cleanup/cleanup.h"
27
- #include "absl/log/check.h"
28
27
  #include "absl/log/log.h"
29
28
  #include "absl/status/status.h"
30
29
  #include "absl/strings/str_cat.h"
@@ -33,6 +32,7 @@
33
32
  #include "src/core/lib/event_engine/tcp_socket_utils.h"
34
33
  #include "src/core/lib/iomgr/port.h"
35
34
  #include "src/core/util/crash.h" // IWYU pragma: keep
35
+ #include "src/core/util/grpc_check.h"
36
36
  #include "src/core/util/status_helper.h"
37
37
 
38
38
  #ifdef GRPC_POSIX_SOCKET_UTILS_COMMON
@@ -68,7 +68,7 @@ absl::Status PrepareSocket(EventEnginePosixInterface* posix_interface,
68
68
  const PosixTcpOptions& options,
69
69
  ListenerSocket& socket) {
70
70
  FileDescriptor fd = socket.sock;
71
- CHECK(fd.ready());
71
+ GRPC_CHECK(fd.ready());
72
72
  bool close_fd = true;
73
73
  socket.port = 0;
74
74
  auto sock_cleanup =
@@ -110,7 +110,7 @@ absl::StatusOr<ListenerSocket> CreateAndPrepareListenerSocket(
110
110
  socket.addr = addr;
111
111
  }
112
112
  GRPC_RETURN_IF_ERROR(PrepareSocket(posix_interface, options, socket));
113
- CHECK_GT(socket.port, 0);
113
+ GRPC_CHECK_GT(socket.port, 0);
114
114
  return socket;
115
115
  }
116
116
 
@@ -269,8 +269,8 @@ absl::StatusOr<int> ListenerContainerAddWildcardAddresses(
269
269
  }
270
270
  return assigned_port;
271
271
  } else {
272
- CHECK(!v6_sock.ok());
273
- CHECK(!v4_sock.ok());
272
+ GRPC_CHECK(!v6_sock.ok());
273
+ GRPC_CHECK(!v4_sock.ok());
274
274
  return absl::FailedPreconditionError(absl::StrCat(
275
275
  "Failed to add any wildcard listeners: ", v6_sock.status().message(),
276
276
  v4_sock.status().message()));
@@ -23,10 +23,10 @@
23
23
  #include <string>
24
24
  #include <utility>
25
25
 
26
- #include "absl/log/check.h"
27
26
  #include "absl/status/status.h"
28
27
  #include "src/core/lib/event_engine/posix_engine/file_descriptor_collection.h"
29
28
  #include "src/core/lib/event_engine/posix_engine/tcp_socket_utils.h"
29
+ #include "src/core/util/grpc_check.h"
30
30
 
31
31
  namespace grpc_event_engine::experimental {
32
32
 
@@ -41,7 +41,7 @@
41
41
 
42
42
  #include <cstring>
43
43
 
44
- #include "absl/log/check.h"
44
+ #include "src/core/util/grpc_check.h"
45
45
 
46
46
  #ifdef GRPC_HAVE_UNIX_SOCKET
47
47
  #ifdef GPR_WINDOWS
@@ -25,10 +25,10 @@
25
25
  #include <optional>
26
26
  #include <utility>
27
27
 
28
- #include "absl/log/check.h"
29
28
  #include "absl/log/log.h"
30
29
  #include "absl/time/time.h"
31
30
  #include "src/core/lib/debug/trace.h"
31
+ #include "src/core/util/grpc_check.h"
32
32
 
33
33
  static thread_local bool g_timer_thread;
34
34
 
@@ -65,7 +65,7 @@ void TimerManager::MainLoop() {
65
65
  grpc_core::Timestamp next = grpc_core::Timestamp::InfFuture();
66
66
  std::optional<std::vector<experimental::EventEngine::Closure*>> check_result =
67
67
  timer_list_->TimerCheck(&next);
68
- CHECK(check_result.has_value())
68
+ GRPC_CHECK(check_result.has_value())
69
69
  << "ERROR: More than one MainLoop is running.";
70
70
  bool timers_found = !check_result->empty();
71
71
  if (timers_found) {
@@ -126,7 +126,7 @@ void TimerManager::Kick() {
126
126
 
127
127
  void TimerManager::RestartPostFork() {
128
128
  grpc_core::MutexLock lock(&mu_);
129
- CHECK(state_ != TimerManager::State::kRunning);
129
+ GRPC_CHECK(state_ != TimerManager::State::kRunning);
130
130
  GRPC_TRACE_VLOG(timer, 2)
131
131
  << "TimerManager::" << this << " restarting after suspend";
132
132
  if (state_ == TimerManager::State::kSuspended) {
@@ -18,8 +18,8 @@
18
18
  #include <grpc/support/port_platform.h>
19
19
  #include <string.h>
20
20
 
21
- #include "absl/log/check.h"
22
21
  #include "src/core/lib/event_engine/resolved_address_internal.h"
22
+ #include "src/core/util/grpc_check.h"
23
23
 
24
24
  // IWYU pragma: no_include <sys/socket.h>
25
25
 
@@ -28,8 +28,8 @@ namespace grpc_event_engine::experimental {
28
28
  EventEngine::ResolvedAddress::ResolvedAddress(const sockaddr* address,
29
29
  socklen_t size)
30
30
  : size_(size) {
31
- DCHECK_GE(size, 0u);
32
- CHECK(static_cast<size_t>(size) <= sizeof(address_));
31
+ GRPC_DCHECK_GE(size, 0u);
32
+ GRPC_CHECK(static_cast<size_t>(size) <= sizeof(address_));
33
33
  memcpy(&address_, address, size);
34
34
  }
35
35
 
@@ -22,17 +22,13 @@
22
22
  namespace grpc_event_engine::experimental {
23
23
 
24
24
  bool UseEventEngineClient() {
25
- #if defined(GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER)
26
- return false;
27
- #endif
28
- return grpc_core::IsEventEngineClientEnabled();
25
+ return !EventEngineExperimentDisabledForPython() &&
26
+ grpc_core::IsEventEngineClientEnabled();
29
27
  }
30
28
 
31
29
  bool UseEventEngineListener() {
32
- #if defined(GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER)
33
- return false;
34
- #endif
35
- return grpc_core::IsEventEngineListenerEnabled();
30
+ return !EventEngineExperimentDisabledForPython() &&
31
+ grpc_core::IsEventEngineListenerEnabled();
36
32
  }
37
33
 
38
34
  bool UsePollsetAlternative() {
@@ -40,10 +36,11 @@ bool UsePollsetAlternative() {
40
36
  grpc_core::IsPollsetAlternativeEnabled();
41
37
  }
42
38
 
43
- // Returns true if GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER is defined.
39
+ // Returns true if the poller is disabled by build configuration or experiment
40
+ // flags.
44
41
  bool EventEngineExperimentDisabledForPython() {
45
- #ifdef GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER
46
- return true;
42
+ #ifdef GRPC_PYTHON_BUILD
43
+ return !grpc_core::IsEventEnginePollerForPythonEnabled();
47
44
  #else
48
45
  return false;
49
46
  #endif
@@ -35,7 +35,8 @@ bool UseEventEngineListener();
35
35
  // may disable the poller in some builds.
36
36
  bool UsePollsetAlternative();
37
37
 
38
- // Returns true if GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER is defined.
38
+ // Returns true if the poller is disabled by build configuration or experiment
39
+ // flags.
39
40
  bool EventEngineExperimentDisabledForPython();
40
41
 
41
42
  } // namespace grpc_event_engine::experimental
@@ -22,9 +22,9 @@
22
22
  #include <string>
23
23
  #include <utility>
24
24
 
25
- #include "absl/log/check.h"
26
25
  #include "src/core/lib/slice/slice_internal.h"
27
26
  #include "src/core/lib/slice/slice_refcount.h"
27
+ #include "src/core/util/grpc_check.h"
28
28
 
29
29
  namespace grpc_event_engine::experimental {
30
30
 
@@ -46,7 +46,7 @@ Slice CopyConstructors<Slice>::FromCopiedString(std::string s) {
46
46
 
47
47
  MutableSlice::MutableSlice(const grpc_slice& slice)
48
48
  : slice_detail::BaseSlice(slice) {
49
- DCHECK(slice.refcount == nullptr || slice.refcount->IsUnique());
49
+ GRPC_DCHECK(slice.refcount == nullptr || slice.refcount->IsUnique());
50
50
  }
51
51
 
52
52
  MutableSlice::~MutableSlice() { grpc_core::CSliceUnref(c_slice()); }
@@ -53,12 +53,12 @@
53
53
 
54
54
  #include <utility>
55
55
 
56
- #include "absl/log/check.h"
57
56
  #include "absl/log/log.h"
58
57
  #include "absl/status/status.h"
59
58
  #include "absl/strings/str_cat.h"
60
59
  #include "absl/strings/str_format.h"
61
60
  #include "src/core/lib/iomgr/resolved_address.h"
61
+ #include "src/core/util/grpc_check.h"
62
62
  #include "src/core/util/host_port.h"
63
63
  #include "src/core/util/status_helper.h"
64
64
  #include "src/core/util/uri.h"
@@ -216,7 +216,7 @@ bool ResolvedAddressIsV4Mapped(
216
216
  bool ResolvedAddressToV4Mapped(
217
217
  const EventEngine::ResolvedAddress& resolved_addr,
218
218
  EventEngine::ResolvedAddress* resolved_addr6_out) {
219
- CHECK(&resolved_addr != resolved_addr6_out);
219
+ GRPC_CHECK(&resolved_addr != resolved_addr6_out);
220
220
  const sockaddr* addr = resolved_addr.address();
221
221
  sockaddr_in6* addr6_out = const_cast<sockaddr_in6*>(
222
222
  reinterpret_cast<const sockaddr_in6*>(resolved_addr6_out->address()));
@@ -238,8 +238,8 @@ EventEngine::ResolvedAddress ResolvedAddressMakeWild6(int port) {
238
238
  EventEngine::ResolvedAddress resolved_wild_out;
239
239
  sockaddr_in6* wild_out = reinterpret_cast<sockaddr_in6*>(
240
240
  const_cast<sockaddr*>(resolved_wild_out.address()));
241
- CHECK_GE(port, 0);
242
- CHECK_LT(port, 65536);
241
+ GRPC_CHECK_GE(port, 0);
242
+ GRPC_CHECK_LT(port, 65536);
243
243
  memset(wild_out, 0, sizeof(sockaddr_in6));
244
244
  wild_out->sin6_family = AF_INET6;
245
245
  wild_out->sin6_port = htons(static_cast<uint16_t>(port));
@@ -252,8 +252,8 @@ EventEngine::ResolvedAddress ResolvedAddressMakeWild4(int port) {
252
252
  EventEngine::ResolvedAddress resolved_wild_out;
253
253
  sockaddr_in* wild_out = reinterpret_cast<sockaddr_in*>(
254
254
  const_cast<sockaddr*>(resolved_wild_out.address()));
255
- CHECK_GE(port, 0);
256
- CHECK_LT(port, 65536);
255
+ GRPC_CHECK_GE(port, 0);
256
+ GRPC_CHECK_LT(port, 65536);
257
257
  memset(wild_out, 0, sizeof(sockaddr_in));
258
258
  wild_out->sin_family = AF_INET;
259
259
  wild_out->sin_port = htons(static_cast<uint16_t>(port));
@@ -289,14 +289,14 @@ void ResolvedAddressSetPort(EventEngine::ResolvedAddress& resolved_addr,
289
289
  sockaddr* addr = const_cast<sockaddr*>(resolved_addr.address());
290
290
  switch (addr->sa_family) {
291
291
  case AF_INET:
292
- CHECK_GE(port, 0);
293
- CHECK_LT(port, 65536);
292
+ GRPC_CHECK_GE(port, 0);
293
+ GRPC_CHECK_LT(port, 65536);
294
294
  (reinterpret_cast<sockaddr_in*>(addr))->sin_port =
295
295
  htons(static_cast<uint16_t>(port));
296
296
  return;
297
297
  case AF_INET6:
298
- CHECK_GE(port, 0);
299
- CHECK_LT(port, 65536);
298
+ GRPC_CHECK_GE(port, 0);
299
+ GRPC_CHECK_LT(port, 65536);
300
300
  (reinterpret_cast<sockaddr_in6*>(addr))->sin6_port =
301
301
  htons(static_cast<uint16_t>(port));
302
302
  return;
@@ -441,7 +441,7 @@ absl::StatusOr<EventEngine::ResolvedAddress> URIToResolvedAddress(
441
441
  LOG(ERROR) << "Failed to parse URI. Error: " << uri.status();
442
442
  }
443
443
  GRPC_RETURN_IF_ERROR(uri.status());
444
- CHECK(grpc_parse_uri(*uri, &addr));
444
+ GRPC_CHECK(grpc_parse_uri(*uri, &addr));
445
445
  return EventEngine::ResolvedAddress(
446
446
  reinterpret_cast<const sockaddr*>(addr.addr), addr.len);
447
447
  }
@@ -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/time/clock.h"
35
34
  #include "absl/time/time.h"
@@ -42,6 +41,7 @@
42
41
  #include "src/core/util/crash.h"
43
42
  #include "src/core/util/env.h"
44
43
  #include "src/core/util/examine_stack.h"
44
+ #include "src/core/util/grpc_check.h"
45
45
  #include "src/core/util/thd.h"
46
46
  #include "src/core/util/time.h"
47
47
 
@@ -180,7 +180,7 @@ WorkStealingThreadPool::WorkStealingThreadPool(size_t reserve_threads)
180
180
  void WorkStealingThreadPool::Quiesce() { pool_->Quiesce(); }
181
181
 
182
182
  WorkStealingThreadPool::~WorkStealingThreadPool() {
183
- CHECK(pool_->IsQuiesced());
183
+ GRPC_CHECK(pool_->IsQuiesced());
184
184
  }
185
185
 
186
186
  void WorkStealingThreadPool::Run(absl::AnyInvocable<void()> callback) {
@@ -237,7 +237,7 @@ void WorkStealingThreadPool::WorkStealingThreadPoolImpl::Start() {
237
237
 
238
238
  void WorkStealingThreadPool::WorkStealingThreadPoolImpl::Run(
239
239
  EventEngine::Closure* closure) {
240
- CHECK(!IsQuiesced());
240
+ GRPC_CHECK(!IsQuiesced());
241
241
  if (g_local_queue != nullptr && g_local_queue->owner() == this) {
242
242
  g_local_queue->Add(closure);
243
243
  } else {
@@ -279,7 +279,7 @@ void WorkStealingThreadPool::WorkStealingThreadPoolImpl::Quiesce() {
279
279
  if (!threads_were_shut_down.ok() && g_log_verbose_failures) {
280
280
  DumpStacksAndCrash();
281
281
  }
282
- CHECK(queue_.Empty());
282
+ GRPC_CHECK(queue_.Empty());
283
283
  quiesced_.store(true, std::memory_order_relaxed);
284
284
  grpc_core::MutexLock lock(&lifeguard_ptr_mu_);
285
285
  lifeguard_.reset();
@@ -293,14 +293,14 @@ bool WorkStealingThreadPool::WorkStealingThreadPoolImpl::SetThrottled(
293
293
  void WorkStealingThreadPool::WorkStealingThreadPoolImpl::SetShutdown(
294
294
  bool is_shutdown) {
295
295
  auto was_shutdown = shutdown_.exchange(is_shutdown);
296
- CHECK(is_shutdown != was_shutdown);
296
+ GRPC_CHECK(is_shutdown != was_shutdown);
297
297
  work_signal_.SignalAll();
298
298
  }
299
299
 
300
300
  void WorkStealingThreadPool::WorkStealingThreadPoolImpl::SetForking(
301
301
  bool is_forking) {
302
302
  auto was_forking = forking_.exchange(is_forking);
303
- CHECK(is_forking != was_forking);
303
+ GRPC_CHECK(is_forking != was_forking);
304
304
  }
305
305
 
306
306
  bool WorkStealingThreadPool::WorkStealingThreadPoolImpl::IsForking() {
@@ -510,7 +510,7 @@ void WorkStealingThreadPool::ThreadState::ThreadBody() {
510
510
  } else if (pool_->IsShutdown()) {
511
511
  FinishDraining();
512
512
  }
513
- CHECK(g_local_queue->Empty());
513
+ GRPC_CHECK(g_local_queue->Empty());
514
514
  pool_->theft_registry()->Unenroll(g_local_queue);
515
515
  delete g_local_queue;
516
516
  if (g_log_verbose_failures) {