grpc 1.75.0 → 1.78.1

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 (839) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +24 -5
  3. data/include/grpc/credentials.h +27 -6
  4. data/include/grpc/event_engine/memory_allocator.h +2 -0
  5. data/include/grpc/event_engine/memory_request.h +2 -0
  6. data/include/grpc/impl/channel_arg_names.h +5 -0
  7. data/include/grpc/support/metrics.h +7 -1
  8. data/src/core/call/call_filters.cc +5 -5
  9. data/src/core/call/call_filters.h +211 -37
  10. data/src/core/call/call_spine.cc +1 -1
  11. data/src/core/call/call_spine.h +54 -32
  12. data/src/core/call/channelz_context.h +30 -0
  13. data/src/core/call/client_call.cc +49 -10
  14. data/src/core/call/client_call.h +6 -3
  15. data/src/core/call/filter_fusion.h +9 -9
  16. data/src/core/call/interception_chain.h +7 -6
  17. data/src/core/call/metadata_batch.cc +49 -55
  18. data/src/core/call/metadata_batch.h +10 -9
  19. data/src/core/call/metadata_info.cc +1 -1
  20. data/src/core/call/parsed_metadata.h +2 -2
  21. data/src/core/call/request_buffer.cc +1 -1
  22. data/src/core/call/security_context.cc +2 -2
  23. data/src/core/call/security_context.h +1 -1
  24. data/src/core/call/server_call.cc +5 -5
  25. data/src/core/call/server_call.h +6 -4
  26. data/src/core/call/simple_slice_based_metadata.h +1 -1
  27. data/src/core/call/status_util.cc +1 -1
  28. data/src/core/channelz/channel_trace.cc +1 -1
  29. data/src/core/channelz/channel_trace.h +3 -3
  30. data/src/core/channelz/channelz.cc +25 -29
  31. data/src/core/channelz/channelz.h +73 -22
  32. data/src/core/channelz/channelz_registry.cc +2 -2
  33. data/src/core/channelz/channelz_registry.h +53 -2
  34. data/src/core/channelz/property_list.cc +18 -0
  35. data/src/core/channelz/property_list.h +15 -4
  36. data/src/core/channelz/text_encode.cc +66 -0
  37. data/src/core/channelz/text_encode.h +29 -0
  38. data/src/core/channelz/v2tov1/convert.cc +17 -6
  39. data/src/core/channelz/v2tov1/legacy_api.cc +18 -12
  40. data/src/core/channelz/v2tov1/property_list.cc +2 -1
  41. data/src/core/channelz/ztrace_collector.h +260 -87
  42. data/src/core/client_channel/backup_poller.cc +7 -8
  43. data/src/core/client_channel/buffered_call.cc +140 -0
  44. data/src/core/client_channel/buffered_call.h +104 -0
  45. data/src/core/client_channel/client_channel.cc +144 -84
  46. data/src/core/client_channel/client_channel.h +8 -11
  47. data/src/core/client_channel/client_channel_factory.h +1 -1
  48. data/src/core/client_channel/client_channel_filter.cc +424 -686
  49. data/src/core/client_channel/client_channel_filter.h +57 -150
  50. data/src/core/client_channel/client_channel_internal.h +8 -5
  51. data/src/core/client_channel/client_channel_service_config.cc +43 -3
  52. data/src/core/client_channel/client_channel_service_config.h +12 -1
  53. data/src/core/client_channel/config_selector.h +5 -5
  54. data/src/core/client_channel/connector.h +2 -0
  55. data/src/core/client_channel/dynamic_filters.cc +5 -5
  56. data/src/core/client_channel/global_subchannel_pool.cc +0 -37
  57. data/src/core/client_channel/global_subchannel_pool.h +1 -28
  58. data/src/core/client_channel/lb_metadata.h +1 -1
  59. data/src/core/client_channel/load_balanced_call_destination.cc +10 -12
  60. data/src/core/client_channel/load_balanced_call_destination.h +1 -1
  61. data/src/core/client_channel/local_subchannel_pool.cc +4 -4
  62. data/src/core/client_channel/retry_filter.cc +2 -2
  63. data/src/core/client_channel/retry_filter.h +3 -3
  64. data/src/core/client_channel/retry_filter_legacy_call_data.cc +11 -12
  65. data/src/core/client_channel/retry_filter_legacy_call_data.h +6 -8
  66. data/src/core/client_channel/retry_service_config.cc +3 -3
  67. data/src/core/client_channel/retry_service_config.h +1 -1
  68. data/src/core/client_channel/subchannel.cc +114 -25
  69. data/src/core/client_channel/subchannel.h +24 -8
  70. data/src/core/client_channel/subchannel_pool_interface.cc +2 -2
  71. data/src/core/client_channel/subchannel_pool_interface.h +1 -1
  72. data/src/core/client_channel/subchannel_stream_client.cc +5 -5
  73. data/src/core/client_channel/subchannel_stream_client.h +3 -3
  74. data/src/core/config/config_vars.cc +38 -3
  75. data/src/core/config/config_vars.h +26 -0
  76. data/src/core/config/core_configuration.cc +5 -5
  77. data/src/core/config/core_configuration.h +8 -8
  78. data/src/core/config/load_config.cc +13 -1
  79. data/src/core/config/load_config.h +2 -0
  80. data/src/core/credentials/call/call_credentials.h +4 -4
  81. data/src/core/credentials/call/call_creds_registry.h +1 -1
  82. data/src/core/credentials/call/call_creds_registry_init.cc +2 -2
  83. data/src/core/credentials/call/call_creds_util.cc +7 -6
  84. data/src/core/credentials/call/composite/composite_call_credentials.cc +6 -6
  85. data/src/core/credentials/call/composite/composite_call_credentials.h +1 -1
  86. data/src/core/credentials/call/external/aws_external_account_credentials.cc +9 -9
  87. data/src/core/credentials/call/external/aws_external_account_credentials.h +1 -1
  88. data/src/core/credentials/call/external/external_account_credentials.cc +12 -12
  89. data/src/core/credentials/call/external/external_account_credentials.h +1 -1
  90. data/src/core/credentials/call/external/file_external_account_credentials.cc +3 -3
  91. data/src/core/credentials/call/external/file_external_account_credentials.h +1 -1
  92. data/src/core/credentials/call/external/url_external_account_credentials.cc +7 -7
  93. data/src/core/credentials/call/external/url_external_account_credentials.h +1 -1
  94. data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +24 -71
  95. data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.h +1 -8
  96. data/src/core/credentials/call/iam/iam_credentials.cc +6 -6
  97. data/src/core/credentials/call/iam/iam_credentials.h +1 -1
  98. data/src/core/credentials/call/json_util.cc +1 -1
  99. data/src/core/credentials/call/jwt/json_token.cc +7 -7
  100. data/src/core/credentials/call/jwt/jwt_credentials.cc +5 -5
  101. data/src/core/credentials/call/jwt/jwt_credentials.h +4 -4
  102. data/src/core/credentials/call/jwt/jwt_verifier.cc +19 -18
  103. data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +2 -2
  104. data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.h +3 -3
  105. data/src/core/credentials/call/jwt_util.cc +3 -3
  106. data/src/core/credentials/call/jwt_util.h +1 -1
  107. data/src/core/credentials/call/oauth2/oauth2_credentials.cc +49 -72
  108. data/src/core/credentials/call/oauth2/oauth2_credentials.h +3 -9
  109. data/src/core/credentials/call/plugin/plugin_credentials.cc +6 -6
  110. data/src/core/credentials/call/plugin/plugin_credentials.h +2 -2
  111. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +46 -0
  112. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.h +32 -3
  113. data/src/core/credentials/transport/alts/alts_credentials.cc +5 -5
  114. data/src/core/credentials/transport/alts/alts_security_connector.cc +17 -15
  115. data/src/core/credentials/transport/alts/check_gcp_environment_no_op.cc +1 -1
  116. data/src/core/credentials/transport/alts/grpc_alts_credentials_client_options.cc +23 -3
  117. data/src/core/credentials/transport/alts/grpc_alts_credentials_options.cc +10 -1
  118. data/src/core/credentials/transport/alts/grpc_alts_credentials_options.h +31 -0
  119. data/src/core/credentials/transport/alts/grpc_alts_credentials_server_options.cc +8 -3
  120. data/src/core/credentials/transport/channel_creds_registry.h +1 -1
  121. data/src/core/credentials/transport/channel_creds_registry_init.cc +1 -1
  122. data/src/core/credentials/transport/composite/composite_channel_credentials.cc +7 -7
  123. data/src/core/credentials/transport/composite/composite_channel_credentials.h +1 -1
  124. data/src/core/credentials/transport/fake/fake_credentials.cc +1 -1
  125. data/src/core/credentials/transport/fake/fake_credentials.h +1 -1
  126. data/src/core/credentials/transport/fake/fake_security_connector.cc +7 -7
  127. data/src/core/credentials/transport/google_default/credentials_generic.cc +2 -2
  128. data/src/core/credentials/transport/google_default/google_default_credentials.cc +83 -39
  129. data/src/core/credentials/transport/google_default/google_default_credentials.h +0 -2
  130. data/src/core/credentials/transport/insecure/insecure_security_connector.cc +3 -3
  131. data/src/core/credentials/transport/insecure/insecure_security_connector.h +2 -2
  132. data/src/core/credentials/transport/local/local_security_connector.cc +13 -13
  133. data/src/core/credentials/transport/security_connector.cc +6 -6
  134. data/src/core/credentials/transport/security_connector.h +2 -2
  135. data/src/core/credentials/transport/ssl/ssl_credentials.cc +13 -13
  136. data/src/core/credentials/transport/ssl/ssl_credentials.h +2 -2
  137. data/src/core/credentials/transport/ssl/ssl_security_connector.cc +8 -8
  138. data/src/core/credentials/transport/tls/certificate_provider_factory.h +1 -1
  139. data/src/core/credentials/transport/tls/certificate_provider_registry.cc +2 -2
  140. data/src/core/credentials/transport/tls/certificate_provider_registry.h +1 -1
  141. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +25 -25
  142. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +2 -2
  143. data/src/core/credentials/transport/tls/grpc_tls_certificate_match.cc +1 -1
  144. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +8 -8
  145. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +5 -5
  146. data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.cc +3 -3
  147. data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.h +4 -4
  148. data/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc +18 -18
  149. data/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc +5 -5
  150. data/src/core/credentials/transport/tls/grpc_tls_crl_provider.h +3 -3
  151. data/src/core/credentials/transport/tls/load_system_roots_supported.cc +1 -1
  152. data/src/core/credentials/transport/tls/spiffe_utils.cc +10 -8
  153. data/src/core/credentials/transport/tls/spiffe_utils.h +2 -2
  154. data/src/core/credentials/transport/tls/ssl_utils.cc +18 -13
  155. data/src/core/credentials/transport/tls/ssl_utils.h +2 -2
  156. data/src/core/credentials/transport/tls/tls_credentials.cc +3 -3
  157. data/src/core/credentials/transport/tls/tls_security_connector.cc +15 -15
  158. data/src/core/credentials/transport/tls/tls_security_connector.h +3 -3
  159. data/src/core/credentials/transport/transport_credentials.cc +3 -3
  160. data/src/core/credentials/transport/transport_credentials.h +4 -4
  161. data/src/core/credentials/transport/xds/xds_credentials.cc +5 -5
  162. data/src/core/credentials/transport/xds/xds_credentials.h +1 -1
  163. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +2 -2
  164. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +4 -1
  165. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +6 -4
  166. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +2 -2
  167. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +7 -7
  168. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +6 -3
  169. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +1 -1
  170. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +2 -2
  171. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +6 -3
  172. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +1 -1
  173. data/src/core/ext/filters/http/client/http_client_filter.cc +6 -6
  174. data/src/core/ext/filters/http/client/http_client_filter.h +4 -1
  175. data/src/core/ext/filters/http/client_authority_filter.cc +2 -2
  176. data/src/core/ext/filters/http/client_authority_filter.h +4 -1
  177. data/src/core/ext/filters/http/http_filters_plugin.cc +1 -1
  178. data/src/core/ext/filters/http/message_compress/compression_filter.cc +11 -11
  179. data/src/core/ext/filters/http/message_compress/compression_filter.h +24 -5
  180. data/src/core/ext/filters/http/server/http_server_filter.cc +3 -3
  181. data/src/core/ext/filters/http/server/http_server_filter.h +4 -1
  182. data/src/core/ext/filters/message_size/message_size_filter.cc +2 -2
  183. data/src/core/ext/filters/message_size/message_size_filter.h +8 -2
  184. data/src/core/ext/filters/rbac/rbac_filter.cc +1 -1
  185. data/src/core/ext/filters/rbac/rbac_filter.h +4 -1
  186. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +3 -3
  187. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +1 -1
  188. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +14 -14
  189. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +13 -2
  190. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +1 -1
  191. data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -2
  192. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +58 -44
  193. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +2 -3
  194. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +25 -24
  195. data/src/core/ext/transport/chttp2/server/chttp2_server.h +1 -2
  196. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +6 -6
  197. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +6 -6
  198. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +306 -148
  199. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +10 -2
  200. data/src/core/ext/transport/chttp2/transport/flow_control.cc +42 -7
  201. data/src/core/ext/transport/chttp2/transport/flow_control.h +223 -83
  202. data/src/core/ext/transport/chttp2/transport/flow_control_manager.h +105 -0
  203. data/src/core/ext/transport/chttp2/transport/frame.cc +175 -27
  204. data/src/core/ext/transport/chttp2/transport/frame.h +58 -10
  205. data/src/core/ext/transport/chttp2/transport/frame_data.cc +4 -4
  206. data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -1
  207. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +5 -5
  208. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +6 -6
  209. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
  210. data/src/core/ext/transport/chttp2/transport/frame_security.cc +1 -1
  211. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +7 -15
  212. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +6 -6
  213. data/src/core/ext/transport/chttp2/transport/goaway.cc +129 -0
  214. data/src/core/ext/transport/chttp2/transport/goaway.h +350 -0
  215. data/src/core/ext/transport/chttp2/transport/header_assembler.h +194 -54
  216. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +3 -3
  217. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +8 -6
  218. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +8 -8
  219. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +3 -3
  220. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +5 -5
  221. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +34 -34
  222. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +6 -7
  223. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +8 -8
  224. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +1 -1
  225. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +1475 -632
  226. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +384 -373
  227. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -1
  228. data/src/core/ext/transport/chttp2/transport/http2_settings.h +6 -4
  229. data/src/core/ext/transport/chttp2/transport/http2_settings_manager.cc +4 -3
  230. data/src/core/ext/transport/chttp2/transport/http2_settings_manager.h +6 -5
  231. data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +417 -0
  232. data/src/core/ext/transport/chttp2/transport/http2_status.h +7 -1
  233. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +337 -30
  234. data/src/core/ext/transport/chttp2/transport/http2_transport.h +196 -21
  235. data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +172 -72
  236. data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +128 -0
  237. data/src/core/ext/transport/chttp2/transport/internal.h +31 -19
  238. data/src/core/ext/transport/chttp2/transport/keepalive.cc +12 -5
  239. data/src/core/ext/transport/chttp2/transport/keepalive.h +14 -10
  240. data/src/core/ext/transport/chttp2/transport/message_assembler.h +30 -21
  241. data/src/core/ext/transport/chttp2/transport/parsing.cc +25 -23
  242. data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +2 -2
  243. data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +3 -3
  244. data/src/core/ext/transport/chttp2/transport/ping_promise.cc +70 -28
  245. data/src/core/ext/transport/chttp2/transport/ping_promise.h +63 -23
  246. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +1 -1
  247. data/src/core/ext/transport/chttp2/transport/security_frame.cc +31 -0
  248. data/src/core/ext/transport/chttp2/transport/security_frame.h +32 -0
  249. data/src/core/ext/transport/chttp2/transport/stream.h +287 -0
  250. data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +476 -208
  251. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +8 -8
  252. data/src/core/ext/transport/chttp2/transport/transport_common.cc +17 -1
  253. data/src/core/ext/transport/chttp2/transport/transport_common.h +57 -0
  254. data/src/core/ext/transport/chttp2/transport/varint.h +2 -2
  255. data/src/core/ext/transport/chttp2/transport/writable_streams.h +202 -84
  256. data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +2 -2
  257. data/src/core/ext/transport/chttp2/transport/writing.cc +6 -6
  258. data/src/core/ext/transport/inproc/inproc_transport.cc +9 -3
  259. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +11 -8
  260. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb.h +740 -0
  261. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c +218 -0
  262. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.h +46 -0
  263. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +87 -55
  264. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +23 -21
  265. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.c +80 -0
  266. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.h +47 -0
  267. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/service.upbdefs.c +129 -0
  268. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/service.upbdefs.h +72 -0
  269. data/src/core/filter/auth/auth_filters.h +7 -1
  270. data/src/core/filter/auth/client_auth_filter.cc +2 -2
  271. data/src/core/filter/auth/server_auth_filter.cc +5 -5
  272. data/src/core/filter/blackboard.h +2 -2
  273. data/src/core/filter/filter_args.h +40 -2
  274. data/src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc +2 -2
  275. data/src/core/handshaker/handshaker.cc +8 -8
  276. data/src/core/handshaker/handshaker.h +2 -2
  277. data/src/core/handshaker/http_connect/http_connect_handshaker.cc +5 -5
  278. data/src/core/handshaker/http_connect/http_proxy_mapper.cc +12 -12
  279. data/src/core/handshaker/http_connect/http_proxy_mapper.h +1 -1
  280. data/src/core/handshaker/http_connect/xds_http_proxy_mapper.cc +1 -1
  281. data/src/core/handshaker/http_connect/xds_http_proxy_mapper.h +1 -1
  282. data/src/core/handshaker/proxy_mapper.h +1 -1
  283. data/src/core/handshaker/proxy_mapper_registry.h +1 -1
  284. data/src/core/handshaker/security/legacy_secure_endpoint.cc +6 -6
  285. data/src/core/handshaker/security/pipelined_secure_endpoint.cc +38 -15
  286. data/src/core/handshaker/security/secure_endpoint.cc +31 -11
  287. data/src/core/handshaker/security/security_handshaker.cc +11 -8
  288. data/src/core/handshaker/security/security_handshaker.h +1 -1
  289. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +6 -6
  290. data/src/core/lib/address_utils/parse_address.cc +5 -5
  291. data/src/core/lib/address_utils/parse_address.h +2 -2
  292. data/src/core/lib/address_utils/sockaddr_utils.cc +4 -4
  293. data/src/core/lib/address_utils/sockaddr_utils.h +1 -1
  294. data/src/core/lib/channel/channel_args.cc +1 -1
  295. data/src/core/lib/channel/channel_args.h +2 -2
  296. data/src/core/lib/channel/channel_stack.cc +29 -25
  297. data/src/core/lib/channel/channel_stack.h +8 -3
  298. data/src/core/lib/channel/channel_stack_builder.cc +8 -4
  299. data/src/core/lib/channel/channel_stack_builder.h +10 -9
  300. data/src/core/lib/channel/channel_stack_builder_impl.cc +8 -13
  301. data/src/core/lib/channel/channel_stack_builder_impl.h +1 -1
  302. data/src/core/lib/channel/connected_channel.cc +4 -4
  303. data/src/core/lib/channel/promise_based_filter.cc +132 -72
  304. data/src/core/lib/channel/promise_based_filter.h +39 -23
  305. data/src/core/lib/compression/compression_internal.cc +6 -6
  306. data/src/core/lib/compression/compression_internal.h +1 -1
  307. data/src/core/lib/compression/message_compress.cc +8 -8
  308. data/src/core/lib/debug/trace.cc +2 -5
  309. data/src/core/lib/debug/trace.h +10 -0
  310. data/src/core/lib/debug/trace_flags.cc +2 -2
  311. data/src/core/lib/debug/trace_flags.h +1 -1
  312. data/src/core/lib/event_engine/ares_resolver.cc +30 -28
  313. data/src/core/lib/event_engine/ares_resolver.h +4 -4
  314. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +3 -3
  315. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +2 -2
  316. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +1 -1
  317. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +4 -4
  318. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +3 -3
  319. data/src/core/lib/event_engine/channel_args_endpoint_config.h +1 -1
  320. data/src/core/lib/event_engine/default_event_engine.cc +1 -1
  321. data/src/core/lib/event_engine/event_engine.cc +1 -1
  322. data/src/core/lib/event_engine/extensions/channelz.h +3 -3
  323. data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +1 -1
  324. data/src/core/lib/event_engine/extensions/supports_fd.h +5 -5
  325. data/src/core/lib/event_engine/extensions/tcp_trace.h +8 -1
  326. data/src/core/lib/event_engine/grpc_polled_fd.h +1 -1
  327. data/src/core/lib/event_engine/memory_allocator_factory.h +1 -1
  328. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +12 -12
  329. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +5 -5
  330. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +15 -15
  331. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +3 -3
  332. data/src/core/lib/event_engine/posix_engine/event_poller.h +2 -2
  333. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +2 -2
  334. data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +1 -1
  335. data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.h +1 -1
  336. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +4 -4
  337. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +1 -1
  338. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +3 -3
  339. data/src/core/lib/event_engine/posix_engine/lockfree_event.h +1 -1
  340. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +3 -3
  341. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +1 -1
  342. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +28 -27
  343. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +17 -17
  344. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +175 -177
  345. data/src/core/lib/event_engine/posix_engine/posix_engine.h +40 -61
  346. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +11 -7
  347. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +4 -4
  348. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +9 -9
  349. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +1 -1
  350. data/src/core/lib/event_engine/posix_engine/posix_interface.h +2 -2
  351. data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +5 -5
  352. data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +1 -1
  353. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +1 -1
  354. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +1 -1
  355. data/src/core/lib/event_engine/posix_engine/timer.h +1 -1
  356. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +4 -4
  357. data/src/core/lib/event_engine/posix_engine/timer_manager.h +1 -1
  358. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +2 -2
  359. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +2 -2
  360. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +1 -1
  361. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +2 -2
  362. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +1 -1
  363. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +2 -2
  364. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +1 -1
  365. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +2 -2
  366. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +1 -1
  367. data/src/core/lib/event_engine/ref_counted_dns_resolver_interface.h +1 -1
  368. data/src/core/lib/event_engine/resolved_address.cc +3 -3
  369. data/src/core/lib/event_engine/shim.cc +8 -11
  370. data/src/core/lib/event_engine/shim.h +2 -1
  371. data/src/core/lib/event_engine/slice.cc +2 -2
  372. data/src/core/lib/event_engine/tcp_socket_utils.cc +15 -15
  373. data/src/core/lib/event_engine/thread_pool/thread_count.cc +1 -1
  374. data/src/core/lib/event_engine/thread_pool/thread_count.h +1 -1
  375. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +11 -11
  376. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -3
  377. data/src/core/lib/event_engine/utils.cc +3 -3
  378. data/src/core/lib/event_engine/utils.h +1 -1
  379. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +32 -32
  380. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +2 -2
  381. data/src/core/lib/event_engine/windows/iocp.cc +11 -11
  382. data/src/core/lib/event_engine/windows/iocp.h +1 -1
  383. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +5 -2
  384. data/src/core/lib/event_engine/windows/win_socket.cc +7 -7
  385. data/src/core/lib/event_engine/windows/win_socket.h +2 -2
  386. data/src/core/lib/event_engine/windows/windows_endpoint.cc +16 -16
  387. data/src/core/lib/event_engine/windows/windows_engine.cc +20 -18
  388. data/src/core/lib/event_engine/windows/windows_engine.h +3 -3
  389. data/src/core/lib/event_engine/windows/windows_listener.cc +10 -10
  390. data/src/core/lib/event_engine/windows/windows_listener.h +2 -2
  391. data/src/core/lib/event_engine/work_queue/basic_work_queue.h +2 -2
  392. data/src/core/lib/experiments/config.cc +4 -4
  393. data/src/core/lib/experiments/experiments.cc +255 -42
  394. data/src/core/lib/experiments/experiments.h +105 -21
  395. data/src/core/lib/iomgr/buffer_list.cc +1 -1
  396. data/src/core/lib/iomgr/call_combiner.cc +4 -4
  397. data/src/core/lib/iomgr/call_combiner.h +2 -2
  398. data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
  399. data/src/core/lib/iomgr/closure.h +2 -2
  400. data/src/core/lib/iomgr/combiner.cc +2 -2
  401. data/src/core/lib/iomgr/endpoint.h +1 -1
  402. data/src/core/lib/iomgr/endpoint_cfstream.cc +7 -7
  403. data/src/core/lib/iomgr/endpoint_pair_posix.cc +6 -6
  404. data/src/core/lib/iomgr/endpoint_pair_windows.cc +16 -15
  405. data/src/core/lib/iomgr/error.cc +1 -1
  406. data/src/core/lib/iomgr/error.h +2 -2
  407. data/src/core/lib/iomgr/error_cfstream.cc +1 -1
  408. data/src/core/lib/iomgr/ev_apple.cc +1 -1
  409. data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
  410. data/src/core/lib/iomgr/ev_poll_posix.cc +14 -14
  411. data/src/core/lib/iomgr/ev_posix.cc +3 -3
  412. data/src/core/lib/iomgr/event_engine_shims/closure.cc +3 -3
  413. data/src/core/lib/iomgr/event_engine_shims/closure.h +1 -1
  414. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +10 -9
  415. data/src/core/lib/iomgr/event_engine_shims/endpoint.h +1 -1
  416. data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +2 -2
  417. data/src/core/lib/iomgr/exec_ctx.cc +3 -3
  418. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  419. data/src/core/lib/iomgr/fork_posix.cc +1 -1
  420. data/src/core/lib/iomgr/internal_errqueue.cc +1 -1
  421. data/src/core/lib/iomgr/iocp_windows.cc +9 -9
  422. data/src/core/lib/iomgr/iomgr.cc +1 -1
  423. data/src/core/lib/iomgr/iomgr_windows.cc +3 -3
  424. data/src/core/lib/iomgr/lockfree_event.cc +3 -3
  425. data/src/core/lib/iomgr/polling_entity.cc +4 -4
  426. data/src/core/lib/iomgr/resolve_address.cc +1 -1
  427. data/src/core/lib/iomgr/resolve_address.h +2 -2
  428. data/src/core/lib/iomgr/resolve_address_posix.cc +4 -4
  429. data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
  430. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +1 -1
  431. data/src/core/lib/iomgr/socket_utils_common_posix.cc +4 -4
  432. data/src/core/lib/iomgr/socket_windows.cc +6 -6
  433. data/src/core/lib/iomgr/tcp_client_cfstream.cc +1 -1
  434. data/src/core/lib/iomgr/tcp_client_posix.cc +7 -7
  435. data/src/core/lib/iomgr/tcp_client_windows.cc +4 -4
  436. data/src/core/lib/iomgr/tcp_posix.cc +47 -47
  437. data/src/core/lib/iomgr/tcp_server.cc +5 -0
  438. data/src/core/lib/iomgr/tcp_server.h +7 -0
  439. data/src/core/lib/iomgr/tcp_server_posix.cc +62 -31
  440. data/src/core/lib/iomgr/tcp_server_utils_posix.h +4 -1
  441. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -7
  442. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -4
  443. data/src/core/lib/iomgr/tcp_server_windows.cc +70 -31
  444. data/src/core/lib/iomgr/tcp_windows.cc +8 -8
  445. data/src/core/lib/iomgr/timer_generic.cc +5 -5
  446. data/src/core/lib/iomgr/timer_manager.cc +3 -3
  447. data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
  448. data/src/core/lib/iomgr/unix_sockets_posix.h +1 -1
  449. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +2 -2
  450. data/src/core/lib/iomgr/vsock.cc +1 -1
  451. data/src/core/lib/iomgr/vsock.h +1 -1
  452. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +1 -1
  453. data/src/core/lib/promise/activity.cc +3 -3
  454. data/src/core/lib/promise/activity.h +11 -10
  455. data/src/core/lib/promise/all_ok.h +3 -3
  456. data/src/core/lib/promise/arena_promise.h +47 -6
  457. data/src/core/lib/promise/context.h +3 -3
  458. data/src/core/lib/promise/detail/join_state.h +10 -10
  459. data/src/core/lib/promise/detail/promise_factory.h +1 -1
  460. data/src/core/lib/promise/detail/promise_like.h +1 -1
  461. data/src/core/lib/promise/detail/seq_state.h +16 -16
  462. data/src/core/lib/promise/detail/status.h +2 -2
  463. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +1 -1
  464. data/src/core/lib/promise/for_each.h +8 -8
  465. data/src/core/lib/promise/if.h +1 -1
  466. data/src/core/lib/promise/inter_activity_latch.h +3 -3
  467. data/src/core/lib/promise/inter_activity_mutex.h +1 -1
  468. data/src/core/lib/promise/interceptor_list.h +5 -5
  469. data/src/core/lib/promise/latch.h +9 -9
  470. data/src/core/lib/promise/loop.h +2 -2
  471. data/src/core/lib/promise/map.h +2 -2
  472. data/src/core/lib/promise/mpsc.cc +31 -30
  473. data/src/core/lib/promise/mpsc.h +2 -2
  474. data/src/core/lib/promise/observable.h +6 -6
  475. data/src/core/lib/promise/party.cc +43 -30
  476. data/src/core/lib/promise/party.h +27 -23
  477. data/src/core/lib/promise/pipe.h +31 -17
  478. data/src/core/lib/promise/poll.h +6 -5
  479. data/src/core/lib/promise/promise.h +2 -4
  480. data/src/core/lib/promise/sleep.cc +3 -1
  481. data/src/core/lib/promise/sleep.h +1 -1
  482. data/src/core/lib/promise/status_flag.h +8 -8
  483. data/src/core/lib/promise/try_join.h +5 -5
  484. data/src/core/lib/promise/try_seq.h +5 -5
  485. data/src/core/lib/promise/wait_set.h +2 -2
  486. data/src/core/lib/resource_quota/api.cc +1 -1
  487. data/src/core/lib/resource_quota/arena.cc +1 -1
  488. data/src/core/lib/resource_quota/arena.h +15 -2
  489. data/src/core/lib/resource_quota/connection_quota.cc +9 -7
  490. data/src/core/lib/resource_quota/connection_quota.h +1 -1
  491. data/src/core/lib/resource_quota/memory_quota.cc +48 -27
  492. data/src/core/lib/resource_quota/memory_quota.h +56 -20
  493. data/src/core/lib/resource_quota/periodic_update.h +1 -1
  494. data/src/core/lib/resource_quota/resource_quota.cc +8 -0
  495. data/src/core/lib/resource_quota/resource_quota.h +2 -1
  496. data/src/core/lib/resource_quota/stream_quota.cc +22 -0
  497. data/src/core/lib/resource_quota/stream_quota.h +31 -0
  498. data/src/core/lib/resource_quota/telemetry.h +55 -0
  499. data/src/core/lib/resource_quota/thread_quota.cc +2 -2
  500. data/src/core/lib/resource_quota/thread_quota.h +1 -1
  501. data/src/core/lib/resource_tracker/resource_tracker.cc +33 -0
  502. data/src/core/lib/resource_tracker/resource_tracker.h +46 -0
  503. data/src/core/lib/security/authorization/audit_logging.cc +7 -7
  504. data/src/core/lib/security/authorization/audit_logging.h +1 -1
  505. data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
  506. data/src/core/lib/security/authorization/evaluate_args.cc +5 -5
  507. data/src/core/lib/security/authorization/evaluate_args.h +1 -1
  508. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +2 -2
  509. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +3 -3
  510. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +4 -1
  511. data/src/core/lib/security/authorization/matchers.cc +2 -2
  512. data/src/core/lib/security/authorization/stdout_logger.cc +3 -3
  513. data/src/core/lib/slice/percent_encoding.cc +1 -1
  514. data/src/core/lib/slice/slice.cc +1 -1
  515. data/src/core/lib/slice/slice.h +2 -2
  516. data/src/core/lib/slice/slice_buffer.cc +1 -1
  517. data/src/core/lib/slice/slice_internal.h +1 -1
  518. data/src/core/lib/surface/byte_buffer_reader.cc +2 -2
  519. data/src/core/lib/surface/call.cc +58 -28
  520. data/src/core/lib/surface/call.h +13 -6
  521. data/src/core/lib/surface/call_log_batch.cc +2 -2
  522. data/src/core/lib/surface/call_utils.cc +7 -7
  523. data/src/core/lib/surface/call_utils.h +85 -20
  524. data/src/core/lib/surface/channel.cc +6 -5
  525. data/src/core/lib/surface/channel.h +13 -3
  526. data/src/core/lib/surface/channel_create.cc +12 -8
  527. data/src/core/lib/surface/channel_create.h +1 -1
  528. data/src/core/lib/surface/channel_init.cc +84 -27
  529. data/src/core/lib/surface/channel_init.h +30 -13
  530. data/src/core/lib/surface/completion_queue.cc +21 -20
  531. data/src/core/lib/surface/completion_queue_factory.cc +7 -7
  532. data/src/core/lib/surface/connection_context.h +45 -2
  533. data/src/core/lib/surface/filter_stack_call.cc +25 -31
  534. data/src/core/lib/surface/filter_stack_call.h +6 -7
  535. data/src/core/lib/surface/init.cc +4 -4
  536. data/src/core/lib/surface/lame_client.cc +2 -2
  537. data/src/core/lib/surface/lame_client.h +3 -3
  538. data/src/core/lib/surface/legacy_channel.cc +10 -10
  539. data/src/core/lib/surface/legacy_channel.h +1 -1
  540. data/src/core/lib/surface/validate_metadata.cc +2 -2
  541. data/src/core/lib/surface/validate_metadata.h +3 -3
  542. data/src/core/lib/surface/version.cc +2 -2
  543. data/src/core/lib/transport/bdp_estimator.cc +2 -2
  544. data/src/core/lib/transport/bdp_estimator.h +5 -5
  545. data/src/core/lib/transport/connectivity_state.cc +1 -1
  546. data/src/core/lib/transport/connectivity_state.h +2 -2
  547. data/src/core/lib/transport/error_utils.h +1 -1
  548. data/src/core/lib/transport/promise_endpoint.cc +4 -4
  549. data/src/core/lib/transport/promise_endpoint.h +11 -11
  550. data/src/core/lib/transport/timeout_encoding.cc +4 -4
  551. data/src/core/lib/transport/transport.cc +3 -3
  552. data/src/core/lib/transport/transport.h +62 -4
  553. data/src/core/lib/transport/transport_framing_endpoint_extension.h +1 -1
  554. data/src/core/lib/transport/transport_op_string.cc +2 -2
  555. data/src/core/load_balancing/address_filtering.cc +1 -1
  556. data/src/core/load_balancing/address_filtering.h +2 -2
  557. data/src/core/load_balancing/backend_metric_parser.cc +1 -1
  558. data/src/core/load_balancing/backend_metric_parser.h +1 -1
  559. data/src/core/load_balancing/child_policy_handler.cc +8 -8
  560. data/src/core/load_balancing/child_policy_handler.h +2 -2
  561. data/src/core/load_balancing/delegating_helper.h +2 -2
  562. data/src/core/load_balancing/endpoint_list.cc +6 -6
  563. data/src/core/load_balancing/endpoint_list.h +2 -2
  564. data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +7 -5
  565. data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +5 -1
  566. data/src/core/load_balancing/grpclb/grpclb.cc +37 -48
  567. data/src/core/load_balancing/grpclb/grpclb_client_stats.h +2 -2
  568. data/src/core/load_balancing/grpclb/load_balancer_api.cc +1 -1
  569. data/src/core/load_balancing/grpclb/load_balancer_api.h +1 -1
  570. data/src/core/load_balancing/health_check_client.cc +13 -9
  571. data/src/core/load_balancing/health_check_client_internal.h +5 -5
  572. data/src/core/load_balancing/lb_policy.h +11 -8
  573. data/src/core/load_balancing/lb_policy_factory.h +2 -2
  574. data/src/core/load_balancing/lb_policy_registry.cc +3 -3
  575. data/src/core/load_balancing/lb_policy_registry.h +2 -2
  576. data/src/core/load_balancing/oob_backend_metric.cc +11 -7
  577. data/src/core/load_balancing/oob_backend_metric_internal.h +4 -4
  578. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +9 -17
  579. data/src/core/load_balancing/pick_first/pick_first.cc +62 -32
  580. data/src/core/load_balancing/priority/priority.cc +29 -30
  581. data/src/core/load_balancing/ring_hash/ring_hash.cc +11 -11
  582. data/src/core/load_balancing/rls/rls.cc +23 -23
  583. data/src/core/load_balancing/round_robin/round_robin.cc +16 -16
  584. data/src/core/load_balancing/subchannel_interface.h +2 -2
  585. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +3 -3
  586. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +42 -41
  587. data/src/core/load_balancing/weighted_target/weighted_target.cc +14 -14
  588. data/src/core/load_balancing/xds/cds.cc +81 -37
  589. data/src/core/load_balancing/xds/xds_cluster_impl.cc +24 -41
  590. data/src/core/load_balancing/xds/xds_cluster_manager.cc +6 -6
  591. data/src/core/load_balancing/xds/xds_override_host.cc +14 -14
  592. data/src/core/load_balancing/xds/xds_override_host.h +1 -1
  593. data/src/core/load_balancing/xds/xds_wrr_locality.cc +5 -5
  594. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +8 -8
  595. data/src/core/resolver/dns/c_ares/dns_resolver_ares.h +1 -1
  596. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
  597. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
  598. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +35 -35
  599. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +16 -16
  600. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +2 -2
  601. data/src/core/resolver/dns/dns_resolver_plugin.cc +8 -5
  602. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +10 -10
  603. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h +1 -1
  604. data/src/core/resolver/dns/event_engine/service_config_helper.cc +2 -2
  605. data/src/core/resolver/dns/native/dns_resolver.cc +7 -7
  606. data/src/core/resolver/endpoint_addresses.cc +6 -6
  607. data/src/core/resolver/endpoint_addresses.h +4 -1
  608. data/src/core/resolver/fake/fake_resolver.cc +3 -3
  609. data/src/core/resolver/fake/fake_resolver.h +3 -3
  610. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +46 -59
  611. data/src/core/resolver/polling_resolver.cc +8 -8
  612. data/src/core/resolver/polling_resolver.h +1 -1
  613. data/src/core/resolver/resolver.h +2 -2
  614. data/src/core/resolver/resolver_factory.h +2 -2
  615. data/src/core/resolver/resolver_registry.cc +5 -4
  616. data/src/core/resolver/resolver_registry.h +1 -1
  617. data/src/core/resolver/sockaddr/sockaddr_resolver.cc +4 -4
  618. data/src/core/resolver/xds/xds_config.cc +1 -1
  619. data/src/core/resolver/xds/xds_config.h +3 -3
  620. data/src/core/resolver/xds/xds_dependency_manager.cc +7 -7
  621. data/src/core/resolver/xds/xds_dependency_manager.h +3 -3
  622. data/src/core/resolver/xds/xds_resolver.cc +25 -22
  623. data/src/core/resolver/xds/xds_resolver_attributes.h +1 -1
  624. data/src/core/server/add_port.cc +2 -2
  625. data/src/core/server/server.cc +47 -43
  626. data/src/core/server/server.h +8 -7
  627. data/src/core/server/server_call_tracer_filter.cc +1 -1
  628. data/src/core/server/server_call_tracer_filter.h +9 -5
  629. data/src/core/server/server_config_selector.h +2 -2
  630. data/src/core/server/server_config_selector_filter.cc +5 -5
  631. data/src/core/server/xds_channel_stack_modifier.cc +3 -2
  632. data/src/core/server/xds_channel_stack_modifier.h +1 -1
  633. data/src/core/server/xds_server_config_fetcher.cc +19 -18
  634. data/src/core/service_config/service_config.h +1 -1
  635. data/src/core/service_config/service_config_channel_arg_filter.h +4 -1
  636. data/src/core/service_config/service_config_impl.cc +3 -3
  637. data/src/core/service_config/service_config_impl.h +4 -4
  638. data/src/core/service_config/service_config_parser.h +1 -1
  639. data/src/core/telemetry/call_tracer.cc +39 -49
  640. data/src/core/telemetry/call_tracer.h +201 -24
  641. data/src/core/telemetry/default_tcp_tracer.h +3 -3
  642. data/src/core/telemetry/histogram.h +205 -0
  643. data/src/core/telemetry/instrument.cc +999 -0
  644. data/src/core/telemetry/instrument.h +1105 -0
  645. data/src/core/telemetry/metrics.cc +15 -5
  646. data/src/core/telemetry/metrics.h +36 -5
  647. data/src/core/telemetry/stats.h +2 -2
  648. data/src/core/telemetry/stats_data.cc +1 -20
  649. data/src/core/telemetry/stats_data.h +2 -21
  650. data/src/core/transport/auth_context.cc +3 -3
  651. data/src/core/transport/auth_context.h +2 -1
  652. data/src/core/transport/auth_context_comparator_registry.h +1 -1
  653. data/src/core/tsi/alts/crypt/aes_gcm.cc +1 -1
  654. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +2 -2
  655. data/src/core/tsi/alts/frame_protector/frame_handler.cc +1 -1
  656. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +81 -48
  657. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -0
  658. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +3 -3
  659. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +46 -36
  660. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +4 -4
  661. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -1
  662. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +4 -4
  663. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +11 -3
  664. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +10 -0
  665. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +16 -8
  666. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +3 -0
  667. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +18 -5
  668. data/src/core/tsi/fake_transport_security.cc +6 -5
  669. data/src/core/tsi/local_transport_security.cc +1 -1
  670. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +5 -5
  671. data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +1 -1
  672. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +10 -10
  673. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +4 -4
  674. data/src/core/tsi/ssl_transport_security.cc +30 -30
  675. data/src/core/tsi/ssl_transport_security.h +1 -1
  676. data/src/core/tsi/ssl_transport_security_utils.cc +10 -10
  677. data/src/core/tsi/ssl_transport_security_utils.h +2 -2
  678. data/src/core/tsi/transport_security_grpc.cc +8 -0
  679. data/src/core/tsi/transport_security_grpc.h +15 -0
  680. data/src/core/util/alloc.cc +1 -1
  681. data/src/core/util/backoff.h +1 -1
  682. data/src/core/util/chunked_vector.h +4 -4
  683. data/src/core/util/crash.h +1 -1
  684. data/src/core/util/dual_ref_counted.h +2 -2
  685. data/src/core/util/event_log.cc +2 -2
  686. data/src/core/util/event_log.h +3 -3
  687. data/src/core/util/gcp_metadata_query.cc +7 -7
  688. data/src/core/util/gcp_metadata_query.h +2 -2
  689. data/src/core/util/glob.cc +2 -0
  690. data/src/core/util/grpc_check.cc +24 -0
  691. data/src/core/util/grpc_check.h +103 -0
  692. data/src/core/util/grpc_if_nametoindex_posix.cc +1 -1
  693. data/src/core/util/grpc_if_nametoindex_unsupported.cc +1 -1
  694. data/src/core/util/http_client/format_request.cc +1 -1
  695. data/src/core/util/http_client/httpcli.cc +6 -6
  696. data/src/core/util/http_client/httpcli.h +4 -4
  697. data/src/core/util/http_client/httpcli_security_connector.cc +4 -4
  698. data/src/core/util/http_client/parser.cc +4 -4
  699. data/src/core/util/json/json_channel_args.h +1 -1
  700. data/src/core/util/json/json_object_loader.h +6 -6
  701. data/src/core/util/json/json_reader.cc +2 -2
  702. data/src/core/util/json/json_reader.h +1 -1
  703. data/src/core/util/json/json_util.h +3 -3
  704. data/src/core/util/json/json_writer.cc +1 -1
  705. data/src/core/util/latent_see.cc +45 -24
  706. data/src/core/util/latent_see.h +199 -28
  707. data/src/core/util/linux/cpu.cc +1 -1
  708. data/src/core/util/load_file.cc +1 -1
  709. data/src/core/util/load_file.h +1 -1
  710. data/src/core/util/log.cc +3 -3
  711. data/src/core/util/lru_cache.h +4 -4
  712. data/src/core/util/matchers.h +1 -1
  713. data/src/core/util/memory_usage.h +17 -1
  714. data/src/core/util/mpscq.h +1 -1
  715. data/src/core/util/notification.h +1 -1
  716. data/src/core/util/posix/cpu.cc +1 -1
  717. data/src/core/util/posix/directory_reader.cc +3 -2
  718. data/src/core/util/posix/stat.cc +2 -2
  719. data/src/core/util/posix/sync.cc +24 -24
  720. data/src/core/util/posix/thd.cc +2 -2
  721. data/src/core/util/posix/tmpfile.cc +2 -2
  722. data/src/core/util/postmortem_emit.cc +52 -0
  723. data/src/core/util/postmortem_emit.h +30 -0
  724. data/src/core/util/ref_counted.h +2 -2
  725. data/src/core/util/ref_counted_ptr.h +6 -1
  726. data/src/core/util/ref_counted_string.h +1 -1
  727. data/src/core/util/single_set_ptr.h +3 -1
  728. data/src/core/util/status_helper.cc +8 -8
  729. data/src/core/util/status_helper.h +1 -1
  730. data/src/core/util/string.cc +2 -2
  731. data/src/core/util/sync_abseil.cc +1 -1
  732. data/src/core/util/table.h +1 -1
  733. data/src/core/util/time.cc +1 -1
  734. data/src/core/util/time_precise.cc +1 -1
  735. data/src/core/util/trie_lookup.h +170 -0
  736. data/src/core/util/unique_ptr_with_bitset.h +5 -5
  737. data/src/core/util/unique_type_name.h +1 -1
  738. data/src/core/util/upb_utils.h +6 -1
  739. data/src/core/util/validation_errors.cc +2 -2
  740. data/src/core/util/validation_errors.h +2 -3
  741. data/src/core/util/wait_for_single_owner.h +2 -2
  742. data/src/core/util/windows/directory_reader.cc +1 -1
  743. data/src/core/util/windows/stat.cc +2 -2
  744. data/src/core/util/windows/thd.cc +2 -2
  745. data/src/core/util/windows/time.cc +1 -1
  746. data/src/core/util/work_serializer.cc +3 -3
  747. data/src/core/util/work_serializer.h +2 -2
  748. data/src/core/xds/grpc/certificate_provider_store.cc +2 -2
  749. data/src/core/xds/grpc/certificate_provider_store.h +2 -2
  750. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
  751. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +1 -1
  752. data/src/core/xds/grpc/xds_audit_logger_registry.cc +3 -3
  753. data/src/core/xds/grpc/xds_audit_logger_registry.h +1 -1
  754. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +7 -7
  755. data/src/core/xds/grpc/xds_bootstrap_grpc.h +8 -3
  756. data/src/core/xds/grpc/xds_certificate_provider.cc +4 -4
  757. data/src/core/xds/grpc/xds_certificate_provider.h +2 -2
  758. data/src/core/xds/grpc/xds_client_grpc.cc +39 -20
  759. data/src/core/xds/grpc/xds_client_grpc.h +6 -3
  760. data/src/core/xds/grpc/xds_cluster.cc +2 -2
  761. data/src/core/xds/grpc/xds_cluster.h +1 -1
  762. data/src/core/xds/grpc/xds_cluster_parser.cc +7 -7
  763. data/src/core/xds/grpc/xds_cluster_parser.h +1 -1
  764. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +4 -4
  765. data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +1 -1
  766. data/src/core/xds/grpc/xds_common_types.cc +1 -1
  767. data/src/core/xds/grpc/xds_common_types.h +1 -1
  768. data/src/core/xds/grpc/xds_common_types_parser.cc +5 -5
  769. data/src/core/xds/grpc/xds_endpoint.h +2 -2
  770. data/src/core/xds/grpc/xds_endpoint_parser.cc +7 -7
  771. data/src/core/xds/grpc/xds_endpoint_parser.h +1 -1
  772. data/src/core/xds/grpc/xds_health_status.cc +1 -1
  773. data/src/core/xds/grpc/xds_health_status.h +1 -1
  774. data/src/core/xds/grpc/xds_http_fault_filter.cc +4 -4
  775. data/src/core/xds/grpc/xds_http_fault_filter.h +2 -2
  776. data/src/core/xds/grpc/xds_http_filter.h +3 -3
  777. data/src/core/xds/grpc/xds_http_filter_registry.cc +4 -3
  778. data/src/core/xds/grpc/xds_http_filter_registry.h +2 -2
  779. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +3 -3
  780. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +2 -2
  781. data/src/core/xds/grpc/xds_http_rbac_filter.cc +4 -4
  782. data/src/core/xds/grpc/xds_http_rbac_filter.h +2 -2
  783. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +3 -3
  784. data/src/core/xds/grpc/xds_http_stateful_session_filter.h +2 -2
  785. data/src/core/xds/grpc/xds_lb_policy_registry.cc +1 -1
  786. data/src/core/xds/grpc/xds_lb_policy_registry.h +1 -1
  787. data/src/core/xds/grpc/xds_listener.cc +2 -2
  788. data/src/core/xds/grpc/xds_listener_parser.cc +9 -9
  789. data/src/core/xds/grpc/xds_listener_parser.h +1 -1
  790. data/src/core/xds/grpc/xds_matcher.cc +277 -0
  791. data/src/core/xds/grpc/xds_matcher.h +432 -0
  792. data/src/core/xds/grpc/xds_matcher_action.cc +47 -0
  793. data/src/core/xds/grpc/xds_matcher_action.h +48 -0
  794. data/src/core/xds/grpc/xds_matcher_context.cc +29 -0
  795. data/src/core/xds/grpc/xds_matcher_context.h +46 -0
  796. data/src/core/xds/grpc/xds_matcher_input.cc +79 -0
  797. data/src/core/xds/grpc/xds_matcher_input.h +105 -0
  798. data/src/core/xds/grpc/xds_matcher_parse.cc +356 -0
  799. data/src/core/xds/grpc/xds_matcher_parse.h +39 -0
  800. data/src/core/xds/grpc/xds_metadata.cc +4 -3
  801. data/src/core/xds/grpc/xds_metadata.h +3 -3
  802. data/src/core/xds/grpc/xds_metadata_parser.cc +2 -2
  803. data/src/core/xds/grpc/xds_route_config.cc +3 -3
  804. data/src/core/xds/grpc/xds_route_config_parser.cc +14 -14
  805. data/src/core/xds/grpc/xds_route_config_parser.h +1 -1
  806. data/src/core/xds/grpc/xds_routing.cc +6 -6
  807. data/src/core/xds/grpc/xds_routing.h +2 -2
  808. data/src/core/xds/grpc/xds_server_grpc.cc +2 -2
  809. data/src/core/xds/grpc/xds_transport_grpc.cc +11 -11
  810. data/src/core/xds/grpc/xds_transport_grpc.h +2 -2
  811. data/src/core/xds/xds_client/lrs_client.cc +9 -9
  812. data/src/core/xds/xds_client/lrs_client.h +4 -4
  813. data/src/core/xds/xds_client/xds_api.h +1 -1
  814. data/src/core/xds/xds_client/xds_backend_metric_propagation.cc +1 -1
  815. data/src/core/xds/xds_client/xds_backend_metric_propagation.h +1 -1
  816. data/src/core/xds/xds_client/xds_client.cc +17 -17
  817. data/src/core/xds/xds_client/xds_client.h +5 -5
  818. data/src/core/xds/xds_client/xds_locality.h +2 -2
  819. data/src/core/xds/xds_client/xds_resource_type.h +2 -2
  820. data/src/core/xds/xds_client/xds_resource_type_impl.h +1 -1
  821. data/src/core/xds/xds_client/xds_transport.h +2 -2
  822. data/src/ruby/ext/grpc/extconf.rb +14 -12
  823. data/src/ruby/ext/grpc/rb_call.c +0 -1
  824. data/src/ruby/ext/grpc/rb_channel_args.c +0 -1
  825. data/src/ruby/ext/grpc/rb_channel_credentials.c +0 -1
  826. data/src/ruby/ext/grpc/rb_compression_options.c +0 -1
  827. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -2
  828. data/src/ruby/ext/grpc/rb_server_credentials.c +0 -1
  829. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +0 -1
  830. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +0 -1
  831. data/src/ruby/lib/grpc/grpc.rb +7 -9
  832. data/src/ruby/lib/grpc/version.rb +1 -1
  833. data/src/ruby/spec/client_server_spec.rb +1 -1
  834. data/src/ruby/spec/generic/rpc_server_pool_spec.rb +1 -1
  835. data/src/ruby/spec/generic/rpc_server_spec.rb +3 -4
  836. data/src/ruby/spec/spec_helper.rb +1 -1
  837. data/third_party/abseil-cpp/absl/container/internal/node_slot_policy.h +95 -0
  838. data/third_party/abseil-cpp/absl/container/node_hash_map.h +687 -0
  839. metadata +67 -8
@@ -28,16 +28,18 @@
28
28
  #include <utility>
29
29
  #include <vector>
30
30
 
31
- #include "absl/functional/any_invocable.h"
32
- #include "absl/log/check.h"
33
31
  #include "src/core/call/call_filters.h"
34
32
  #include "src/core/call/interception_chain.h"
33
+ #include "src/core/channelz/channelz.h"
34
+ #include "src/core/channelz/property_list.h"
35
35
  #include "src/core/lib/channel/channel_args.h"
36
36
  #include "src/core/lib/channel/channel_fwd.h"
37
37
  #include "src/core/lib/channel/channel_stack_builder.h"
38
38
  #include "src/core/lib/surface/channel_stack_type.h"
39
39
  #include "src/core/util/debug_location.h"
40
+ #include "src/core/util/grpc_check.h"
40
41
  #include "src/core/util/unique_type_name.h"
42
+ #include "absl/functional/any_invocable.h"
41
43
 
42
44
  /// This module provides a way for plugins (and the grpc core library itself)
43
45
  /// to register mutators for channel stacks.
@@ -246,26 +248,36 @@ class ChannelInit {
246
248
  // stack.
247
249
  FilterRegistration& ExcludeFromMinimalStack();
248
250
  FilterRegistration& SkipV3() {
249
- CHECK_EQ(version_, Version::kAny);
251
+ GRPC_CHECK_EQ(version_, Version::kAny);
250
252
  version_ = Version::kV2;
251
253
  return *this;
252
254
  }
253
255
  FilterRegistration& SkipV2() {
254
- CHECK_EQ(version_, Version::kAny);
256
+ GRPC_CHECK_EQ(version_, Version::kAny);
255
257
  version_ = Version::kV3;
256
258
  return *this;
257
259
  }
258
260
  // Request this filter be placed as high as possible in the stack (given
259
261
  // before/after constraints).
260
262
  FilterRegistration& FloatToTop() {
261
- CHECK_EQ(ordering_, Ordering::kDefault);
263
+ GRPC_CHECK_EQ(ordering_, Ordering::kDefault);
264
+ ordering_ = Ordering::kTop;
265
+ return *this;
266
+ }
267
+ // Request this filter be placed as high as possible in the stack (given
268
+ // before/after constraints).
269
+ FilterRegistration& FloatToTopIf(bool predicate) {
270
+ if (!predicate) {
271
+ return *this;
272
+ }
273
+ GRPC_CHECK_EQ(ordering_, Ordering::kDefault);
262
274
  ordering_ = Ordering::kTop;
263
275
  return *this;
264
276
  }
265
277
  // Request this filter be placed as low as possible in the stack (given
266
278
  // before/after constraints).
267
279
  FilterRegistration& SinkToBottom() {
268
- CHECK_EQ(ordering_, Ordering::kDefault);
280
+ GRPC_CHECK_EQ(ordering_, Ordering::kDefault);
269
281
  ordering_ = Ordering::kBottom;
270
282
  return *this;
271
283
  }
@@ -303,7 +315,7 @@ class ChannelInit {
303
315
  FilterRegistration& RegisterFilter(
304
316
  grpc_channel_stack_type type, const grpc_channel_filter* filter,
305
317
  SourceLocation registration_source = {}) {
306
- CHECK(filter != nullptr);
318
+ GRPC_CHECK(filter != nullptr);
307
319
  return RegisterFilter(type, NameFromChannelFilter(filter), filter,
308
320
  nullptr, registration_source);
309
321
  }
@@ -312,7 +324,9 @@ class ChannelInit {
312
324
  grpc_channel_stack_type type, SourceLocation registration_source = {}) {
313
325
  return RegisterFilter(
314
326
  type, UniqueTypeNameFor<Filter>(), &Filter::kFilter,
315
- [](InterceptionChainBuilder& builder) { builder.Add<Filter>(); },
327
+ [](InterceptionChainBuilder& builder) {
328
+ builder.Add<Filter>(nullptr);
329
+ },
316
330
  registration_source);
317
331
  }
318
332
 
@@ -338,7 +352,7 @@ class ChannelInit {
338
352
  void RegisterFusedFilter(grpc_channel_stack_type type,
339
353
  const grpc_channel_filter* filter,
340
354
  SourceLocation registration_source = {}) {
341
- CHECK(filter != nullptr);
355
+ GRPC_CHECK(filter != nullptr);
342
356
  RegisterFusedFilter(type, NameFromChannelFilter(filter), filter, nullptr,
343
357
  registration_source);
344
358
  }
@@ -361,7 +375,7 @@ class ChannelInit {
361
375
  PostProcessorSlot slot,
362
376
  PostProcessor post_processor) {
363
377
  auto& slot_value = post_processors_[type][static_cast<int>(slot)];
364
- CHECK(slot_value == nullptr);
378
+ GRPC_CHECK(slot_value == nullptr);
365
379
  slot_value = std::move(post_processor);
366
380
  }
367
381
 
@@ -385,6 +399,8 @@ class ChannelInit {
385
399
  void AddToInterceptionChainBuilder(grpc_channel_stack_type type,
386
400
  InterceptionChainBuilder& builder) const;
387
401
 
402
+ void AddData(channelz::DataSink sink, grpc_channel_stack_type type) const;
403
+
388
404
  private:
389
405
  // The type of object returned by a filter's Create method.
390
406
  template <typename T>
@@ -425,6 +441,7 @@ class ChannelInit {
425
441
  std::vector<Filter> fused_filters;
426
442
  std::vector<Filter> terminators;
427
443
  std::vector<PostProcessor> post_processors;
444
+ channelz::PropertyTable filter_ordering;
428
445
  };
429
446
 
430
447
  StackConfig stack_configs_[GRPC_NUM_CHANNEL_STACK_TYPES];
@@ -433,7 +450,7 @@ class ChannelInit {
433
450
  SortFilterRegistrationsByDependencies(
434
451
  const std::vector<std::unique_ptr<FilterRegistration>>&
435
452
  filter_registrations,
436
- grpc_channel_stack_type type);
453
+ grpc_channel_stack_type type, channelz::PropertyTable& filter_ordering);
437
454
 
438
455
  static std::vector<Filter> SortFusedFilterRegistrations(
439
456
  const std::vector<std::unique_ptr<FilterRegistration>>&
@@ -443,8 +460,8 @@ class ChannelInit {
443
460
  static std::vector<FilterNode> SelectFiltersByPredicate(
444
461
  const std::vector<Filter>& filters, ChannelStackBuilder* builder);
445
462
 
446
- static void MergeFilters(std::vector<FilterNode>& filter_list,
447
- const std::vector<Filter>& fused_filters);
463
+ static void MergeFusedFilters(ChannelStackBuilder* builder,
464
+ const std::vector<Filter>& fused_filters);
448
465
 
449
466
  static void AppendFiltersToBuilder(const std::vector<FilterNode>& filter_list,
450
467
  ChannelStackBuilder* builder);
@@ -32,11 +32,6 @@
32
32
  #include <utility>
33
33
  #include <vector>
34
34
 
35
- #include "absl/log/check.h"
36
- #include "absl/log/log.h"
37
- #include "absl/status/status.h"
38
- #include "absl/strings/str_format.h"
39
- #include "absl/strings/str_join.h"
40
35
  #include "src/core/lib/event_engine/shim.h"
41
36
  #include "src/core/lib/iomgr/closure.h"
42
37
  #include "src/core/lib/iomgr/exec_ctx.h"
@@ -46,10 +41,15 @@
46
41
  #include "src/core/telemetry/stats_data.h"
47
42
  #include "src/core/util/atomic_utils.h"
48
43
  #include "src/core/util/debug_location.h"
44
+ #include "src/core/util/grpc_check.h"
49
45
  #include "src/core/util/ref_counted.h"
50
46
  #include "src/core/util/spinlock.h"
51
47
  #include "src/core/util/status_helper.h"
52
48
  #include "src/core/util/time.h"
49
+ #include "absl/log/log.h"
50
+ #include "absl/status/status.h"
51
+ #include "absl/strings/str_format.h"
52
+ #include "absl/strings/str_join.h"
53
53
 
54
54
  namespace {
55
55
 
@@ -166,7 +166,7 @@ grpc_error_handle non_polling_poller_kick(
166
166
 
167
167
  void non_polling_poller_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
168
168
  non_polling_poller* p = reinterpret_cast<non_polling_poller*>(pollset);
169
- CHECK_NE(closure, nullptr);
169
+ GRPC_CHECK_NE(closure, nullptr);
170
170
  p->shutdown = closure;
171
171
  if (p->root == nullptr) {
172
172
  grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure, absl::OkStatus());
@@ -311,7 +311,7 @@ class CqEventQueue {
311
311
 
312
312
  struct cq_next_data {
313
313
  ~cq_next_data() {
314
- CHECK_EQ(queue.num_items(), 0);
314
+ GRPC_CHECK_EQ(queue.num_items(), 0);
315
315
  #ifndef NDEBUG
316
316
  if (pending_events.load(std::memory_order_acquire) != 0) {
317
317
  LOG(ERROR) << "Destroying CQ without draining it fully.";
@@ -341,7 +341,8 @@ struct cq_pluck_data {
341
341
  }
342
342
 
343
343
  ~cq_pluck_data() {
344
- CHECK(completed_head.next == reinterpret_cast<uintptr_t>(&completed_head));
344
+ GRPC_CHECK(completed_head.next ==
345
+ reinterpret_cast<uintptr_t>(&completed_head));
345
346
  #ifndef NDEBUG
346
347
  if (pending_events.load(std::memory_order_acquire) != 0) {
347
348
  LOG(ERROR) << "Destroying CQ without draining it fully.";
@@ -710,7 +711,7 @@ static void cq_check_tag(grpc_completion_queue* cq, void* tag, bool lock_cq) {
710
711
  gpr_mu_unlock(cq->mu);
711
712
  }
712
713
 
713
- CHECK(found);
714
+ GRPC_CHECK(found);
714
715
  }
715
716
  #else
716
717
  static void cq_check_tag(grpc_completion_queue* /*cq*/, void* /*tag*/,
@@ -940,7 +941,7 @@ class ExecCtxNext : public grpc_core::ExecCtx {
940
941
  static_cast<cq_is_finished_arg*>(check_ready_to_finish_arg_);
941
942
  grpc_completion_queue* cq = a->cq;
942
943
  cq_next_data* cqd = static_cast<cq_next_data*> DATA_FROM_CQ(cq);
943
- CHECK_EQ(a->stolen_completion, nullptr);
944
+ GRPC_CHECK_EQ(a->stolen_completion, nullptr);
944
945
 
945
946
  intptr_t current_last_seen_things_queued_ever =
946
947
  cqd->things_queued_ever.load(std::memory_order_relaxed);
@@ -994,7 +995,7 @@ static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
994
995
  << ", tv_nsec: " << deadline.tv_nsec
995
996
  << ", clock_type: " << (int)deadline.clock_type
996
997
  << " }, reserved=" << reserved << ")";
997
- CHECK(!reserved);
998
+ GRPC_CHECK(!reserved);
998
999
 
999
1000
  dump_pending_tags(cq);
1000
1001
 
@@ -1100,7 +1101,7 @@ static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
1100
1101
  GRPC_SURFACE_TRACE_RETURNED_EVENT(cq, &ret);
1101
1102
  GRPC_CQ_INTERNAL_UNREF(cq, "next");
1102
1103
 
1103
- CHECK_EQ(is_finished_arg.stolen_completion, nullptr);
1104
+ GRPC_CHECK_EQ(is_finished_arg.stolen_completion, nullptr);
1104
1105
 
1105
1106
  return ret;
1106
1107
  }
@@ -1114,8 +1115,8 @@ static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
1114
1115
  static void cq_finish_shutdown_next(grpc_completion_queue* cq) {
1115
1116
  cq_next_data* cqd = static_cast<cq_next_data*> DATA_FROM_CQ(cq);
1116
1117
 
1117
- CHECK(cqd->shutdown_called);
1118
- CHECK_EQ(cqd->pending_events.load(std::memory_order_relaxed), 0);
1118
+ GRPC_CHECK(cqd->shutdown_called);
1119
+ GRPC_CHECK_EQ(cqd->pending_events.load(std::memory_order_relaxed), 0);
1119
1120
 
1120
1121
  cq->poller_vtable->shutdown(POLLSET_FROM_CQ(cq), &cq->pollset_shutdown_done);
1121
1122
  }
@@ -1188,7 +1189,7 @@ class ExecCtxPluck : public grpc_core::ExecCtx {
1188
1189
  grpc_completion_queue* cq = a->cq;
1189
1190
  cq_pluck_data* cqd = static_cast<cq_pluck_data*> DATA_FROM_CQ(cq);
1190
1191
 
1191
- CHECK_EQ(a->stolen_completion, nullptr);
1192
+ GRPC_CHECK_EQ(a->stolen_completion, nullptr);
1192
1193
  gpr_atm current_last_seen_things_queued_ever =
1193
1194
  cqd->things_queued_ever.load(std::memory_order_relaxed);
1194
1195
  if (current_last_seen_things_queued_ever !=
@@ -1236,7 +1237,7 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
1236
1237
  << ", clock_type: " << (int)deadline.clock_type
1237
1238
  << " }, reserved=" << reserved << ")";
1238
1239
  }
1239
- CHECK(!reserved);
1240
+ GRPC_CHECK(!reserved);
1240
1241
 
1241
1242
  dump_pending_tags(cq);
1242
1243
 
@@ -1326,7 +1327,7 @@ done:
1326
1327
  GRPC_SURFACE_TRACE_RETURNED_EVENT(cq, &ret);
1327
1328
  GRPC_CQ_INTERNAL_UNREF(cq, "pluck");
1328
1329
 
1329
- CHECK_EQ(is_finished_arg.stolen_completion, nullptr);
1330
+ GRPC_CHECK_EQ(is_finished_arg.stolen_completion, nullptr);
1330
1331
 
1331
1332
  return ret;
1332
1333
  }
@@ -1339,8 +1340,8 @@ grpc_event grpc_completion_queue_pluck(grpc_completion_queue* cq, void* tag,
1339
1340
  static void cq_finish_shutdown_pluck(grpc_completion_queue* cq) {
1340
1341
  cq_pluck_data* cqd = static_cast<cq_pluck_data*> DATA_FROM_CQ(cq);
1341
1342
 
1342
- CHECK(cqd->shutdown_called);
1343
- CHECK(!cqd->shutdown.load(std::memory_order_relaxed));
1343
+ GRPC_CHECK(cqd->shutdown_called);
1344
+ GRPC_CHECK(!cqd->shutdown.load(std::memory_order_relaxed));
1344
1345
  cqd->shutdown.store(true, std::memory_order_relaxed);
1345
1346
 
1346
1347
  cq->poller_vtable->shutdown(POLLSET_FROM_CQ(cq), &cq->pollset_shutdown_done);
@@ -1376,7 +1377,7 @@ static void cq_finish_shutdown_callback(grpc_completion_queue* cq) {
1376
1377
  cq_callback_data* cqd = static_cast<cq_callback_data*> DATA_FROM_CQ(cq);
1377
1378
  auto* callback = cqd->shutdown_callback;
1378
1379
 
1379
- CHECK(cqd->shutdown_called);
1380
+ GRPC_CHECK(cqd->shutdown_called);
1380
1381
 
1381
1382
  cq->poller_vtable->shutdown(POLLSET_FROM_CQ(cq), &cq->pollset_shutdown_done);
1382
1383
 
@@ -21,9 +21,9 @@
21
21
  #include <grpc/grpc.h>
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
- #include "absl/log/check.h"
25
24
  #include "src/core/lib/iomgr/exec_ctx.h"
26
25
  #include "src/core/lib/surface/completion_queue.h"
26
+ #include "src/core/util/grpc_check.h"
27
27
 
28
28
  //
29
29
  // == Default completion queue factory implementation ==
@@ -47,8 +47,8 @@ static const grpc_completion_queue_factory g_default_cq_factory = {
47
47
 
48
48
  const grpc_completion_queue_factory* grpc_completion_queue_factory_lookup(
49
49
  const grpc_completion_queue_attributes* attributes) {
50
- CHECK(attributes->version >= 1 &&
51
- attributes->version <= GRPC_CQ_CURRENT_VERSION);
50
+ GRPC_CHECK(attributes->version >= 1 &&
51
+ attributes->version <= GRPC_CQ_CURRENT_VERSION);
52
52
 
53
53
  // The default factory can handle version 1 of the attributes structure. We
54
54
  // may have to change this as more fields are added to the structure
@@ -61,7 +61,7 @@ const grpc_completion_queue_factory* grpc_completion_queue_factory_lookup(
61
61
 
62
62
  grpc_completion_queue* grpc_completion_queue_create_for_next(void* reserved) {
63
63
  grpc_core::ExecCtx exec_ctx;
64
- CHECK(!reserved);
64
+ GRPC_CHECK(!reserved);
65
65
  grpc_completion_queue_attributes attr = {1, GRPC_CQ_NEXT,
66
66
  GRPC_CQ_DEFAULT_POLLING, nullptr};
67
67
  return g_default_cq_factory.vtable->create(&g_default_cq_factory, &attr);
@@ -69,7 +69,7 @@ grpc_completion_queue* grpc_completion_queue_create_for_next(void* reserved) {
69
69
 
70
70
  grpc_completion_queue* grpc_completion_queue_create_for_pluck(void* reserved) {
71
71
  grpc_core::ExecCtx exec_ctx;
72
- CHECK(!reserved);
72
+ GRPC_CHECK(!reserved);
73
73
  grpc_completion_queue_attributes attr = {1, GRPC_CQ_PLUCK,
74
74
  GRPC_CQ_DEFAULT_POLLING, nullptr};
75
75
  return g_default_cq_factory.vtable->create(&g_default_cq_factory, &attr);
@@ -78,7 +78,7 @@ grpc_completion_queue* grpc_completion_queue_create_for_pluck(void* reserved) {
78
78
  grpc_completion_queue* grpc_completion_queue_create_for_callback(
79
79
  grpc_completion_queue_functor* shutdown_callback, void* reserved) {
80
80
  grpc_core::ExecCtx exec_ctx;
81
- CHECK(!reserved);
81
+ GRPC_CHECK(!reserved);
82
82
  grpc_completion_queue_attributes attr = {
83
83
  2, GRPC_CQ_CALLBACK, GRPC_CQ_DEFAULT_POLLING, shutdown_callback};
84
84
  return g_default_cq_factory.vtable->create(&g_default_cq_factory, &attr);
@@ -88,6 +88,6 @@ grpc_completion_queue* grpc_completion_queue_create(
88
88
  const grpc_completion_queue_factory* factory,
89
89
  const grpc_completion_queue_attributes* attr, void* reserved) {
90
90
  grpc_core::ExecCtx exec_ctx;
91
- CHECK(!reserved);
91
+ GRPC_CHECK(!reserved);
92
92
  return factory->vtable->create(factory, attr);
93
93
  }
@@ -23,6 +23,7 @@
23
23
  #include <stddef.h>
24
24
 
25
25
  #include <cstdint>
26
+ #include <type_traits>
26
27
  #include <vector>
27
28
 
28
29
  #include "src/core/util/no_destruct.h"
@@ -74,6 +75,31 @@ class BaseConnectionContextPropertiesTraits {
74
75
  }
75
76
  };
76
77
 
78
+ template <class T, typename Ignored = void>
79
+ struct HasRef {
80
+ static constexpr bool value = false;
81
+ };
82
+
83
+ template <class T>
84
+ struct HasRef<T, std::enable_if_t<std::is_same<
85
+ const T*, decltype(std::declval<T>().Ref())>::value>> {
86
+ static constexpr bool value = true;
87
+ };
88
+
89
+ template <class T, typename Ignored = void>
90
+ struct HasUnref {
91
+ static constexpr bool value = false;
92
+ };
93
+
94
+ template <class T>
95
+ struct HasUnref<T, std::enable_if_t<std::is_same<
96
+ void, decltype(std::declval<T>().Unref())>::value>> {
97
+ static constexpr bool value = true;
98
+ };
99
+
100
+ template <class T>
101
+ constexpr bool IsRefCounted = HasRef<T>::value && HasUnref<T>::value;
102
+
77
103
  template <typename T>
78
104
  class ConnectionContextPropertiesTraits
79
105
  : public BaseConnectionContextPropertiesTraits {
@@ -83,7 +109,13 @@ class ConnectionContextPropertiesTraits
83
109
  static T* Construct(Args&&... args) {
84
110
  return new T(std::forward<Args>(args)...);
85
111
  }
86
- static void Destruct(void* p) { delete reinterpret_cast<T*>(p); }
112
+ static void Destruct(void* p) {
113
+ if constexpr (IsRefCounted<T>) {
114
+ reinterpret_cast<T*>(p)->Unref();
115
+ } else {
116
+ delete reinterpret_cast<T*>(p);
117
+ }
118
+ }
87
119
 
88
120
  protected:
89
121
  static const uint16_t id_;
@@ -132,13 +164,24 @@ class ConnectionContext final : public Orphanable {
132
164
  // Returns the value of a registered property. If the property is not set,
133
165
  // returns nullptr.
134
166
  template <typename Which>
135
- const Which* Get() {
167
+ Which* Get() {
136
168
  return static_cast<Which*>(
137
169
  registered_properties()
138
170
  [connection_context_detail::ConnectionContextPropertiesTraits<
139
171
  Which>::id()]);
140
172
  }
141
173
 
174
+ // Takes ownership of the value which is set.
175
+ template <typename Which>
176
+ void Set(Which* value) {
177
+ if constexpr (connection_context_detail::IsRefCounted<Which>) {
178
+ value->Ref();
179
+ }
180
+ registered_properties()
181
+ [connection_context_detail::ConnectionContextPropertiesTraits<
182
+ Which>::id()] = value;
183
+ }
184
+
142
185
  void Orphan() override;
143
186
 
144
187
  ~ConnectionContext() override;
@@ -37,12 +37,6 @@
37
37
  #include <string>
38
38
  #include <utility>
39
39
 
40
- #include "absl/log/check.h"
41
- #include "absl/log/log.h"
42
- #include "absl/status/status.h"
43
- #include "absl/strings/escaping.h"
44
- #include "absl/strings/str_cat.h"
45
- #include "absl/strings/string_view.h"
46
40
  #include "src/core/call/metadata_batch.h"
47
41
  #include "src/core/channelz/channelz.h"
48
42
  #include "src/core/lib/channel/channel_stack.h"
@@ -67,10 +61,16 @@
67
61
  #include "src/core/util/alloc.h"
68
62
  #include "src/core/util/crash.h"
69
63
  #include "src/core/util/debug_location.h"
64
+ #include "src/core/util/grpc_check.h"
70
65
  #include "src/core/util/ref_counted.h"
71
66
  #include "src/core/util/ref_counted_ptr.h"
72
67
  #include "src/core/util/status_helper.h"
73
68
  #include "src/core/util/time_precise.h"
69
+ #include "absl/log/log.h"
70
+ #include "absl/status/status.h"
71
+ #include "absl/strings/escaping.h"
72
+ #include "absl/strings/str_cat.h"
73
+ #include "absl/strings/string_view.h"
74
74
 
75
75
  namespace grpc_core {
76
76
 
@@ -84,7 +84,9 @@ FilterStackCall::FilterStackCall(RefCountedPtr<Arena> arena,
84
84
  std::move(arena)),
85
85
  channel_(args.channel->RefAsSubclass<Channel>()),
86
86
  cq_(args.cq),
87
- stream_op_payload_{} {}
87
+ stream_op_payload_{} {
88
+ SourceConstructed();
89
+ }
88
90
 
89
91
  grpc_error_handle FilterStackCall::Create(grpc_call_create_args* args,
90
92
  grpc_call** out_call) {
@@ -110,8 +112,8 @@ grpc_error_handle FilterStackCall::Create(grpc_call_create_args* args,
110
112
  arena->SetContext<grpc_event_engine::experimental::EventEngine>(
111
113
  args->channel->event_engine());
112
114
  call = new (arena->Alloc(call_alloc_size)) FilterStackCall(arena, *args);
113
- DCHECK(FromC(call->c_ptr()) == call);
114
- DCHECK(FromCallStack(call->call_stack()) == call);
115
+ GRPC_DCHECK(FromC(call->c_ptr()) == call);
116
+ GRPC_DCHECK(FromCallStack(call->call_stack()) == call);
115
117
  *out_call = call->c_ptr();
116
118
  grpc_slice path = grpc_empty_slice();
117
119
  ScopedContext ctx(call);
@@ -148,25 +150,15 @@ grpc_error_handle FilterStackCall::Create(grpc_call_create_args* args,
148
150
  // collecting from when the call is created at the transport. The idea is
149
151
  // that the transport would create the call tracer and pass it in as part of
150
152
  // the metadata.
151
- // TODO(yijiem): OpenCensus and internal Census is still using this way to
152
- // set server call tracer. We need to refactor them to stats plugins
153
- // (including removing the client channel filters).
153
+ ServerCallTracerInterface* server_call_tracer_from_factory = nullptr;
154
154
  if (args->server != nullptr &&
155
155
  args->server->server_call_tracer_factory() != nullptr) {
156
- auto* server_call_tracer =
156
+ server_call_tracer_from_factory =
157
157
  args->server->server_call_tracer_factory()->CreateNewServerCallTracer(
158
158
  arena.get(), args->server->channel_args());
159
- if (server_call_tracer != nullptr) {
160
- // Note that we are setting both
161
- // GRPC_CONTEXT_CALL_TRACER_ANNOTATION_INTERFACE and
162
- // GRPC_CONTEXT_CALL_TRACER as a matter of convenience. In the future
163
- // promise-based world, we would just a single tracer object for each
164
- // stack (call, subchannel_call, server_call.)
165
- arena->SetContext<CallTracerAnnotationInterface>(server_call_tracer);
166
- arena->SetContext<CallTracerInterface>(server_call_tracer);
167
- }
168
159
  }
169
- (*channel_stack->stats_plugin_group)->AddServerCallTracers(arena.get());
160
+ (*channel_stack->stats_plugin_group)
161
+ ->AddServerCallTracers(arena.get(), {server_call_tracer_from_factory});
170
162
  }
171
163
 
172
164
  // initial refcount dropped by grpc_call_unref
@@ -185,7 +177,7 @@ grpc_error_handle FilterStackCall::Create(grpc_call_create_args* args,
185
177
  call->CancelWithError(error);
186
178
  }
187
179
  if (args->cq != nullptr) {
188
- CHECK(args->pollset_set_alternative == nullptr)
180
+ GRPC_CHECK(args->pollset_set_alternative == nullptr)
189
181
  << "Only one of 'cq' and 'pollset_set_alternative' should be "
190
182
  "non-nullptr.";
191
183
  GRPC_CQ_INTERNAL_REF(args->cq, "bind");
@@ -215,7 +207,7 @@ grpc_error_handle FilterStackCall::Create(grpc_call_create_args* args,
215
207
  }
216
208
 
217
209
  if (args->send_deadline != Timestamp::InfFuture()) {
218
- call->UpdateDeadline(args->send_deadline);
210
+ call->UpdateDeadline(args->send_deadline).IgnoreError();
219
211
  }
220
212
 
221
213
  CSliceUnref(path);
@@ -224,7 +216,7 @@ grpc_error_handle FilterStackCall::Create(grpc_call_create_args* args,
224
216
  }
225
217
 
226
218
  void FilterStackCall::SetCompletionQueue(grpc_completion_queue* cq) {
227
- CHECK(cq);
219
+ GRPC_CHECK(cq);
228
220
 
229
221
  if (grpc_polling_entity_pollset_set(&pollent_) != nullptr) {
230
222
  Crash("A pollset_set is already registered for this call.");
@@ -241,6 +233,7 @@ void FilterStackCall::ReleaseCall(void* call, grpc_error_handle /*error*/) {
241
233
 
242
234
  void FilterStackCall::DestroyCall(void* call, grpc_error_handle /*error*/) {
243
235
  auto* c = static_cast<FilterStackCall*>(call);
236
+ c->SourceDestructing();
244
237
  c->recv_initial_metadata_.Clear();
245
238
  c->recv_trailing_metadata_.Clear();
246
239
  c->receiving_slice_buffer_.reset();
@@ -273,7 +266,7 @@ void FilterStackCall::ExternalUnref() {
273
266
 
274
267
  MaybeUnpublishFromParent();
275
268
 
276
- CHECK(!destroy_called_);
269
+ GRPC_CHECK(!destroy_called_);
277
270
  destroy_called_ = true;
278
271
  bool cancel = gpr_atm_acq_load(&received_final_op_atm_) == 0;
279
272
  if (cancel) {
@@ -337,7 +330,9 @@ void FilterStackCall::CancelWithError(grpc_error_handle error) {
337
330
  GRPC_TRACE_LOG(call_error, INFO)
338
331
  << "CancelWithError " << (is_client() ? "CLI" : "SVR") << " "
339
332
  << StatusToString(error);
340
- ClearPeerString();
333
+ if (!IsSkipClearPeerOnCancellationEnabled()) {
334
+ ClearPeerString();
335
+ }
341
336
  InternalRef("termination");
342
337
  ResetDeadline();
343
338
  // Inform the call combiner of the cancellation, so that it can cancel
@@ -542,7 +537,6 @@ FilterStackCall::BatchControl* FilterStackCall::ReuseOrAllocateBatchControl(
542
537
  *pslot = bctl;
543
538
  }
544
539
  bctl->call_ = this;
545
- bctl->call_tracer_ = arena()->GetContext<CallTracerAnnotationInterface>();
546
540
  bctl->op_.payload = &stream_op_payload_;
547
541
  return bctl;
548
542
  }
@@ -693,7 +687,7 @@ void FilterStackCall::BatchControl::ReceivingInitialMetadataReady(
693
687
  while (true) {
694
688
  gpr_atm rsr_bctlp = gpr_atm_acq_load(&call->recv_state_);
695
689
  // Should only receive initial metadata once
696
- CHECK_NE(rsr_bctlp, 1);
690
+ GRPC_CHECK_NE(rsr_bctlp, 1);
697
691
  if (rsr_bctlp == 0) {
698
692
  // We haven't seen initial metadata and messages before, thus initial
699
693
  // metadata is received first.
@@ -1101,7 +1095,7 @@ grpc_call_error FilterStackCall::StartBatch(const grpc_op* ops, size_t nops,
1101
1095
 
1102
1096
  InternalRef("completion");
1103
1097
  if (!is_notify_tag_closure) {
1104
- CHECK(grpc_cq_begin_op(cq_, notify_tag));
1098
+ GRPC_CHECK(grpc_cq_begin_op(cq_, notify_tag));
1105
1099
  }
1106
1100
  bctl->set_pending_ops(pending_ops);
1107
1101
 
@@ -38,10 +38,6 @@
38
38
  #include <string>
39
39
  #include <vector>
40
40
 
41
- #include "absl/log/check.h"
42
- #include "absl/strings/str_cat.h"
43
- #include "absl/strings/str_join.h"
44
- #include "absl/strings/string_view.h"
45
41
  #include "src/core/call/metadata_batch.h"
46
42
  #include "src/core/lib/channel/channel_stack.h"
47
43
  #include "src/core/lib/iomgr/call_combiner.h"
@@ -56,8 +52,12 @@
56
52
  #include "src/core/server/server_interface.h"
57
53
  #include "src/core/telemetry/call_tracer.h"
58
54
  #include "src/core/util/alloc.h"
55
+ #include "src/core/util/grpc_check.h"
59
56
  #include "src/core/util/ref_counted.h"
60
57
  #include "src/core/util/ref_counted_ptr.h"
58
+ #include "absl/strings/str_cat.h"
59
+ #include "absl/strings/str_join.h"
60
+ #include "absl/strings/string_view.h"
61
61
 
62
62
  namespace grpc_core {
63
63
 
@@ -110,7 +110,7 @@ class FilterStackCall final : public Call {
110
110
 
111
111
  bool is_trailers_only() const override {
112
112
  bool result = is_trailers_only_;
113
- DCHECK(!result || recv_initial_metadata_.TransportSize() == 0);
113
+ GRPC_DCHECK(!result || recv_initial_metadata_.TransportSize() == 0);
114
114
  return result;
115
115
  }
116
116
 
@@ -184,7 +184,6 @@ class FilterStackCall final : public Call {
184
184
  }
185
185
  struct BatchControl {
186
186
  FilterStackCall* call_ = nullptr;
187
- CallTracerAnnotationInterface* call_tracer_ = nullptr;
188
187
  grpc_transport_stream_op_batch op_;
189
188
  // Share memory for cq_completion and notify_tag as they are never needed
190
189
  // simultaneously. Each byte used in this data structure count as six bytes
@@ -219,7 +218,7 @@ class FilterStackCall final : public Call {
219
218
  << "BATCH:" << this << " COMPLETE:" << PendingOpString(mask)
220
219
  << " REMAINING:" << PendingOpString(r & ~mask)
221
220
  << " (tag:" << completion_data_.notify_tag.tag << ")";
222
- CHECK_NE((r & mask), 0);
221
+ GRPC_CHECK_NE((r & mask), 0);
223
222
  return r == mask;
224
223
  }
225
224
 
@@ -27,10 +27,6 @@
27
27
  #include <grpc/support/sync.h>
28
28
  #include <grpc/support/time.h>
29
29
 
30
- #include "absl/base/thread_annotations.h"
31
- #include "absl/log/log.h"
32
- #include "absl/time/clock.h"
33
- #include "absl/time/time.h"
34
30
  #include "src/core/client_channel/backup_poller.h"
35
31
  #include "src/core/config/core_configuration.h"
36
32
  #include "src/core/credentials/transport/security_connector.h"
@@ -48,6 +44,10 @@
48
44
  #include "src/core/util/fork.h"
49
45
  #include "src/core/util/sync.h"
50
46
  #include "src/core/util/thd.h"
47
+ #include "absl/base/thread_annotations.h"
48
+ #include "absl/log/log.h"
49
+ #include "absl/time/clock.h"
50
+ #include "absl/time/time.h"
51
51
 
52
52
  // Remnants of the old plugin system
53
53
  void grpc_resolver_dns_ares_init(void);
@@ -26,8 +26,6 @@
26
26
  #include <memory>
27
27
  #include <utility>
28
28
 
29
- #include "absl/status/status.h"
30
- #include "absl/status/statusor.h"
31
29
  #include "src/core/call/metadata_batch.h"
32
30
  #include "src/core/config/core_configuration.h"
33
31
  #include "src/core/lib/channel/channel_args.h"
@@ -46,6 +44,8 @@
46
44
  #include "src/core/util/ref_counted_ptr.h"
47
45
  #include "src/core/util/sync.h"
48
46
  #include "src/core/util/useful.h"
47
+ #include "absl/status/status.h"
48
+ #include "absl/status/statusor.h"
49
49
 
50
50
  // Avoid some IWYU confusion:
51
51
  // IWYU pragma: no_include "src/core/util/orphanable.h"