grpc 1.64.3 → 1.65.0

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 (632) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +57 -58
  3. data/include/grpc/event_engine/event_engine.h +13 -6
  4. data/include/grpc/impl/channel_arg_names.h +7 -3
  5. data/include/grpc/module.modulemap +1 -0
  6. data/include/grpc/passive_listener.h +62 -0
  7. data/include/grpc/support/log.h +7 -17
  8. data/include/grpc/support/port_platform.h +3 -0
  9. data/src/core/channelz/channel_trace.cc +1 -1
  10. data/src/core/channelz/channel_trace.h +1 -1
  11. data/src/core/channelz/channelz.cc +3 -3
  12. data/src/core/channelz/channelz.h +7 -7
  13. data/src/core/channelz/channelz_registry.cc +4 -3
  14. data/src/core/client_channel/backup_poller.cc +4 -5
  15. data/src/core/client_channel/client_channel.cc +1324 -0
  16. data/src/core/client_channel/client_channel.h +243 -0
  17. data/src/core/client_channel/client_channel_filter.cc +266 -709
  18. data/src/core/client_channel/client_channel_filter.h +11 -64
  19. data/src/core/client_channel/client_channel_internal.h +16 -5
  20. data/src/core/client_channel/client_channel_plugin.cc +1 -14
  21. data/src/core/client_channel/client_channel_service_config.h +3 -3
  22. data/src/core/client_channel/config_selector.cc +1 -1
  23. data/src/core/client_channel/config_selector.h +1 -1
  24. data/src/core/client_channel/dynamic_filters.cc +3 -3
  25. data/src/core/client_channel/dynamic_filters.h +1 -3
  26. data/src/core/client_channel/load_balanced_call_destination.cc +336 -0
  27. data/src/core/client_channel/load_balanced_call_destination.h +49 -0
  28. data/src/core/client_channel/retry_filter.cc +2 -9
  29. data/src/core/client_channel/retry_filter.h +2 -7
  30. data/src/core/client_channel/retry_filter_legacy_call_data.cc +65 -72
  31. data/src/core/client_channel/retry_filter_legacy_call_data.h +0 -2
  32. data/src/core/client_channel/retry_service_config.cc +4 -5
  33. data/src/core/client_channel/retry_service_config.h +3 -3
  34. data/src/core/client_channel/subchannel.cc +220 -112
  35. data/src/core/client_channel/subchannel.h +31 -18
  36. data/src/core/client_channel/subchannel_pool_interface.cc +0 -2
  37. data/src/core/client_channel/subchannel_pool_interface.h +2 -4
  38. data/src/core/client_channel/subchannel_stream_client.cc +36 -49
  39. data/src/core/client_channel/subchannel_stream_client.h +2 -4
  40. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +7 -10
  41. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +1 -0
  42. data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +7 -0
  43. data/src/core/ext/filters/census/grpc_context.cc +2 -4
  44. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +8 -15
  45. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +2 -0
  46. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +3 -7
  47. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +1 -0
  48. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +3 -3
  49. data/src/core/ext/filters/http/client/http_client_filter.cc +1 -0
  50. data/src/core/ext/filters/http/client/http_client_filter.h +1 -0
  51. data/src/core/ext/filters/http/client_authority_filter.cc +1 -0
  52. data/src/core/ext/filters/http/client_authority_filter.h +1 -0
  53. data/src/core/ext/filters/http/message_compress/compression_filter.cc +10 -15
  54. data/src/core/ext/filters/http/message_compress/compression_filter.h +2 -0
  55. data/src/core/ext/filters/http/server/http_server_filter.cc +2 -2
  56. data/src/core/ext/filters/http/server/http_server_filter.h +1 -0
  57. data/src/core/ext/filters/message_size/message_size_filter.cc +6 -9
  58. data/src/core/ext/filters/message_size/message_size_filter.h +6 -6
  59. data/src/core/ext/filters/rbac/rbac_filter.cc +2 -5
  60. data/src/core/ext/filters/rbac/rbac_filter.h +1 -0
  61. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +2 -2
  62. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +1 -1
  63. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +2 -6
  64. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +1 -0
  65. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +3 -3
  66. data/src/core/ext/transport/chttp2/alpn/alpn.cc +1 -1
  67. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +8 -25
  68. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -5
  69. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +223 -148
  70. data/src/core/ext/transport/chttp2/server/chttp2_server.h +33 -0
  71. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +131 -107
  72. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +8 -8
  73. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +1 -1
  74. data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -4
  75. data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -2
  76. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -6
  77. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +1 -2
  78. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +9 -5
  79. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +5 -4
  80. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +9 -2
  81. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +32 -43
  82. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -3
  83. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +3 -8
  84. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -1
  85. data/src/core/ext/transport/chttp2/transport/http2_settings.h +1 -1
  86. data/src/core/ext/transport/chttp2/transport/internal.h +29 -19
  87. data/src/core/ext/transport/chttp2/transport/parsing.cc +15 -25
  88. data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +0 -2
  89. data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +0 -2
  90. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +29 -13
  91. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +5 -4
  92. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +3 -5
  93. data/src/core/ext/transport/chttp2/transport/writing.cc +24 -25
  94. data/src/core/ext/transport/inproc/inproc_transport.cc +56 -32
  95. data/src/core/ext/transport/inproc/inproc_transport.h +1 -3
  96. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +13 -15
  97. data/src/core/ext/transport/inproc/legacy_inproc_transport.h +0 -2
  98. data/src/core/handshaker/handshaker.cc +6 -14
  99. data/src/core/handshaker/http_connect/http_connect_handshaker.cc +9 -17
  100. data/src/core/handshaker/http_connect/http_proxy_mapper.cc +3 -2
  101. data/src/core/handshaker/security/secure_endpoint.cc +38 -32
  102. data/src/core/handshaker/security/secure_endpoint.h +0 -2
  103. data/src/core/handshaker/security/security_handshaker.cc +25 -37
  104. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +2 -1
  105. data/src/core/lib/address_utils/parse_address.cc +27 -39
  106. data/src/core/lib/address_utils/sockaddr_utils.cc +5 -6
  107. data/src/core/lib/avl/avl.h +1 -1
  108. data/src/core/lib/channel/channel_args.cc +13 -17
  109. data/src/core/lib/channel/channel_args.h +19 -8
  110. data/src/core/lib/channel/channel_stack.cc +5 -63
  111. data/src/core/lib/channel/channel_stack.h +13 -37
  112. data/src/core/lib/channel/channel_stack_builder.h +0 -5
  113. data/src/core/lib/channel/channel_stack_builder_impl.cc +0 -142
  114. data/src/core/lib/channel/channel_stack_builder_impl.h +0 -2
  115. data/src/core/lib/channel/connected_channel.cc +37 -676
  116. data/src/core/lib/channel/promise_based_filter.cc +41 -47
  117. data/src/core/lib/channel/promise_based_filter.h +124 -477
  118. data/src/core/lib/channel/status_util.cc +1 -1
  119. data/src/core/lib/compression/compression.cc +1 -1
  120. data/src/core/lib/compression/message_compress.cc +6 -6
  121. data/src/core/lib/config/config_vars.cc +3 -8
  122. data/src/core/lib/config/config_vars.h +1 -5
  123. data/src/core/lib/debug/event_log.h +1 -1
  124. data/src/core/lib/debug/trace.cc +43 -59
  125. data/src/core/lib/debug/trace.h +2 -97
  126. data/src/core/lib/debug/trace_flags.cc +255 -0
  127. data/src/core/lib/debug/trace_flags.h +133 -0
  128. data/src/core/lib/debug/trace_impl.h +115 -0
  129. data/src/core/lib/event_engine/ares_resolver.cc +5 -7
  130. data/src/core/lib/event_engine/ares_resolver.h +1 -3
  131. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +1 -1
  132. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +17 -22
  133. data/src/core/lib/event_engine/event_engine.cc +29 -4
  134. data/src/core/lib/event_engine/extensions/supports_fd.h +7 -0
  135. data/src/core/lib/event_engine/extensions/tcp_trace.h +43 -0
  136. data/src/core/lib/event_engine/forkable.cc +4 -5
  137. data/src/core/lib/event_engine/forkable.h +0 -11
  138. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +10 -11
  139. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +4 -3
  140. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +1 -1
  141. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +19 -33
  142. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +3 -2
  143. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +24 -7
  144. data/src/core/lib/event_engine/posix_engine/posix_engine.h +2 -0
  145. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +14 -16
  146. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +18 -22
  147. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +13 -17
  148. data/src/core/lib/event_engine/posix_engine/timer.cc +1 -1
  149. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +4 -6
  150. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +2 -1
  151. data/src/core/lib/event_engine/shim.cc +1 -1
  152. data/src/core/lib/event_engine/tcp_socket_utils.cc +6 -8
  153. data/src/core/lib/event_engine/thread_local.h +1 -1
  154. data/src/core/lib/event_engine/thread_pool/thread_count.h +1 -1
  155. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +19 -21
  156. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -6
  157. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +14 -13
  158. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +4 -3
  159. data/src/core/lib/event_engine/trace.h +6 -17
  160. data/src/core/lib/event_engine/windows/iocp.h +1 -1
  161. data/src/core/lib/event_engine/windows/win_socket.cc +23 -17
  162. data/src/core/lib/event_engine/windows/win_socket.h +4 -5
  163. data/src/core/lib/event_engine/windows/windows_endpoint.cc +6 -9
  164. data/src/core/lib/event_engine/windows/windows_engine.cc +201 -87
  165. data/src/core/lib/event_engine/windows/windows_engine.h +136 -25
  166. data/src/core/lib/event_engine/windows/windows_listener.cc +12 -23
  167. data/src/core/lib/experiments/experiments.cc +35 -151
  168. data/src/core/lib/experiments/experiments.h +12 -45
  169. data/src/core/lib/gprpp/bitset.h +1 -1
  170. data/src/core/lib/gprpp/crash.cc +2 -3
  171. data/src/core/lib/gprpp/dual_ref_counted.h +45 -33
  172. data/src/core/lib/gprpp/dump_args.cc +54 -0
  173. data/src/core/lib/gprpp/dump_args.h +69 -0
  174. data/src/core/lib/gprpp/glob.cc +70 -0
  175. data/src/core/lib/gprpp/glob.h +29 -0
  176. data/src/core/lib/gprpp/per_cpu.cc +1 -1
  177. data/src/core/lib/gprpp/posix/stat.cc +3 -4
  178. data/src/core/lib/gprpp/posix/thd.cc +8 -9
  179. data/src/core/lib/gprpp/ref_counted.h +30 -22
  180. data/src/core/lib/gprpp/single_set_ptr.h +5 -3
  181. data/src/core/lib/gprpp/status_helper.cc +11 -30
  182. data/src/core/lib/gprpp/status_helper.h +3 -31
  183. data/src/core/lib/gprpp/time.cc +3 -4
  184. data/src/core/lib/gprpp/time.h +3 -2
  185. data/src/core/lib/gprpp/unique_type_name.h +1 -1
  186. data/src/core/lib/gprpp/validation_errors.cc +10 -1
  187. data/src/core/lib/gprpp/validation_errors.h +11 -0
  188. data/src/core/lib/gprpp/windows/stat.cc +3 -4
  189. data/src/core/lib/gprpp/windows/thd.cc +3 -2
  190. data/src/core/lib/gprpp/work_serializer.cc +48 -57
  191. data/src/core/lib/iomgr/buffer_list.cc +4 -2
  192. data/src/core/lib/iomgr/call_combiner.cc +18 -27
  193. data/src/core/lib/iomgr/call_combiner.h +1 -3
  194. data/src/core/lib/iomgr/cfstream_handle.cc +4 -6
  195. data/src/core/lib/iomgr/closure.h +2 -4
  196. data/src/core/lib/iomgr/combiner.cc +6 -8
  197. data/src/core/lib/iomgr/combiner.h +0 -2
  198. data/src/core/lib/iomgr/endpoint.cc +0 -6
  199. data/src/core/lib/iomgr/endpoint.h +0 -2
  200. data/src/core/lib/iomgr/endpoint_cfstream.cc +19 -41
  201. data/src/core/lib/iomgr/endpoint_pair_posix.cc +1 -1
  202. data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -6
  203. data/src/core/lib/iomgr/error.cc +13 -21
  204. data/src/core/lib/iomgr/error.h +1 -1
  205. data/src/core/lib/iomgr/ev_apple.cc +3 -5
  206. data/src/core/lib/iomgr/ev_epoll1_linux.cc +43 -42
  207. data/src/core/lib/iomgr/ev_poll_posix.cc +38 -29
  208. data/src/core/lib/iomgr/ev_posix.cc +8 -9
  209. data/src/core/lib/iomgr/ev_posix.h +10 -7
  210. data/src/core/lib/iomgr/event_engine_shims/closure.cc +2 -2
  211. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +14 -28
  212. data/src/core/lib/iomgr/exec_ctx.cc +2 -2
  213. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  214. data/src/core/lib/iomgr/executor.cc +6 -15
  215. data/src/core/lib/iomgr/executor.h +1 -1
  216. data/src/core/lib/iomgr/fork_posix.cc +8 -10
  217. data/src/core/lib/iomgr/fork_windows.cc +3 -1
  218. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -3
  219. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +3 -5
  220. data/src/core/lib/iomgr/internal_errqueue.cc +4 -2
  221. data/src/core/lib/iomgr/iocp_windows.cc +4 -3
  222. data/src/core/lib/iomgr/iomgr.cc +13 -17
  223. data/src/core/lib/iomgr/lockfree_event.cc +3 -5
  224. data/src/core/lib/iomgr/pollset.h +0 -2
  225. data/src/core/lib/iomgr/pollset_windows.cc +0 -2
  226. data/src/core/lib/iomgr/resolve_address_posix.cc +7 -14
  227. data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
  228. data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
  229. data/src/core/lib/iomgr/socket_mutator.cc +1 -1
  230. data/src/core/lib/iomgr/socket_utils_common_posix.cc +11 -17
  231. data/src/core/lib/iomgr/socket_windows.cc +4 -6
  232. data/src/core/lib/iomgr/tcp_client_cfstream.cc +3 -5
  233. data/src/core/lib/iomgr/tcp_client_posix.cc +9 -15
  234. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -4
  235. data/src/core/lib/iomgr/tcp_posix.cc +57 -84
  236. data/src/core/lib/iomgr/tcp_posix.h +0 -2
  237. data/src/core/lib/iomgr/tcp_server_posix.cc +3 -3
  238. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +4 -6
  239. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +7 -7
  240. data/src/core/lib/iomgr/tcp_server_windows.cc +10 -16
  241. data/src/core/lib/iomgr/tcp_windows.cc +25 -41
  242. data/src/core/lib/iomgr/timer_generic.cc +17 -20
  243. data/src/core/lib/iomgr/timer_heap.cc +1 -1
  244. data/src/core/lib/iomgr/timer_manager.cc +17 -30
  245. data/src/core/lib/iomgr/unix_sockets_posix.cc +1 -1
  246. data/src/core/lib/iomgr/vsock.cc +1 -1
  247. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +3 -3
  248. data/src/core/lib/promise/activity.h +27 -4
  249. data/src/core/lib/promise/cancel_callback.h +24 -0
  250. data/src/core/lib/promise/context.h +11 -0
  251. data/src/core/lib/promise/detail/basic_seq.h +1 -2
  252. data/src/core/lib/promise/detail/join_state.h +354 -398
  253. data/src/core/lib/promise/detail/promise_like.h +6 -5
  254. data/src/core/lib/promise/detail/seq_state.h +1178 -1178
  255. data/src/core/lib/promise/for_each.h +6 -6
  256. data/src/core/lib/promise/interceptor_list.h +6 -7
  257. data/src/core/lib/promise/latch.h +9 -9
  258. data/src/core/lib/promise/map.h +17 -0
  259. data/src/core/lib/promise/observable.h +182 -0
  260. data/src/core/lib/promise/party.cc +7 -8
  261. data/src/core/lib/promise/party.h +10 -8
  262. data/src/core/lib/promise/pipe.h +16 -35
  263. data/src/core/lib/promise/promise.h +1 -0
  264. data/src/core/lib/promise/status_flag.h +2 -0
  265. data/src/core/lib/resource_quota/arena.cc +56 -79
  266. data/src/core/lib/resource_quota/arena.h +118 -209
  267. data/src/core/lib/resource_quota/memory_quota.cc +12 -13
  268. data/src/core/lib/resource_quota/memory_quota.h +2 -3
  269. data/src/core/lib/resource_quota/periodic_update.cc +1 -1
  270. data/src/core/lib/resource_quota/resource_quota.h +1 -1
  271. data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
  272. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
  273. data/src/core/lib/security/authorization/evaluate_args.cc +6 -8
  274. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +5 -6
  275. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -0
  276. data/src/core/lib/security/authorization/matchers.cc +3 -3
  277. data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +2 -2
  278. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +2 -3
  279. data/src/core/lib/security/context/security_context.cc +12 -13
  280. data/src/core/lib/security/context/security_context.h +31 -8
  281. data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
  282. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +3 -1
  283. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -3
  284. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +5 -5
  285. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +3 -3
  286. data/src/core/lib/security/credentials/call_creds_util.cc +2 -1
  287. data/src/core/lib/security/credentials/channel_creds_registry.h +2 -2
  288. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +5 -3
  289. data/src/core/lib/security/credentials/composite/composite_credentials.h +1 -1
  290. data/src/core/lib/security/credentials/credentials.cc +6 -6
  291. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +4 -4
  292. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +2 -2
  293. data/src/core/lib/security/credentials/external/external_account_credentials.cc +9 -11
  294. data/src/core/lib/security/credentials/external/external_account_credentials.h +3 -3
  295. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +2 -2
  296. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -4
  297. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +1 -1
  298. data/src/core/lib/security/credentials/fake/fake_credentials.h +1 -1
  299. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -3
  300. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +11 -11
  301. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -1
  302. data/src/core/lib/security/credentials/iam/iam_credentials.h +1 -1
  303. data/src/core/lib/security/credentials/jwt/json_token.cc +14 -15
  304. data/src/core/lib/security/credentials/jwt/json_token.h +1 -1
  305. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +6 -5
  306. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +1 -1
  307. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +50 -54
  308. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
  309. data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
  310. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +12 -11
  311. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +4 -4
  312. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -7
  313. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +1 -3
  314. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +15 -21
  315. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
  316. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +21 -30
  317. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +1 -1
  318. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +1 -1
  319. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -4
  320. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +3 -5
  321. data/src/core/lib/security/credentials/tls/tls_credentials.cc +14 -16
  322. data/src/core/lib/security/credentials/tls/tls_utils.cc +4 -4
  323. data/src/core/lib/security/credentials/xds/xds_credentials.cc +1 -1
  324. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -16
  325. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +15 -12
  326. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +6 -6
  327. data/src/core/lib/security/security_connector/load_system_roots_windows.cc +1 -1
  328. data/src/core/lib/security/security_connector/local/local_security_connector.cc +8 -12
  329. data/src/core/lib/security/security_connector/security_connector.cc +1 -4
  330. data/src/core/lib/security/security_connector/security_connector.h +1 -3
  331. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +17 -19
  332. data/src/core/lib/security/security_connector/ssl_utils.cc +19 -21
  333. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +29 -40
  334. data/src/core/lib/security/transport/auth_filters.h +1 -0
  335. data/src/core/lib/security/transport/client_auth_filter.cc +7 -13
  336. data/src/core/lib/security/transport/server_auth_filter.cc +3 -8
  337. data/src/core/lib/security/util/json_util.h +1 -1
  338. data/src/core/lib/slice/slice.h +1 -1
  339. data/src/core/lib/slice/slice_refcount.h +2 -4
  340. data/src/core/lib/slice/slice_string_helpers.cc +1 -1
  341. data/src/core/lib/surface/api_trace.h +1 -3
  342. data/src/core/lib/surface/call.cc +64 -3738
  343. data/src/core/lib/surface/call.h +41 -143
  344. data/src/core/lib/surface/call_log_batch.cc +1 -1
  345. data/src/core/lib/surface/call_utils.cc +276 -0
  346. data/src/core/lib/surface/call_utils.h +449 -0
  347. data/src/core/lib/surface/channel.cc +8 -3
  348. data/src/core/lib/surface/channel.h +10 -7
  349. data/src/core/lib/surface/channel_create.cc +14 -6
  350. data/src/core/lib/surface/channel_create.h +3 -2
  351. data/src/core/lib/surface/channel_init.cc +21 -77
  352. data/src/core/lib/surface/channel_init.h +19 -97
  353. data/src/core/lib/surface/client_call.cc +419 -0
  354. data/src/core/lib/surface/client_call.h +180 -0
  355. data/src/core/lib/surface/completion_queue.cc +28 -33
  356. data/src/core/lib/surface/completion_queue.h +0 -8
  357. data/src/core/lib/surface/filter_stack_call.cc +1157 -0
  358. data/src/core/lib/surface/filter_stack_call.h +369 -0
  359. data/src/core/lib/surface/init.cc +7 -6
  360. data/src/core/lib/surface/lame_client.cc +1 -1
  361. data/src/core/lib/surface/legacy_channel.cc +40 -27
  362. data/src/core/lib/surface/legacy_channel.h +9 -18
  363. data/src/core/lib/surface/server_call.cc +222 -0
  364. data/src/core/lib/surface/server_call.h +167 -0
  365. data/src/core/lib/surface/version.cc +2 -2
  366. data/src/core/lib/transport/bdp_estimator.cc +3 -5
  367. data/src/core/lib/transport/bdp_estimator.h +2 -4
  368. data/src/core/lib/transport/call_arena_allocator.h +9 -7
  369. data/src/core/lib/transport/call_destination.h +76 -0
  370. data/src/core/lib/transport/call_filters.cc +28 -10
  371. data/src/core/lib/transport/call_filters.h +128 -22
  372. data/src/core/lib/transport/call_spine.cc +5 -6
  373. data/src/core/lib/transport/call_spine.h +159 -334
  374. data/src/core/lib/transport/connectivity_state.cc +8 -10
  375. data/src/core/lib/transport/connectivity_state.h +0 -2
  376. data/src/core/lib/transport/interception_chain.cc +155 -0
  377. data/src/core/lib/transport/interception_chain.h +236 -0
  378. data/src/core/lib/transport/metadata_batch.h +10 -1
  379. data/src/core/lib/transport/metadata_info.h +1 -1
  380. data/src/core/lib/transport/transport.cc +3 -6
  381. data/src/core/lib/transport/transport.h +43 -40
  382. data/src/core/load_balancing/child_policy_handler.cc +8 -8
  383. data/src/core/load_balancing/endpoint_list.cc +5 -5
  384. data/src/core/load_balancing/endpoint_list.h +1 -1
  385. data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +1 -0
  386. data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +1 -0
  387. data/src/core/load_balancing/grpclb/grpclb.cc +25 -29
  388. data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc +1 -1
  389. data/src/core/load_balancing/grpclb/load_balancer_api.cc +3 -4
  390. data/src/core/load_balancing/health_check_client.cc +10 -13
  391. data/src/core/load_balancing/lb_policy.cc +5 -8
  392. data/src/core/load_balancing/lb_policy.h +19 -3
  393. data/src/core/load_balancing/lb_policy_factory.h +1 -1
  394. data/src/core/load_balancing/lb_policy_registry.cc +2 -3
  395. data/src/core/load_balancing/lb_policy_registry.h +1 -1
  396. data/src/core/load_balancing/oob_backend_metric.cc +2 -4
  397. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +33 -35
  398. data/src/core/load_balancing/outlier_detection/outlier_detection.h +3 -3
  399. data/src/core/load_balancing/pick_first/pick_first.cc +65 -65
  400. data/src/core/load_balancing/priority/priority.cc +26 -28
  401. data/src/core/load_balancing/ring_hash/ring_hash.cc +11 -13
  402. data/src/core/load_balancing/ring_hash/ring_hash.h +3 -3
  403. data/src/core/load_balancing/rls/rls.cc +82 -82
  404. data/src/core/load_balancing/round_robin/round_robin.cc +17 -20
  405. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +54 -43
  406. data/src/core/load_balancing/weighted_target/weighted_target.cc +21 -24
  407. data/src/core/load_balancing/xds/cds.cc +14 -16
  408. data/src/core/load_balancing/xds/xds_cluster_impl.cc +16 -18
  409. data/src/core/load_balancing/xds/xds_cluster_manager.cc +15 -17
  410. data/src/core/load_balancing/xds/xds_override_host.cc +40 -41
  411. data/src/core/load_balancing/xds/xds_override_host.h +3 -3
  412. data/src/core/load_balancing/xds/xds_wrr_locality.cc +10 -12
  413. data/src/core/plugin_registry/grpc_plugin_registry.cc +5 -1
  414. data/src/core/resolver/binder/binder_resolver.cc +3 -2
  415. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +3 -2
  416. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +1 -1
  417. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +7 -14
  418. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -5
  419. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  420. data/src/core/resolver/dns/dns_resolver_plugin.cc +6 -5
  421. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +4 -9
  422. data/src/core/resolver/dns/event_engine/service_config_helper.cc +5 -5
  423. data/src/core/resolver/dns/native/dns_resolver.cc +8 -9
  424. data/src/core/resolver/endpoint_addresses.cc +1 -1
  425. data/src/core/resolver/fake/fake_resolver.cc +1 -1
  426. data/src/core/resolver/fake/fake_resolver.h +1 -1
  427. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +13 -14
  428. data/src/core/resolver/polling_resolver.cc +30 -35
  429. data/src/core/resolver/resolver.cc +2 -6
  430. data/src/core/resolver/resolver.h +0 -2
  431. data/src/core/resolver/resolver_registry.cc +6 -8
  432. data/src/core/resolver/sockaddr/sockaddr_resolver.cc +3 -3
  433. data/src/core/resolver/xds/xds_dependency_manager.cc +22 -23
  434. data/src/core/resolver/xds/xds_resolver.cc +13 -15
  435. data/src/core/server/server.cc +269 -389
  436. data/src/core/server/server.h +37 -19
  437. data/src/core/server/server_call_tracer_filter.cc +7 -14
  438. data/src/core/server/server_config_selector.h +1 -1
  439. data/src/core/server/server_config_selector_filter.cc +3 -3
  440. data/src/core/server/server_interface.h +2 -0
  441. data/src/core/server/xds_channel_stack_modifier.cc +1 -1
  442. data/src/core/server/xds_channel_stack_modifier.h +1 -1
  443. data/src/core/server/xds_server_config_fetcher.cc +1 -4
  444. data/src/core/service_config/service_config.h +1 -1
  445. data/src/core/service_config/service_config_call_data.h +13 -11
  446. data/src/core/service_config/service_config_channel_arg_filter.cc +6 -4
  447. data/src/core/service_config/service_config_impl.cc +5 -5
  448. data/src/core/service_config/service_config_impl.h +1 -1
  449. data/src/core/service_config/service_config_parser.cc +3 -6
  450. data/src/core/service_config/service_config_parser.h +1 -1
  451. data/src/core/{lib/channel → telemetry}/call_tracer.cc +20 -30
  452. data/src/core/{lib/channel → telemetry}/call_tracer.h +32 -9
  453. data/src/core/{lib/debug → telemetry}/histogram_view.cc +1 -1
  454. data/src/core/{lib/debug → telemetry}/histogram_view.h +3 -3
  455. data/src/core/telemetry/metrics.cc +178 -0
  456. data/src/core/telemetry/metrics.h +562 -0
  457. data/src/core/{lib/debug → telemetry}/stats.cc +1 -1
  458. data/src/core/{lib/debug → telemetry}/stats.h +5 -5
  459. data/src/core/{lib/debug → telemetry}/stats_data.cc +1 -1
  460. data/src/core/{lib/debug → telemetry}/stats_data.h +4 -4
  461. data/src/core/{lib/channel → telemetry}/tcp_tracer.h +3 -3
  462. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +12 -13
  463. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +25 -27
  464. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +32 -33
  465. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -1
  466. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -1
  467. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +5 -4
  468. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +5 -3
  469. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
  470. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -3
  471. data/src/core/tsi/fake_transport_security.cc +14 -17
  472. data/src/core/tsi/local_transport_security.cc +6 -5
  473. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +4 -4
  474. data/src/core/tsi/ssl_transport_security.cc +76 -81
  475. data/src/core/tsi/ssl_transport_security_utils.cc +74 -18
  476. data/src/core/tsi/ssl_transport_security_utils.h +11 -0
  477. data/src/core/tsi/transport_security.cc +0 -4
  478. data/src/core/tsi/transport_security.h +0 -2
  479. data/src/core/tsi/transport_security_interface.h +0 -4
  480. data/src/core/{lib/gpr → util}/alloc.h +3 -3
  481. data/src/core/{lib/gpr → util}/android/log.cc +0 -19
  482. data/src/core/{lib/gpr → util}/atm.cc +1 -1
  483. data/src/core/{ext/gcp/metadata_query.cc → util/gcp_metadata_query.cc} +25 -26
  484. data/src/core/{ext/gcp/metadata_query.h → util/gcp_metadata_query.h} +11 -11
  485. data/src/core/{lib/http → util/http_client}/format_request.cc +4 -3
  486. data/src/core/{lib/http → util/http_client}/format_request.h +6 -5
  487. data/src/core/{lib/http → util/http_client}/httpcli.cc +9 -10
  488. data/src/core/{lib/http → util/http_client}/httpcli.h +6 -5
  489. data/src/core/{lib/http → util/http_client}/httpcli_security_connector.cc +9 -9
  490. data/src/core/{lib/http → util/http_client}/httpcli_ssl_credentials.h +5 -4
  491. data/src/core/{lib/http → util/http_client}/parser.cc +4 -5
  492. data/src/core/{lib/http → util/http_client}/parser.h +5 -6
  493. data/src/core/{lib → util}/json/json.h +5 -4
  494. data/src/core/{lib → util}/json/json_args.h +5 -5
  495. data/src/core/{lib → util}/json/json_channel_args.h +6 -6
  496. data/src/core/{lib → util}/json/json_object_loader.cc +3 -2
  497. data/src/core/{lib → util}/json/json_object_loader.h +7 -7
  498. data/src/core/{lib → util}/json/json_reader.cc +3 -2
  499. data/src/core/{lib → util}/json/json_reader.h +6 -6
  500. data/src/core/{lib → util}/json/json_util.cc +4 -4
  501. data/src/core/{lib → util}/json/json_util.h +6 -6
  502. data/src/core/{lib → util}/json/json_writer.cc +3 -3
  503. data/src/core/{lib → util}/json/json_writer.h +6 -6
  504. data/src/core/{lib/gpr → util}/linux/log.cc +0 -45
  505. data/src/core/util/log.cc +165 -0
  506. data/src/core/{lib/gpr → util}/msys/tmpfile.cc +2 -2
  507. data/src/core/{lib/gpr → util}/posix/cpu.cc +1 -1
  508. data/src/core/{lib/gpr → util}/posix/log.cc +0 -42
  509. data/src/core/{lib/gpr → util}/posix/time.cc +1 -1
  510. data/src/core/{lib/gpr → util}/posix/tmpfile.cc +2 -2
  511. data/src/core/{lib/gpr → util}/spinlock.h +3 -3
  512. data/src/core/{lib/gpr → util}/string.cc +2 -2
  513. data/src/core/{lib/gpr → util}/string.h +3 -3
  514. data/src/core/{lib/gpr → util}/time_precise.cc +1 -1
  515. data/src/core/{lib/gpr → util}/time_precise.h +3 -3
  516. data/src/core/{lib/gpr → util}/tmpfile.h +3 -3
  517. data/src/core/{lib/gpr → util}/useful.h +3 -3
  518. data/src/core/{lib/gpr → util}/windows/log.cc +1 -44
  519. data/src/core/{lib/gpr → util}/windows/string.cc +1 -1
  520. data/src/core/{lib/gpr → util}/windows/string_util.cc +1 -1
  521. data/src/core/{lib/gpr → util}/windows/time.cc +1 -1
  522. data/src/core/{lib/gpr → util}/windows/tmpfile.cc +1 -1
  523. data/src/core/xds/grpc/certificate_provider_store.cc +3 -3
  524. data/src/core/xds/grpc/certificate_provider_store.h +4 -4
  525. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
  526. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +3 -3
  527. data/src/core/xds/grpc/xds_audit_logger_registry.h +1 -1
  528. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +5 -5
  529. data/src/core/xds/grpc/xds_bootstrap_grpc.h +3 -3
  530. data/src/core/xds/grpc/xds_certificate_provider.h +1 -1
  531. data/src/core/xds/grpc/xds_client_grpc.cc +27 -23
  532. data/src/core/xds/grpc/xds_client_grpc.h +2 -2
  533. data/src/core/xds/grpc/xds_cluster.cc +4 -5
  534. data/src/core/xds/grpc/xds_cluster.h +1 -1
  535. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
  536. data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +1 -1
  537. data/src/core/xds/grpc/xds_common_types.cc +1 -1
  538. data/src/core/xds/grpc/xds_common_types.h +1 -1
  539. data/src/core/xds/grpc/xds_endpoint.cc +4 -5
  540. data/src/core/xds/grpc/xds_http_fault_filter.cc +2 -2
  541. data/src/core/xds/grpc/xds_http_filters.h +2 -2
  542. data/src/core/xds/grpc/xds_http_rbac_filter.cc +3 -3
  543. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +2 -2
  544. data/src/core/xds/grpc/xds_lb_policy_registry.h +1 -1
  545. data/src/core/xds/grpc/xds_listener.cc +4 -6
  546. data/src/core/xds/grpc/xds_route_config.cc +7 -8
  547. data/src/core/xds/grpc/xds_transport_grpc.cc +2 -2
  548. data/src/core/xds/grpc/xds_transport_grpc.h +1 -1
  549. data/src/core/xds/xds_client/xds_api.cc +5 -9
  550. data/src/core/xds/xds_client/xds_bootstrap.cc +1 -1
  551. data/src/core/xds/xds_client/xds_bootstrap.h +1 -1
  552. data/src/core/xds/xds_client/xds_client.cc +39 -45
  553. data/src/core/xds/xds_client/xds_client.h +0 -3
  554. data/src/core/xds/xds_client/xds_client_stats.cc +6 -6
  555. data/src/core/xds/xds_client/xds_client_stats.h +2 -2
  556. data/src/ruby/bin/math_pb.rb +1 -22
  557. data/src/ruby/ext/grpc/rb_call.c +8 -1
  558. data/src/ruby/ext/grpc/rb_completion_queue.c +15 -32
  559. data/src/ruby/ext/grpc/rb_completion_queue.h +7 -1
  560. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -2
  561. data/src/ruby/ext/grpc/rb_server.c +39 -22
  562. data/src/ruby/lib/grpc/version.rb +1 -1
  563. data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -22
  564. data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +5 -5
  565. data/src/ruby/pb/grpc/testing/metrics_pb.rb +10 -19
  566. data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +5 -5
  567. data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -22
  568. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -22
  569. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -22
  570. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +4 -0
  571. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +12 -12
  572. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +66 -41
  573. data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +1497 -0
  574. data/third_party/boringssl-with-bazel/src/crypto/dilithium/internal.h +58 -0
  575. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -3
  576. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +0 -2
  577. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +2 -0
  578. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +5 -0
  579. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +45 -1
  580. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +33 -23
  581. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +3 -6
  582. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +9 -4
  583. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +6 -0
  584. data/third_party/boringssl-with-bazel/src/crypto/internal.h +7 -0
  585. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +0 -4
  586. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c +49 -16
  587. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -10
  588. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +7 -17
  589. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +8 -6
  590. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +3 -0
  591. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +125 -0
  592. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +0 -23
  593. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +1 -1
  594. data/third_party/boringssl-with-bazel/src/ssl/internal.h +4 -10
  595. metadata +103 -93
  596. data/src/core/ext/transport/chttp2/transport/http_trace.cc +0 -19
  597. data/src/core/ext/transport/chttp2/transport/http_trace.h +0 -24
  598. data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -23
  599. data/src/core/handshaker/security/tsi_error.cc +0 -31
  600. data/src/core/handshaker/security/tsi_error.h +0 -30
  601. data/src/core/lib/channel/channel_stack_trace.cc +0 -19
  602. data/src/core/lib/channel/channel_stack_trace.h +0 -24
  603. data/src/core/lib/channel/context.h +0 -105
  604. data/src/core/lib/channel/metrics.cc +0 -334
  605. data/src/core/lib/channel/metrics.h +0 -365
  606. data/src/core/lib/event_engine/trace.cc +0 -25
  607. data/src/core/lib/gpr/log.cc +0 -166
  608. data/src/core/lib/iomgr/ev_windows.cc +0 -30
  609. data/src/core/lib/promise/trace.cc +0 -20
  610. data/src/core/lib/promise/trace.h +0 -24
  611. data/src/core/lib/resource_quota/trace.cc +0 -19
  612. data/src/core/lib/resource_quota/trace.h +0 -24
  613. data/src/core/lib/slice/slice_refcount.cc +0 -20
  614. data/src/core/lib/surface/api_trace.cc +0 -25
  615. data/src/core/lib/surface/call_trace.h +0 -24
  616. data/src/core/lib/surface/wait_for_cq_end_op.cc +0 -75
  617. data/src/core/lib/surface/wait_for_cq_end_op.h +0 -72
  618. data/src/core/lib/transport/batch_builder.cc +0 -172
  619. data/src/core/lib/transport/batch_builder.h +0 -474
  620. data/src/core/resolver/xds/xds_resolver_trace.cc +0 -25
  621. data/src/core/resolver/xds/xds_resolver_trace.h +0 -30
  622. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -122
  623. /data/src/core/{lib/gpr → util}/alloc.cc +0 -0
  624. /data/src/core/{lib/gpr → util}/iphone/cpu.cc +0 -0
  625. /data/src/core/{lib/gpr → util}/linux/cpu.cc +0 -0
  626. /data/src/core/{lib/gpr → util}/posix/string.cc +0 -0
  627. /data/src/core/{lib/gpr → util}/posix/sync.cc +0 -0
  628. /data/src/core/{lib/gpr → util}/sync.cc +0 -0
  629. /data/src/core/{lib/gpr → util}/sync_abseil.cc +0 -0
  630. /data/src/core/{lib/gpr → util}/time.cc +0 -0
  631. /data/src/core/{lib/gpr → util}/windows/cpu.cc +0 -0
  632. /data/src/core/{lib/gpr → util}/windows/sync.cc +0 -0
@@ -16,8 +16,6 @@
16
16
 
17
17
  #include "src/core/lib/experiments/experiments.h"
18
18
 
19
- #include <stdint.h>
20
-
21
19
  #include <grpc/support/port_platform.h>
22
20
 
23
21
  #ifndef GRPC_EXPERIMENTS_ARE_FINAL
@@ -29,8 +27,6 @@ const char* const description_call_status_override_on_cancellation =
29
27
  "with cancellation.";
30
28
  const char* const additional_constraints_call_status_override_on_cancellation =
31
29
  "{}";
32
- const char* const description_call_v3 = "Promise-based call version 3.";
33
- const char* const additional_constraints_call_v3 = "{}";
34
30
  const char* const description_canary_client_privacy =
35
31
  "If set, canary client privacy";
36
32
  const char* const additional_constraints_canary_client_privacy = "{}";
@@ -59,6 +55,11 @@ const char* const description_keepalive_server_fix =
59
55
  "Allows overriding keepalive_permit_without_calls for servers. Refer "
60
56
  "https://github.com/grpc/grpc/pull/33917 for more information.";
61
57
  const char* const additional_constraints_keepalive_server_fix = "{}";
58
+ const char* const description_max_pings_wo_data_throttle =
59
+ "Experiment to throttle pings to a period of 1 min when "
60
+ "GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA limit has reached (instead of "
61
+ "completely blocking).";
62
+ const char* const additional_constraints_max_pings_wo_data_throttle = "{}";
62
63
  const char* const description_monitoring_experiment =
63
64
  "Placeholder experiment to prove/disprove our monitoring is working";
64
65
  const char* const additional_constraints_monitoring_experiment = "{}";
@@ -70,41 +71,12 @@ const char* const description_peer_state_based_framing =
70
71
  "on the peer's memory pressure which is reflected in its max http2 frame "
71
72
  "size.";
72
73
  const char* const additional_constraints_peer_state_based_framing = "{}";
73
- const char* const description_pending_queue_cap =
74
- "In the sync & async apis (but not the callback api), cap the number of "
75
- "received but unrequested requests in the server for each call type. A "
76
- "received message is one that was read from the wire on the server. A "
77
- "requested message is one explicitly requested by the application using "
78
- "grpc_server_request_call or grpc_server_request_registered_call (or their "
79
- "wrappers in the C++ API).";
80
- const char* const additional_constraints_pending_queue_cap = "{}";
81
74
  const char* const description_pick_first_new =
82
75
  "New pick_first impl with memory reduction.";
83
76
  const char* const additional_constraints_pick_first_new = "{}";
84
- const char* const description_promise_based_client_call =
85
- "If set, use the new gRPC promise based call code when it's appropriate "
86
- "(ie when all filters in a stack are promise based)";
87
- const char* const additional_constraints_promise_based_client_call = "{}";
88
- const uint8_t required_experiments_promise_based_client_call[] = {
89
- static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
90
- static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
91
- const char* const description_promise_based_server_call =
92
- "If set, use the new gRPC promise based call code when it's appropriate "
93
- "(ie when all filters in a stack are promise based)";
94
- const char* const additional_constraints_promise_based_server_call = "{}";
95
- const char* const description_chaotic_good =
96
- "If set, enable the chaotic good load transport (this is mostly here for "
97
- "testing)";
98
- const char* const additional_constraints_chaotic_good = "{}";
99
- const uint8_t required_experiments_chaotic_good[] = {
100
- static_cast<uint8_t>(grpc_core::kExperimentIdPromiseBasedClientCall),
101
- static_cast<uint8_t>(grpc_core::kExperimentIdPromiseBasedServerCall)};
102
77
  const char* const description_promise_based_inproc_transport =
103
78
  "Use promises for the in-process transport.";
104
79
  const char* const additional_constraints_promise_based_inproc_transport = "{}";
105
- const uint8_t required_experiments_promise_based_inproc_transport[] = {
106
- static_cast<uint8_t>(grpc_core::kExperimentIdPromiseBasedClientCall),
107
- static_cast<uint8_t>(grpc_core::kExperimentIdPromiseBasedServerCall)};
108
80
  const char* const description_rstpit =
109
81
  "On RST_STREAM on a server, reduce MAX_CONCURRENT_STREAMS for a short "
110
82
  "duration";
@@ -140,8 +112,6 @@ const char* const description_work_serializer_dispatch =
140
112
  "callback, instead of running things inline in the first thread that "
141
113
  "successfully enqueues work.";
142
114
  const char* const additional_constraints_work_serializer_dispatch = "{}";
143
- const uint8_t required_experiments_work_serializer_dispatch[] = {
144
- static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient)};
145
115
  } // namespace
146
116
 
147
117
  namespace grpc_core {
@@ -151,8 +121,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
151
121
  description_call_status_override_on_cancellation,
152
122
  additional_constraints_call_status_override_on_cancellation, nullptr, 0,
153
123
  true, true},
154
- {"call_v3", description_call_v3, additional_constraints_call_v3, nullptr, 0,
155
- false, true},
156
124
  {"canary_client_privacy", description_canary_client_privacy,
157
125
  additional_constraints_canary_client_privacy, nullptr, 0, false, false},
158
126
  {"client_privacy", description_client_privacy,
@@ -171,28 +139,21 @@ const ExperimentMetadata g_experiment_metadata[] = {
171
139
  additional_constraints_keepalive_fix, nullptr, 0, false, false},
172
140
  {"keepalive_server_fix", description_keepalive_server_fix,
173
141
  additional_constraints_keepalive_server_fix, nullptr, 0, false, false},
142
+ {"max_pings_wo_data_throttle", description_max_pings_wo_data_throttle,
143
+ additional_constraints_max_pings_wo_data_throttle, nullptr, 0, false,
144
+ true},
174
145
  {"monitoring_experiment", description_monitoring_experiment,
175
146
  additional_constraints_monitoring_experiment, nullptr, 0, true, true},
176
147
  {"multiping", description_multiping, additional_constraints_multiping,
177
148
  nullptr, 0, false, true},
178
149
  {"peer_state_based_framing", description_peer_state_based_framing,
179
150
  additional_constraints_peer_state_based_framing, nullptr, 0, false, true},
180
- {"pending_queue_cap", description_pending_queue_cap,
181
- additional_constraints_pending_queue_cap, nullptr, 0, true, true},
182
151
  {"pick_first_new", description_pick_first_new,
183
152
  additional_constraints_pick_first_new, nullptr, 0, true, true},
184
- {"promise_based_client_call", description_promise_based_client_call,
185
- additional_constraints_promise_based_client_call,
186
- required_experiments_promise_based_client_call, 2, false, true},
187
- {"promise_based_server_call", description_promise_based_server_call,
188
- additional_constraints_promise_based_server_call, nullptr, 0, false, true},
189
- {"chaotic_good", description_chaotic_good,
190
- additional_constraints_chaotic_good, required_experiments_chaotic_good, 2,
191
- false, true},
192
153
  {"promise_based_inproc_transport",
193
154
  description_promise_based_inproc_transport,
194
- additional_constraints_promise_based_inproc_transport,
195
- required_experiments_promise_based_inproc_transport, 2, false, false},
155
+ additional_constraints_promise_based_inproc_transport, nullptr, 0, false,
156
+ false},
196
157
  {"rstpit", description_rstpit, additional_constraints_rstpit, nullptr, 0,
197
158
  false, true},
198
159
  {"schedule_cancellation_over_write",
@@ -216,8 +177,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
216
177
  additional_constraints_work_serializer_clears_time_cache, nullptr, 0, true,
217
178
  true},
218
179
  {"work_serializer_dispatch", description_work_serializer_dispatch,
219
- additional_constraints_work_serializer_dispatch,
220
- required_experiments_work_serializer_dispatch, 1, false, true},
180
+ additional_constraints_work_serializer_dispatch, nullptr, 0, false, true},
221
181
  };
222
182
 
223
183
  } // namespace grpc_core
@@ -229,8 +189,6 @@ const char* const description_call_status_override_on_cancellation =
229
189
  "with cancellation.";
230
190
  const char* const additional_constraints_call_status_override_on_cancellation =
231
191
  "{}";
232
- const char* const description_call_v3 = "Promise-based call version 3.";
233
- const char* const additional_constraints_call_v3 = "{}";
234
192
  const char* const description_canary_client_privacy =
235
193
  "If set, canary client privacy";
236
194
  const char* const additional_constraints_canary_client_privacy = "{}";
@@ -259,6 +217,11 @@ const char* const description_keepalive_server_fix =
259
217
  "Allows overriding keepalive_permit_without_calls for servers. Refer "
260
218
  "https://github.com/grpc/grpc/pull/33917 for more information.";
261
219
  const char* const additional_constraints_keepalive_server_fix = "{}";
220
+ const char* const description_max_pings_wo_data_throttle =
221
+ "Experiment to throttle pings to a period of 1 min when "
222
+ "GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA limit has reached (instead of "
223
+ "completely blocking).";
224
+ const char* const additional_constraints_max_pings_wo_data_throttle = "{}";
262
225
  const char* const description_monitoring_experiment =
263
226
  "Placeholder experiment to prove/disprove our monitoring is working";
264
227
  const char* const additional_constraints_monitoring_experiment = "{}";
@@ -270,41 +233,12 @@ const char* const description_peer_state_based_framing =
270
233
  "on the peer's memory pressure which is reflected in its max http2 frame "
271
234
  "size.";
272
235
  const char* const additional_constraints_peer_state_based_framing = "{}";
273
- const char* const description_pending_queue_cap =
274
- "In the sync & async apis (but not the callback api), cap the number of "
275
- "received but unrequested requests in the server for each call type. A "
276
- "received message is one that was read from the wire on the server. A "
277
- "requested message is one explicitly requested by the application using "
278
- "grpc_server_request_call or grpc_server_request_registered_call (or their "
279
- "wrappers in the C++ API).";
280
- const char* const additional_constraints_pending_queue_cap = "{}";
281
236
  const char* const description_pick_first_new =
282
237
  "New pick_first impl with memory reduction.";
283
238
  const char* const additional_constraints_pick_first_new = "{}";
284
- const char* const description_promise_based_client_call =
285
- "If set, use the new gRPC promise based call code when it's appropriate "
286
- "(ie when all filters in a stack are promise based)";
287
- const char* const additional_constraints_promise_based_client_call = "{}";
288
- const uint8_t required_experiments_promise_based_client_call[] = {
289
- static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
290
- static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
291
- const char* const description_promise_based_server_call =
292
- "If set, use the new gRPC promise based call code when it's appropriate "
293
- "(ie when all filters in a stack are promise based)";
294
- const char* const additional_constraints_promise_based_server_call = "{}";
295
- const char* const description_chaotic_good =
296
- "If set, enable the chaotic good load transport (this is mostly here for "
297
- "testing)";
298
- const char* const additional_constraints_chaotic_good = "{}";
299
- const uint8_t required_experiments_chaotic_good[] = {
300
- static_cast<uint8_t>(grpc_core::kExperimentIdPromiseBasedClientCall),
301
- static_cast<uint8_t>(grpc_core::kExperimentIdPromiseBasedServerCall)};
302
239
  const char* const description_promise_based_inproc_transport =
303
240
  "Use promises for the in-process transport.";
304
241
  const char* const additional_constraints_promise_based_inproc_transport = "{}";
305
- const uint8_t required_experiments_promise_based_inproc_transport[] = {
306
- static_cast<uint8_t>(grpc_core::kExperimentIdPromiseBasedClientCall),
307
- static_cast<uint8_t>(grpc_core::kExperimentIdPromiseBasedServerCall)};
308
242
  const char* const description_rstpit =
309
243
  "On RST_STREAM on a server, reduce MAX_CONCURRENT_STREAMS for a short "
310
244
  "duration";
@@ -340,8 +274,6 @@ const char* const description_work_serializer_dispatch =
340
274
  "callback, instead of running things inline in the first thread that "
341
275
  "successfully enqueues work.";
342
276
  const char* const additional_constraints_work_serializer_dispatch = "{}";
343
- const uint8_t required_experiments_work_serializer_dispatch[] = {
344
- static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient)};
345
277
  } // namespace
346
278
 
347
279
  namespace grpc_core {
@@ -351,16 +283,14 @@ const ExperimentMetadata g_experiment_metadata[] = {
351
283
  description_call_status_override_on_cancellation,
352
284
  additional_constraints_call_status_override_on_cancellation, nullptr, 0,
353
285
  true, true},
354
- {"call_v3", description_call_v3, additional_constraints_call_v3, nullptr, 0,
355
- false, true},
356
286
  {"canary_client_privacy", description_canary_client_privacy,
357
287
  additional_constraints_canary_client_privacy, nullptr, 0, false, false},
358
288
  {"client_privacy", description_client_privacy,
359
289
  additional_constraints_client_privacy, nullptr, 0, false, false},
360
290
  {"event_engine_client", description_event_engine_client,
361
- additional_constraints_event_engine_client, nullptr, 0, false, true},
291
+ additional_constraints_event_engine_client, nullptr, 0, true, true},
362
292
  {"event_engine_dns", description_event_engine_dns,
363
- additional_constraints_event_engine_dns, nullptr, 0, false, false},
293
+ additional_constraints_event_engine_dns, nullptr, 0, true, false},
364
294
  {"event_engine_listener", description_event_engine_listener,
365
295
  additional_constraints_event_engine_listener, nullptr, 0, true, true},
366
296
  {"free_large_allocator", description_free_large_allocator,
@@ -371,28 +301,21 @@ const ExperimentMetadata g_experiment_metadata[] = {
371
301
  additional_constraints_keepalive_fix, nullptr, 0, false, false},
372
302
  {"keepalive_server_fix", description_keepalive_server_fix,
373
303
  additional_constraints_keepalive_server_fix, nullptr, 0, false, false},
304
+ {"max_pings_wo_data_throttle", description_max_pings_wo_data_throttle,
305
+ additional_constraints_max_pings_wo_data_throttle, nullptr, 0, false,
306
+ true},
374
307
  {"monitoring_experiment", description_monitoring_experiment,
375
308
  additional_constraints_monitoring_experiment, nullptr, 0, true, true},
376
309
  {"multiping", description_multiping, additional_constraints_multiping,
377
310
  nullptr, 0, false, true},
378
311
  {"peer_state_based_framing", description_peer_state_based_framing,
379
312
  additional_constraints_peer_state_based_framing, nullptr, 0, false, true},
380
- {"pending_queue_cap", description_pending_queue_cap,
381
- additional_constraints_pending_queue_cap, nullptr, 0, true, true},
382
313
  {"pick_first_new", description_pick_first_new,
383
314
  additional_constraints_pick_first_new, nullptr, 0, true, true},
384
- {"promise_based_client_call", description_promise_based_client_call,
385
- additional_constraints_promise_based_client_call,
386
- required_experiments_promise_based_client_call, 2, false, true},
387
- {"promise_based_server_call", description_promise_based_server_call,
388
- additional_constraints_promise_based_server_call, nullptr, 0, false, true},
389
- {"chaotic_good", description_chaotic_good,
390
- additional_constraints_chaotic_good, required_experiments_chaotic_good, 2,
391
- false, true},
392
315
  {"promise_based_inproc_transport",
393
316
  description_promise_based_inproc_transport,
394
- additional_constraints_promise_based_inproc_transport,
395
- required_experiments_promise_based_inproc_transport, 2, false, false},
317
+ additional_constraints_promise_based_inproc_transport, nullptr, 0, false,
318
+ false},
396
319
  {"rstpit", description_rstpit, additional_constraints_rstpit, nullptr, 0,
397
320
  false, true},
398
321
  {"schedule_cancellation_over_write",
@@ -416,8 +339,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
416
339
  additional_constraints_work_serializer_clears_time_cache, nullptr, 0, true,
417
340
  true},
418
341
  {"work_serializer_dispatch", description_work_serializer_dispatch,
419
- additional_constraints_work_serializer_dispatch,
420
- required_experiments_work_serializer_dispatch, 1, false, true},
342
+ additional_constraints_work_serializer_dispatch, nullptr, 0, false, true},
421
343
  };
422
344
 
423
345
  } // namespace grpc_core
@@ -429,8 +351,6 @@ const char* const description_call_status_override_on_cancellation =
429
351
  "with cancellation.";
430
352
  const char* const additional_constraints_call_status_override_on_cancellation =
431
353
  "{}";
432
- const char* const description_call_v3 = "Promise-based call version 3.";
433
- const char* const additional_constraints_call_v3 = "{}";
434
354
  const char* const description_canary_client_privacy =
435
355
  "If set, canary client privacy";
436
356
  const char* const additional_constraints_canary_client_privacy = "{}";
@@ -459,6 +379,11 @@ const char* const description_keepalive_server_fix =
459
379
  "Allows overriding keepalive_permit_without_calls for servers. Refer "
460
380
  "https://github.com/grpc/grpc/pull/33917 for more information.";
461
381
  const char* const additional_constraints_keepalive_server_fix = "{}";
382
+ const char* const description_max_pings_wo_data_throttle =
383
+ "Experiment to throttle pings to a period of 1 min when "
384
+ "GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA limit has reached (instead of "
385
+ "completely blocking).";
386
+ const char* const additional_constraints_max_pings_wo_data_throttle = "{}";
462
387
  const char* const description_monitoring_experiment =
463
388
  "Placeholder experiment to prove/disprove our monitoring is working";
464
389
  const char* const additional_constraints_monitoring_experiment = "{}";
@@ -470,41 +395,12 @@ const char* const description_peer_state_based_framing =
470
395
  "on the peer's memory pressure which is reflected in its max http2 frame "
471
396
  "size.";
472
397
  const char* const additional_constraints_peer_state_based_framing = "{}";
473
- const char* const description_pending_queue_cap =
474
- "In the sync & async apis (but not the callback api), cap the number of "
475
- "received but unrequested requests in the server for each call type. A "
476
- "received message is one that was read from the wire on the server. A "
477
- "requested message is one explicitly requested by the application using "
478
- "grpc_server_request_call or grpc_server_request_registered_call (or their "
479
- "wrappers in the C++ API).";
480
- const char* const additional_constraints_pending_queue_cap = "{}";
481
398
  const char* const description_pick_first_new =
482
399
  "New pick_first impl with memory reduction.";
483
400
  const char* const additional_constraints_pick_first_new = "{}";
484
- const char* const description_promise_based_client_call =
485
- "If set, use the new gRPC promise based call code when it's appropriate "
486
- "(ie when all filters in a stack are promise based)";
487
- const char* const additional_constraints_promise_based_client_call = "{}";
488
- const uint8_t required_experiments_promise_based_client_call[] = {
489
- static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient),
490
- static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineListener)};
491
- const char* const description_promise_based_server_call =
492
- "If set, use the new gRPC promise based call code when it's appropriate "
493
- "(ie when all filters in a stack are promise based)";
494
- const char* const additional_constraints_promise_based_server_call = "{}";
495
- const char* const description_chaotic_good =
496
- "If set, enable the chaotic good load transport (this is mostly here for "
497
- "testing)";
498
- const char* const additional_constraints_chaotic_good = "{}";
499
- const uint8_t required_experiments_chaotic_good[] = {
500
- static_cast<uint8_t>(grpc_core::kExperimentIdPromiseBasedClientCall),
501
- static_cast<uint8_t>(grpc_core::kExperimentIdPromiseBasedServerCall)};
502
401
  const char* const description_promise_based_inproc_transport =
503
402
  "Use promises for the in-process transport.";
504
403
  const char* const additional_constraints_promise_based_inproc_transport = "{}";
505
- const uint8_t required_experiments_promise_based_inproc_transport[] = {
506
- static_cast<uint8_t>(grpc_core::kExperimentIdPromiseBasedClientCall),
507
- static_cast<uint8_t>(grpc_core::kExperimentIdPromiseBasedServerCall)};
508
404
  const char* const description_rstpit =
509
405
  "On RST_STREAM on a server, reduce MAX_CONCURRENT_STREAMS for a short "
510
406
  "duration";
@@ -540,8 +436,6 @@ const char* const description_work_serializer_dispatch =
540
436
  "callback, instead of running things inline in the first thread that "
541
437
  "successfully enqueues work.";
542
438
  const char* const additional_constraints_work_serializer_dispatch = "{}";
543
- const uint8_t required_experiments_work_serializer_dispatch[] = {
544
- static_cast<uint8_t>(grpc_core::kExperimentIdEventEngineClient)};
545
439
  } // namespace
546
440
 
547
441
  namespace grpc_core {
@@ -551,8 +445,6 @@ const ExperimentMetadata g_experiment_metadata[] = {
551
445
  description_call_status_override_on_cancellation,
552
446
  additional_constraints_call_status_override_on_cancellation, nullptr, 0,
553
447
  true, true},
554
- {"call_v3", description_call_v3, additional_constraints_call_v3, nullptr, 0,
555
- false, true},
556
448
  {"canary_client_privacy", description_canary_client_privacy,
557
449
  additional_constraints_canary_client_privacy, nullptr, 0, false, false},
558
450
  {"client_privacy", description_client_privacy,
@@ -571,28 +463,21 @@ const ExperimentMetadata g_experiment_metadata[] = {
571
463
  additional_constraints_keepalive_fix, nullptr, 0, false, false},
572
464
  {"keepalive_server_fix", description_keepalive_server_fix,
573
465
  additional_constraints_keepalive_server_fix, nullptr, 0, false, false},
466
+ {"max_pings_wo_data_throttle", description_max_pings_wo_data_throttle,
467
+ additional_constraints_max_pings_wo_data_throttle, nullptr, 0, false,
468
+ true},
574
469
  {"monitoring_experiment", description_monitoring_experiment,
575
470
  additional_constraints_monitoring_experiment, nullptr, 0, true, true},
576
471
  {"multiping", description_multiping, additional_constraints_multiping,
577
472
  nullptr, 0, false, true},
578
473
  {"peer_state_based_framing", description_peer_state_based_framing,
579
474
  additional_constraints_peer_state_based_framing, nullptr, 0, false, true},
580
- {"pending_queue_cap", description_pending_queue_cap,
581
- additional_constraints_pending_queue_cap, nullptr, 0, true, true},
582
475
  {"pick_first_new", description_pick_first_new,
583
476
  additional_constraints_pick_first_new, nullptr, 0, true, true},
584
- {"promise_based_client_call", description_promise_based_client_call,
585
- additional_constraints_promise_based_client_call,
586
- required_experiments_promise_based_client_call, 2, false, true},
587
- {"promise_based_server_call", description_promise_based_server_call,
588
- additional_constraints_promise_based_server_call, nullptr, 0, false, true},
589
- {"chaotic_good", description_chaotic_good,
590
- additional_constraints_chaotic_good, required_experiments_chaotic_good, 2,
591
- false, true},
592
477
  {"promise_based_inproc_transport",
593
478
  description_promise_based_inproc_transport,
594
- additional_constraints_promise_based_inproc_transport,
595
- required_experiments_promise_based_inproc_transport, 2, false, false},
479
+ additional_constraints_promise_based_inproc_transport, nullptr, 0, false,
480
+ false},
596
481
  {"rstpit", description_rstpit, additional_constraints_rstpit, nullptr, 0,
597
482
  false, true},
598
483
  {"schedule_cancellation_over_write",
@@ -616,8 +501,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
616
501
  additional_constraints_work_serializer_clears_time_cache, nullptr, 0, true,
617
502
  true},
618
503
  {"work_serializer_dispatch", description_work_serializer_dispatch,
619
- additional_constraints_work_serializer_dispatch,
620
- required_experiments_work_serializer_dispatch, 1, true, true},
504
+ additional_constraints_work_serializer_dispatch, nullptr, 0, true, true},
621
505
  };
622
506
 
623
507
  } // namespace grpc_core
@@ -59,7 +59,6 @@ namespace grpc_core {
59
59
  #if defined(GRPC_CFSTREAM)
60
60
  #define GRPC_EXPERIMENT_IS_INCLUDED_CALL_STATUS_OVERRIDE_ON_CANCELLATION
61
61
  inline bool IsCallStatusOverrideOnCancellationEnabled() { return true; }
62
- inline bool IsCallV3Enabled() { return false; }
63
62
  inline bool IsCanaryClientPrivacyEnabled() { return false; }
64
63
  inline bool IsClientPrivacyEnabled() { return false; }
65
64
  inline bool IsEventEngineClientEnabled() { return false; }
@@ -70,17 +69,13 @@ inline bool IsFreeLargeAllocatorEnabled() { return false; }
70
69
  inline bool IsHttp2StatsFixEnabled() { return true; }
71
70
  inline bool IsKeepaliveFixEnabled() { return false; }
72
71
  inline bool IsKeepaliveServerFixEnabled() { return false; }
72
+ inline bool IsMaxPingsWoDataThrottleEnabled() { return false; }
73
73
  #define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
74
74
  inline bool IsMonitoringExperimentEnabled() { return true; }
75
75
  inline bool IsMultipingEnabled() { return false; }
76
76
  inline bool IsPeerStateBasedFramingEnabled() { return false; }
77
- #define GRPC_EXPERIMENT_IS_INCLUDED_PENDING_QUEUE_CAP
78
- inline bool IsPendingQueueCapEnabled() { return true; }
79
77
  #define GRPC_EXPERIMENT_IS_INCLUDED_PICK_FIRST_NEW
80
78
  inline bool IsPickFirstNewEnabled() { return true; }
81
- inline bool IsPromiseBasedClientCallEnabled() { return false; }
82
- inline bool IsPromiseBasedServerCallEnabled() { return false; }
83
- inline bool IsChaoticGoodEnabled() { return false; }
84
79
  inline bool IsPromiseBasedInprocTransportEnabled() { return false; }
85
80
  inline bool IsRstpitEnabled() { return false; }
86
81
  inline bool IsScheduleCancellationOverWriteEnabled() { return false; }
@@ -97,11 +92,12 @@ inline bool IsWorkSerializerDispatchEnabled() { return false; }
97
92
  #elif defined(GPR_WINDOWS)
98
93
  #define GRPC_EXPERIMENT_IS_INCLUDED_CALL_STATUS_OVERRIDE_ON_CANCELLATION
99
94
  inline bool IsCallStatusOverrideOnCancellationEnabled() { return true; }
100
- inline bool IsCallV3Enabled() { return false; }
101
95
  inline bool IsCanaryClientPrivacyEnabled() { return false; }
102
96
  inline bool IsClientPrivacyEnabled() { return false; }
103
- inline bool IsEventEngineClientEnabled() { return false; }
104
- inline bool IsEventEngineDnsEnabled() { return false; }
97
+ #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_CLIENT
98
+ inline bool IsEventEngineClientEnabled() { return true; }
99
+ #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_DNS
100
+ inline bool IsEventEngineDnsEnabled() { return true; }
105
101
  #define GRPC_EXPERIMENT_IS_INCLUDED_EVENT_ENGINE_LISTENER
106
102
  inline bool IsEventEngineListenerEnabled() { return true; }
107
103
  inline bool IsFreeLargeAllocatorEnabled() { return false; }
@@ -109,17 +105,13 @@ inline bool IsFreeLargeAllocatorEnabled() { return false; }
109
105
  inline bool IsHttp2StatsFixEnabled() { return true; }
110
106
  inline bool IsKeepaliveFixEnabled() { return false; }
111
107
  inline bool IsKeepaliveServerFixEnabled() { return false; }
108
+ inline bool IsMaxPingsWoDataThrottleEnabled() { return false; }
112
109
  #define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
113
110
  inline bool IsMonitoringExperimentEnabled() { return true; }
114
111
  inline bool IsMultipingEnabled() { return false; }
115
112
  inline bool IsPeerStateBasedFramingEnabled() { return false; }
116
- #define GRPC_EXPERIMENT_IS_INCLUDED_PENDING_QUEUE_CAP
117
- inline bool IsPendingQueueCapEnabled() { return true; }
118
113
  #define GRPC_EXPERIMENT_IS_INCLUDED_PICK_FIRST_NEW
119
114
  inline bool IsPickFirstNewEnabled() { return true; }
120
- inline bool IsPromiseBasedClientCallEnabled() { return false; }
121
- inline bool IsPromiseBasedServerCallEnabled() { return false; }
122
- inline bool IsChaoticGoodEnabled() { return false; }
123
115
  inline bool IsPromiseBasedInprocTransportEnabled() { return false; }
124
116
  inline bool IsRstpitEnabled() { return false; }
125
117
  inline bool IsScheduleCancellationOverWriteEnabled() { return false; }
@@ -136,7 +128,6 @@ inline bool IsWorkSerializerDispatchEnabled() { return false; }
136
128
  #else
137
129
  #define GRPC_EXPERIMENT_IS_INCLUDED_CALL_STATUS_OVERRIDE_ON_CANCELLATION
138
130
  inline bool IsCallStatusOverrideOnCancellationEnabled() { return true; }
139
- inline bool IsCallV3Enabled() { return false; }
140
131
  inline bool IsCanaryClientPrivacyEnabled() { return false; }
141
132
  inline bool IsClientPrivacyEnabled() { return false; }
142
133
  inline bool IsEventEngineClientEnabled() { return false; }
@@ -149,17 +140,13 @@ inline bool IsFreeLargeAllocatorEnabled() { return false; }
149
140
  inline bool IsHttp2StatsFixEnabled() { return true; }
150
141
  inline bool IsKeepaliveFixEnabled() { return false; }
151
142
  inline bool IsKeepaliveServerFixEnabled() { return false; }
143
+ inline bool IsMaxPingsWoDataThrottleEnabled() { return false; }
152
144
  #define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
153
145
  inline bool IsMonitoringExperimentEnabled() { return true; }
154
146
  inline bool IsMultipingEnabled() { return false; }
155
147
  inline bool IsPeerStateBasedFramingEnabled() { return false; }
156
- #define GRPC_EXPERIMENT_IS_INCLUDED_PENDING_QUEUE_CAP
157
- inline bool IsPendingQueueCapEnabled() { return true; }
158
148
  #define GRPC_EXPERIMENT_IS_INCLUDED_PICK_FIRST_NEW
159
149
  inline bool IsPickFirstNewEnabled() { return true; }
160
- inline bool IsPromiseBasedClientCallEnabled() { return false; }
161
- inline bool IsPromiseBasedServerCallEnabled() { return false; }
162
- inline bool IsChaoticGoodEnabled() { return false; }
163
150
  inline bool IsPromiseBasedInprocTransportEnabled() { return false; }
164
151
  inline bool IsRstpitEnabled() { return false; }
165
152
  inline bool IsScheduleCancellationOverWriteEnabled() { return false; }
@@ -178,7 +165,6 @@ inline bool IsWorkSerializerDispatchEnabled() { return true; }
178
165
  #else
179
166
  enum ExperimentIds {
180
167
  kExperimentIdCallStatusOverrideOnCancellation,
181
- kExperimentIdCallV3,
182
168
  kExperimentIdCanaryClientPrivacy,
183
169
  kExperimentIdClientPrivacy,
184
170
  kExperimentIdEventEngineClient,
@@ -188,14 +174,11 @@ enum ExperimentIds {
188
174
  kExperimentIdHttp2StatsFix,
189
175
  kExperimentIdKeepaliveFix,
190
176
  kExperimentIdKeepaliveServerFix,
177
+ kExperimentIdMaxPingsWoDataThrottle,
191
178
  kExperimentIdMonitoringExperiment,
192
179
  kExperimentIdMultiping,
193
180
  kExperimentIdPeerStateBasedFraming,
194
- kExperimentIdPendingQueueCap,
195
181
  kExperimentIdPickFirstNew,
196
- kExperimentIdPromiseBasedClientCall,
197
- kExperimentIdPromiseBasedServerCall,
198
- kExperimentIdChaoticGood,
199
182
  kExperimentIdPromiseBasedInprocTransport,
200
183
  kExperimentIdRstpit,
201
184
  kExperimentIdScheduleCancellationOverWrite,
@@ -212,10 +195,6 @@ enum ExperimentIds {
212
195
  inline bool IsCallStatusOverrideOnCancellationEnabled() {
213
196
  return IsExperimentEnabled(kExperimentIdCallStatusOverrideOnCancellation);
214
197
  }
215
- #define GRPC_EXPERIMENT_IS_INCLUDED_CALL_V3
216
- inline bool IsCallV3Enabled() {
217
- return IsExperimentEnabled(kExperimentIdCallV3);
218
- }
219
198
  #define GRPC_EXPERIMENT_IS_INCLUDED_CANARY_CLIENT_PRIVACY
220
199
  inline bool IsCanaryClientPrivacyEnabled() {
221
200
  return IsExperimentEnabled(kExperimentIdCanaryClientPrivacy);
@@ -252,6 +231,10 @@ inline bool IsKeepaliveFixEnabled() {
252
231
  inline bool IsKeepaliveServerFixEnabled() {
253
232
  return IsExperimentEnabled(kExperimentIdKeepaliveServerFix);
254
233
  }
234
+ #define GRPC_EXPERIMENT_IS_INCLUDED_MAX_PINGS_WO_DATA_THROTTLE
235
+ inline bool IsMaxPingsWoDataThrottleEnabled() {
236
+ return IsExperimentEnabled(kExperimentIdMaxPingsWoDataThrottle);
237
+ }
255
238
  #define GRPC_EXPERIMENT_IS_INCLUDED_MONITORING_EXPERIMENT
256
239
  inline bool IsMonitoringExperimentEnabled() {
257
240
  return IsExperimentEnabled(kExperimentIdMonitoringExperiment);
@@ -264,26 +247,10 @@ inline bool IsMultipingEnabled() {
264
247
  inline bool IsPeerStateBasedFramingEnabled() {
265
248
  return IsExperimentEnabled(kExperimentIdPeerStateBasedFraming);
266
249
  }
267
- #define GRPC_EXPERIMENT_IS_INCLUDED_PENDING_QUEUE_CAP
268
- inline bool IsPendingQueueCapEnabled() {
269
- return IsExperimentEnabled(kExperimentIdPendingQueueCap);
270
- }
271
250
  #define GRPC_EXPERIMENT_IS_INCLUDED_PICK_FIRST_NEW
272
251
  inline bool IsPickFirstNewEnabled() {
273
252
  return IsExperimentEnabled(kExperimentIdPickFirstNew);
274
253
  }
275
- #define GRPC_EXPERIMENT_IS_INCLUDED_PROMISE_BASED_CLIENT_CALL
276
- inline bool IsPromiseBasedClientCallEnabled() {
277
- return IsExperimentEnabled(kExperimentIdPromiseBasedClientCall);
278
- }
279
- #define GRPC_EXPERIMENT_IS_INCLUDED_PROMISE_BASED_SERVER_CALL
280
- inline bool IsPromiseBasedServerCallEnabled() {
281
- return IsExperimentEnabled(kExperimentIdPromiseBasedServerCall);
282
- }
283
- #define GRPC_EXPERIMENT_IS_INCLUDED_CHAOTIC_GOOD
284
- inline bool IsChaoticGoodEnabled() {
285
- return IsExperimentEnabled(kExperimentIdChaoticGood);
286
- }
287
254
  #define GRPC_EXPERIMENT_IS_INCLUDED_PROMISE_BASED_INPROC_TRANSPORT
288
255
  inline bool IsPromiseBasedInprocTransportEnabled() {
289
256
  return IsExperimentEnabled(kExperimentIdPromiseBasedInprocTransport);
@@ -22,7 +22,7 @@
22
22
 
23
23
  #include <grpc/support/port_platform.h>
24
24
 
25
- #include "src/core/lib/gpr/useful.h"
25
+ #include "src/core/util/useful.h"
26
26
 
27
27
  namespace grpc_core {
28
28
 
@@ -19,16 +19,15 @@
19
19
 
20
20
  #include <string>
21
21
 
22
+ #include "absl/log/log.h"
22
23
  #include "absl/strings/str_cat.h"
23
24
 
24
- #include <grpc/support/log.h>
25
25
  #include <grpc/support/port_platform.h>
26
26
 
27
27
  namespace grpc_core {
28
28
 
29
29
  void Crash(absl::string_view message, SourceLocation location) {
30
- gpr_log(location.file(), location.line(), GPR_LOG_SEVERITY_ERROR, "%s",
31
- std::string(message).c_str());
30
+ LOG(ERROR).AtLocation(location.file(), location.line()) << message;
32
31
  abort();
33
32
  }
34
33