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 <optional>
30
30
  #include <utility>
31
31
 
32
- #include "absl/log/check.h"
33
32
  #include "absl/log/log.h"
34
33
  #include "absl/status/statusor.h"
35
34
  #include "absl/strings/cord.h"
@@ -64,6 +63,7 @@
64
63
  #include "src/core/util/alloc.h"
65
64
  #include "src/core/util/backoff.h"
66
65
  #include "src/core/util/debug_location.h"
66
+ #include "src/core/util/grpc_check.h"
67
67
  #include "src/core/util/orphanable.h"
68
68
  #include "src/core/util/ref_counted.h"
69
69
  #include "src/core/util/ref_counted_ptr.h"
@@ -282,8 +282,8 @@ grpc_call_stack* SubchannelCall::GetCallStack() {
282
282
  }
283
283
 
284
284
  void SubchannelCall::SetAfterCallStackDestroy(grpc_closure* closure) {
285
- CHECK_EQ(after_call_stack_destroy_, nullptr);
286
- CHECK_NE(closure, nullptr);
285
+ GRPC_CHECK_EQ(after_call_stack_destroy_, nullptr);
286
+ GRPC_CHECK_NE(closure, nullptr);
287
287
  after_call_stack_destroy_ = closure;
288
288
  }
289
289
 
@@ -334,7 +334,7 @@ void SubchannelCall::MaybeInterceptRecvTrailingMetadata(
334
334
  GRPC_CLOSURE_INIT(&recv_trailing_metadata_ready_, RecvTrailingMetadataReady,
335
335
  this, grpc_schedule_on_exec_ctx);
336
336
  // save some state needed for the interception callback.
337
- CHECK_EQ(recv_trailing_metadata_, nullptr);
337
+ GRPC_CHECK_EQ(recv_trailing_metadata_, nullptr);
338
338
  recv_trailing_metadata_ =
339
339
  batch->payload->recv_trailing_metadata.recv_trailing_metadata;
340
340
  original_recv_trailing_metadata_ =
@@ -360,12 +360,12 @@ void GetCallStatus(grpc_status_code* status, Timestamp deadline,
360
360
  void SubchannelCall::RecvTrailingMetadataReady(void* arg,
361
361
  grpc_error_handle error) {
362
362
  SubchannelCall* call = static_cast<SubchannelCall*>(arg);
363
- CHECK_NE(call->recv_trailing_metadata_, nullptr);
363
+ GRPC_CHECK_NE(call->recv_trailing_metadata_, nullptr);
364
364
  grpc_status_code status = GRPC_STATUS_OK;
365
365
  GetCallStatus(&status, call->deadline_, call->recv_trailing_metadata_, error);
366
366
  channelz::SubchannelNode* channelz_node =
367
367
  call->connected_subchannel_->channelz_node();
368
- CHECK_NE(channelz_node, nullptr);
368
+ GRPC_CHECK_NE(channelz_node, nullptr);
369
369
  if (status == GRPC_STATUS_OK) {
370
370
  channelz_node->RecordCallSucceeded();
371
371
  } else {
@@ -585,7 +585,7 @@ RefCountedPtr<Subchannel> Subchannel::Create(
585
585
  const grpc_resolved_address& address, const ChannelArgs& args) {
586
586
  SubchannelKey key(address, args);
587
587
  auto* subchannel_pool = args.GetObject<SubchannelPoolInterface>();
588
- CHECK_NE(subchannel_pool, nullptr);
588
+ GRPC_CHECK_NE(subchannel_pool, nullptr);
589
589
  RefCountedPtr<Subchannel> c = subchannel_pool->FindSubchannel(key);
590
590
  if (c != nullptr) {
591
591
  return c;
@@ -681,7 +681,7 @@ void Subchannel::Orphaned() {
681
681
  subchannel_pool_.reset();
682
682
  }
683
683
  MutexLock lock(&mu_);
684
- CHECK(!shutdown_);
684
+ GRPC_CHECK(!shutdown_);
685
685
  shutdown_ = true;
686
686
  connector_.reset();
687
687
  connected_subchannel_.reset();
@@ -23,13 +23,13 @@
23
23
 
24
24
  #include <utility>
25
25
 
26
- #include "absl/log/check.h"
27
26
  #include "absl/log/log.h"
28
27
  #include "src/core/lib/channel/channel_args.h"
29
28
  #include "src/core/lib/iomgr/exec_ctx.h"
30
29
  #include "src/core/lib/resource_quota/resource_quota.h"
31
30
  #include "src/core/lib/transport/error_utils.h"
32
31
  #include "src/core/util/debug_location.h"
32
+ #include "src/core/util/grpc_check.h"
33
33
  #include "src/core/util/status_helper.h"
34
34
  #include "src/core/util/sync.h"
35
35
  #include "src/core/util/time.h"
@@ -110,7 +110,7 @@ void SubchannelStreamClient::StartCall() {
110
110
 
111
111
  void SubchannelStreamClient::StartCallLocked() {
112
112
  if (event_handler_ == nullptr) return;
113
- CHECK(call_state_ == nullptr);
113
+ GRPC_CHECK(call_state_ == nullptr);
114
114
  if (event_handler_ != nullptr) {
115
115
  event_handler_->OnCallStartLocked(this);
116
116
  }
@@ -222,7 +222,7 @@ void SubchannelStreamClient::CallState::StartCallLocked() {
222
222
  send_initial_metadata_.Set(
223
223
  HttpPathMetadata(),
224
224
  subchannel_stream_client_->event_handler_->GetPathLocked());
225
- CHECK(error.ok());
225
+ GRPC_CHECK(error.ok());
226
226
  payload_.send_initial_metadata.send_initial_metadata =
227
227
  &send_initial_metadata_;
228
228
  batch_.send_initial_metadata = true;
@@ -432,7 +432,7 @@ void SubchannelStreamClient::CallState::CallEndedLocked(bool retry) {
432
432
  if (this == subchannel_stream_client_->call_state_.get()) {
433
433
  subchannel_stream_client_->call_state_.reset();
434
434
  if (retry) {
435
- CHECK(subchannel_stream_client_->event_handler_ != nullptr);
435
+ GRPC_CHECK(subchannel_stream_client_->event_handler_ != nullptr);
436
436
  if (seen_response_.load(std::memory_order_acquire)) {
437
437
  // If the call fails after we've gotten a successful response, reset
438
438
  // the backoff and restart the call immediately.
@@ -70,6 +70,9 @@ ABSL_FLAG(absl::optional<std::string>, grpc_system_ssl_roots_dir, {},
70
70
  "Custom directory to SSL Roots");
71
71
  ABSL_FLAG(absl::optional<std::string>, grpc_default_ssl_roots_file_path, {},
72
72
  "Path to the default SSL roots file.");
73
+ ABSL_FLAG(absl::optional<bool>, grpc_use_system_roots_over_language_callback,
74
+ {},
75
+ "Prefer loading system root certificates over language callback.");
73
76
  ABSL_FLAG(absl::optional<bool>, grpc_not_use_system_ssl_roots, {},
74
77
  "Disable loading system root certificates.");
75
78
  ABSL_FLAG(absl::optional<std::string>, grpc_ssl_cipher_suites, {},
@@ -83,6 +86,14 @@ ABSL_FLAG(
83
86
  "EXPERIMENTAL: If non-zero, extend the lifetime of channelz nodes past the "
84
87
  "underlying object lifetime, up to this many nodes. The value may be "
85
88
  "adjusted slightly to account for implementation limits.");
89
+ ABSL_FLAG(absl::optional<double>, grpc_experimental_target_memory_pressure, {},
90
+ "EXPERIMENTAL: The target pressure for the memory quota pressure "
91
+ "controller. This is a value between 0 and 1.");
92
+ ABSL_FLAG(absl::optional<double>, grpc_experimental_memory_pressure_threshold,
93
+ {},
94
+ "EXPERIMENTAL: The threshold for the memory quota pressure "
95
+ "controller. This is a value between 0 and 1, and must always be "
96
+ "greater than the target pressure.");
86
97
 
87
98
  namespace grpc_core {
88
99
 
@@ -95,12 +106,24 @@ ConfigVars::ConfigVars(const Overrides& overrides)
95
106
  LoadConfig(FLAGS_grpc_channelz_max_orphaned_nodes,
96
107
  "GRPC_CHANNELZ_MAX_ORPHANED_NODES",
97
108
  overrides.channelz_max_orphaned_nodes, 0)),
109
+ experimental_target_memory_pressure_(
110
+ LoadConfig(FLAGS_grpc_experimental_target_memory_pressure,
111
+ "GRPC_EXPERIMENTAL_TARGET_MEMORY_PRESSURE",
112
+ overrides.experimental_target_memory_pressure, 0.95)),
113
+ experimental_memory_pressure_threshold_(
114
+ LoadConfig(FLAGS_grpc_experimental_memory_pressure_threshold,
115
+ "GRPC_EXPERIMENTAL_MEMORY_PRESSURE_THRESHOLD",
116
+ overrides.experimental_memory_pressure_threshold, 0.99)),
98
117
  enable_fork_support_(LoadConfig(
99
118
  FLAGS_grpc_enable_fork_support, "GRPC_ENABLE_FORK_SUPPORT",
100
119
  overrides.enable_fork_support, GRPC_ENABLE_FORK_SUPPORT_DEFAULT)),
101
120
  abort_on_leaks_(LoadConfig(FLAGS_grpc_abort_on_leaks,
102
121
  "GRPC_ABORT_ON_LEAKS",
103
122
  overrides.abort_on_leaks, false)),
123
+ use_system_roots_over_language_callback_(
124
+ LoadConfig(FLAGS_grpc_use_system_roots_over_language_callback,
125
+ "GRPC_USE_SYSTEM_ROOTS_OVER_LANGUAGE_CALLBACK",
126
+ overrides.use_system_roots_over_language_callback, false)),
104
127
  not_use_system_ssl_roots_(LoadConfig(
105
128
  FLAGS_grpc_not_use_system_ssl_roots, "GRPC_NOT_USE_SYSTEM_SSL_ROOTS",
106
129
  overrides.not_use_system_ssl_roots, false)),
@@ -154,11 +177,17 @@ std::string ConfigVars::ToString() const {
154
177
  ", system_ssl_roots_dir: ", "\"", absl::CEscape(SystemSslRootsDir()),
155
178
  "\"", ", default_ssl_roots_file_path: ", "\"",
156
179
  absl::CEscape(DefaultSslRootsFilePath()), "\"",
180
+ ", use_system_roots_over_language_callback: ",
181
+ UseSystemRootsOverLanguageCallback() ? "true" : "false",
157
182
  ", not_use_system_ssl_roots: ", NotUseSystemSslRoots() ? "true" : "false",
158
183
  ", ssl_cipher_suites: ", "\"", absl::CEscape(SslCipherSuites()), "\"",
159
184
  ", cpp_experimental_disable_reflection: ",
160
185
  CppExperimentalDisableReflection() ? "true" : "false",
161
- ", channelz_max_orphaned_nodes: ", ChannelzMaxOrphanedNodes());
186
+ ", channelz_max_orphaned_nodes: ", ChannelzMaxOrphanedNodes(),
187
+ ", experimental_target_memory_pressure: ",
188
+ ExperimentalTargetMemoryPressure(),
189
+ ", experimental_memory_pressure_threshold: ",
190
+ ExperimentalMemoryPressureThreshold());
162
191
  }
163
192
 
164
193
  } // namespace grpc_core
@@ -36,8 +36,11 @@ class GPR_DLL ConfigVars {
36
36
  struct Overrides {
37
37
  absl::optional<int32_t> client_channel_backup_poll_interval_ms;
38
38
  absl::optional<int32_t> channelz_max_orphaned_nodes;
39
+ absl::optional<double> experimental_target_memory_pressure;
40
+ absl::optional<double> experimental_memory_pressure_threshold;
39
41
  absl::optional<bool> enable_fork_support;
40
42
  absl::optional<bool> abort_on_leaks;
43
+ absl::optional<bool> use_system_roots_over_language_callback;
41
44
  absl::optional<bool> not_use_system_ssl_roots;
42
45
  absl::optional<bool> cpp_experimental_disable_reflection;
43
46
  absl::optional<std::string> dns_resolver;
@@ -95,6 +98,10 @@ class GPR_DLL ConfigVars {
95
98
  std::string SystemSslRootsDir() const;
96
99
  // Path to the default SSL roots file.
97
100
  std::string DefaultSslRootsFilePath() const;
101
+ // Prefer loading system root certificates over language callback.
102
+ bool UseSystemRootsOverLanguageCallback() const {
103
+ return use_system_roots_over_language_callback_;
104
+ }
98
105
  // Disable loading system root certificates.
99
106
  bool NotUseSystemSslRoots() const { return not_use_system_ssl_roots_; }
100
107
  // A colon separated list of cipher suites to use with OpenSSL
@@ -111,6 +118,17 @@ class GPR_DLL ConfigVars {
111
118
  int32_t ChannelzMaxOrphanedNodes() const {
112
119
  return channelz_max_orphaned_nodes_;
113
120
  }
121
+ // EXPERIMENTAL: The target pressure for the memory quota pressure controller.
122
+ // This is a value between 0 and 1.
123
+ double ExperimentalTargetMemoryPressure() const {
124
+ return experimental_target_memory_pressure_;
125
+ }
126
+ // EXPERIMENTAL: The threshold for the memory quota pressure controller. This
127
+ // is a value between 0 and 1, and must always be greater than the target
128
+ // pressure.
129
+ double ExperimentalMemoryPressureThreshold() const {
130
+ return experimental_memory_pressure_threshold_;
131
+ }
114
132
 
115
133
  private:
116
134
  explicit ConfigVars(const Overrides& overrides);
@@ -118,8 +136,11 @@ class GPR_DLL ConfigVars {
118
136
  static std::atomic<ConfigVars*> config_vars_;
119
137
  int32_t client_channel_backup_poll_interval_ms_;
120
138
  int32_t channelz_max_orphaned_nodes_;
139
+ double experimental_target_memory_pressure_;
140
+ double experimental_memory_pressure_threshold_;
121
141
  bool enable_fork_support_;
122
142
  bool abort_on_leaks_;
143
+ bool use_system_roots_over_language_callback_;
123
144
  bool not_use_system_ssl_roots_;
124
145
  bool cpp_experimental_disable_reflection_;
125
146
  std::string dns_resolver_;
@@ -20,7 +20,7 @@
20
20
  #include <utility>
21
21
  #include <vector>
22
22
 
23
- #include "absl/log/check.h"
23
+ #include "src/core/util/grpc_check.h"
24
24
 
25
25
  namespace grpc_core {
26
26
 
@@ -58,15 +58,15 @@ CoreConfiguration::CoreConfiguration(Builder* builder)
58
58
  void CoreConfiguration::RegisterBuilder(
59
59
  BuilderScope scope, absl::AnyInvocable<void(Builder*)> builder,
60
60
  SourceLocation whence) {
61
- CHECK(config_.load(std::memory_order_relaxed) == nullptr)
61
+ GRPC_CHECK(config_.load(std::memory_order_relaxed) == nullptr)
62
62
  << "CoreConfiguration was already instantiated before builder "
63
63
  "registration was completed";
64
64
  if (scope == BuilderScope::kPersistent) {
65
- CHECK(!has_config_ever_been_produced_.load(std::memory_order_relaxed))
65
+ GRPC_CHECK(!has_config_ever_been_produced_.load(std::memory_order_relaxed))
66
66
  << "Persistent builders cannot be registered after the first "
67
67
  "CoreConfiguration has been produced";
68
68
  }
69
- CHECK_NE(scope, BuilderScope::kCount);
69
+ GRPC_CHECK_NE(scope, BuilderScope::kCount);
70
70
  auto& head = builders_[static_cast<size_t>(scope)];
71
71
  RegisteredBuilder* n = new RegisteredBuilder();
72
72
  VLOG(4) << "Registering " << scope << " builder from " << whence.file() << ":"
@@ -77,7 +77,7 @@ void CoreConfiguration::RegisterBuilder(
77
77
  while (!head.compare_exchange_weak(n->next, n, std::memory_order_acq_rel,
78
78
  std::memory_order_relaxed)) {
79
79
  }
80
- CHECK(config_.load(std::memory_order_relaxed) == nullptr)
80
+ GRPC_CHECK(config_.load(std::memory_order_relaxed) == nullptr)
81
81
  << "CoreConfiguration was already instantiated before builder "
82
82
  "registration was completed";
83
83
  }
@@ -21,7 +21,6 @@
21
21
  #include <atomic>
22
22
 
23
23
  #include "absl/functional/any_invocable.h"
24
- #include "absl/log/check.h"
25
24
  #include "src/core/credentials/call/call_creds_registry.h"
26
25
  #include "src/core/credentials/transport/channel_creds_registry.h"
27
26
  #include "src/core/credentials/transport/tls/certificate_provider_registry.h"
@@ -35,6 +34,7 @@
35
34
  #include "src/core/transport/auth_context_comparator_registry.h"
36
35
  #include "src/core/transport/endpoint_transport.h"
37
36
  #include "src/core/util/debug_location.h"
37
+ #include "src/core/util/grpc_check.h"
38
38
 
39
39
  namespace grpc_core {
40
40
 
@@ -172,12 +172,12 @@ class GRPC_DLL CoreConfiguration {
172
172
  ~WithSubstituteBuilder() {
173
173
  // Reset and restore.
174
174
  Reset();
175
- CHECK(CoreConfiguration::config_.exchange(
176
- config_restore_, std::memory_order_acquire) == nullptr);
177
- CHECK(CoreConfiguration::builders_[static_cast<size_t>(
178
- BuilderScope::kEphemeral)]
179
- .exchange(builders_restore_, std::memory_order_acquire) ==
180
- nullptr);
175
+ GRPC_CHECK(CoreConfiguration::config_.exchange(
176
+ config_restore_, std::memory_order_acquire) == nullptr);
177
+ GRPC_CHECK(CoreConfiguration::builders_[static_cast<size_t>(
178
+ BuilderScope::kEphemeral)]
179
+ .exchange(builders_restore_, std::memory_order_acquire) ==
180
+ nullptr);
181
181
  }
182
182
 
183
183
  private:
@@ -51,6 +51,18 @@ int32_t LoadConfigFromEnv(absl::string_view environment_variable,
51
51
  return default_value;
52
52
  }
53
53
 
54
+ double LoadConfigFromEnv(absl::string_view environment_variable,
55
+ double default_value) {
56
+ auto env = LoadEnv(environment_variable);
57
+ if (env.has_value()) {
58
+ double out;
59
+ if (absl::SimpleAtod(*env, &out)) return out;
60
+ fprintf(stderr, "Error reading double from %s: '%s' is not a double",
61
+ std::string(environment_variable).c_str(), env->c_str());
62
+ }
63
+ return default_value;
64
+ }
65
+
54
66
  bool LoadConfigFromEnv(absl::string_view environment_variable,
55
67
  bool default_value) {
56
68
  auto env = LoadEnv(environment_variable);
@@ -33,6 +33,8 @@ int32_t LoadConfigFromEnv(absl::string_view environment_variable,
33
33
  int32_t default_value);
34
34
  bool LoadConfigFromEnv(absl::string_view environment_variable,
35
35
  bool default_value);
36
+ double LoadConfigFromEnv(absl::string_view environment_variable,
37
+ double default_value);
36
38
 
37
39
  template <typename T, typename D>
38
40
  T LoadConfig(const absl::Flag<absl::optional<T>>& flag,
@@ -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/transport/security_connector.h"
@@ -38,6 +37,7 @@
38
37
  #include "src/core/lib/transport/transport.h"
39
38
  #include "src/core/transport/auth_context.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"
@@ -130,7 +130,7 @@ struct grpc_call_credentials
130
130
  // If this method returns 0, it means that gRPC can treat the two call
131
131
  // credentials as effectively the same..
132
132
  int cmp(const grpc_call_credentials* other) const {
133
- CHECK_NE(other, nullptr);
133
+ GRPC_CHECK_NE(other, nullptr);
134
134
  int r = type().Compare(other->type());
135
135
  if (r != 0) return r;
136
136
  return cmp_impl(other);
@@ -20,13 +20,13 @@
20
20
  #include <grpc/support/string_util.h>
21
21
  #include <string.h>
22
22
 
23
- #include "absl/log/check.h"
24
23
  #include "absl/log/log.h"
25
24
  #include "absl/strings/str_cat.h"
26
25
  #include "absl/strings/string_view.h"
27
26
  #include "src/core/call/metadata_batch.h"
28
27
  #include "src/core/credentials/transport/security_connector.h"
29
28
  #include "src/core/transport/auth_context.h"
29
+ #include "src/core/util/grpc_check.h"
30
30
  #include "src/core/util/ref_counted_ptr.h"
31
31
 
32
32
  namespace grpc_core {
@@ -41,7 +41,7 @@ struct ServiceUrlAndMethod {
41
41
  ServiceUrlAndMethod MakeServiceUrlAndMethod(
42
42
  const ClientMetadataHandle& initial_metadata,
43
43
  const grpc_call_credentials::GetRequestMetadataArgs* args) {
44
- DCHECK(initial_metadata->get_pointer(HttpPathMetadata()) != nullptr);
44
+ GRPC_DCHECK(initial_metadata->get_pointer(HttpPathMetadata()) != nullptr);
45
45
  auto service =
46
46
  initial_metadata->get_pointer(HttpPathMetadata())->as_string_view();
47
47
  auto last_slash = service.find_last_of('/');
@@ -56,7 +56,8 @@ ServiceUrlAndMethod MakeServiceUrlAndMethod(
56
56
  method_name = service.substr(last_slash + 1);
57
57
  service = service.substr(0, last_slash);
58
58
  }
59
- DCHECK(initial_metadata->get_pointer(HttpAuthorityMetadata()) != nullptr);
59
+ GRPC_DCHECK(initial_metadata->get_pointer(HttpAuthorityMetadata()) !=
60
+ nullptr);
60
61
  auto host_and_port =
61
62
  initial_metadata->get_pointer(HttpAuthorityMetadata())->as_string_view();
62
63
  absl::string_view url_scheme = args->security_connector->url_scheme();
@@ -22,12 +22,12 @@
22
22
  #include <memory>
23
23
  #include <vector>
24
24
 
25
- #include "absl/log/check.h"
26
25
  #include "absl/strings/str_cat.h"
27
26
  #include "absl/strings/str_join.h"
28
27
  #include "src/core/call/metadata_batch.h"
29
28
  #include "src/core/lib/debug/trace.h"
30
29
  #include "src/core/lib/promise/try_seq.h"
30
+ #include "src/core/util/grpc_check.h"
31
31
  #include "src/core/util/ref_counted_ptr.h"
32
32
 
33
33
  grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
@@ -106,9 +106,9 @@ grpc_call_credentials* grpc_composite_call_credentials_create(
106
106
  GRPC_TRACE_LOG(api, INFO)
107
107
  << "grpc_composite_call_credentials_create(creds1=" << creds1
108
108
  << ", creds2=" << creds2 << ", reserved=" << reserved << ")";
109
- CHECK_EQ(reserved, nullptr);
110
- CHECK_NE(creds1, nullptr);
111
- CHECK_NE(creds2, nullptr);
109
+ GRPC_CHECK_EQ(reserved, nullptr);
110
+ GRPC_CHECK_NE(creds1, nullptr);
111
+ GRPC_CHECK_NE(creds2, nullptr);
112
112
  return grpc_core::MakeRefCounted<grpc_composite_call_credentials>(
113
113
  creds1->Ref(), creds2->Ref())
114
114
  .release();
@@ -28,7 +28,6 @@
28
28
  #include <optional>
29
29
  #include <utility>
30
30
 
31
- #include "absl/log/check.h"
32
31
  #include "absl/status/status.h"
33
32
  #include "absl/status/statusor.h"
34
33
  #include "absl/strings/str_cat.h"
@@ -38,6 +37,7 @@
38
37
  #include "src/core/credentials/transport/transport_credentials.h"
39
38
  #include "src/core/lib/iomgr/closure.h"
40
39
  #include "src/core/util/env.h"
40
+ #include "src/core/util/grpc_check.h"
41
41
  #include "src/core/util/http_client/httpcli_ssl_credentials.h"
42
42
  #include "src/core/util/json/json.h"
43
43
  #include "src/core/util/json/json_reader.h"
@@ -422,8 +422,8 @@ void AwsExternalAccountCredentials::AwsFetchBody::BuildSubjectToken() {
422
422
  void AwsExternalAccountCredentials::AwsFetchBody::AddMetadataRequestHeaders(
423
423
  grpc_http_request* request) {
424
424
  if (!imdsv2_session_token_.empty()) {
425
- CHECK_EQ(request->hdr_count, 0u);
426
- CHECK_EQ(request->hdrs, nullptr);
425
+ GRPC_CHECK_EQ(request->hdr_count, 0u);
426
+ GRPC_CHECK_EQ(request->hdrs, nullptr);
427
427
  grpc_http_header* headers =
428
428
  static_cast<grpc_http_header*>(gpr_malloc(sizeof(grpc_http_header)));
429
429
  headers[0].key = gpr_strdup("x-aws-ec2-metadata-token");
@@ -29,7 +29,6 @@
29
29
  #include <memory>
30
30
  #include <utility>
31
31
 
32
- #include "absl/log/check.h"
33
32
  #include "absl/log/log.h"
34
33
  #include "absl/status/status.h"
35
34
  #include "absl/status/statusor.h"
@@ -48,6 +47,7 @@
48
47
  #include "src/core/credentials/call/external/url_external_account_credentials.h"
49
48
  #include "src/core/credentials/call/json_util.h"
50
49
  #include "src/core/credentials/transport/transport_credentials.h"
50
+ #include "src/core/util/grpc_check.h"
51
51
  #include "src/core/util/http_client/httpcli_ssl_credentials.h"
52
52
  #include "src/core/util/http_client/parser.h"
53
53
  #include "src/core/util/json/json_reader.h"
@@ -27,7 +27,6 @@
27
27
  #include <memory>
28
28
  #include <utility>
29
29
 
30
- #include "absl/log/check.h"
31
30
  #include "absl/status/status.h"
32
31
  #include "absl/status/statusor.h"
33
32
  #include "absl/strings/str_cat.h"
@@ -38,6 +37,7 @@
38
37
  #include "src/core/credentials/transport/transport_credentials.h"
39
38
  #include "src/core/lib/iomgr/closure.h"
40
39
  #include "src/core/lib/transport/error_utils.h"
40
+ #include "src/core/util/grpc_check.h"
41
41
  #include "src/core/util/http_client/httpcli_ssl_credentials.h"
42
42
  #include "src/core/util/http_client/parser.h"
43
43
  #include "src/core/util/json/json.h"
@@ -24,13 +24,13 @@
24
24
  #include <memory>
25
25
  #include <utility>
26
26
 
27
- #include "absl/log/check.h"
28
27
  #include "absl/strings/str_format.h"
29
28
  #include "absl/strings/string_view.h"
30
29
  #include "src/core/call/metadata_batch.h"
31
30
  #include "src/core/lib/debug/trace.h"
32
31
  #include "src/core/lib/iomgr/exec_ctx.h"
33
32
  #include "src/core/lib/promise/promise.h"
33
+ #include "src/core/util/grpc_check.h"
34
34
  #include "src/core/util/ref_counted_ptr.h"
35
35
 
36
36
  grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
@@ -69,9 +69,9 @@ grpc_call_credentials* grpc_google_iam_credentials_create(
69
69
  GRPC_TRACE_LOG(api, INFO) << "grpc_iam_credentials_create(token=" << token
70
70
  << ", authority_selector=" << authority_selector
71
71
  << ", reserved=" << reserved << ")";
72
- CHECK_EQ(reserved, nullptr);
73
- CHECK_NE(token, nullptr);
74
- CHECK_NE(authority_selector, nullptr);
72
+ GRPC_CHECK_EQ(reserved, nullptr);
73
+ GRPC_CHECK_NE(token, nullptr);
74
+ GRPC_CHECK_NE(authority_selector, nullptr);
75
75
  return grpc_core::MakeRefCounted<grpc_google_iam_credentials>(
76
76
  token, authority_selector)
77
77
  .release();
@@ -35,13 +35,13 @@
35
35
  #include <string>
36
36
  #include <utility>
37
37
 
38
- #include "absl/log/check.h"
39
38
  #include "absl/log/log.h"
40
39
  #include "absl/status/status.h"
41
40
  #include "absl/status/statusor.h"
42
41
  #include "absl/strings/escaping.h"
43
42
  #include "src/core/credentials/call/json_util.h"
44
43
  #include "src/core/lib/iomgr/error.h"
44
+ #include "src/core/util/grpc_check.h"
45
45
  #include "src/core/util/json/json_reader.h"
46
46
  #include "src/core/util/json/json_writer.h"
47
47
 
@@ -221,8 +221,8 @@ static char* dot_concat_and_free_strings(char* str1, char* str2) {
221
221
  *(current++) = '.';
222
222
  memcpy(current, str2, str2_len);
223
223
  current += str2_len;
224
- CHECK(current >= result);
225
- CHECK((uintptr_t)(current - result) == result_len);
224
+ GRPC_CHECK(current >= result);
225
+ GRPC_CHECK((uintptr_t)(current - result) == result_len);
226
226
  *current = '\0';
227
227
  gpr_free(str1);
228
228
  gpr_free(str2);
@@ -30,7 +30,6 @@
30
30
  #include <string>
31
31
  #include <utility>
32
32
 
33
- #include "absl/log/check.h"
34
33
  #include "absl/log/log.h"
35
34
  #include "absl/status/status.h"
36
35
  #include "absl/strings/str_cat.h"
@@ -39,6 +38,7 @@
39
38
  #include "src/core/lib/debug/trace.h"
40
39
  #include "src/core/lib/iomgr/exec_ctx.h"
41
40
  #include "src/core/lib/promise/promise.h"
41
+ #include "src/core/util/grpc_check.h"
42
42
  #include "src/core/util/json/json.h"
43
43
  #include "src/core/util/json/json_reader.h"
44
44
  #include "src/core/util/json/json_writer.h"
@@ -161,7 +161,7 @@ grpc_call_credentials* grpc_service_account_jwt_access_credentials_create(
161
161
  << " }, reserved=" << reserved << ")";
162
162
  gpr_free(clean_json);
163
163
  }
164
- CHECK_EQ(reserved, nullptr);
164
+ GRPC_CHECK_EQ(reserved, nullptr);
165
165
  grpc_core::ExecCtx exec_ctx;
166
166
  return grpc_service_account_jwt_access_credentials_create_from_auth_json_key(
167
167
  grpc_auth_json_key_create_from_string(json_key), token_lifetime)