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
@@ -27,12 +27,12 @@
27
27
  #include <string>
28
28
 
29
29
  #include "absl/base/thread_annotations.h"
30
- #include "absl/log/check.h"
31
30
  #include "absl/status/statusor.h"
32
31
  #include "absl/strings/string_view.h"
33
32
  #include "src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h"
34
33
  #include "src/core/credentials/transport/tls/spiffe_utils.h"
35
34
  #include "src/core/credentials/transport/tls/ssl_utils.h"
35
+ #include "src/core/util/grpc_check.h"
36
36
  #include "src/core/util/ref_counted.h"
37
37
  #include "src/core/util/ref_counted_ptr.h"
38
38
  #include "src/core/util/sync.h"
@@ -64,7 +64,7 @@ struct grpc_tls_certificate_provider
64
64
  // be reused when two different `grpc_tls_certificate_provider` objects are
65
65
  // used but they compare as equal (assuming other channel args match).
66
66
  int Compare(const grpc_tls_certificate_provider* other) const {
67
- CHECK_NE(other, nullptr);
67
+ GRPC_CHECK_NE(other, nullptr);
68
68
  int r = type().Compare(other->type());
69
69
  if (r != 0) return r;
70
70
  return CompareImpl(other);
@@ -24,11 +24,11 @@
24
24
  #include <string>
25
25
  #include <utility>
26
26
 
27
- #include "absl/log/check.h"
28
27
  #include "absl/strings/string_view.h"
29
28
  #include "src/core/credentials/transport/tls/tls_utils.h"
30
29
  #include "src/core/lib/debug/trace.h"
31
30
  #include "src/core/lib/iomgr/exec_ctx.h"
31
+ #include "src/core/util/grpc_check.h"
32
32
  #include "src/core/util/host_port.h"
33
33
 
34
34
  namespace grpc_core {
@@ -108,7 +108,7 @@ UniqueTypeName NoOpCertificateVerifier::type() const {
108
108
  bool HostNameCertificateVerifier::Verify(
109
109
  grpc_tls_custom_verification_check_request* request,
110
110
  std::function<void(absl::Status)>, absl::Status* sync_status) {
111
- CHECK_NE(request, nullptr);
111
+ GRPC_CHECK_NE(request, nullptr);
112
112
  // Extract the target name, and remove its port.
113
113
  const char* target_name = request->target_name;
114
114
  if (target_name == nullptr) {
@@ -26,8 +26,8 @@
26
26
  #include <map>
27
27
 
28
28
  #include "absl/base/thread_annotations.h"
29
- #include "absl/log/check.h"
30
29
  #include "absl/status/status.h"
30
+ #include "src/core/util/grpc_check.h"
31
31
  #include "src/core/util/ref_counted.h"
32
32
  #include "src/core/util/sync.h"
33
33
  #include "src/core/util/unique_type_name.h"
@@ -57,7 +57,7 @@ struct grpc_tls_certificate_verifier
57
57
  // If this method returns 0, it means that gRPC can treat the two certificate
58
58
  // verifiers as effectively the same.
59
59
  int Compare(const grpc_tls_certificate_verifier* other) const {
60
- CHECK_NE(other, nullptr);
60
+ GRPC_CHECK_NE(other, nullptr);
61
61
  int r = type().Compare(other->type());
62
62
  if (r != 0) return r;
63
63
  return CompareImpl(other);
@@ -23,12 +23,12 @@
23
23
 
24
24
  #include <memory>
25
25
 
26
- #include "absl/log/check.h"
27
26
  #include "absl/log/log.h"
28
27
  #include "src/core/lib/debug/trace.h"
29
28
  #include "src/core/lib/iomgr/exec_ctx.h"
30
29
  #include "src/core/tsi/ssl_transport_security.h"
31
30
  #include "src/core/util/debug_location.h"
31
+ #include "src/core/util/grpc_check.h"
32
32
 
33
33
  /// -- Wrapper APIs declared in grpc_security.h -- *
34
34
 
@@ -39,7 +39,7 @@ grpc_tls_credentials_options* grpc_tls_credentials_options_create() {
39
39
 
40
40
  grpc_tls_credentials_options* grpc_tls_credentials_options_copy(
41
41
  grpc_tls_credentials_options* options) {
42
- CHECK_NE(options, nullptr);
42
+ GRPC_CHECK_NE(options, nullptr);
43
43
  return new grpc_tls_credentials_options(*options);
44
44
  }
45
45
 
@@ -51,21 +51,21 @@ void grpc_tls_credentials_options_destroy(
51
51
  void grpc_tls_credentials_options_set_cert_request_type(
52
52
  grpc_tls_credentials_options* options,
53
53
  grpc_ssl_client_certificate_request_type type) {
54
- CHECK_NE(options, nullptr);
54
+ GRPC_CHECK_NE(options, nullptr);
55
55
  options->set_cert_request_type(type);
56
56
  }
57
57
 
58
58
  void grpc_tls_credentials_options_set_verify_server_cert(
59
59
  grpc_tls_credentials_options* options, int verify_server_cert) {
60
- CHECK_NE(options, nullptr);
60
+ GRPC_CHECK_NE(options, nullptr);
61
61
  options->set_verify_server_cert(verify_server_cert);
62
62
  }
63
63
 
64
64
  void grpc_tls_credentials_options_set_certificate_provider(
65
65
  grpc_tls_credentials_options* options,
66
66
  grpc_tls_certificate_provider* provider) {
67
- CHECK_NE(options, nullptr);
68
- CHECK_NE(provider, nullptr);
67
+ GRPC_CHECK_NE(options, nullptr);
68
+ GRPC_CHECK_NE(provider, nullptr);
69
69
  grpc_core::ExecCtx exec_ctx;
70
70
  options->set_certificate_provider(
71
71
  provider->Ref(DEBUG_LOCATION, "set_certificate_provider"));
@@ -73,45 +73,45 @@ void grpc_tls_credentials_options_set_certificate_provider(
73
73
 
74
74
  void grpc_tls_credentials_options_watch_root_certs(
75
75
  grpc_tls_credentials_options* options) {
76
- CHECK_NE(options, nullptr);
76
+ GRPC_CHECK_NE(options, nullptr);
77
77
  options->set_watch_root_cert(true);
78
78
  }
79
79
 
80
80
  void grpc_tls_credentials_options_set_root_cert_name(
81
81
  grpc_tls_credentials_options* options, const char* root_cert_name) {
82
- CHECK_NE(options, nullptr);
82
+ GRPC_CHECK_NE(options, nullptr);
83
83
  options->set_root_cert_name(root_cert_name);
84
84
  }
85
85
 
86
86
  void grpc_tls_credentials_options_watch_identity_key_cert_pairs(
87
87
  grpc_tls_credentials_options* options) {
88
- CHECK_NE(options, nullptr);
88
+ GRPC_CHECK_NE(options, nullptr);
89
89
  options->set_watch_identity_pair(true);
90
90
  }
91
91
 
92
92
  void grpc_tls_credentials_options_set_identity_cert_name(
93
93
  grpc_tls_credentials_options* options, const char* identity_cert_name) {
94
- CHECK_NE(options, nullptr);
94
+ GRPC_CHECK_NE(options, nullptr);
95
95
  options->set_identity_cert_name(identity_cert_name);
96
96
  }
97
97
 
98
98
  void grpc_tls_credentials_options_set_certificate_verifier(
99
99
  grpc_tls_credentials_options* options,
100
100
  grpc_tls_certificate_verifier* verifier) {
101
- CHECK_NE(options, nullptr);
102
- CHECK_NE(verifier, nullptr);
101
+ GRPC_CHECK_NE(options, nullptr);
102
+ GRPC_CHECK_NE(verifier, nullptr);
103
103
  options->set_certificate_verifier(verifier->Ref());
104
104
  }
105
105
 
106
106
  void grpc_tls_credentials_options_set_crl_directory(
107
107
  grpc_tls_credentials_options* options, const char* crl_directory) {
108
- CHECK_NE(options, nullptr);
108
+ GRPC_CHECK_NE(options, nullptr);
109
109
  options->set_crl_directory(crl_directory);
110
110
  }
111
111
 
112
112
  void grpc_tls_credentials_options_set_check_call_host(
113
113
  grpc_tls_credentials_options* options, int check_call_host) {
114
- CHECK_NE(options, nullptr);
114
+ GRPC_CHECK_NE(options, nullptr);
115
115
  options->set_check_call_host(check_call_host);
116
116
  }
117
117
 
@@ -144,18 +144,18 @@ void grpc_tls_credentials_options_set_send_client_ca_list(
144
144
  void grpc_tls_credentials_options_set_crl_provider(
145
145
  grpc_tls_credentials_options* options,
146
146
  std::shared_ptr<grpc_core::experimental::CrlProvider> provider) {
147
- CHECK_NE(options, nullptr);
147
+ GRPC_CHECK_NE(options, nullptr);
148
148
  options->set_crl_provider(provider);
149
149
  }
150
150
 
151
151
  void grpc_tls_credentials_options_set_min_tls_version(
152
152
  grpc_tls_credentials_options* options, grpc_tls_version min_tls_version) {
153
- CHECK_NE(options, nullptr);
153
+ GRPC_CHECK_NE(options, nullptr);
154
154
  options->set_min_tls_version(min_tls_version);
155
155
  }
156
156
 
157
157
  void grpc_tls_credentials_options_set_max_tls_version(
158
158
  grpc_tls_credentials_options* options, grpc_tls_version max_tls_version) {
159
- CHECK_NE(options, nullptr);
159
+ GRPC_CHECK_NE(options, nullptr);
160
160
  options->set_max_tls_version(max_tls_version);
161
161
  }
@@ -33,7 +33,6 @@
33
33
  #include <utility>
34
34
  #include <vector>
35
35
 
36
- #include "absl/log/check.h"
37
36
  #include "absl/log/log.h"
38
37
  #include "absl/strings/match.h"
39
38
  #include "absl/strings/str_cat.h"
@@ -45,6 +44,7 @@
45
44
  #include "src/core/transport/auth_context.h"
46
45
  #include "src/core/tsi/ssl_transport_security.h"
47
46
  #include "src/core/tsi/transport_security.h"
47
+ #include "src/core/util/grpc_check.h"
48
48
  #include "src/core/util/host_port.h"
49
49
  #include "src/core/util/load_file.h"
50
50
  #include "src/core/util/ref_counted_ptr.h"
@@ -190,7 +190,7 @@ absl::Status SslCheckCallHost(absl::string_view host,
190
190
  } // namespace grpc_core
191
191
 
192
192
  const char** grpc_fill_alpn_protocol_strings(size_t* num_alpn_protocols) {
193
- CHECK_NE(num_alpn_protocols, nullptr);
193
+ GRPC_CHECK_NE(num_alpn_protocols, nullptr);
194
194
  *num_alpn_protocols = grpc_chttp2_num_alpn_versions();
195
195
  const char** alpn_protocol_strings = static_cast<const char**>(
196
196
  gpr_malloc(sizeof(const char*) * (*num_alpn_protocols)));
@@ -202,7 +202,7 @@ const char** grpc_fill_alpn_protocol_strings(size_t* num_alpn_protocols) {
202
202
 
203
203
  const char** ParseAlpnStringIntoArray(absl::string_view preferred_protocols_raw,
204
204
  size_t* num_alpn_protocols) {
205
- CHECK_NE(num_alpn_protocols, nullptr);
205
+ GRPC_CHECK_NE(num_alpn_protocols, nullptr);
206
206
  std::vector<std::string> preferred_protocols;
207
207
  preferred_protocols =
208
208
  absl::StrSplit(preferred_protocols_raw, ',', absl::SkipWhitespace());
@@ -271,7 +271,7 @@ grpc_core::RefCountedPtr<grpc_auth_context> grpc_ssl_peer_to_auth_context(
271
271
  const char* peer_identity_property_name = nullptr;
272
272
 
273
273
  // The caller has checked the certificate type property.
274
- CHECK_GE(peer->property_count, 1u);
274
+ GRPC_CHECK_GE(peer->property_count, 1u);
275
275
  grpc_core::RefCountedPtr<grpc_auth_context> ctx =
276
276
  grpc_core::MakeRefCounted<grpc_auth_context>(nullptr);
277
277
  grpc_auth_context_add_cstring_property(
@@ -338,14 +338,14 @@ grpc_core::RefCountedPtr<grpc_auth_context> grpc_ssl_peer_to_auth_context(
338
338
  }
339
339
  }
340
340
  if (peer_identity_property_name != nullptr) {
341
- CHECK(grpc_auth_context_set_peer_identity_property_name(
342
- ctx.get(), peer_identity_property_name) == 1);
341
+ GRPC_CHECK(grpc_auth_context_set_peer_identity_property_name(
342
+ ctx.get(), peer_identity_property_name) == 1);
343
343
  }
344
344
  // A valid SPIFFE certificate can only have exact one URI SAN field.
345
345
  if (has_spiffe_id) {
346
346
  if (uri_count == 1) {
347
- CHECK_GT(spiffe_length, 0u);
348
- CHECK_NE(spiffe_data, nullptr);
347
+ GRPC_CHECK_GT(spiffe_length, 0u);
348
+ GRPC_CHECK_NE(spiffe_data, nullptr);
349
349
  grpc_auth_context_add_property(ctx.get(),
350
350
  GRPC_PEER_SPIFFE_ID_PROPERTY_NAME,
351
351
  spiffe_data, spiffe_length);
@@ -600,13 +600,18 @@ grpc_slice DefaultSslRootStore::ComputePemRootCerts() {
600
600
  result = std::move(*slice);
601
601
  }
602
602
  }
603
+ // Try loading roots from OS trust store if preferred over callback.
604
+ if (result.empty() &&
605
+ ConfigVars::Get().UseSystemRootsOverLanguageCallback()) {
606
+ result = Slice(LoadSystemRootCerts());
607
+ }
603
608
  // Try overridden roots if needed.
604
609
  grpc_ssl_roots_override_result ovrd_res = GRPC_SSL_ROOTS_OVERRIDE_FAIL;
605
610
  if (result.empty() && ssl_roots_override_cb != nullptr) {
606
611
  char* pem_root_certs = nullptr;
607
612
  ovrd_res = ssl_roots_override_cb(&pem_root_certs);
608
613
  if (ovrd_res == GRPC_SSL_ROOTS_OVERRIDE_OK) {
609
- CHECK_NE(pem_root_certs, nullptr);
614
+ GRPC_CHECK_NE(pem_root_certs, nullptr);
610
615
  result = Slice::FromCopiedBuffer(
611
616
  pem_root_certs,
612
617
  strlen(pem_root_certs) + 1); // nullptr terminator.
@@ -154,7 +154,7 @@ grpc_core::UniqueTypeName TlsServerCredentials::Type() {
154
154
  grpc_channel_credentials* grpc_tls_credentials_create(
155
155
  grpc_tls_credentials_options* options) {
156
156
  if (!CredentialOptionSanityCheck(options, true /* is_client */)) {
157
- LOG(ERROR) << "TLS credentials options sanity check failed.";
157
+ VLOG(1) << "TLS credentials options sanity check failed.";
158
158
  return nullptr;
159
159
  }
160
160
  return new TlsCredentials(
@@ -164,7 +164,7 @@ grpc_channel_credentials* grpc_tls_credentials_create(
164
164
  grpc_server_credentials* grpc_tls_server_credentials_create(
165
165
  grpc_tls_credentials_options* options) {
166
166
  if (!CredentialOptionSanityCheck(options, false /* is_client */)) {
167
- LOG(ERROR) << "TLS server credentials options sanity check failed.";
167
+ VLOG(1) << "TLS server credentials options sanity check failed.";
168
168
  return nullptr;
169
169
  }
170
170
  return new TlsServerCredentials(
@@ -30,7 +30,6 @@
30
30
  #include <vector>
31
31
 
32
32
  #include "absl/functional/bind_front.h"
33
- #include "absl/log/check.h"
34
33
  #include "absl/log/log.h"
35
34
  #include "absl/strings/str_cat.h"
36
35
  #include "absl/strings/string_view.h"
@@ -45,6 +44,7 @@
45
44
  #include "src/core/transport/auth_context.h"
46
45
  #include "src/core/tsi/ssl_transport_security.h"
47
46
  #include "src/core/util/debug_location.h"
47
+ #include "src/core/util/grpc_check.h"
48
48
  #include "src/core/util/host_port.h"
49
49
  #include "src/core/util/status_helper.h"
50
50
 
@@ -62,7 +62,7 @@ char* CopyCoreString(char* src, size_t length) {
62
62
  void PendingVerifierRequestInit(
63
63
  const char* target_name, tsi_peer peer,
64
64
  grpc_tls_custom_verification_check_request* request) {
65
- CHECK_NE(request, nullptr);
65
+ GRPC_CHECK_NE(request, nullptr);
66
66
  // The verifier holds a ref to the security connector, so it's fine to
67
67
  // directly point this to the name cached in the security connector.
68
68
  request->target_name = target_name;
@@ -174,7 +174,7 @@ void PendingVerifierRequestInit(
174
174
 
175
175
  void PendingVerifierRequestDestroy(
176
176
  grpc_tls_custom_verification_check_request* request) {
177
- CHECK_NE(request, nullptr);
177
+ GRPC_CHECK_NE(request, nullptr);
178
178
  if (request->peer_info.common_name != nullptr) {
179
179
  gpr_free(const_cast<char*>(request->peer_info.common_name));
180
180
  }
@@ -218,13 +218,13 @@ tsi_ssl_pem_key_cert_pair* ConvertToTsiPemKeyCertPair(
218
218
  tsi_ssl_pem_key_cert_pair* tsi_pairs = nullptr;
219
219
  size_t num_key_cert_pairs = cert_pair_list.size();
220
220
  if (num_key_cert_pairs > 0) {
221
- CHECK_NE(cert_pair_list.data(), nullptr);
221
+ GRPC_CHECK_NE(cert_pair_list.data(), nullptr);
222
222
  tsi_pairs = static_cast<tsi_ssl_pem_key_cert_pair*>(
223
223
  gpr_zalloc(num_key_cert_pairs * sizeof(tsi_ssl_pem_key_cert_pair)));
224
224
  }
225
225
  for (size_t i = 0; i < num_key_cert_pairs; i++) {
226
- CHECK(!cert_pair_list[i].private_key().empty());
227
- CHECK(!cert_pair_list[i].cert_chain().empty());
226
+ GRPC_CHECK(!cert_pair_list[i].private_key().empty());
227
+ GRPC_CHECK(!cert_pair_list[i].cert_chain().empty());
228
228
  tsi_pairs[i].cert_chain =
229
229
  gpr_strdup(cert_pair_list[i].cert_chain().c_str());
230
230
  tsi_pairs[i].private_key =
@@ -373,7 +373,7 @@ void TlsChannelSecurityConnector::check_peer(
373
373
  }
374
374
  *auth_context =
375
375
  grpc_ssl_peer_to_auth_context(&peer, GRPC_TLS_TRANSPORT_SECURITY_TYPE);
376
- CHECK_NE(options_->certificate_verifier(), nullptr);
376
+ GRPC_CHECK_NE(options_->certificate_verifier(), nullptr);
377
377
  auto* pending_request = new ChannelPendingVerifierRequest(
378
378
  RefAsSubclass<TlsChannelSecurityConnector>(), on_peer_checked, peer,
379
379
  target_name);
@@ -431,7 +431,7 @@ ArenaPromise<absl::Status> TlsChannelSecurityConnector::CheckCallHost(
431
431
  void TlsChannelSecurityConnector::TlsChannelCertificateWatcher::
432
432
  OnCertificatesChanged(std::shared_ptr<RootCertInfo> root_certs,
433
433
  std::optional<PemKeyCertPairList> key_cert_pairs) {
434
- CHECK_NE(security_connector_, nullptr);
434
+ GRPC_CHECK_NE(security_connector_, nullptr);
435
435
  MutexLock lock(&security_connector_->mu_);
436
436
  if (root_certs != nullptr) {
437
437
  security_connector_->root_cert_info_ = std::move(root_certs);
@@ -683,7 +683,7 @@ int TlsServerSecurityConnector::cmp(
683
683
  void TlsServerSecurityConnector::TlsServerCertificateWatcher::
684
684
  OnCertificatesChanged(std::shared_ptr<RootCertInfo> roots,
685
685
  std::optional<PemKeyCertPairList> key_cert_pairs) {
686
- CHECK_NE(security_connector_, nullptr);
686
+ GRPC_CHECK_NE(security_connector_, nullptr);
687
687
  MutexLock lock(&security_connector_->mu_);
688
688
  if (roots != nullptr) {
689
689
  security_connector_->root_cert_info_ = std::move(roots);
@@ -780,8 +780,8 @@ TlsServerSecurityConnector::UpdateHandshakerFactoryLocked() {
780
780
  tsi_ssl_server_handshaker_factory_unref(server_handshaker_factory_);
781
781
  }
782
782
  // The identity certs on the server side shouldn't be empty.
783
- CHECK(pem_key_cert_pair_list_.has_value());
784
- CHECK(!(*pem_key_cert_pair_list_).empty());
783
+ GRPC_CHECK(pem_key_cert_pair_list_.has_value());
784
+ GRPC_CHECK(!(*pem_key_cert_pair_list_).empty());
785
785
  tsi_ssl_pem_key_cert_pair* pem_key_cert_pairs = nullptr;
786
786
  pem_key_cert_pairs = ConvertToTsiPemKeyCertPair(*pem_key_cert_pair_list_);
787
787
  size_t num_key_cert_pairs = (*pem_key_cert_pair_list_).size();
@@ -20,11 +20,11 @@
20
20
  #include <stdint.h>
21
21
  #include <string.h>
22
22
 
23
- #include "absl/log/check.h"
24
23
  #include "absl/log/log.h"
25
24
  #include "src/core/lib/channel/channel_args.h"
26
25
  #include "src/core/lib/debug/trace.h"
27
26
  #include "src/core/lib/iomgr/exec_ctx.h"
27
+ #include "src/core/util/grpc_check.h"
28
28
  #include "src/core/util/useful.h"
29
29
 
30
30
  // -- Common. --
@@ -110,7 +110,7 @@ void grpc_server_credentials::set_auth_metadata_processor(
110
110
 
111
111
  void grpc_server_credentials_set_auth_metadata_processor(
112
112
  grpc_server_credentials* creds, grpc_auth_metadata_processor processor) {
113
- DCHECK_NE(creds, nullptr);
113
+ GRPC_DCHECK_NE(creds, nullptr);
114
114
  creds->set_auth_metadata_processor(processor);
115
115
  }
116
116
 
@@ -28,7 +28,6 @@
28
28
  #include <utility>
29
29
  #include <vector>
30
30
 
31
- #include "absl/log/check.h"
32
31
  #include "absl/status/statusor.h"
33
32
  #include "absl/strings/string_view.h"
34
33
  #include "src/core/credentials/call/call_credentials.h"
@@ -38,6 +37,7 @@
38
37
  #include "src/core/lib/slice/slice.h"
39
38
  #include "src/core/lib/transport/transport.h"
40
39
  #include "src/core/util/crash.h"
40
+ #include "src/core/util/grpc_check.h"
41
41
  #include "src/core/util/ref_counted.h"
42
42
  #include "src/core/util/ref_counted_ptr.h"
43
43
  #include "src/core/util/unique_type_name.h"
@@ -96,7 +96,7 @@ struct grpc_channel_credentials
96
96
  // two different `grpc_channel_credentials` objects are used but they compare
97
97
  // as equal (assuming other channel args match).
98
98
  int cmp(const grpc_channel_credentials* other) const {
99
- CHECK_NE(other, nullptr);
99
+ GRPC_CHECK_NE(other, nullptr);
100
100
  int r = type().Compare(other->type());
101
101
  if (r != 0) return r;
102
102
  return cmp_impl(other);
@@ -24,13 +24,13 @@
24
24
 
25
25
  #include <optional>
26
26
 
27
- #include "absl/log/check.h"
28
27
  #include "src/core/credentials/transport/tls/grpc_tls_certificate_provider.h"
29
28
  #include "src/core/credentials/transport/tls/grpc_tls_credentials_options.h"
30
29
  #include "src/core/credentials/transport/tls/tls_credentials.h"
31
30
  #include "src/core/credentials/transport/tls/tls_utils.h"
32
31
  #include "src/core/lib/channel/channel_args.h"
33
32
  #include "src/core/load_balancing/xds/xds_channel_args.h"
33
+ #include "src/core/util/grpc_check.h"
34
34
  #include "src/core/util/useful.h"
35
35
  #include "src/core/xds/grpc/xds_certificate_provider.h"
36
36
 
@@ -79,7 +79,7 @@ XdsCertificateVerifier::XdsCertificateVerifier(
79
79
  bool XdsCertificateVerifier::Verify(
80
80
  grpc_tls_custom_verification_check_request* request,
81
81
  std::function<void(absl::Status)>, absl::Status* sync_status) {
82
- CHECK_NE(request, nullptr);
82
+ GRPC_CHECK_NE(request, nullptr);
83
83
  if (!XdsVerifySubjectAlternativeNames(
84
84
  request->peer_info.san_names.uri_names,
85
85
  request->peer_info.san_names.uri_names_size,
@@ -166,7 +166,7 @@ XdsCredentials::create_security_connector(
166
166
  target_name, args);
167
167
  }
168
168
  }
169
- CHECK(fallback_credentials_ != nullptr);
169
+ GRPC_CHECK(fallback_credentials_ != nullptr);
170
170
  return fallback_credentials_->create_security_connector(std::move(call_creds),
171
171
  target_name, args);
172
172
  }
@@ -217,12 +217,12 @@ UniqueTypeName XdsServerCredentials::Type() {
217
217
 
218
218
  grpc_channel_credentials* grpc_xds_credentials_create(
219
219
  grpc_channel_credentials* fallback_credentials) {
220
- CHECK_NE(fallback_credentials, nullptr);
220
+ GRPC_CHECK_NE(fallback_credentials, nullptr);
221
221
  return new grpc_core::XdsCredentials(fallback_credentials->Ref());
222
222
  }
223
223
 
224
224
  grpc_server_credentials* grpc_xds_server_credentials_create(
225
225
  grpc_server_credentials* fallback_credentials) {
226
- CHECK_NE(fallback_credentials, nullptr);
226
+ GRPC_CHECK_NE(fallback_credentials, nullptr);
227
227
  return new grpc_core::XdsServerCredentials(fallback_credentials->Ref());
228
228
  }
@@ -304,8 +304,10 @@ void RegisterLegacyChannelIdleFilters(CoreConfiguration::Builder* builder) {
304
304
  .If([](const ChannelArgs& channel_args) {
305
305
  return GetClientIdleTimeout(channel_args) != Duration::Infinity();
306
306
  });
307
+
307
308
  builder->channel_init()
308
309
  ->RegisterV2Filter<LegacyMaxAgeFilter>(GRPC_SERVER_CHANNEL)
310
+ .FloatToTopIf(IsMaxAgeFilterFloatToTopEnabled())
309
311
  .ExcludeFromMinimalStack()
310
312
  .If([](const ChannelArgs& channel_args) {
311
313
  return LegacyMaxAgeFilter::Config::FromChannelArgs(channel_args)
@@ -20,7 +20,6 @@
20
20
  #include <string>
21
21
  #include <utility>
22
22
 
23
- #include "absl/log/check.h"
24
23
  #include "absl/strings/str_cat.h"
25
24
  #include "src/core/call/security_context.h"
26
25
  #include "src/core/config/core_configuration.h"
@@ -33,6 +32,7 @@
33
32
  #include "src/core/resolver/xds/xds_resolver_attributes.h"
34
33
  #include "src/core/service_config/service_config.h"
35
34
  #include "src/core/service_config/service_config_call_data.h"
35
+ #include "src/core/util/grpc_check.h"
36
36
 
37
37
  namespace grpc_core {
38
38
 
@@ -26,7 +26,6 @@
26
26
  #include <optional>
27
27
  #include <utility>
28
28
 
29
- #include "absl/log/check.h"
30
29
  #include "absl/status/status.h"
31
30
  #include "absl/strings/str_cat.h"
32
31
  #include "absl/strings/str_format.h"
@@ -48,6 +47,7 @@
48
47
  #include "src/core/lib/surface/call.h"
49
48
  #include "src/core/lib/transport/transport.h"
50
49
  #include "src/core/telemetry/call_tracer.h"
50
+ #include "src/core/util/grpc_check.h"
51
51
  #include "src/core/util/latent_see.h"
52
52
 
53
53
  namespace grpc_core {
@@ -102,7 +102,7 @@ ChannelCompression::ChannelCompression(const ChannelArgs& args)
102
102
 
103
103
  MessageHandle ChannelCompression::CompressMessage(
104
104
  MessageHandle message, grpc_compression_algorithm algorithm,
105
- CallTracerInterface* call_tracer) const {
105
+ CallTracer* call_tracer) const {
106
106
  GRPC_TRACE_LOG(compression, INFO)
107
107
  << "CompressMessage: len=" << message->payload()->Length()
108
108
  << " alg=" << algorithm << " flags=" << message->flags();
@@ -131,7 +131,7 @@ MessageHandle ChannelCompression::CompressMessage(
131
131
  const size_t after_size = tmp.Length();
132
132
  const float savings_ratio = 1.0f - (static_cast<float>(after_size) /
133
133
  static_cast<float>(before_size));
134
- CHECK(grpc_compression_algorithm_name(algorithm, &algo_name));
134
+ GRPC_CHECK(grpc_compression_algorithm_name(algorithm, &algo_name));
135
135
  LOG(INFO) << absl::StrFormat(
136
136
  "Compressed[%s] %" PRIuPTR " bytes vs. %" PRIuPTR
137
137
  " bytes (%.2f%% savings)",
@@ -145,7 +145,7 @@ MessageHandle ChannelCompression::CompressMessage(
145
145
  } else {
146
146
  if (GRPC_TRACE_FLAG_ENABLED(compression)) {
147
147
  const char* algo_name;
148
- CHECK(grpc_compression_algorithm_name(algorithm, &algo_name));
148
+ GRPC_CHECK(grpc_compression_algorithm_name(algorithm, &algo_name));
149
149
  LOG(INFO) << "Algorithm '" << algo_name
150
150
  << "' enabled but decided not to compress. Input size: "
151
151
  << payload->Length();
@@ -156,7 +156,7 @@ MessageHandle ChannelCompression::CompressMessage(
156
156
 
157
157
  absl::StatusOr<MessageHandle> ChannelCompression::DecompressMessage(
158
158
  bool is_client, MessageHandle message, DecompressArgs args,
159
- CallTracerInterface* call_tracer) const {
159
+ CallTracer* call_tracer) const {
160
160
  GRPC_TRACE_LOG(compression, INFO)
161
161
  << "DecompressMessage: len=" << message->payload()->Length()
162
162
  << " max=" << args.max_recv_message_length.value_or(-1)
@@ -233,7 +233,7 @@ void ClientCompressionFilter::Call::OnClientInitialMetadata(
233
233
  "ClientCompressionFilter::Call::OnClientInitialMetadata");
234
234
  compression_algorithm_ =
235
235
  filter->compression_engine_.HandleOutgoingMetadata(md);
236
- call_tracer_ = MaybeGetContext<CallTracerInterface>();
236
+ call_tracer_ = MaybeGetContext<CallTracer>();
237
237
  }
238
238
 
239
239
  MessageHandle ClientCompressionFilter::Call::OnClientToServerMessage(
@@ -274,7 +274,7 @@ ServerCompressionFilter::Call::OnClientToServerMessage(
274
274
  "ServerCompressionFilter::Call::OnClientToServerMessage");
275
275
  return filter->compression_engine_.DecompressMessage(
276
276
  /*is_client=*/false, std::move(message), decompress_args_,
277
- MaybeGetContext<CallTracerInterface>());
277
+ MaybeGetContext<CallTracer>());
278
278
  }
279
279
 
280
280
  void ServerCompressionFilter::Call::OnServerInitialMetadata(
@@ -291,7 +291,7 @@ MessageHandle ServerCompressionFilter::Call::OnServerToClientMessage(
291
291
  "ServerCompressionFilter::Call::OnServerToClientMessage");
292
292
  return filter->compression_engine_.CompressMessage(
293
293
  std::move(message), compression_algorithm_,
294
- MaybeGetContext<CallTracerInterface>());
294
+ MaybeGetContext<CallTracer>());
295
295
  }
296
296
 
297
297
  } // namespace grpc_core
@@ -87,11 +87,11 @@ class ChannelCompression {
87
87
  // Compress one message synchronously.
88
88
  MessageHandle CompressMessage(MessageHandle message,
89
89
  grpc_compression_algorithm algorithm,
90
- CallTracerInterface* call_tracer) const;
90
+ CallTracer* call_tracer) const;
91
91
  // Decompress one message synchronously.
92
92
  absl::StatusOr<MessageHandle> DecompressMessage(
93
93
  bool is_client, MessageHandle message, DecompressArgs args,
94
- CallTracerInterface* call_tracer) const;
94
+ CallTracer* call_tracer) const;
95
95
 
96
96
  channelz::PropertyList ChannelzProperties() const {
97
97
  return channelz::PropertyList()
@@ -163,7 +163,7 @@ class ClientCompressionFilter final
163
163
  ChannelCompression::DecompressArgs decompress_args_;
164
164
  // TODO(yashykt): Remove call_tracer_ after migration to call v3 stack. (See
165
165
  // https://github.com/grpc/grpc/pull/38729 for more information.)
166
- CallTracerInterface* call_tracer_ = nullptr;
166
+ CallTracer* call_tracer_ = nullptr;
167
167
  };
168
168
 
169
169
  private:
@@ -27,7 +27,6 @@
27
27
  #include <utility>
28
28
  #include <vector>
29
29
 
30
- #include "absl/log/check.h"
31
30
  #include "absl/strings/escaping.h"
32
31
  #include "absl/strings/match.h"
33
32
  #include "absl/strings/str_cat.h"
@@ -49,6 +48,7 @@
49
48
  #include "src/core/resolver/xds/xds_resolver_attributes.h"
50
49
  #include "src/core/service_config/service_config_call_data.h"
51
50
  #include "src/core/util/crash.h"
51
+ #include "src/core/util/grpc_check.h"
52
52
  #include "src/core/util/latent_see.h"
53
53
  #include "src/core/util/time.h"
54
54
 
@@ -134,7 +134,7 @@ absl::string_view GetClusterToUse(
134
134
  // Get cluster assigned by the XdsConfigSelector.
135
135
  auto cluster_attribute =
136
136
  service_config_call_data->GetCallAttribute<XdsClusterAttribute>();
137
- CHECK_NE(cluster_attribute, nullptr);
137
+ GRPC_CHECK_NE(cluster_attribute, nullptr);
138
138
  auto current_cluster = cluster_attribute->cluster();
139
139
  static constexpr absl::string_view kClusterPrefix = "cluster:";
140
140
  // If prefix is not "cluster:", then we can't use cluster override.
@@ -148,7 +148,7 @@ absl::string_view GetClusterToUse(
148
148
  // Use cluster from the cookie if it is configured for the route.
149
149
  auto route_data =
150
150
  service_config_call_data->GetCallAttribute<XdsRouteStateAttribute>();
151
- CHECK_NE(route_data, nullptr);
151
+ GRPC_CHECK_NE(route_data, nullptr);
152
152
  // Cookie cluster was not configured for route - use the one from the
153
153
  // attribute
154
154
  if (!route_data->HasClusterForRoute(cluster_from_cookie)) {
@@ -193,7 +193,7 @@ bool IsConfiguredPath(absl::string_view configured_path,
193
193
  // Check to see if the configured path matches the request path.
194
194
  const Slice* path_slice =
195
195
  client_initial_metadata.get_pointer(HttpPathMetadata());
196
- CHECK_NE(path_slice, nullptr);
196
+ GRPC_CHECK_NE(path_slice, nullptr);
197
197
  absl::string_view path = path_slice->as_string_view();
198
198
  // Matching criteria from
199
199
  // https://www.rfc-editor.org/rfc/rfc6265#section-5.1.4.
@@ -216,13 +216,13 @@ void StatefulSessionFilter::Call::OnClientInitialMetadata(
216
216
  GRPC_LATENT_SEE_SCOPE("StatefulSessionFilter::Call::OnClientInitialMetadata");
217
217
  // Get config.
218
218
  auto* service_config_call_data = GetContext<ServiceConfigCallData>();
219
- CHECK_NE(service_config_call_data, nullptr);
219
+ GRPC_CHECK_NE(service_config_call_data, nullptr);
220
220
  auto* method_params = static_cast<StatefulSessionMethodParsedConfig*>(
221
221
  service_config_call_data->GetMethodParsedConfig(
222
222
  filter->service_config_parser_index_));
223
- CHECK_NE(method_params, nullptr);
223
+ GRPC_CHECK_NE(method_params, nullptr);
224
224
  cookie_config_ = method_params->GetConfig(filter->index_);
225
- CHECK_NE(cookie_config_, nullptr);
225
+ GRPC_CHECK_NE(cookie_config_, nullptr);
226
226
  if (!cookie_config_->name.has_value() ||
227
227
  !IsConfiguredPath(cookie_config_->path, md)) {
228
228
  return;