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
@@ -29,7 +29,6 @@
29
29
  #include <stdlib.h>
30
30
  #include <string.h>
31
31
 
32
- #include "absl/log/check.h"
33
32
  #include "absl/log/log.h"
34
33
  #include "src/core/lib/iomgr/closure.h"
35
34
  #include "src/core/lib/iomgr/exec_ctx.h"
@@ -39,6 +38,7 @@
39
38
  #include "src/core/tsi/alts/handshaker/alts_shared_resource.h"
40
39
  #include "src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h"
41
40
  #include "src/core/util/env.h"
41
+ #include "src/core/util/grpc_check.h"
42
42
  #include "src/core/util/memory.h"
43
43
  #include "src/core/util/sync.h"
44
44
  #include "upb/mem/arena.hpp"
@@ -94,6 +94,7 @@ typedef struct alts_tsi_handshaker_result {
94
94
  grpc_slice serialized_context;
95
95
  // Peer's maximum frame size.
96
96
  size_t max_frame_size;
97
+ std::string record_protocol;
97
98
  std::optional<std::string> negotiated_transport_protocol;
98
99
  } alts_tsi_handshaker_result;
99
100
 
@@ -116,7 +117,7 @@ static tsi_result handshaker_result_extract_peer(
116
117
  LOG(ERROR) << "Failed to construct tsi peer";
117
118
  return ok;
118
119
  }
119
- CHECK_NE(&peer->properties[index], nullptr);
120
+ GRPC_CHECK_NE(&peer->properties[index], nullptr);
120
121
  ok = tsi_construct_string_peer_property_from_cstring(
121
122
  TSI_CERTIFICATE_TYPE_PEER_PROPERTY, TSI_ALTS_CERTIFICATE_TYPE,
122
123
  &peer->properties[index]);
@@ -126,7 +127,7 @@ static tsi_result handshaker_result_extract_peer(
126
127
  return ok;
127
128
  }
128
129
  index++;
129
- CHECK_NE(&peer->properties[index], nullptr);
130
+ GRPC_CHECK_NE(&peer->properties[index], nullptr);
130
131
  ok = tsi_construct_string_peer_property_from_cstring(
131
132
  TSI_ALTS_SERVICE_ACCOUNT_PEER_PROPERTY, result->peer_identity,
132
133
  &peer->properties[index]);
@@ -135,7 +136,7 @@ static tsi_result handshaker_result_extract_peer(
135
136
  LOG(ERROR) << "Failed to set tsi peer property";
136
137
  }
137
138
  index++;
138
- CHECK_NE(&peer->properties[index], nullptr);
139
+ GRPC_CHECK_NE(&peer->properties[index], nullptr);
139
140
  ok = tsi_construct_string_peer_property(
140
141
  TSI_ALTS_RPC_VERSIONS,
141
142
  reinterpret_cast<char*>(GRPC_SLICE_START_PTR(result->rpc_versions)),
@@ -145,7 +146,7 @@ static tsi_result handshaker_result_extract_peer(
145
146
  LOG(ERROR) << "Failed to set tsi peer property";
146
147
  }
147
148
  index++;
148
- CHECK_NE(&peer->properties[index], nullptr);
149
+ GRPC_CHECK_NE(&peer->properties[index], nullptr);
149
150
  ok = tsi_construct_string_peer_property(
150
151
  TSI_ALTS_CONTEXT,
151
152
  reinterpret_cast<char*>(GRPC_SLICE_START_PTR(result->serialized_context)),
@@ -155,18 +156,21 @@ static tsi_result handshaker_result_extract_peer(
155
156
  LOG(ERROR) << "Failed to set tsi peer property";
156
157
  }
157
158
  index++;
158
- CHECK_NE(&peer->properties[index], nullptr);
159
+ GRPC_CHECK_NE(&peer->properties[index], nullptr);
160
+ tsi_security_level security_level =
161
+ result->record_protocol == ALTS_INTEGRITY_ONLY_RECORD_PROTOCOL
162
+ ? TSI_INTEGRITY_ONLY
163
+ : TSI_PRIVACY_AND_INTEGRITY;
159
164
  ok = tsi_construct_string_peer_property_from_cstring(
160
165
  TSI_SECURITY_LEVEL_PEER_PROPERTY,
161
- tsi_security_level_to_string(TSI_PRIVACY_AND_INTEGRITY),
162
- &peer->properties[index]);
166
+ tsi_security_level_to_string(security_level), &peer->properties[index]);
163
167
  if (ok != TSI_OK) {
164
168
  tsi_peer_destruct(peer);
165
169
  LOG(ERROR) << "Failed to set tsi peer property";
166
170
  }
167
171
  if (result->negotiated_transport_protocol.has_value()) {
168
172
  index++;
169
- CHECK_NE(&peer->properties[index], nullptr);
173
+ GRPC_CHECK_NE(&peer->properties[index], nullptr);
170
174
  ok = tsi_construct_string_peer_property_from_cstring(
171
175
  TSI_ALTS_NEGOTIATED_TRANSPORT_PROTOCOL,
172
176
  result->negotiated_transport_protocol.value().c_str(),
@@ -176,7 +180,7 @@ static tsi_result handshaker_result_extract_peer(
176
180
  LOG(ERROR) << "Failed to set tsi peer property";
177
181
  }
178
182
  }
179
- CHECK(++index == peer_properties_count);
183
+ GRPC_CHECK(++index == peer_properties_count);
180
184
  return ok;
181
185
  }
182
186
 
@@ -221,8 +225,9 @@ static tsi_result handshaker_result_create_zero_copy_grpc_protector(
221
225
  kAltsAes128GcmRekeyKeyLength},
222
226
  /*is_rekey=*/true),
223
227
  result->is_client,
224
- /*is_integrity_only=*/false, /*enable_extra_copy=*/false,
225
- max_output_protected_frame_size, protector);
228
+ /*is_integrity_only=*/
229
+ (result->record_protocol == ALTS_INTEGRITY_ONLY_RECORD_PROTOCOL),
230
+ /*enable_extra_copy=*/false, max_output_protected_frame_size, protector);
226
231
  if (ok != TSI_OK) {
227
232
  LOG(ERROR) << "Failed to create zero-copy grpc protector";
228
233
  }
@@ -277,7 +282,7 @@ static void handshaker_result_destroy(tsi_handshaker_result* self) {
277
282
  gpr_free(result->unused_bytes);
278
283
  grpc_core::CSliceUnref(result->rpc_versions);
279
284
  grpc_core::CSliceUnref(result->serialized_context);
280
- gpr_free(result);
285
+ delete result;
281
286
  }
282
287
 
283
288
  static const tsi_handshaker_result_vtable result_vtable = {
@@ -342,9 +347,7 @@ tsi_result alts_tsi_handshaker_result_create(grpc_gcp_HandshakerResp* resp,
342
347
  grpc_gcp_Identity_service_account(local_identity);
343
348
  // We don't check if local service account is empty here
344
349
  // because local identity could be empty in certain situations.
345
- alts_tsi_handshaker_result* sresult =
346
- static_cast<alts_tsi_handshaker_result*>(
347
- gpr_zalloc(sizeof(alts_tsi_handshaker_result)));
350
+ alts_tsi_handshaker_result* sresult = new alts_tsi_handshaker_result();
348
351
  sresult->key_data =
349
352
  static_cast<char*>(gpr_zalloc(kAltsAes128GcmRekeyKeyLength));
350
353
  memcpy(sresult->key_data, key_data.data, kAltsAes128GcmRekeyKeyLength);
@@ -366,6 +369,10 @@ tsi_result alts_tsi_handshaker_result_create(grpc_gcp_HandshakerResp* resp,
366
369
  std::string(transport_protocol.data, transport_protocol.size);
367
370
  }
368
371
  }
372
+
373
+ sresult->record_protocol =
374
+ std::string(record_protocol.data, record_protocol.size);
375
+
369
376
  upb::Arena rpc_versions_arena;
370
377
  bool serialized = grpc_gcp_rpc_protocol_versions_encode(
371
378
  peer_rpc_version, rpc_versions_arena.ptr(), &sresult->rpc_versions);
@@ -377,9 +384,10 @@ tsi_result alts_tsi_handshaker_result_create(grpc_gcp_HandshakerResp* resp,
377
384
  grpc_gcp_AltsContext* context = grpc_gcp_AltsContext_new(context_arena.ptr());
378
385
  grpc_gcp_AltsContext_set_application_protocol(context, application_protocol);
379
386
  grpc_gcp_AltsContext_set_record_protocol(context, record_protocol);
380
- // ALTS currently only supports the security level of 2,
381
- // which is "grpc_gcp_INTEGRITY_AND_PRIVACY".
382
- grpc_gcp_AltsContext_set_security_level(context, 2);
387
+ grpc_gcp_AltsContext_set_security_level(
388
+ context, sresult->record_protocol == ALTS_INTEGRITY_ONLY_RECORD_PROTOCOL
389
+ ? TSI_INTEGRITY_ONLY
390
+ : TSI_PRIVACY_AND_INTEGRITY);
383
391
  grpc_gcp_AltsContext_set_peer_service_account(context, peer_service_account);
384
392
  grpc_gcp_AltsContext_set_local_service_account(context,
385
393
  local_service_account);
@@ -456,7 +464,7 @@ static tsi_result alts_tsi_handshaker_continue_handshaker_next(
456
464
  handshaker->handshaker_service_url);
457
465
  handshaker->interested_parties =
458
466
  grpc_alts_get_shared_resource_dedicated()->interested_parties;
459
- CHECK_NE(handshaker->interested_parties, nullptr);
467
+ GRPC_CHECK_NE(handshaker->interested_parties, nullptr);
460
468
  }
461
469
  grpc_iomgr_cb_func grpc_cb = handshaker->channel == nullptr
462
470
  ? on_handshaker_service_resp_recv_dedicated
@@ -479,7 +487,7 @@ static tsi_result alts_tsi_handshaker_continue_handshaker_next(
479
487
  }
480
488
  {
481
489
  grpc_core::MutexLock lock(&handshaker->mu);
482
- CHECK_EQ(handshaker->client, nullptr);
490
+ GRPC_CHECK_EQ(handshaker->client, nullptr);
483
491
  handshaker->client = client;
484
492
  if (handshaker->shutdown) {
485
493
  VLOG(2) << "TSI handshake shutdown";
@@ -491,8 +499,8 @@ static tsi_result alts_tsi_handshaker_continue_handshaker_next(
491
499
  }
492
500
  if (handshaker->channel == nullptr &&
493
501
  handshaker->client_vtable_for_testing == nullptr) {
494
- CHECK(grpc_cq_begin_op(grpc_alts_get_shared_resource_dedicated()->cq,
495
- handshaker->client));
502
+ GRPC_CHECK(grpc_cq_begin_op(grpc_alts_get_shared_resource_dedicated()->cq,
503
+ handshaker->client));
496
504
  }
497
505
  grpc_slice slice = (received_bytes == nullptr || received_bytes_size == 0)
498
506
  ? grpc_empty_slice()
@@ -534,7 +542,7 @@ static void alts_tsi_handshaker_create_channel(
534
542
  alts_tsi_handshaker_continue_handshaker_next_args* next_args =
535
543
  static_cast<alts_tsi_handshaker_continue_handshaker_next_args*>(arg);
536
544
  alts_tsi_handshaker* handshaker = next_args->handshaker;
537
- CHECK_EQ(handshaker->channel, nullptr);
545
+ GRPC_CHECK_EQ(handshaker->channel, nullptr);
538
546
  grpc_channel_credentials* creds = grpc_insecure_credentials_create();
539
547
  // Disable retries so that we quickly get a signal when the
540
548
  // handshake server is not reachable.
@@ -643,7 +651,7 @@ static tsi_result handshaker_next_dedicated(
643
651
  }
644
652
 
645
653
  static void handshaker_shutdown(tsi_handshaker* self) {
646
- CHECK_NE(self, nullptr);
654
+ GRPC_CHECK_NE(self, nullptr);
647
655
  alts_tsi_handshaker* handshaker =
648
656
  reinterpret_cast<alts_tsi_handshaker*>(self);
649
657
  grpc_core::MutexLock lock(&handshaker->mu);
@@ -689,7 +697,7 @@ static const tsi_handshaker_vtable handshaker_vtable_dedicated = {
689
697
  handshaker_shutdown};
690
698
 
691
699
  bool alts_tsi_handshaker_has_shutdown(alts_tsi_handshaker* handshaker) {
692
- CHECK_NE(handshaker, nullptr);
700
+ GRPC_CHECK_NE(handshaker, nullptr);
693
701
  grpc_core::MutexLock lock(&handshaker->mu);
694
702
  return handshaker->shutdown;
695
703
  }
@@ -729,8 +737,8 @@ tsi_result alts_tsi_handshaker_create(
729
737
  void alts_tsi_handshaker_result_set_unused_bytes(tsi_handshaker_result* result,
730
738
  grpc_slice* recv_bytes,
731
739
  size_t bytes_consumed) {
732
- CHECK(recv_bytes != nullptr);
733
- CHECK_NE(result, nullptr);
740
+ GRPC_CHECK(recv_bytes != nullptr);
741
+ GRPC_CHECK_NE(result, nullptr);
734
742
  if (GRPC_SLICE_LENGTH(*recv_bytes) == bytes_consumed) {
735
743
  return;
736
744
  }
@@ -749,19 +757,19 @@ namespace internal {
749
757
 
750
758
  bool alts_tsi_handshaker_get_has_sent_start_message_for_testing(
751
759
  alts_tsi_handshaker* handshaker) {
752
- CHECK_NE(handshaker, nullptr);
760
+ GRPC_CHECK_NE(handshaker, nullptr);
753
761
  return handshaker->has_sent_start_message;
754
762
  }
755
763
 
756
764
  void alts_tsi_handshaker_set_client_vtable_for_testing(
757
765
  alts_tsi_handshaker* handshaker, alts_handshaker_client_vtable* vtable) {
758
- CHECK_NE(handshaker, nullptr);
766
+ GRPC_CHECK_NE(handshaker, nullptr);
759
767
  handshaker->client_vtable_for_testing = vtable;
760
768
  }
761
769
 
762
770
  bool alts_tsi_handshaker_get_is_client_for_testing(
763
771
  alts_tsi_handshaker* handshaker) {
764
- CHECK_NE(handshaker, nullptr);
772
+ GRPC_CHECK_NE(handshaker, nullptr);
765
773
  return handshaker->is_client;
766
774
  }
767
775
 
@@ -21,10 +21,10 @@
21
21
  #include <grpc/byte_buffer_reader.h>
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
- #include "absl/log/check.h"
25
24
  #include "absl/log/log.h"
26
25
  #include "src/core/lib/slice/slice.h"
27
26
  #include "src/core/lib/slice/slice_internal.h"
27
+ #include "src/core/util/grpc_check.h"
28
28
 
29
29
  tsi_result alts_tsi_utils_convert_to_tsi_result(grpc_status_code code) {
30
30
  switch (code) {
@@ -45,8 +45,8 @@ tsi_result alts_tsi_utils_convert_to_tsi_result(grpc_status_code code) {
45
45
 
46
46
  grpc_gcp_HandshakerResp* alts_tsi_utils_deserialize_response(
47
47
  grpc_byte_buffer* resp_buffer, upb_Arena* arena) {
48
- CHECK_NE(resp_buffer, nullptr);
49
- CHECK_NE(arena, nullptr);
48
+ GRPC_CHECK_NE(resp_buffer, nullptr);
49
+ GRPC_CHECK_NE(arena, nullptr);
50
50
  grpc_byte_buffer_reader bbr;
51
51
  grpc_byte_buffer_reader_init(&bbr, resp_buffer);
52
52
  grpc_slice slice = grpc_byte_buffer_reader_readall(&bbr);
@@ -22,13 +22,13 @@
22
22
  #include <grpc/support/port_platform.h>
23
23
  #include <string.h>
24
24
 
25
- #include "absl/log/check.h"
26
25
  #include "absl/log/log.h"
27
26
  #include "src/core/lib/slice/slice.h"
28
27
  #include "src/core/lib/slice/slice_internal.h"
29
28
  #include "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h"
30
29
  #include "src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h"
31
30
  #include "src/core/util/crash.h"
31
+ #include "src/core/util/grpc_check.h"
32
32
 
33
33
  // Main struct for alts_grpc_integrity_only_record_protocol.
34
34
  typedef struct alts_grpc_integrity_only_record_protocol {
@@ -141,14 +141,14 @@ static tsi_result alts_grpc_integrity_only_unprotect(
141
141
  grpc_slice_buffer_reset_and_unref(&rp->header_sb);
142
142
  grpc_slice_buffer_move_first(protected_slices, rp->header_length,
143
143
  &rp->header_sb);
144
- CHECK(rp->header_sb.length == rp->header_length);
144
+ GRPC_CHECK(rp->header_sb.length == rp->header_length);
145
145
  iovec_t header_iovec = alts_grpc_record_protocol_get_header_iovec(rp);
146
146
  // Moves protected slices data to data_sb and leaves the remaining tag.
147
147
  grpc_slice_buffer_reset_and_unref(&integrity_only_record_protocol->data_sb);
148
148
  grpc_slice_buffer_move_first(protected_slices,
149
149
  protected_slices->length - rp->tag_length,
150
150
  &integrity_only_record_protocol->data_sb);
151
- CHECK(protected_slices->length == rp->tag_length);
151
+ GRPC_CHECK(protected_slices->length == rp->tag_length);
152
152
  iovec_t tag_iovec = {nullptr, rp->tag_length};
153
153
  if (protected_slices->count == 1) {
154
154
  tag_iovec.iov_base = GRPC_SLICE_START_PTR(protected_slices->slices[0]);
@@ -22,11 +22,11 @@
22
22
  #include <grpc/support/port_platform.h>
23
23
  #include <string.h>
24
24
 
25
- #include "absl/log/check.h"
26
25
  #include "absl/log/log.h"
27
26
  #include "src/core/lib/iomgr/exec_ctx.h"
28
27
  #include "src/core/lib/slice/slice_internal.h"
29
28
  #include "src/core/util/crash.h"
29
+ #include "src/core/util/grpc_check.h"
30
30
  #include "src/core/util/useful.h"
31
31
 
32
32
  const size_t kInitialIovecBufferSize = 8;
@@ -34,8 +34,8 @@ const size_t kInitialIovecBufferSize = 8;
34
34
  // Makes sure iovec_buf in alts_grpc_record_protocol is large enough.
35
35
  static void ensure_iovec_buf_size(alts_grpc_record_protocol* rp,
36
36
  const grpc_slice_buffer* sb) {
37
- CHECK(rp != nullptr);
38
- CHECK_NE(sb, nullptr);
37
+ GRPC_CHECK(rp != nullptr);
38
+ GRPC_CHECK_NE(sb, nullptr);
39
39
  if (sb->count <= rp->iovec_buf_length) {
40
40
  return;
41
41
  }
@@ -50,8 +50,8 @@ static void ensure_iovec_buf_size(alts_grpc_record_protocol* rp,
50
50
 
51
51
  void alts_grpc_record_protocol_convert_slice_buffer_to_iovec(
52
52
  alts_grpc_record_protocol* rp, const grpc_slice_buffer* sb) {
53
- CHECK(rp != nullptr);
54
- CHECK_NE(sb, nullptr);
53
+ GRPC_CHECK(rp != nullptr);
54
+ GRPC_CHECK_NE(sb, nullptr);
55
55
  ensure_iovec_buf_size(rp, sb);
56
56
  for (size_t i = 0; i < sb->count; i++) {
57
57
  rp->iovec_buf[i].iov_base = GRPC_SLICE_START_PTR(sb->slices[i]);
@@ -61,8 +61,8 @@ void alts_grpc_record_protocol_convert_slice_buffer_to_iovec(
61
61
 
62
62
  void alts_grpc_record_protocol_copy_slice_buffer(const grpc_slice_buffer* src,
63
63
  unsigned char* dst) {
64
- CHECK(src != nullptr);
65
- CHECK_NE(dst, nullptr);
64
+ GRPC_CHECK(src != nullptr);
65
+ GRPC_CHECK_NE(dst, nullptr);
66
66
  for (size_t i = 0; i < src->count; i++) {
67
67
  size_t slice_length = GRPC_SLICE_LENGTH(src->slices[i]);
68
68
  memcpy(dst, GRPC_SLICE_START_PTR(src->slices[i]), slice_length);
@@ -25,7 +25,6 @@
25
25
  #include <memory>
26
26
  #include <utility>
27
27
 
28
- #include "absl/log/check.h"
29
28
  #include "absl/log/log.h"
30
29
  #include "src/core/tsi/alts/crypt/gsec.h"
31
30
  #include "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h"
@@ -33,6 +32,7 @@
33
32
  #include "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h"
34
33
  #include "src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h"
35
34
  #include "src/core/tsi/transport_security_grpc.h"
35
+ #include "src/core/util/grpc_check.h"
36
36
 
37
37
  constexpr size_t kMinFrameLength = 1024;
38
38
  constexpr size_t kDefaultFrameLength = 16 * 1024;
@@ -84,7 +84,7 @@ static bool read_frame_size(const grpc_slice_buffer* sb,
84
84
  remaining -= slice_length;
85
85
  }
86
86
  }
87
- CHECK_EQ(remaining, 0u);
87
+ GRPC_CHECK_EQ(remaining, 0u);
88
88
  // Gets little-endian frame size.
89
89
  uint32_t frame_size = (static_cast<uint32_t>(frame_size_buffer[3]) << 24) |
90
90
  (static_cast<uint32_t>(frame_size_buffer[2]) << 16) |
@@ -300,7 +300,7 @@ tsi_result alts_zero_copy_grpc_protector_create(
300
300
  impl->max_unprotected_data_size =
301
301
  alts_grpc_record_protocol_max_unprotected_data_size(
302
302
  impl->record_protocol, max_protected_frame_size_to_set);
303
- CHECK_GT(impl->max_unprotected_data_size, 0u);
303
+ GRPC_CHECK_GT(impl->max_unprotected_data_size, 0u);
304
304
  // Allocates internal slice buffers.
305
305
  grpc_slice_buffer_init(&impl->unprotected_staging_sb);
306
306
  grpc_slice_buffer_init(&impl->protected_sb);
@@ -23,12 +23,12 @@
23
23
  #include <stdlib.h>
24
24
  #include <string.h>
25
25
 
26
- #include "absl/log/check.h"
27
26
  #include "absl/log/log.h"
28
27
  #include "src/core/lib/slice/slice_internal.h"
29
28
  #include "src/core/tsi/transport_security_grpc.h"
30
29
  #include "src/core/tsi/transport_security_interface.h"
31
30
  #include "src/core/util/crash.h"
31
+ #include "src/core/util/grpc_check.h"
32
32
  #include "src/core/util/memory.h"
33
33
 
34
34
  // --- Constants. ---
@@ -124,8 +124,8 @@ static void store32_little_endian(uint32_t value, unsigned char* buf) {
124
124
  }
125
125
 
126
126
  static uint32_t read_frame_size(const grpc_slice_buffer* sb) {
127
- CHECK(sb != nullptr);
128
- CHECK(sb->length >= TSI_FAKE_FRAME_HEADER_SIZE);
127
+ GRPC_CHECK(sb != nullptr);
128
+ GRPC_CHECK(sb->length >= TSI_FAKE_FRAME_HEADER_SIZE);
129
129
  uint8_t frame_size_buffer[TSI_FAKE_FRAME_HEADER_SIZE];
130
130
  uint8_t* buf = frame_size_buffer;
131
131
  // Copies the first 4 bytes to a temporary buffer.
@@ -142,7 +142,7 @@ static uint32_t read_frame_size(const grpc_slice_buffer* sb) {
142
142
  remaining -= slice_length;
143
143
  }
144
144
  }
145
- CHECK_EQ(remaining, 0u);
145
+ GRPC_CHECK_EQ(remaining, 0u);
146
146
  return load32_little_endian(frame_size_buffer);
147
147
  }
148
148
 
@@ -18,11 +18,11 @@
18
18
 
19
19
  #include <map>
20
20
 
21
- #include "absl/log/check.h"
22
21
  #include "absl/log/log.h"
23
22
  #include "src/core/lib/iomgr/error.h"
24
23
  #include "src/core/lib/slice/slice_internal.h"
25
24
  #include "src/core/util/crash.h"
25
+ #include "src/core/util/grpc_check.h"
26
26
  #include "src/core/util/sync.h"
27
27
 
28
28
  using TlsSessionKeyLogger = tsi::TlsSessionKeyLoggerCache::TlsSessionKeyLogger;
@@ -48,8 +48,8 @@ TlsSessionKeyLoggerCache::TlsSessionKeyLogger::TlsSessionKeyLogger(
48
48
  grpc_core::RefCountedPtr<TlsSessionKeyLoggerCache> cache)
49
49
  : tls_session_key_log_file_path_(std::move(tls_session_key_log_file_path)),
50
50
  cache_(std::move(cache)) {
51
- CHECK(!tls_session_key_log_file_path_.empty());
52
- CHECK(cache_ != nullptr);
51
+ GRPC_CHECK(!tls_session_key_log_file_path_.empty());
52
+ GRPC_CHECK(cache_ != nullptr);
53
53
  fd_ = fopen(tls_session_key_log_file_path_.c_str(), "a");
54
54
  if (fd_ == nullptr) {
55
55
  grpc_error_handle error = GRPC_OS_ERROR(errno, "fopen");
@@ -108,7 +108,7 @@ TlsSessionKeyLoggerCache::~TlsSessionKeyLoggerCache() {
108
108
  grpc_core::RefCountedPtr<TlsSessionKeyLogger> TlsSessionKeyLoggerCache::Get(
109
109
  std::string tls_session_key_log_file_path) {
110
110
  gpr_once_init(&g_cache_mutex_init, do_cache_mutex_init);
111
- DCHECK_NE(g_tls_session_key_log_cache_mu, nullptr);
111
+ GRPC_DCHECK_NE(g_tls_session_key_log_cache_mu, nullptr);
112
112
  if (tls_session_key_log_file_path.empty()) {
113
113
  return nullptr;
114
114
  }
@@ -21,11 +21,11 @@
21
21
  #include <grpc/support/port_platform.h>
22
22
  #include <grpc/support/string_util.h>
23
23
 
24
- #include "absl/log/check.h"
25
24
  #include "absl/log/log.h"
26
25
  #include "src/core/lib/slice/slice_internal.h"
27
26
  #include "src/core/tsi/ssl/session_cache/ssl_session.h"
28
27
  #include "src/core/util/crash.h"
28
+ #include "src/core/util/grpc_check.h"
29
29
  #include "src/core/util/sync.h"
30
30
 
31
31
  namespace tsi {
@@ -112,7 +112,7 @@ void SslSessionLRUCache::Put(const char* key, SslSessionPtr session) {
112
112
  entry_by_key_.emplace(key, node);
113
113
  AssertInvariants();
114
114
  if (use_order_list_size_ > capacity_) {
115
- CHECK(use_order_list_tail_);
115
+ GRPC_CHECK(use_order_list_tail_);
116
116
  node = use_order_list_tail_;
117
117
  Remove(node);
118
118
  // Order matters, key is destroyed after deleting node.
@@ -143,7 +143,7 @@ void SslSessionLRUCache::Remove(SslSessionLRUCache::Node* node) {
143
143
  } else {
144
144
  node->next_->prev_ = node->prev_;
145
145
  }
146
- CHECK_GE(use_order_list_size_, 1u);
146
+ GRPC_CHECK_GE(use_order_list_size_, 1u);
147
147
  use_order_list_size_--;
148
148
  }
149
149
 
@@ -169,16 +169,16 @@ void SslSessionLRUCache::AssertInvariants() {
169
169
  Node* current = use_order_list_head_;
170
170
  while (current != nullptr) {
171
171
  size++;
172
- CHECK(current->prev_ == prev);
172
+ GRPC_CHECK(current->prev_ == prev);
173
173
  auto it = entry_by_key_.find(current->key());
174
- CHECK(it != entry_by_key_.end());
175
- CHECK(it->second == current);
174
+ GRPC_CHECK(it != entry_by_key_.end());
175
+ GRPC_CHECK(it->second == current);
176
176
  prev = current;
177
177
  current = current->next_;
178
178
  }
179
- CHECK(prev == use_order_list_tail_);
180
- CHECK(size == use_order_list_size_);
181
- CHECK(entry_by_key_.size() == use_order_list_size_);
179
+ GRPC_CHECK(prev == use_order_list_tail_);
180
+ GRPC_CHECK(size == use_order_list_size_);
181
+ GRPC_CHECK(entry_by_key_.size() == use_order_list_size_);
182
182
  }
183
183
  #else
184
184
  void SslSessionLRUCache::AssertInvariants() {}
@@ -17,9 +17,9 @@
17
17
  //
18
18
  #include <grpc/support/port_platform.h>
19
19
 
20
- #include "absl/log/check.h"
21
20
  #include "src/core/tsi/ssl/session_cache/ssl_session.h"
22
21
  #include "src/core/util/crash.h"
22
+ #include "src/core/util/grpc_check.h"
23
23
 
24
24
  #ifndef OPENSSL_IS_BORINGSSL
25
25
 
@@ -41,11 +41,11 @@ class OpenSslCachedSession : public SslCachedSession {
41
41
  public:
42
42
  OpenSslCachedSession(SslSessionPtr session) {
43
43
  int size = i2d_SSL_SESSION(session.get(), nullptr);
44
- CHECK_GT(size, 0);
44
+ GRPC_CHECK_GT(size, 0);
45
45
  grpc_slice slice = grpc_slice_malloc(size_t(size));
46
46
  unsigned char* start = GRPC_SLICE_START_PTR(slice);
47
47
  int second_size = i2d_SSL_SESSION(session.get(), &start);
48
- CHECK(size == second_size);
48
+ GRPC_CHECK(size == second_size);
49
49
  serialized_session_ = slice;
50
50
  }
51
51