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
@@ -37,7 +37,6 @@
37
37
  #include <string>
38
38
  #include <utility>
39
39
 
40
- #include "absl/log/check.h"
41
40
  #include "absl/log/log.h"
42
41
  #include "absl/status/status.h"
43
42
  #include "absl/strings/escaping.h"
@@ -67,6 +66,7 @@
67
66
  #include "src/core/util/alloc.h"
68
67
  #include "src/core/util/crash.h"
69
68
  #include "src/core/util/debug_location.h"
69
+ #include "src/core/util/grpc_check.h"
70
70
  #include "src/core/util/ref_counted.h"
71
71
  #include "src/core/util/ref_counted_ptr.h"
72
72
  #include "src/core/util/status_helper.h"
@@ -110,8 +110,8 @@ grpc_error_handle FilterStackCall::Create(grpc_call_create_args* args,
110
110
  arena->SetContext<grpc_event_engine::experimental::EventEngine>(
111
111
  args->channel->event_engine());
112
112
  call = new (arena->Alloc(call_alloc_size)) FilterStackCall(arena, *args);
113
- DCHECK(FromC(call->c_ptr()) == call);
114
- DCHECK(FromCallStack(call->call_stack()) == call);
113
+ GRPC_DCHECK(FromC(call->c_ptr()) == call);
114
+ GRPC_DCHECK(FromCallStack(call->call_stack()) == call);
115
115
  *out_call = call->c_ptr();
116
116
  grpc_slice path = grpc_empty_slice();
117
117
  ScopedContext ctx(call);
@@ -148,25 +148,15 @@ grpc_error_handle FilterStackCall::Create(grpc_call_create_args* args,
148
148
  // collecting from when the call is created at the transport. The idea is
149
149
  // that the transport would create the call tracer and pass it in as part of
150
150
  // the metadata.
151
- // TODO(yijiem): OpenCensus and internal Census is still using this way to
152
- // set server call tracer. We need to refactor them to stats plugins
153
- // (including removing the client channel filters).
151
+ ServerCallTracerInterface* server_call_tracer_from_factory = nullptr;
154
152
  if (args->server != nullptr &&
155
153
  args->server->server_call_tracer_factory() != nullptr) {
156
- auto* server_call_tracer =
154
+ server_call_tracer_from_factory =
157
155
  args->server->server_call_tracer_factory()->CreateNewServerCallTracer(
158
156
  arena.get(), args->server->channel_args());
159
- if (server_call_tracer != nullptr) {
160
- // Note that we are setting both
161
- // GRPC_CONTEXT_CALL_TRACER_ANNOTATION_INTERFACE and
162
- // GRPC_CONTEXT_CALL_TRACER as a matter of convenience. In the future
163
- // promise-based world, we would just a single tracer object for each
164
- // stack (call, subchannel_call, server_call.)
165
- arena->SetContext<CallTracerAnnotationInterface>(server_call_tracer);
166
- arena->SetContext<CallTracerInterface>(server_call_tracer);
167
- }
168
157
  }
169
- (*channel_stack->stats_plugin_group)->AddServerCallTracers(arena.get());
158
+ (*channel_stack->stats_plugin_group)
159
+ ->AddServerCallTracers(arena.get(), {server_call_tracer_from_factory});
170
160
  }
171
161
 
172
162
  // initial refcount dropped by grpc_call_unref
@@ -185,7 +175,7 @@ grpc_error_handle FilterStackCall::Create(grpc_call_create_args* args,
185
175
  call->CancelWithError(error);
186
176
  }
187
177
  if (args->cq != nullptr) {
188
- CHECK(args->pollset_set_alternative == nullptr)
178
+ GRPC_CHECK(args->pollset_set_alternative == nullptr)
189
179
  << "Only one of 'cq' and 'pollset_set_alternative' should be "
190
180
  "non-nullptr.";
191
181
  GRPC_CQ_INTERNAL_REF(args->cq, "bind");
@@ -224,7 +214,7 @@ grpc_error_handle FilterStackCall::Create(grpc_call_create_args* args,
224
214
  }
225
215
 
226
216
  void FilterStackCall::SetCompletionQueue(grpc_completion_queue* cq) {
227
- CHECK(cq);
217
+ GRPC_CHECK(cq);
228
218
 
229
219
  if (grpc_polling_entity_pollset_set(&pollent_) != nullptr) {
230
220
  Crash("A pollset_set is already registered for this call.");
@@ -273,7 +263,7 @@ void FilterStackCall::ExternalUnref() {
273
263
 
274
264
  MaybeUnpublishFromParent();
275
265
 
276
- CHECK(!destroy_called_);
266
+ GRPC_CHECK(!destroy_called_);
277
267
  destroy_called_ = true;
278
268
  bool cancel = gpr_atm_acq_load(&received_final_op_atm_) == 0;
279
269
  if (cancel) {
@@ -542,7 +532,6 @@ FilterStackCall::BatchControl* FilterStackCall::ReuseOrAllocateBatchControl(
542
532
  *pslot = bctl;
543
533
  }
544
534
  bctl->call_ = this;
545
- bctl->call_tracer_ = arena()->GetContext<CallTracerAnnotationInterface>();
546
535
  bctl->op_.payload = &stream_op_payload_;
547
536
  return bctl;
548
537
  }
@@ -693,7 +682,7 @@ void FilterStackCall::BatchControl::ReceivingInitialMetadataReady(
693
682
  while (true) {
694
683
  gpr_atm rsr_bctlp = gpr_atm_acq_load(&call->recv_state_);
695
684
  // Should only receive initial metadata once
696
- CHECK_NE(rsr_bctlp, 1);
685
+ GRPC_CHECK_NE(rsr_bctlp, 1);
697
686
  if (rsr_bctlp == 0) {
698
687
  // We haven't seen initial metadata and messages before, thus initial
699
688
  // metadata is received first.
@@ -1101,7 +1090,7 @@ grpc_call_error FilterStackCall::StartBatch(const grpc_op* ops, size_t nops,
1101
1090
 
1102
1091
  InternalRef("completion");
1103
1092
  if (!is_notify_tag_closure) {
1104
- CHECK(grpc_cq_begin_op(cq_, notify_tag));
1093
+ GRPC_CHECK(grpc_cq_begin_op(cq_, notify_tag));
1105
1094
  }
1106
1095
  bctl->set_pending_ops(pending_ops);
1107
1096
 
@@ -38,7 +38,6 @@
38
38
  #include <string>
39
39
  #include <vector>
40
40
 
41
- #include "absl/log/check.h"
42
41
  #include "absl/strings/str_cat.h"
43
42
  #include "absl/strings/str_join.h"
44
43
  #include "absl/strings/string_view.h"
@@ -56,6 +55,7 @@
56
55
  #include "src/core/server/server_interface.h"
57
56
  #include "src/core/telemetry/call_tracer.h"
58
57
  #include "src/core/util/alloc.h"
58
+ #include "src/core/util/grpc_check.h"
59
59
  #include "src/core/util/ref_counted.h"
60
60
  #include "src/core/util/ref_counted_ptr.h"
61
61
 
@@ -110,7 +110,7 @@ class FilterStackCall final : public Call {
110
110
 
111
111
  bool is_trailers_only() const override {
112
112
  bool result = is_trailers_only_;
113
- DCHECK(!result || recv_initial_metadata_.TransportSize() == 0);
113
+ GRPC_DCHECK(!result || recv_initial_metadata_.TransportSize() == 0);
114
114
  return result;
115
115
  }
116
116
 
@@ -184,7 +184,6 @@ class FilterStackCall final : public Call {
184
184
  }
185
185
  struct BatchControl {
186
186
  FilterStackCall* call_ = nullptr;
187
- CallTracerAnnotationInterface* call_tracer_ = nullptr;
188
187
  grpc_transport_stream_op_batch op_;
189
188
  // Share memory for cq_completion and notify_tag as they are never needed
190
189
  // simultaneously. Each byte used in this data structure count as six bytes
@@ -219,7 +218,7 @@ class FilterStackCall final : public Call {
219
218
  << "BATCH:" << this << " COMPLETE:" << PendingOpString(mask)
220
219
  << " REMAINING:" << PendingOpString(r & ~mask)
221
220
  << " (tag:" << completion_data_.notify_tag.tag << ")";
222
- CHECK_NE((r & mask), 0);
221
+ GRPC_CHECK_NE((r & mask), 0);
223
222
  return r == mask;
224
223
  }
225
224
 
@@ -27,7 +27,6 @@
27
27
  #include <optional>
28
28
 
29
29
  #include "absl/base/thread_annotations.h"
30
- #include "absl/log/check.h"
31
30
  #include "absl/log/log.h"
32
31
  #include "absl/status/status.h"
33
32
  #include "src/core/channelz/channelz.h"
@@ -55,6 +54,7 @@
55
54
  #include "src/core/telemetry/stats_data.h"
56
55
  #include "src/core/util/crash.h"
57
56
  #include "src/core/util/dual_ref_counted.h"
57
+ #include "src/core/util/grpc_check.h"
58
58
  #include "src/core/util/ref_counted_ptr.h"
59
59
  #include "src/core/util/sync.h"
60
60
  #include "src/core/util/time.h"
@@ -188,8 +188,8 @@ grpc_call* LegacyChannel::CreateCall(grpc_call* parent_call,
188
188
  Slice path, std::optional<Slice> authority,
189
189
  Timestamp deadline,
190
190
  bool registered_method) {
191
- CHECK(is_client_);
192
- CHECK(!(cq != nullptr && pollset_set_alternative != nullptr));
191
+ GRPC_CHECK(is_client_);
192
+ GRPC_CHECK(!(cq != nullptr && pollset_set_alternative != nullptr));
193
193
  grpc_call_create_args args;
194
194
  args.channel = RefAsSubclass<LegacyChannel>();
195
195
  args.server = nullptr;
@@ -234,7 +234,7 @@ class LegacyChannel::StateWatcher final : public DualRefCounted<StateWatcher> {
234
234
  cq_(cq),
235
235
  tag_(tag),
236
236
  state_(last_observed_state) {
237
- CHECK(grpc_cq_begin_op(cq, tag));
237
+ GRPC_CHECK(grpc_cq_begin_op(cq, tag));
238
238
  GRPC_CLOSURE_INIT(&on_complete_, WatchComplete, this, nullptr);
239
239
  ClientChannelFilter* client_channel = channel_->GetClientChannelFilter();
240
240
  if (client_channel == nullptr) {
@@ -363,14 +363,14 @@ void LegacyChannel::AddConnectivityWatcher(
363
363
  grpc_connectivity_state initial_state,
364
364
  OrphanablePtr<AsyncConnectivityStateWatcherInterface> watcher) {
365
365
  auto* client_channel = GetClientChannelFilter();
366
- CHECK_NE(client_channel, nullptr);
366
+ GRPC_CHECK_NE(client_channel, nullptr);
367
367
  client_channel->AddConnectivityWatcher(initial_state, std::move(watcher));
368
368
  }
369
369
 
370
370
  void LegacyChannel::RemoveConnectivityWatcher(
371
371
  AsyncConnectivityStateWatcherInterface* watcher) {
372
372
  auto* client_channel = GetClientChannelFilter();
373
- CHECK_NE(client_channel, nullptr);
373
+ GRPC_CHECK_NE(client_channel, nullptr);
374
374
  client_channel->RemoveConnectivityWatcher(watcher);
375
375
  }
376
376
 
@@ -414,7 +414,7 @@ void LegacyChannel::Ping(grpc_completion_queue* cq, void* tag) {
414
414
  grpc_transport_op* op = grpc_make_transport_op(nullptr);
415
415
  op->send_ping.on_ack = &pr->closure;
416
416
  op->bind_pollset = grpc_cq_pollset(cq);
417
- CHECK(grpc_cq_begin_op(cq, tag));
417
+ GRPC_CHECK(grpc_cq_begin_op(cq, tag));
418
418
  grpc_channel_element* top_elem =
419
419
  grpc_channel_stack_element(channel_stack_.get(), 0);
420
420
  top_elem->filter->start_transport_op(top_elem, op);
@@ -25,9 +25,9 @@
25
25
 
26
26
  #include <cstring>
27
27
 
28
- #include "absl/log/check.h"
29
28
  #include "absl/strings/string_view.h"
30
29
  #include "src/core/lib/iomgr/error.h"
30
+ #include "src/core/util/grpc_check.h"
31
31
 
32
32
  namespace grpc_core {
33
33
 
@@ -56,7 +56,7 @@ inline int grpc_key_is_binary_header(const uint8_t* buf, size_t length) {
56
56
  return 0 == memcmp(buf + length - 4, "-bin", 4);
57
57
  }
58
58
  inline int grpc_is_refcounted_slice_binary_header(const grpc_slice& slice) {
59
- DCHECK_NE(slice.refcount, nullptr);
59
+ GRPC_DCHECK_NE(slice.refcount, nullptr);
60
60
  return grpc_key_is_binary_header(slice.data.refcounted.bytes,
61
61
  slice.data.refcounted.length);
62
62
  }
@@ -22,6 +22,6 @@
22
22
  #include <grpc/grpc.h>
23
23
  #include <grpc/support/port_platform.h>
24
24
 
25
- const char* grpc_version_string(void) { return "50.0.0"; }
25
+ const char* grpc_version_string(void) { return "51.0.0"; }
26
26
 
27
- const char* grpc_g_stands_for(void) { return "gemini"; }
27
+ const char* grpc_g_stands_for(void) { return "genuine"; }
@@ -24,8 +24,8 @@
24
24
 
25
25
  #include <algorithm>
26
26
 
27
- #include "absl/log/check.h"
28
27
  #include "absl/log/log.h"
28
+ #include "src/core/util/grpc_check.h"
29
29
 
30
30
  namespace grpc_core {
31
31
 
@@ -50,7 +50,7 @@ Timestamp BdpEstimator::CompletePing() {
50
50
  << "bdp[" << name_ << "]:complete acc=" << accumulator_
51
51
  << " est=" << estimate_ << " dt=" << dt << " bw=" << bw / 125000.0
52
52
  << "Mbs bw_est=" << bw_est_ / 125000.0 << "Mbs";
53
- CHECK(ping_state_ == PingState::STARTED);
53
+ GRPC_CHECK(ping_state_ == PingState::STARTED);
54
54
  if (accumulator_ > 2 * estimate_ / 3 && bw > bw_est_) {
55
55
  estimate_ = std::max(accumulator_, estimate_ * 2);
56
56
  bw_est_ = bw;
@@ -25,10 +25,10 @@
25
25
 
26
26
  #include <string>
27
27
 
28
- #include "absl/log/check.h"
29
28
  #include "absl/log/log.h"
30
29
  #include "absl/strings/string_view.h"
31
30
  #include "src/core/lib/debug/trace.h"
31
+ #include "src/core/util/grpc_check.h"
32
32
  #include "src/core/util/time.h"
33
33
 
34
34
  namespace grpc_core {
@@ -50,7 +50,7 @@ class BdpEstimator {
50
50
  GRPC_TRACE_LOG(bdp_estimator, INFO)
51
51
  << "bdp[" << name_ << "]:sched acc=" << accumulator_
52
52
  << " est=" << estimate_;
53
- CHECK(ping_state_ == PingState::UNSCHEDULED);
53
+ GRPC_CHECK(ping_state_ == PingState::UNSCHEDULED);
54
54
  ping_state_ = PingState::SCHEDULED;
55
55
  accumulator_ = 0;
56
56
  }
@@ -62,7 +62,7 @@ class BdpEstimator {
62
62
  GRPC_TRACE_LOG(bdp_estimator, INFO)
63
63
  << "bdp[" << name_ << "]:start acc=" << accumulator_
64
64
  << " est=" << estimate_;
65
- CHECK(ping_state_ == PingState::SCHEDULED);
65
+ GRPC_CHECK(ping_state_ == PingState::SCHEDULED);
66
66
  ping_state_ = PingState::STARTED;
67
67
  ping_start_time_ = gpr_now(GPR_CLOCK_MONOTONIC);
68
68
  }
@@ -25,9 +25,9 @@
25
25
  #include <optional>
26
26
  #include <utility>
27
27
 
28
- #include "absl/log/check.h"
29
28
  #include "absl/status/status.h"
30
29
  #include "src/core/lib/slice/slice_buffer.h"
30
+ #include "src/core/util/grpc_check.h"
31
31
  #include "src/core/util/sync.h"
32
32
 
33
33
  namespace grpc_core {
@@ -37,7 +37,7 @@ PromiseEndpoint::PromiseEndpoint(
37
37
  endpoint,
38
38
  SliceBuffer already_received)
39
39
  : endpoint_(std::move(endpoint)) {
40
- CHECK_NE(endpoint_, nullptr);
40
+ GRPC_CHECK_NE(endpoint_, nullptr);
41
41
  read_state_->endpoint = endpoint_;
42
42
  // TODO(ladynana): Replace this with `SliceBufferCast<>` when it is
43
43
  // available.
@@ -72,7 +72,7 @@ void PromiseEndpoint::ReadState::Complete(absl::Status status,
72
72
  // Appends `pending_buffer` to `buffer`.
73
73
  pending_buffer.MoveFirstNBytesIntoSliceBuffer(pending_buffer.Length(),
74
74
  buffer);
75
- DCHECK(pending_buffer.Count() == 0u);
75
+ GRPC_DCHECK(pending_buffer.Count() == 0u);
76
76
  if (buffer.Length() < num_bytes_requested) {
77
77
  GRPC_LATENT_SEE_SCOPE("PromiseEndpoint::ReadState::Continue");
78
78
  // A further read is needed.
@@ -31,7 +31,6 @@
31
31
  #include <utility>
32
32
 
33
33
  #include "absl/base/thread_annotations.h"
34
- #include "absl/log/check.h"
35
34
  #include "absl/status/status.h"
36
35
  #include "absl/status/statusor.h"
37
36
  #include "src/core/lib/event_engine/extensions/chaotic_good_extension.h"
@@ -45,6 +44,7 @@
45
44
  #include "src/core/lib/slice/slice.h"
46
45
  #include "src/core/lib/slice/slice_buffer.h"
47
46
  #include "src/core/util/dump_args.h"
47
+ #include "src/core/util/grpc_check.h"
48
48
  #include "src/core/util/sync.h"
49
49
 
50
50
  namespace grpc_core {
@@ -78,7 +78,7 @@ class PromiseEndpoint {
78
78
  // Start write and assert previous write finishes.
79
79
  auto prev = write_state_->state.exchange(WriteState::kWriting,
80
80
  std::memory_order_relaxed);
81
- CHECK(prev == WriteState::kIdle);
81
+ GRPC_CHECK(prev == WriteState::kIdle);
82
82
  bool completed;
83
83
  if (data.Length() == 0) {
84
84
  completed = true;
@@ -104,7 +104,7 @@ class PromiseEndpoint {
104
104
  return [write_state = write_state_]() {
105
105
  auto prev = write_state->state.exchange(WriteState::kIdle,
106
106
  std::memory_order_relaxed);
107
- CHECK(prev == WriteState::kWriting);
107
+ GRPC_CHECK(prev == WriteState::kWriting);
108
108
  return absl::OkStatus();
109
109
  };
110
110
  },
@@ -123,7 +123,7 @@ class PromiseEndpoint {
123
123
  }
124
124
  // State was not Written; since we're polling it must be
125
125
  // Writing. Assert that and return Pending.
126
- CHECK(expected == WriteState::kWriting);
126
+ GRPC_CHECK(expected == WriteState::kWriting);
127
127
  return Pending();
128
128
  };
129
129
  })));
@@ -138,9 +138,9 @@ class PromiseEndpoint {
138
138
  auto Read(size_t num_bytes) {
139
139
  GRPC_LATENT_SEE_SCOPE("GRPC:Read");
140
140
  // Assert previous read finishes.
141
- CHECK(!read_state_->complete.load(std::memory_order_relaxed));
141
+ GRPC_CHECK(!read_state_->complete.load(std::memory_order_relaxed));
142
142
  // Should not have pending reads.
143
- CHECK_EQ(read_state_->pending_buffer.Count(), 0u);
143
+ GRPC_CHECK_EQ(read_state_->pending_buffer.Count(), 0u);
144
144
  bool complete = true;
145
145
  while (read_state_->buffer.Length() < num_bytes) {
146
146
  GRPC_LATENT_SEE_SCOPE("GRPC:Read:Loop");
@@ -161,7 +161,7 @@ class PromiseEndpoint {
161
161
  read_state_->waker = Waker();
162
162
  read_state_->pending_buffer.MoveFirstNBytesIntoSliceBuffer(
163
163
  read_state_->pending_buffer.Length(), read_state_->buffer);
164
- DCHECK_EQ(read_state_->pending_buffer.Count(), 0u);
164
+ GRPC_DCHECK_EQ(read_state_->pending_buffer.Count(), 0u);
165
165
  } else {
166
166
  complete = false;
167
167
  break;
@@ -293,7 +293,7 @@ class PromiseEndpoint {
293
293
  auto prev = state.exchange(kWritten, std::memory_order_release);
294
294
  // Previous state should be Writing. If we got anything else we've entered
295
295
  // the callback path twice.
296
- CHECK(prev == kWriting);
296
+ GRPC_CHECK(prev == kWriting);
297
297
  w.Wakeup();
298
298
  }
299
299
  };
@@ -24,7 +24,7 @@
24
24
  #include <limits>
25
25
 
26
26
  #include "absl/base/attributes.h"
27
- #include "absl/log/check.h"
27
+ #include "src/core/util/grpc_check.h"
28
28
 
29
29
  namespace grpc_core {
30
30
 
@@ -182,7 +182,7 @@ Timeout Timeout::FromMillis(int64_t millis) {
182
182
  }
183
183
 
184
184
  Timeout Timeout::FromSeconds(int64_t seconds) {
185
- DCHECK_NE(seconds, 0);
185
+ GRPC_DCHECK_NE(seconds, 0);
186
186
  if (seconds < 1000) {
187
187
  if (seconds % kSecondsPerMinute != 0) {
188
188
  return Timeout(seconds, Unit::kSeconds);
@@ -202,7 +202,7 @@ Timeout Timeout::FromSeconds(int64_t seconds) {
202
202
  }
203
203
 
204
204
  Timeout Timeout::FromMinutes(int64_t minutes) {
205
- DCHECK_NE(minutes, 0);
205
+ GRPC_DCHECK_NE(minutes, 0);
206
206
  if (minutes < 1000) {
207
207
  if (minutes % kMinutesPerHour != 0) {
208
208
  return Timeout(minutes, Unit::kMinutes);
@@ -222,7 +222,7 @@ Timeout Timeout::FromMinutes(int64_t minutes) {
222
222
  }
223
223
 
224
224
  Timeout Timeout::FromHours(int64_t hours) {
225
- DCHECK_NE(hours, 0);
225
+ GRPC_DCHECK_NE(hours, 0);
226
226
  if (hours < kMaxHours) {
227
227
  return Timeout(hours, Unit::kHours);
228
228
  }
@@ -22,7 +22,6 @@
22
22
  #include <memory>
23
23
  #include <string>
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/strings/str_cat.h"
@@ -36,6 +35,7 @@
36
35
  #include "src/core/load_balancing/lb_policy_registry.h"
37
36
  #include "src/core/load_balancing/subchannel_interface.h"
38
37
  #include "src/core/util/debug_location.h"
38
+ #include "src/core/util/grpc_check.h"
39
39
 
40
40
  namespace grpc_core {
41
41
 
@@ -112,12 +112,12 @@ class ChildPolicyHandler::Helper final
112
112
 
113
113
  private:
114
114
  bool CalledByPendingChild() const {
115
- CHECK_NE(child_, nullptr);
115
+ GRPC_CHECK_NE(child_, nullptr);
116
116
  return child_ == parent()->pending_child_policy_.get();
117
117
  }
118
118
 
119
119
  bool CalledByCurrentChild() const {
120
- CHECK_NE(child_, nullptr);
120
+ GRPC_CHECK_NE(child_, nullptr);
121
121
  return child_ == parent()->child_policy_.get();
122
122
  };
123
123
 
@@ -237,7 +237,7 @@ absl::Status ChildPolicyHandler::UpdateLocked(UpdateArgs args) {
237
237
  ? pending_child_policy_.get()
238
238
  : child_policy_.get();
239
239
  }
240
- CHECK_NE(policy_to_update, nullptr);
240
+ GRPC_CHECK_NE(policy_to_update, nullptr);
241
241
  // Update the policy.
242
242
  if (GRPC_TRACE_FLAG_ENABLED_OBJ(*tracer_)) {
243
243
  LOG(INFO) << "[child_policy_handler " << this << "] updating "
@@ -26,7 +26,6 @@
26
26
  #include <utility>
27
27
  #include <vector>
28
28
 
29
- #include "absl/log/check.h"
30
29
  #include "absl/log/log.h"
31
30
  #include "absl/random/random.h"
32
31
  #include "absl/status/status.h"
@@ -41,6 +40,7 @@
41
40
  #include "src/core/load_balancing/pick_first/pick_first.h"
42
41
  #include "src/core/resolver/endpoint_addresses.h"
43
42
  #include "src/core/util/debug_location.h"
43
+ #include "src/core/util/grpc_check.h"
44
44
  #include "src/core/util/json/json.h"
45
45
  #include "src/core/util/orphanable.h"
46
46
  #include "src/core/util/ref_counted_ptr.h"
@@ -119,7 +119,7 @@ absl::Status EndpointList::Endpoint::Init(
119
119
  CoreConfiguration::Get().lb_policy_registry().ParseLoadBalancingConfig(
120
120
  Json::FromArray(
121
121
  {Json::FromObject({{"pick_first", Json::FromObject({})}})}));
122
- CHECK(config.ok());
122
+ GRPC_CHECK(config.ok());
123
123
  // Update child policy.
124
124
  LoadBalancingPolicy::UpdateArgs update_args;
125
125
  update_args.addresses = std::make_shared<SingleEndpointIterator>(addresses);