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
@@ -25,7 +25,6 @@
25
25
  #include <fcntl.h>
26
26
  #include <string.h>
27
27
 
28
- #include "absl/log/check.h"
29
28
  #include "absl/log/log.h"
30
29
  #include "src/core/config/core_configuration.h"
31
30
  #include "src/core/lib/address_utils/sockaddr_utils.h"
@@ -38,6 +37,7 @@
38
37
  #include "src/core/lib/iomgr/socket_windows.h"
39
38
  #include "src/core/lib/iomgr/tcp_windows.h"
40
39
  #include "src/core/util/crash.h"
40
+ #include "src/core/util/grpc_check.h"
41
41
 
42
42
  static void create_sockets(SOCKET sv[2]) {
43
43
  SOCKET svr_sock = INVALID_SOCKET;
@@ -48,25 +48,26 @@ static void create_sockets(SOCKET sv[2]) {
48
48
 
49
49
  lst_sock = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0,
50
50
  grpc_get_default_wsa_socket_flags());
51
- CHECK(lst_sock != INVALID_SOCKET);
51
+ GRPC_CHECK(lst_sock != INVALID_SOCKET);
52
52
 
53
53
  memset(&addr, 0, sizeof(addr));
54
54
  addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
55
55
  addr.sin_family = AF_INET;
56
- CHECK(bind(lst_sock, (grpc_sockaddr*)&addr, sizeof(addr)) != SOCKET_ERROR);
57
- CHECK(listen(lst_sock, SOMAXCONN) != SOCKET_ERROR);
58
- CHECK(getsockname(lst_sock, (grpc_sockaddr*)&addr, &addr_len) !=
59
- SOCKET_ERROR);
56
+ GRPC_CHECK(bind(lst_sock, (grpc_sockaddr*)&addr, sizeof(addr)) !=
57
+ SOCKET_ERROR);
58
+ GRPC_CHECK(listen(lst_sock, SOMAXCONN) != SOCKET_ERROR);
59
+ GRPC_CHECK(getsockname(lst_sock, (grpc_sockaddr*)&addr, &addr_len) !=
60
+ SOCKET_ERROR);
60
61
 
61
62
  cli_sock = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0,
62
63
  grpc_get_default_wsa_socket_flags());
63
- CHECK(cli_sock != INVALID_SOCKET);
64
+ GRPC_CHECK(cli_sock != INVALID_SOCKET);
64
65
 
65
- CHECK_EQ(WSAConnect(cli_sock, (grpc_sockaddr*)&addr, addr_len, NULL, NULL,
66
- NULL, NULL),
67
- 0);
66
+ GRPC_CHECK_EQ(WSAConnect(cli_sock, (grpc_sockaddr*)&addr, addr_len, NULL,
67
+ NULL, NULL, NULL),
68
+ 0);
68
69
  svr_sock = accept(lst_sock, (grpc_sockaddr*)&addr, &addr_len);
69
- CHECK_NE(svr_sock, INVALID_SOCKET);
70
+ GRPC_CHECK_NE(svr_sock, INVALID_SOCKET);
70
71
 
71
72
  closesocket(lst_sock);
72
73
  grpc_error_handle error = grpc_tcp_prepare_socket(cli_sock);
@@ -100,20 +101,20 @@ grpc_endpoint_pair grpc_iomgr_create_endpoint_pair(
100
101
  new_args
101
102
  .GetObjectRef<grpc_event_engine::experimental::EventEngine>()
102
103
  .get());
103
- CHECK_NE(event_engine_supports_win_sockets, nullptr)
104
+ GRPC_CHECK_NE(event_engine_supports_win_sockets, nullptr)
104
105
  << "EventEngine does not support windows SOCKETS, so an endpoint pair "
105
106
  "cannot be created.";
106
107
  auto client_endpoint =
107
108
  event_engine_supports_win_sockets->CreateEndpointFromWinSocket(
108
109
  sv[1], grpc_event_engine::experimental::ChannelArgsEndpointConfig(
109
110
  new_args));
110
- CHECK_NE(client_endpoint.get(), nullptr)
111
+ GRPC_CHECK_NE(client_endpoint.get(), nullptr)
111
112
  << "Failed to create client endpoint";
112
113
  auto server_endpoint =
113
114
  event_engine_supports_win_sockets->CreateEndpointFromWinSocket(
114
115
  sv[0], grpc_event_engine::experimental::ChannelArgsEndpointConfig(
115
116
  new_args));
116
- CHECK_NE(server_endpoint.get(), nullptr)
117
+ GRPC_CHECK_NE(server_endpoint.get(), nullptr)
117
118
  << "Failed to create server endpoint";
118
119
  p.client = grpc_event_engine_endpoint_create(std::move(client_endpoint));
119
120
  p.server = grpc_event_engine_endpoint_create(std::move(server_endpoint));
@@ -40,7 +40,6 @@
40
40
  #include <string>
41
41
  #include <vector>
42
42
 
43
- #include "absl/log/check.h"
44
43
  #include "absl/log/log.h"
45
44
  #include "absl/strings/str_cat.h"
46
45
  #include "absl/strings/str_format.h"
@@ -55,6 +54,7 @@
55
54
  #include "src/core/lib/iomgr/wakeup_fd_posix.h"
56
55
  #include "src/core/telemetry/stats.h"
57
56
  #include "src/core/telemetry/stats_data.h"
57
+ #include "src/core/util/grpc_check.h"
58
58
  #include "src/core/util/manual_constructor.h"
59
59
  #include "src/core/util/strerror.h"
60
60
  #include "src/core/util/string.h"
@@ -421,8 +421,8 @@ static void fd_orphan(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
421
421
  if (grpc_core::IsEventEngineForAllOtherEndpointsEnabled() &&
422
422
  !grpc_event_engine::experimental::
423
423
  EventEngineExperimentDisabledForPython()) {
424
- CHECK_NE(release_fd, nullptr);
425
- CHECK_EQ(on_done, nullptr);
424
+ GRPC_CHECK_NE(release_fd, nullptr);
425
+ GRPC_CHECK_EQ(on_done, nullptr);
426
426
  *release_fd = fd->fd;
427
427
  gpr_free(fd);
428
428
  return;
@@ -647,8 +647,8 @@ static void pollset_maybe_finish_shutdown(grpc_pollset* pollset) {
647
647
  }
648
648
 
649
649
  static void pollset_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
650
- CHECK_EQ(pollset->shutdown_closure, nullptr);
651
- CHECK(!pollset->shutting_down);
650
+ GRPC_CHECK_EQ(pollset->shutdown_closure, nullptr);
651
+ GRPC_CHECK(!pollset->shutting_down);
652
652
  pollset->shutdown_closure = closure;
653
653
  pollset->shutting_down = true;
654
654
  GRPC_LOG_IF_ERROR("pollset_shutdown", pollset_kick_all(pollset));
@@ -816,7 +816,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
816
816
  }
817
817
  }
818
818
  if (is_reassigning) {
819
- CHECK(pollset->reassigning_neighborhood);
819
+ GRPC_CHECK(pollset->reassigning_neighborhood);
820
820
  pollset->reassigning_neighborhood = false;
821
821
  }
822
822
  gpr_mu_unlock(&neighborhood->mu);
@@ -825,7 +825,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
825
825
  worker_insert(pollset, worker);
826
826
  pollset->begin_refs--;
827
827
  if (worker->state == UNKICKED && !pollset->kicked_without_poller) {
828
- CHECK(gpr_atm_no_barrier_load(&g_active_poller) != (gpr_atm)worker);
828
+ GRPC_CHECK(gpr_atm_no_barrier_load(&g_active_poller) != (gpr_atm)worker);
829
829
  worker->initialized_cv = true;
830
830
  gpr_cv_init(&worker->cv);
831
831
  while (worker->state == UNKICKED && !pollset->shutting_down) {
@@ -877,7 +877,7 @@ static bool check_neighborhood_for_available_poller(
877
877
  break;
878
878
  }
879
879
  gpr_mu_lock(&inspect->mu);
880
- CHECK(!inspect->seen_inactive);
880
+ GRPC_CHECK(!inspect->seen_inactive);
881
881
  grpc_pollset_worker* inspect_worker = inspect->root_worker;
882
882
  if (inspect_worker != nullptr) {
883
883
  do {
@@ -939,7 +939,7 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
939
939
  if (worker->next != worker && worker->next->state == UNKICKED) {
940
940
  GRPC_TRACE_LOG(polling, INFO)
941
941
  << " .. choose next poller to be peer " << worker;
942
- CHECK(worker->next->initialized_cv);
942
+ GRPC_CHECK(worker->next->initialized_cv);
943
943
  gpr_atm_no_barrier_store(&g_active_poller, (gpr_atm)worker->next);
944
944
  SET_KICK_STATE(worker->next, DESIGNATED_POLLER);
945
945
  gpr_cv_signal(&worker->next->cv);
@@ -991,7 +991,7 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
991
991
  if (EMPTIED == worker_remove(pollset, worker)) {
992
992
  pollset_maybe_finish_shutdown(pollset);
993
993
  }
994
- CHECK(gpr_atm_no_barrier_load(&g_active_poller) != (gpr_atm)worker);
994
+ GRPC_CHECK(gpr_atm_no_barrier_load(&g_active_poller) != (gpr_atm)worker);
995
995
  }
996
996
 
997
997
  // pollset->po.mu lock must be held by the caller before calling this.
@@ -1012,8 +1012,8 @@ static grpc_error_handle pollset_work(grpc_pollset* ps,
1012
1012
  if (begin_worker(ps, &worker, worker_hdl, deadline)) {
1013
1013
  g_current_thread_pollset = ps;
1014
1014
  g_current_thread_worker = &worker;
1015
- CHECK(!ps->shutting_down);
1016
- CHECK(!ps->seen_inactive);
1015
+ GRPC_CHECK(!ps->shutting_down);
1016
+ GRPC_CHECK(!ps->seen_inactive);
1017
1017
 
1018
1018
  gpr_mu_unlock(&ps->mu); // unlock
1019
1019
  // This is the designated polling thread at this point and should ideally do
@@ -1099,7 +1099,7 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1099
1099
  goto done;
1100
1100
  } else if (next_worker->state == UNKICKED) {
1101
1101
  GRPC_TRACE_LOG(polling, INFO) << " .. kicked " << next_worker;
1102
- CHECK(next_worker->initialized_cv);
1102
+ GRPC_CHECK(next_worker->initialized_cv);
1103
1103
  SET_KICK_STATE(next_worker, KICKED);
1104
1104
  gpr_cv_signal(&next_worker->cv);
1105
1105
  goto done;
@@ -1122,7 +1122,7 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1122
1122
  goto done;
1123
1123
  }
1124
1124
  } else {
1125
- CHECK(next_worker->state == KICKED);
1125
+ GRPC_CHECK(next_worker->state == KICKED);
1126
1126
  SET_KICK_STATE(next_worker, KICKED);
1127
1127
  goto done;
1128
1128
  }
@@ -1251,7 +1251,7 @@ const grpc_event_engine_vtable grpc_ev_epoll1_posix = {
1251
1251
  /* check_engine_available = */
1252
1252
  [](bool) { return init_epoll1_linux(); },
1253
1253
  /* init_engine = */
1254
- []() { CHECK(init_epoll1_linux()); },
1254
+ []() { GRPC_CHECK(init_epoll1_linux()); },
1255
1255
  shutdown_background_closure,
1256
1256
  /* shutdown_engine = */
1257
1257
  []() { shutdown_engine(); },
@@ -34,7 +34,6 @@
34
34
 
35
35
  #include <string>
36
36
 
37
- #include "absl/log/check.h"
38
37
  #include "absl/log/log.h"
39
38
  #include "absl/strings/str_cat.h"
40
39
  #include "absl/strings/str_format.h"
@@ -47,6 +46,7 @@
47
46
  #include "src/core/telemetry/stats.h"
48
47
  #include "src/core/telemetry/stats_data.h"
49
48
  #include "src/core/util/crash.h"
49
+ #include "src/core/util/grpc_check.h"
50
50
  #include "src/core/util/thd.h"
51
51
  #include "src/core/util/useful.h"
52
52
 
@@ -350,7 +350,7 @@ static void ref_by(grpc_fd* fd, int n, const char* reason, const char* file,
350
350
  } while (0)
351
351
  static void ref_by(grpc_fd* fd, int n) {
352
352
  #endif
353
- CHECK_GT(gpr_atm_no_barrier_fetch_add(&fd->refst, n), 0);
353
+ GRPC_CHECK_GT(gpr_atm_no_barrier_fetch_add(&fd->refst, n), 0);
354
354
  }
355
355
 
356
356
  #ifndef NDEBUG
@@ -374,7 +374,7 @@ static void unref_by(grpc_fd* fd, int n) {
374
374
  fd->shutdown_error.~Status();
375
375
  gpr_free(fd);
376
376
  } else {
377
- CHECK(old > n);
377
+ GRPC_CHECK(old > n);
378
378
  }
379
379
  }
380
380
 
@@ -392,7 +392,7 @@ static grpc_fd* fd_create(int fd, const char* name, bool track_err) {
392
392
  }
393
393
  // Avoid unused-parameter warning for debug-only parameter
394
394
  (void)track_err;
395
- DCHECK(track_err == false);
395
+ GRPC_DCHECK(track_err == false);
396
396
  grpc_fd* r = static_cast<grpc_fd*>(gpr_malloc(sizeof(*r)));
397
397
  gpr_mu_init(&r->mu);
398
398
  gpr_atm_rel_store(&r->refst, 1);
@@ -422,7 +422,7 @@ static bool fd_is_orphaned(grpc_fd* fd) {
422
422
 
423
423
  static grpc_error_handle pollset_kick_locked(grpc_fd_watcher* watcher) {
424
424
  gpr_mu_lock(&watcher->pollset->mu);
425
- CHECK(watcher->worker);
425
+ GRPC_CHECK(watcher->worker);
426
426
  grpc_error_handle err =
427
427
  pollset_kick_ext(watcher->pollset, watcher->worker,
428
428
  GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP);
@@ -483,8 +483,8 @@ static void fd_orphan(grpc_fd* fd, grpc_closure* on_done, int* release_fd,
483
483
  if (grpc_core::IsEventEngineForAllOtherEndpointsEnabled() &&
484
484
  !grpc_event_engine::experimental::
485
485
  EventEngineExperimentDisabledForPython()) {
486
- CHECK_NE(release_fd, nullptr);
487
- CHECK_EQ(on_done, nullptr);
486
+ GRPC_CHECK_NE(release_fd, nullptr);
487
+ GRPC_CHECK_EQ(on_done, nullptr);
488
488
  *release_fd = fd->fd;
489
489
  gpr_free(fd);
490
490
  return;
@@ -805,7 +805,7 @@ static grpc_error_handle pollset_kick_ext(grpc_pollset* p,
805
805
  // pollset->mu already held
806
806
  if (specific_worker != nullptr) {
807
807
  if (specific_worker == GRPC_POLLSET_KICK_BROADCAST) {
808
- CHECK_EQ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP), 0u);
808
+ GRPC_CHECK_EQ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP), 0u);
809
809
  for (specific_worker = p->root_worker.next;
810
810
  specific_worker != &p->root_worker;
811
811
  specific_worker = specific_worker->next) {
@@ -829,7 +829,7 @@ static grpc_error_handle pollset_kick_ext(grpc_pollset* p,
829
829
  grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd));
830
830
  }
831
831
  } else if (g_current_thread_poller != p) {
832
- CHECK_EQ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP), 0u);
832
+ GRPC_CHECK_EQ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP), 0u);
833
833
  specific_worker = pop_front_worker(p);
834
834
  if (specific_worker != nullptr) {
835
835
  if (g_current_thread_worker == specific_worker) {
@@ -882,7 +882,7 @@ static void pollset_init(grpc_pollset* pollset, gpr_mu** mu) {
882
882
  }
883
883
 
884
884
  static void pollset_destroy(grpc_pollset* pollset) {
885
- CHECK(!pollset_has_workers(pollset));
885
+ GRPC_CHECK(!pollset_has_workers(pollset));
886
886
  while (pollset->local_wakeup_cache) {
887
887
  grpc_cached_wakeup_fd* next = pollset->local_wakeup_cache->next;
888
888
  fork_fd_list_remove_wakeup_fd(pollset->local_wakeup_cache);
@@ -1160,7 +1160,7 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
1160
1160
  }
1161
1161
 
1162
1162
  static void pollset_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
1163
- CHECK(!pollset->shutting_down);
1163
+ GRPC_CHECK(!pollset->shutting_down);
1164
1164
  pollset->shutting_down = 1;
1165
1165
  pollset->shutdown_done = closure;
1166
1166
  (void)pollset_kick(pollset, GRPC_POLLSET_KICK_BROADCAST);
@@ -25,7 +25,6 @@
25
25
  #include <utility>
26
26
 
27
27
  #include "absl/functional/any_invocable.h"
28
- #include "absl/log/check.h"
29
28
  #include "absl/log/log.h"
30
29
  #include "absl/status/status.h"
31
30
  #include "absl/status/statusor.h"
@@ -45,6 +44,7 @@
45
44
  #include "src/core/lib/transport/error_utils.h"
46
45
  #include "src/core/util/construct_destruct.h"
47
46
  #include "src/core/util/debug_location.h"
47
+ #include "src/core/util/grpc_check.h"
48
48
  #include "src/core/util/string.h"
49
49
  #include "src/core/util/sync.h"
50
50
 
@@ -412,9 +412,10 @@ EventEngineEndpointWrapper::EventEngineEndpointWrapper(
412
412
  } // namespace
413
413
 
414
414
  grpc_endpoint* grpc_event_engine_endpoint_create(
415
- std::unique_ptr<EventEngine::Endpoint> ee_endpoint) {
416
- DCHECK(ee_endpoint != nullptr);
417
- auto wrapper = new EventEngineEndpointWrapper(std::move(ee_endpoint));
415
+ absl::StatusOr<std::unique_ptr<EventEngine::Endpoint>> ee_endpoint) {
416
+ GRPC_DCHECK(ee_endpoint.ok()) << ee_endpoint.status();
417
+ GRPC_DCHECK(ee_endpoint.value() != nullptr);
418
+ auto wrapper = new EventEngineEndpointWrapper(std::move(ee_endpoint).value());
418
419
  return wrapper->GetGrpcEndpoint();
419
420
  }
420
421
 
@@ -27,7 +27,7 @@ namespace experimental {
27
27
  /// Server code needs to create grpc_endpoints after the EventEngine has made
28
28
  /// connections.
29
29
  grpc_endpoint* grpc_event_engine_endpoint_create(
30
- std::unique_ptr<EventEngine::Endpoint> ee_endpoint);
30
+ absl::StatusOr<std::unique_ptr<EventEngine::Endpoint>> ee_endpoint);
31
31
 
32
32
  /// Returns true if the passed endpoint is an event engine shim endpoint.
33
33
  bool grpc_is_event_engine_endpoint(grpc_endpoint* ep);
@@ -28,7 +28,6 @@
28
28
 
29
29
  #include <limits>
30
30
 
31
- #include "absl/log/check.h"
32
31
  #include "absl/log/log.h"
33
32
  #include "src/core/lib/iomgr/iocp_windows.h"
34
33
  #include "src/core/lib/iomgr/iomgr_internal.h"
@@ -37,6 +36,7 @@
37
36
  #include "src/core/telemetry/stats.h"
38
37
  #include "src/core/telemetry/stats_data.h"
39
38
  #include "src/core/util/crash.h"
39
+ #include "src/core/util/grpc_check.h"
40
40
  #include "src/core/util/thd.h"
41
41
 
42
42
  static ULONG g_iocp_kick_token;
@@ -73,8 +73,8 @@ grpc_iocp_work_status grpc_iocp_work(grpc_core::Timestamp deadline) {
73
73
  if (success == 0 && overlapped == NULL) {
74
74
  return GRPC_IOCP_WORK_TIMEOUT;
75
75
  }
76
- CHECK(completion_key);
77
- CHECK(overlapped);
76
+ GRPC_CHECK(completion_key);
77
+ GRPC_CHECK(overlapped);
78
78
  if (overlapped == &g_iocp_custom_overlap) {
79
79
  gpr_atm_full_fetch_add(&g_custom_events, -1);
80
80
  if (completion_key == (ULONG_PTR)&g_iocp_kick_token) {
@@ -102,7 +102,7 @@ grpc_iocp_work_status grpc_iocp_work(grpc_core::Timestamp deadline) {
102
102
  info->bytes_transferred = bytes;
103
103
  info->wsa_error = success ? 0 : WSAGetLastError();
104
104
  }
105
- CHECK(overlapped == &info->overlapped);
105
+ GRPC_CHECK(overlapped == &info->overlapped);
106
106
  bool should_destroy = grpc_socket_become_ready(socket, info);
107
107
  gpr_mu_unlock(&socket->state_mu);
108
108
  if (should_destroy) {
@@ -114,7 +114,7 @@ grpc_iocp_work_status grpc_iocp_work(grpc_core::Timestamp deadline) {
114
114
  void grpc_iocp_init(void) {
115
115
  g_iocp =
116
116
  CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, (ULONG_PTR)NULL, 0);
117
- CHECK(g_iocp);
117
+ GRPC_CHECK(g_iocp);
118
118
  }
119
119
 
120
120
  void grpc_iocp_kick(void) {
@@ -123,7 +123,7 @@ void grpc_iocp_kick(void) {
123
123
  gpr_atm_full_fetch_add(&g_custom_events, 1);
124
124
  success = PostQueuedCompletionStatus(g_iocp, 0, (ULONG_PTR)&g_iocp_kick_token,
125
125
  &g_iocp_custom_overlap);
126
- CHECK(success);
126
+ GRPC_CHECK(success);
127
127
  }
128
128
 
129
129
  void grpc_iocp_flush(void) {
@@ -145,7 +145,7 @@ void grpc_iocp_shutdown(void) {
145
145
  grpc_core::ExecCtx::Get()->Flush();
146
146
  }
147
147
 
148
- CHECK(CloseHandle(g_iocp));
148
+ GRPC_CHECK(CloseHandle(g_iocp));
149
149
  }
150
150
 
151
151
  void grpc_iocp_add_socket(grpc_winsocket* socket) {
@@ -161,7 +161,7 @@ void grpc_iocp_add_socket(grpc_winsocket* socket) {
161
161
  abort();
162
162
  }
163
163
  socket->added_to_iocp = 1;
164
- CHECK(ret == g_iocp);
164
+ GRPC_CHECK(ret == g_iocp);
165
165
  }
166
166
 
167
167
  void grpc_iocp_register_socket_shutdown_socket_locked(grpc_winsocket* socket) {
@@ -22,7 +22,6 @@
22
22
 
23
23
  #ifdef GRPC_WINSOCK_SOCKET
24
24
 
25
- #include "absl/log/check.h"
26
25
  #include "src/core/lib/experiments/experiments.h"
27
26
  #include "src/core/lib/iomgr/iocp_windows.h"
28
27
  #include "src/core/lib/iomgr/iomgr.h"
@@ -35,6 +34,7 @@
35
34
  #include "src/core/lib/iomgr/tcp_server.h"
36
35
  #include "src/core/lib/iomgr/timer.h"
37
36
  #include "src/core/util/crash.h"
37
+ #include "src/core/util/grpc_check.h"
38
38
 
39
39
  extern grpc_tcp_server_vtable grpc_windows_tcp_server_vtable;
40
40
  extern grpc_tcp_server_vtable grpc_windows_event_engine_tcp_server_vtable;
@@ -50,12 +50,12 @@ extern grpc_pollset_set_vtable grpc_windows_pollset_set_vtable;
50
50
  static void winsock_init(void) {
51
51
  WSADATA wsaData;
52
52
  int status = WSAStartup(MAKEWORD(2, 0), &wsaData);
53
- CHECK_EQ(status, 0);
53
+ GRPC_CHECK_EQ(status, 0);
54
54
  }
55
55
 
56
56
  static void winsock_shutdown(void) {
57
57
  int status = WSACleanup();
58
- CHECK_EQ(status, 0);
58
+ GRPC_CHECK_EQ(status, 0);
59
59
  }
60
60
 
61
61
  static void iomgr_platform_init(void) {
@@ -20,11 +20,11 @@
20
20
 
21
21
  #include <grpc/support/port_platform.h>
22
22
 
23
- #include "absl/log/check.h"
24
23
  #include "absl/log/log.h"
25
24
  #include "src/core/lib/debug/trace.h"
26
25
  #include "src/core/lib/iomgr/exec_ctx.h"
27
26
  #include "src/core/util/crash.h"
27
+ #include "src/core/util/grpc_check.h"
28
28
 
29
29
  // 'state' holds the to call when the fd is readable or writable respectively.
30
30
  // It can contain one of the following values:
@@ -78,7 +78,7 @@ void LockfreeEvent::DestroyEvent() {
78
78
  if (curr & kShutdownBit) {
79
79
  internal::StatusFreeHeapPtr(curr & ~kShutdownBit);
80
80
  } else {
81
- CHECK(curr == kClosureNotReady || curr == kClosureReady);
81
+ GRPC_CHECK(curr == kClosureNotReady || curr == kClosureReady);
82
82
  }
83
83
  // we CAS in a shutdown, no error value here. If this event is interacted
84
84
  // with post-deletion (see the note in the constructor) we want the bit
@@ -21,9 +21,9 @@
21
21
  #include <grpc/support/alloc.h>
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
- #include "absl/log/check.h"
25
24
  #include "absl/strings/str_format.h"
26
25
  #include "src/core/util/crash.h"
26
+ #include "src/core/util/grpc_check.h"
27
27
 
28
28
  grpc_polling_entity grpc_polling_entity_create_from_pollset_set(
29
29
  grpc_pollset_set* pollset_set) {
@@ -72,7 +72,7 @@ void grpc_polling_entity_add_to_pollset_set(grpc_polling_entity* pollent,
72
72
  grpc_pollset_set_add_pollset(pss_dst, pollent->pollent.pollset);
73
73
  }
74
74
  } else if (pollent->tag == GRPC_POLLS_POLLSET_SET) {
75
- CHECK_NE(pollent->pollent.pollset_set, nullptr);
75
+ GRPC_CHECK_NE(pollent->pollent.pollset_set, nullptr);
76
76
  grpc_pollset_set_add_pollset_set(pss_dst, pollent->pollent.pollset_set);
77
77
  } else if (pollent->tag == GRPC_POLLS_NONE) {
78
78
  // Do nothing.
@@ -90,7 +90,7 @@ void grpc_polling_entity_del_from_pollset_set(grpc_polling_entity* pollent,
90
90
  grpc_pollset_set_del_pollset(pss_dst, pollent->pollent.pollset);
91
91
  }
92
92
  } else if (pollent->tag == GRPC_POLLS_POLLSET_SET) {
93
- CHECK_NE(pollent->pollent.pollset_set, nullptr);
93
+ GRPC_CHECK_NE(pollent->pollent.pollset_set, nullptr);
94
94
  grpc_pollset_set_del_pollset_set(pss_dst, pollent->pollent.pollset_set);
95
95
  } else if (pollent->tag == GRPC_POLLS_NONE) {
96
96
  // Do nothing.
@@ -46,13 +46,13 @@
46
46
 
47
47
  #include <string>
48
48
 
49
- #include "absl/log/check.h"
50
49
  #include "absl/log/log.h"
51
50
  #include "absl/strings/str_cat.h"
52
51
  #include "src/core/lib/address_utils/sockaddr_utils.h"
53
52
  #include "src/core/lib/iomgr/sockaddr.h"
54
53
  #include "src/core/lib/iomgr/socket_factory_posix.h"
55
54
  #include "src/core/util/crash.h"
55
+ #include "src/core/util/grpc_check.h"
56
56
  #include "src/core/util/strerror.h"
57
57
  #include "src/core/util/string.h"
58
58
 
@@ -416,7 +416,7 @@ grpc_error_handle grpc_set_socket_tcp_user_timeout(
416
416
  // set a socket using a grpc_socket_mutator
417
417
  grpc_error_handle grpc_set_socket_with_mutator(int fd, grpc_fd_usage usage,
418
418
  grpc_socket_mutator* mutator) {
419
- CHECK(mutator);
419
+ GRPC_CHECK(mutator);
420
420
  if (!grpc_socket_mutator_mutate_fd(mutator, fd, usage)) {
421
421
  return GRPC_ERROR_CREATE("grpc_socket_mutator failed.");
422
422
  }
@@ -29,7 +29,6 @@
29
29
  #include <grpc/support/log_windows.h>
30
30
  #include <mswsock.h>
31
31
 
32
- #include "absl/log/check.h"
33
32
  #include "absl/log/log.h"
34
33
  #include "absl/strings/str_format.h"
35
34
  #include "src/core/lib/iomgr/iocp_windows.h"
@@ -39,6 +38,7 @@
39
38
  #include "src/core/lib/iomgr/sockaddr_windows.h"
40
39
  #include "src/core/lib/iomgr/socket_windows.h"
41
40
  #include "src/core/util/crash.h"
41
+ #include "src/core/util/grpc_check.h"
42
42
 
43
43
  static DWORD s_wsa_socket_flags;
44
44
 
@@ -157,7 +157,7 @@ void grpc_winsocket_finish(grpc_winsocket* winsocket) {
157
157
 
158
158
  void grpc_winsocket_destroy(grpc_winsocket* winsocket) {
159
159
  gpr_mu_lock(&winsocket->state_mu);
160
- CHECK(!winsocket->destroy_called);
160
+ GRPC_CHECK(!winsocket->destroy_called);
161
161
  winsocket->destroy_called = true;
162
162
  bool should_destroy = check_destroyable(winsocket);
163
163
  gpr_mu_unlock(&winsocket->state_mu);
@@ -172,7 +172,7 @@ void grpc_winsocket_destroy(grpc_winsocket* winsocket) {
172
172
  //-) The IOCP hasn't completed yet, and we're queuing it for later.
173
173
  static void socket_notify_on_iocp(grpc_winsocket* socket, grpc_closure* closure,
174
174
  grpc_winsocket_callback_info* info) {
175
- CHECK(info->closure == NULL);
175
+ GRPC_CHECK(info->closure == NULL);
176
176
  gpr_mu_lock(&socket->state_mu);
177
177
  if (info->has_pending_iocp) {
178
178
  info->has_pending_iocp = 0;
@@ -194,7 +194,7 @@ void grpc_socket_notify_on_read(grpc_winsocket* socket, grpc_closure* closure) {
194
194
 
195
195
  bool grpc_socket_become_ready(grpc_winsocket* socket,
196
196
  grpc_winsocket_callback_info* info) {
197
- CHECK(!info->has_pending_iocp);
197
+ GRPC_CHECK(!info->has_pending_iocp);
198
198
  if (info->closure) {
199
199
  // Only run the closure once at shutdown.
200
200
  if (!info->closure_already_executed_at_shutdown) {
@@ -33,7 +33,6 @@
33
33
  #include <memory>
34
34
 
35
35
  #include "absl/container/flat_hash_map.h"
36
- #include "absl/log/check.h"
37
36
  #include "absl/log/log.h"
38
37
  #include "absl/strings/str_cat.h"
39
38
  #include "src/core/lib/address_utils/sockaddr_utils.h"
@@ -53,6 +52,7 @@
53
52
  #include "src/core/lib/slice/slice_internal.h"
54
53
  #include "src/core/net/socket_mutator.h"
55
54
  #include "src/core/util/crash.h"
55
+ #include "src/core/util/grpc_check.h"
56
56
  #include "src/core/util/status_helper.h"
57
57
  #include "src/core/util/string.h"
58
58
 
@@ -103,7 +103,7 @@ static grpc_error_handle prepare_socket(
103
103
  const grpc_core::PosixTcpOptions& options) {
104
104
  grpc_error_handle err;
105
105
 
106
- CHECK_GE(fd, 0);
106
+ GRPC_CHECK_GE(fd, 0);
107
107
 
108
108
  err = grpc_set_socket_nonblocking(fd, 1);
109
109
  if (!err.ok()) goto error;
@@ -187,7 +187,7 @@ static void on_writable(void* acp, grpc_error_handle error) {
187
187
  << ": on_writable: error=" << grpc_core::StatusToString(error);
188
188
 
189
189
  gpr_mu_lock(&ac->mu);
190
- CHECK(ac->fd);
190
+ GRPC_CHECK(ac->fd);
191
191
  fd = ac->fd;
192
192
  ac->fd = nullptr;
193
193
  bool connect_cancelled = ac->connect_cancelled;
@@ -438,7 +438,7 @@ static bool tcp_cancel_connect(int64_t connection_handle) {
438
438
  auto it = shard->pending_connections.find(connection_handle);
439
439
  if (it != shard->pending_connections.end()) {
440
440
  ac = it->second;
441
- CHECK_NE(ac, nullptr);
441
+ GRPC_CHECK_NE(ac, nullptr);
442
442
  // Trying to acquire ac->mu here would could cause a deadlock because
443
443
  // the on_writable method tries to acquire the two mutexes used
444
444
  // here in the reverse order. But we dont need to acquire ac->mu before
@@ -28,7 +28,6 @@
28
28
  #include <grpc/support/alloc.h>
29
29
  #include <grpc/support/log_windows.h>
30
30
 
31
- #include "absl/log/check.h"
32
31
  #include "src/core/lib/address_utils/sockaddr_utils.h"
33
32
  #include "src/core/lib/event_engine/shim.h"
34
33
  #include "src/core/lib/iomgr/event_engine_shims/tcp_client.h"
@@ -42,6 +41,7 @@
42
41
  #include "src/core/lib/resource_quota/api.h"
43
42
  #include "src/core/lib/slice/slice_internal.h"
44
43
  #include "src/core/util/crash.h"
44
+ #include "src/core/util/grpc_check.h"
45
45
 
46
46
  using ::grpc_event_engine::experimental::EndpointConfig;
47
47
 
@@ -82,7 +82,7 @@ static void on_alarm(void* acp, grpc_error_handle /* error */) {
82
82
  static void on_connect(void* acp, grpc_error_handle error) {
83
83
  async_connect* ac = (async_connect*)acp;
84
84
  grpc_endpoint** ep = ac->endpoint;
85
- CHECK(*ep == NULL);
85
+ GRPC_CHECK(*ep == NULL);
86
86
  grpc_closure* on_done = ac->on_done;
87
87
 
88
88
  gpr_mu_lock(&ac->mu);
@@ -101,7 +101,7 @@ static void on_connect(void* acp, grpc_error_handle error) {
101
101
  BOOL wsa_success =
102
102
  WSAGetOverlappedResult(socket->socket, &socket->write_info.overlapped,
103
103
  &transferred_bytes, FALSE, &flags);
104
- CHECK_EQ(transferred_bytes, 0);
104
+ GRPC_CHECK_EQ(transferred_bytes, 0);
105
105
  if (!wsa_success) {
106
106
  error = GRPC_WSA_ERROR(WSAGetLastError(), "ConnectEx");
107
107
  closesocket(socket->socket);
@@ -242,7 +242,7 @@ static int64_t tcp_connect(grpc_closure* on_done, grpc_endpoint** endpoint,
242
242
  return 0;
243
243
 
244
244
  failure:
245
- CHECK(!error.ok());
245
+ GRPC_CHECK(!error.ok());
246
246
  grpc_error_handle final_error =
247
247
  GRPC_ERROR_CREATE_REFERENCING("Failed to connect", &error, 1);
248
248
  if (socket != NULL) {