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
@@ -60,30 +60,16 @@ const absl::string_view kChildrenPropertyUrl = TYPE_URL(TYPE_CHILDREN_TAG);
60
60
 
61
61
  const char* GetStatusIntPropertyUrl(StatusIntProperty key) {
62
62
  switch (key) {
63
- case StatusIntProperty::kErrorNo:
64
- return TYPE_URL(TYPE_INT_TAG "errno");
65
63
  case StatusIntProperty::kFileLine:
66
64
  return TYPE_URL(TYPE_INT_TAG "file_line");
67
65
  case StatusIntProperty::kStreamId:
68
66
  return TYPE_URL(TYPE_INT_TAG "stream_id");
69
67
  case StatusIntProperty::kRpcStatus:
70
68
  return TYPE_URL(TYPE_INT_TAG "grpc_status");
71
- case StatusIntProperty::kOffset:
72
- return TYPE_URL(TYPE_INT_TAG "offset");
73
- case StatusIntProperty::kIndex:
74
- return TYPE_URL(TYPE_INT_TAG "index");
75
- case StatusIntProperty::kSize:
76
- return TYPE_URL(TYPE_INT_TAG "size");
77
69
  case StatusIntProperty::kHttp2Error:
78
70
  return TYPE_URL(TYPE_INT_TAG "http2_error");
79
- case StatusIntProperty::kTsiCode:
80
- return TYPE_URL(TYPE_INT_TAG "tsi_code");
81
- case StatusIntProperty::kWsaError:
82
- return TYPE_URL(TYPE_INT_TAG "wsa_error");
83
71
  case StatusIntProperty::kFd:
84
72
  return TYPE_URL(TYPE_INT_TAG "fd");
85
- case StatusIntProperty::kHttpStatus:
86
- return TYPE_URL(TYPE_INT_TAG "http_status");
87
73
  case StatusIntProperty::kOccurredDuringWrite:
88
74
  return TYPE_URL(TYPE_INT_TAG "occurred_during_write");
89
75
  case StatusIntProperty::ChannelConnectivityState:
@@ -100,24 +86,8 @@ const char* GetStatusStrPropertyUrl(StatusStrProperty key) {
100
86
  return TYPE_URL(TYPE_STR_TAG "description");
101
87
  case StatusStrProperty::kFile:
102
88
  return TYPE_URL(TYPE_STR_TAG "file");
103
- case StatusStrProperty::kOsError:
104
- return TYPE_URL(TYPE_STR_TAG "os_error");
105
- case StatusStrProperty::kSyscall:
106
- return TYPE_URL(TYPE_STR_TAG "syscall");
107
- case StatusStrProperty::kTargetAddress:
108
- return TYPE_URL(TYPE_STR_TAG "target_address");
109
89
  case StatusStrProperty::kGrpcMessage:
110
90
  return TYPE_URL(TYPE_STR_TAG "grpc_message");
111
- case StatusStrProperty::kRawBytes:
112
- return TYPE_URL(TYPE_STR_TAG "raw_bytes");
113
- case StatusStrProperty::kTsiError:
114
- return TYPE_URL(TYPE_STR_TAG "tsi_error");
115
- case StatusStrProperty::kFilename:
116
- return TYPE_URL(TYPE_STR_TAG "filename");
117
- case StatusStrProperty::kKey:
118
- return TYPE_URL(TYPE_STR_TAG "key");
119
- case StatusStrProperty::kValue:
120
- return TYPE_URL(TYPE_STR_TAG "value");
121
91
  }
122
92
  GPR_UNREACHABLE_CODE(return "unknown");
123
93
  }
@@ -348,6 +318,17 @@ std::string StatusToString(const absl::Status& status) {
348
318
  : absl::StrCat(head, " {", absl::StrJoin(kvs, ", "), "}");
349
319
  }
350
320
 
321
+ absl::Status AddMessagePrefix(absl::string_view prefix, absl::Status status) {
322
+ absl::Status new_status(status.code(),
323
+ absl::StrCat(prefix, ": ", status.message()));
324
+ // TODO(roth): Remove this once we elimiate all status attributes.
325
+ status.ForEachPayload(
326
+ [&](absl::string_view type_url, const absl::Cord& payload) {
327
+ new_status.SetPayload(type_url, payload);
328
+ });
329
+ return new_status;
330
+ }
331
+
351
332
  namespace internal {
352
333
 
353
334
  google_rpc_Status* StatusToProto(const absl::Status& status, upb_Arena* arena) {
@@ -48,8 +48,6 @@ namespace grpc_core {
48
48
 
49
49
  /// This enum should have the same value of grpc_error_ints
50
50
  enum class StatusIntProperty {
51
- /// 'errno' from the operating system
52
- kErrorNo,
53
51
  /// __LINE__ from the call site creating the error
54
52
  kFileLine,
55
53
  /// stream identifier: for errors that are associated with an individual
@@ -58,23 +56,10 @@ enum class StatusIntProperty {
58
56
  /// grpc status code representing this error
59
57
  // TODO(veblush): Remove this after grpc_error is replaced with absl::Status
60
58
  kRpcStatus,
61
- /// offset into some binary blob (usually represented by
62
- /// RAW_BYTES) where the error occurred
63
- kOffset,
64
- /// context sensitive index associated with the error
65
- kIndex,
66
- /// context sensitive size associated with the error
67
- kSize,
68
59
  /// http2 error code associated with the error (see the HTTP2 RFC)
69
60
  kHttp2Error,
70
- /// TSI status code associated with the error
71
- kTsiCode,
72
- /// WSAGetLastError() reported when this error occurred
73
- kWsaError,
74
61
  /// File descriptor associated with this error
75
62
  kFd,
76
- /// HTTP status (i.e. 404)
77
- kHttpStatus,
78
63
  /// chttp2: did the error occur while a write was in progress
79
64
  kOccurredDuringWrite,
80
65
  /// channel connectivity state associated with the error
@@ -89,24 +74,8 @@ enum class StatusStrProperty {
89
74
  kDescription,
90
75
  /// source file in which this error occurred
91
76
  kFile,
92
- /// operating system description of this error
93
- kOsError,
94
- /// syscall that generated this error
95
- kSyscall,
96
77
  /// peer that we were trying to communicate when this error occurred
97
- kTargetAddress,
98
- /// grpc status message associated with this error
99
78
  kGrpcMessage,
100
- /// hex dump (or similar) with the data that generated this error
101
- kRawBytes,
102
- /// tsi error string associated with this error
103
- kTsiError,
104
- /// filename that we were trying to read/write when this error occurred
105
- kFilename,
106
- /// key associated with the error
107
- kKey,
108
- /// value associated with the error
109
- kValue,
110
79
  };
111
80
 
112
81
  /// This enum should have the same value of grpc_error_times
@@ -158,6 +127,9 @@ GRPC_MUST_USE_RESULT std::vector<absl::Status> StatusGetChildren(
158
127
  /// CANCELLATION:SampleMessage {errno:'2021', line:'54', children:[ABORTED]}
159
128
  GRPC_MUST_USE_RESULT std::string StatusToString(const absl::Status& status);
160
129
 
130
+ /// Adds prefix to the message of status.
131
+ absl::Status AddMessagePrefix(absl::string_view prefix, absl::Status status);
132
+
161
133
  namespace internal {
162
134
 
163
135
  /// Builds a upb message, google_rpc_Status from a status
@@ -21,9 +21,9 @@
21
21
  #include <utility>
22
22
 
23
23
  #include "absl/log/check.h"
24
+ #include "absl/log/log.h"
24
25
  #include "absl/strings/str_format.h"
25
26
 
26
- #include <grpc/support/log.h>
27
27
  #include <grpc/support/port_platform.h>
28
28
  #include <grpc/support/time.h>
29
29
 
@@ -60,9 +60,8 @@ GPR_ATTRIBUTE_NOINLINE std::pair<int64_t, gpr_cycle_counter> InitTime() {
60
60
  if (process_epoch_seconds > 1) {
61
61
  break;
62
62
  }
63
- gpr_log(GPR_INFO,
64
- "gpr_now(GPR_CLOCK_MONOTONIC) returns a very small number: "
65
- "sleeping for 100ms");
63
+ LOG(INFO) << "gpr_now(GPR_CLOCK_MONOTONIC) returns a very small number: "
64
+ "sleeping for 100ms";
66
65
  gpr_sleep_until(gpr_time_add(now, gpr_time_from_millis(100, GPR_TIMESPAN)));
67
66
  }
68
67
 
@@ -24,11 +24,12 @@
24
24
  #include "absl/types/optional.h"
25
25
 
26
26
  #include <grpc/event_engine/event_engine.h>
27
+ #include <grpc/support/log.h>
27
28
  #include <grpc/support/port_platform.h>
28
29
  #include <grpc/support/time.h>
29
30
 
30
- #include "src/core/lib/gpr/time_precise.h"
31
- #include "src/core/lib/gpr/useful.h"
31
+ #include "src/core/util/time_precise.h"
32
+ #include "src/core/util/useful.h"
32
33
 
33
34
  #define GRPC_LOG_EVERY_N_SEC(n, severity, format, ...) \
34
35
  do { \
@@ -23,7 +23,7 @@
23
23
 
24
24
  #include <grpc/support/port_platform.h>
25
25
 
26
- #include "src/core/lib/gpr/useful.h"
26
+ #include "src/core/util/useful.h"
27
27
 
28
28
  // Provides a type name that is unique by instance rather than by
29
29
  // string content. This is useful in cases where there are different
@@ -14,8 +14,11 @@
14
14
 
15
15
  #include "src/core/lib/gprpp/validation_errors.h"
16
16
 
17
+ #include <inttypes.h>
18
+
17
19
  #include <utility>
18
20
 
21
+ #include "absl/log/log.h"
19
22
  #include "absl/status/status.h"
20
23
  #include "absl/strings/str_cat.h"
21
24
  #include "absl/strings/str_join.h"
@@ -34,7 +37,13 @@ void ValidationErrors::PushField(absl::string_view ext) {
34
37
  void ValidationErrors::PopField() { fields_.pop_back(); }
35
38
 
36
39
  void ValidationErrors::AddError(absl::string_view error) {
37
- field_errors_[absl::StrJoin(fields_, "")].emplace_back(error);
40
+ auto key = absl::StrJoin(fields_, "");
41
+ if (field_errors_[key].size() >= max_error_count_) {
42
+ VLOG(2) << "Ignoring validation error: too many errors found ("
43
+ << max_error_count_ << ")";
44
+ return;
45
+ }
46
+ field_errors_[key].emplace_back(error);
38
47
  }
39
48
 
40
49
  bool ValidationErrors::FieldHasErrors() const {
@@ -63,6 +63,9 @@ namespace grpc_core {
63
63
  // }
64
64
  class ValidationErrors {
65
65
  public:
66
+ // Default maximum number of errors to track per scope.
67
+ static constexpr size_t kMaxErrorCount = 20;
68
+
66
69
  // Pushes a field name onto the stack at construction and pops it off
67
70
  // of the stack at destruction.
68
71
  class ScopedField {
@@ -93,6 +96,12 @@ class ValidationErrors {
93
96
  ValidationErrors* errors_;
94
97
  };
95
98
 
99
+ ValidationErrors() : ValidationErrors(kMaxErrorCount) {}
100
+
101
+ // Creates a tracker that collects at most `max_error_count` errors per field.
102
+ explicit ValidationErrors(size_t max_error_count)
103
+ : max_error_count_(max_error_count) {}
104
+
96
105
  // Records that we've encountered an error associated with the current
97
106
  // field.
98
107
  void AddError(absl::string_view error) GPR_ATTRIBUTE_NOINLINE;
@@ -127,6 +136,8 @@ class ValidationErrors {
127
136
  // Stack of field names indicating the field that we are currently
128
137
  // validating.
129
138
  std::vector<std::string> fields_;
139
+
140
+ size_t max_error_count_;
130
141
  };
131
142
 
132
143
  } // namespace grpc_core
@@ -23,8 +23,7 @@
23
23
  #include <sys/types.h>
24
24
 
25
25
  #include "absl/log/check.h"
26
-
27
- #include <grpc/support/log.h>
26
+ #include "absl/log/log.h"
28
27
 
29
28
  #include "src/core/lib/gprpp/crash.h"
30
29
  #include "src/core/lib/gprpp/stat.h"
@@ -38,8 +37,8 @@ absl::Status GetFileModificationTime(const char* filename, time_t* timestamp) {
38
37
  struct _stat buf;
39
38
  if (_stat(filename, &buf) != 0) {
40
39
  std::string error_msg = StrError(errno);
41
- gpr_log(GPR_ERROR, "_stat failed for filename %s with error %s.", filename,
42
- error_msg.c_str());
40
+ LOG(ERROR) << "_stat failed for filename " << filename << " with error "
41
+ << error_msg;
43
42
  return absl::Status(absl::StatusCode::kInternal, error_msg);
44
43
  }
45
44
  // Last file/directory modification time.
@@ -24,6 +24,7 @@
24
24
  #include <string.h>
25
25
 
26
26
  #include "absl/log/check.h"
27
+ #include "absl/log/log.h"
27
28
 
28
29
  #include <grpc/support/alloc.h>
29
30
  #include <grpc/support/log.h>
@@ -149,12 +150,12 @@ namespace grpc_core {
149
150
 
150
151
  void Thread::Signal(gpr_thd_id /* tid */, int /* sig */) {
151
152
  // TODO(hork): Implement
152
- gpr_log(GPR_DEBUG, "Thread signals are not supported on Windows.");
153
+ VLOG(2) << "Thread signals are not supported on Windows.";
153
154
  }
154
155
 
155
156
  void Thread::Kill(gpr_thd_id /* tid */) {
156
157
  // TODO(hork): Implement
157
- gpr_log(GPR_DEBUG, "Thread::Kill is not supported on Windows.");
158
+ VLOG(2) << "Thread::Kill is not supported on Windows.";
158
159
  }
159
160
 
160
161
  Thread::Thread(const char* /* thd_name */, void (*thd_body)(void* arg),
@@ -28,13 +28,12 @@
28
28
 
29
29
  #include "absl/container/inlined_vector.h"
30
30
  #include "absl/log/check.h"
31
+ #include "absl/log/log.h"
31
32
 
32
33
  #include <grpc/event_engine/event_engine.h>
33
34
  #include <grpc/support/log.h>
34
35
  #include <grpc/support/port_platform.h>
35
36
 
36
- #include "src/core/lib/debug/stats.h"
37
- #include "src/core/lib/debug/stats_data.h"
38
37
  #include "src/core/lib/debug/trace.h"
39
38
  #include "src/core/lib/experiments/experiments.h"
40
39
  #include "src/core/lib/gprpp/debug_location.h"
@@ -42,11 +41,11 @@
42
41
  #include "src/core/lib/gprpp/orphanable.h"
43
42
  #include "src/core/lib/gprpp/sync.h"
44
43
  #include "src/core/lib/iomgr/exec_ctx.h"
44
+ #include "src/core/telemetry/stats.h"
45
+ #include "src/core/telemetry/stats_data.h"
45
46
 
46
47
  namespace grpc_core {
47
48
 
48
- DebugOnlyTraceFlag grpc_work_serializer_trace(false, "work_serializer");
49
-
50
49
  //
51
50
  // WorkSerializer::WorkSerializerImpl
52
51
  //
@@ -137,7 +136,7 @@ class WorkSerializer::LegacyWorkSerializer final : public WorkSerializerImpl {
137
136
 
138
137
  void WorkSerializer::LegacyWorkSerializer::Run(std::function<void()> callback,
139
138
  const DebugLocation& location) {
140
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
139
+ if (GRPC_TRACE_FLAG_ENABLED(work_serializer)) {
141
140
  gpr_log(GPR_INFO, "WorkSerializer::Run() %p Scheduling callback [%s:%d]",
142
141
  this, location.file(), location.line());
143
142
  }
@@ -150,9 +149,7 @@ void WorkSerializer::LegacyWorkSerializer::Run(std::function<void()> callback,
150
149
  if (GetOwners(prev_ref_pair) == 0) {
151
150
  // We took ownership of the WorkSerializer. Invoke callback and drain queue.
152
151
  SetCurrentThread();
153
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
154
- gpr_log(GPR_INFO, " Executing immediately");
155
- }
152
+ GRPC_TRACE_LOG(work_serializer, INFO) << " Executing immediately";
156
153
  callback();
157
154
  // Delete the callback while still holding the WorkSerializer, so
158
155
  // that any refs being held by the callback via lambda captures will
@@ -160,12 +157,12 @@ void WorkSerializer::LegacyWorkSerializer::Run(std::function<void()> callback,
160
157
  callback = nullptr;
161
158
  DrainQueueOwned();
162
159
  } else {
163
- // Another thread is holding the WorkSerializer, so decrement the ownership
164
- // count we just added and queue the callback.
160
+ // Another thread is holding the WorkSerializer, so decrement the
161
+ // ownership count we just added and queue the callback.
165
162
  refs_.fetch_sub(MakeRefPair(1, 0), std::memory_order_acq_rel);
166
163
  CallbackWrapper* cb_wrapper =
167
164
  new CallbackWrapper(std::move(callback), location);
168
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
165
+ if (GRPC_TRACE_FLAG_ENABLED(work_serializer)) {
169
166
  gpr_log(GPR_INFO, " Scheduling on queue : item %p", cb_wrapper);
170
167
  }
171
168
  queue_.Push(&cb_wrapper->mpscq_node);
@@ -176,7 +173,7 @@ void WorkSerializer::LegacyWorkSerializer::Schedule(
176
173
  std::function<void()> callback, const DebugLocation& location) {
177
174
  CallbackWrapper* cb_wrapper =
178
175
  new CallbackWrapper(std::move(callback), location);
179
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
176
+ if (GRPC_TRACE_FLAG_ENABLED(work_serializer)) {
180
177
  gpr_log(GPR_INFO,
181
178
  "WorkSerializer::Schedule() %p Scheduling callback %p [%s:%d]",
182
179
  this, cb_wrapper, location.file(), location.line());
@@ -186,15 +183,13 @@ void WorkSerializer::LegacyWorkSerializer::Schedule(
186
183
  }
187
184
 
188
185
  void WorkSerializer::LegacyWorkSerializer::Orphan() {
189
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
186
+ if (GRPC_TRACE_FLAG_ENABLED(work_serializer)) {
190
187
  gpr_log(GPR_INFO, "WorkSerializer::Orphan() %p", this);
191
188
  }
192
189
  const uint64_t prev_ref_pair =
193
190
  refs_.fetch_sub(MakeRefPair(0, 1), std::memory_order_acq_rel);
194
191
  if (GetOwners(prev_ref_pair) == 0 && GetSize(prev_ref_pair) == 1) {
195
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
196
- gpr_log(GPR_INFO, " Destroying");
197
- }
192
+ GRPC_TRACE_LOG(work_serializer, INFO) << " Destroying";
198
193
  delete this;
199
194
  }
200
195
  }
@@ -202,7 +197,7 @@ void WorkSerializer::LegacyWorkSerializer::Orphan() {
202
197
  // The thread that calls this loans itself to the work serializer so as to
203
198
  // execute all the scheduled callbacks.
204
199
  void WorkSerializer::LegacyWorkSerializer::DrainQueue() {
205
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
200
+ if (GRPC_TRACE_FLAG_ENABLED(work_serializer)) {
206
201
  gpr_log(GPR_INFO, "WorkSerializer::DrainQueue() %p", this);
207
202
  }
208
203
  // Attempt to take ownership of the WorkSerializer. Also increment the queue
@@ -214,8 +209,8 @@ void WorkSerializer::LegacyWorkSerializer::DrainQueue() {
214
209
  // We took ownership of the WorkSerializer. Drain the queue.
215
210
  DrainQueueOwned();
216
211
  } else {
217
- // Another thread is holding the WorkSerializer, so decrement the ownership
218
- // count we just added and queue a no-op callback.
212
+ // Another thread is holding the WorkSerializer, so decrement the
213
+ // ownership count we just added and queue a no-op callback.
219
214
  refs_.fetch_sub(MakeRefPair(1, 0), std::memory_order_acq_rel);
220
215
  CallbackWrapper* cb_wrapper = new CallbackWrapper([]() {}, DEBUG_LOCATION);
221
216
  queue_.Push(&cb_wrapper->mpscq_node);
@@ -223,7 +218,7 @@ void WorkSerializer::LegacyWorkSerializer::DrainQueue() {
223
218
  }
224
219
 
225
220
  void WorkSerializer::LegacyWorkSerializer::DrainQueueOwned() {
226
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
221
+ if (GRPC_TRACE_FLAG_ENABLED(work_serializer)) {
227
222
  gpr_log(GPR_INFO, "WorkSerializer::DrainQueueOwned() %p", this);
228
223
  }
229
224
  while (true) {
@@ -231,9 +226,7 @@ void WorkSerializer::LegacyWorkSerializer::DrainQueueOwned() {
231
226
  // It is possible that while draining the queue, the last callback ended
232
227
  // up orphaning the work serializer. In that case, delete the object.
233
228
  if (GetSize(prev_ref_pair) == 1) {
234
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
235
- gpr_log(GPR_INFO, " Queue Drained. Destroying");
236
- }
229
+ GRPC_TRACE_LOG(work_serializer, INFO) << " Queue Drained. Destroying";
237
230
  delete this;
238
231
  return;
239
232
  }
@@ -251,9 +244,7 @@ void WorkSerializer::LegacyWorkSerializer::DrainQueueOwned() {
251
244
  }
252
245
  if (GetSize(expected) == 0) {
253
246
  // WorkSerializer got orphaned while this was running
254
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
255
- gpr_log(GPR_INFO, " Queue Drained. Destroying");
256
- }
247
+ GRPC_TRACE_LOG(work_serializer, INFO) << " Queue Drained. Destroying";
257
248
  delete this;
258
249
  return;
259
250
  }
@@ -271,11 +262,10 @@ void WorkSerializer::LegacyWorkSerializer::DrainQueueOwned() {
271
262
  queue_.PopAndCheckEnd(&empty_unused))) == nullptr) {
272
263
  // This can happen due to a race condition within the mpscq
273
264
  // implementation or because of a race with Run()/Schedule().
274
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
275
- gpr_log(GPR_INFO, " Queue returned nullptr, trying again");
276
- }
265
+ GRPC_TRACE_LOG(work_serializer, INFO)
266
+ << " Queue returned nullptr, trying again";
277
267
  }
278
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
268
+ if (GRPC_TRACE_FLAG_ENABLED(work_serializer)) {
279
269
  gpr_log(GPR_INFO, " Running item %p : callback scheduled at [%s:%d]",
280
270
  cb_wrapper, cb_wrapper->location.file(),
281
271
  cb_wrapper->location.line());
@@ -291,9 +281,9 @@ void WorkSerializer::LegacyWorkSerializer::DrainQueueOwned() {
291
281
 
292
282
  // DispatchingWorkSerializer: executes callbacks one at a time on EventEngine.
293
283
  // One at a time guarantees that fixed size thread pools in EventEngine
294
- // implementations are not starved of threads by long running work serializers.
295
- // We implement EventEngine::Closure directly to avoid allocating once per
296
- // callback in the queue when scheduling.
284
+ // implementations are not starved of threads by long running work
285
+ // serializers. We implement EventEngine::Closure directly to avoid allocating
286
+ // once per callback in the queue when scheduling.
297
287
  class WorkSerializer::DispatchingWorkSerializer final
298
288
  : public WorkSerializerImpl,
299
289
  public grpc_event_engine::experimental::EventEngine::Closure {
@@ -306,7 +296,8 @@ class WorkSerializer::DispatchingWorkSerializer final
306
296
  const DebugLocation& location) override;
307
297
  void Schedule(std::function<void()> callback,
308
298
  const DebugLocation& location) override {
309
- // We always dispatch to event engine, so Schedule and Run share semantics.
299
+ // We always dispatch to event engine, so Schedule and Run share
300
+ // semantics.
310
301
  Run(callback, location);
311
302
  }
312
303
  void DrainQueue() override {}
@@ -356,11 +347,11 @@ class WorkSerializer::DispatchingWorkSerializer final
356
347
  // separated from incoming cache lines.
357
348
 
358
349
  // Callbacks that are currently being processed.
359
- // Only accessed by: a Run() call going from not-running to running, or a work
360
- // item being executed in EventEngine -- ie this does not need a mutex because
361
- // all access is serialized.
362
- // Stored in reverse execution order so that callbacks can be `pop_back()`'d
363
- // on completion to free up any resources they hold.
350
+ // Only accessed by: a Run() call going from not-running to running, or a
351
+ // work item being executed in EventEngine -- ie this does not need a mutex
352
+ // because all access is serialized. Stored in reverse execution order so
353
+ // that callbacks can be `pop_back()`'d on completion to free up any
354
+ // resources they hold.
364
355
  CallbackVector processing_;
365
356
  // EventEngine instance upon which we'll do our work.
366
357
  const std::shared_ptr<grpc_event_engine::experimental::EventEngine>
@@ -374,16 +365,16 @@ class WorkSerializer::DispatchingWorkSerializer final
374
365
  // on an idle WorkSerializer, and transitions back to false after the last
375
366
  // callback scheduled is completed and the WorkSerializer is again idle.
376
367
  // - orphaned_ transitions to true once upon Orphan being called.
377
- // When orphaned_ is true and running_ is false, the DispatchingWorkSerializer
378
- // instance is deleted.
368
+ // When orphaned_ is true and running_ is false, the
369
+ // DispatchingWorkSerializer instance is deleted.
379
370
  bool running_ ABSL_GUARDED_BY(mu_) = false;
380
371
  bool orphaned_ ABSL_GUARDED_BY(mu_) = false;
381
372
  Mutex mu_;
382
- // Queued callbacks. New work items land here, and when processing_ is drained
383
- // we move this entire queue into processing_ and work on draining it again.
384
- // In low traffic scenarios this gives two mutex acquisitions per work item,
385
- // but as load increases we get some natural batching and the rate of mutex
386
- // acquisitions per work item tends towards 1.
373
+ // Queued callbacks. New work items land here, and when processing_ is
374
+ // drained we move this entire queue into processing_ and work on draining
375
+ // it again. In low traffic scenarios this gives two mutex acquisitions per
376
+ // work item, but as load increases we get some natural batching and the
377
+ // rate of mutex acquisitions per work item tends towards 1.
387
378
  CallbackVector incoming_ ABSL_GUARDED_BY(mu_);
388
379
 
389
380
  #ifndef NDEBUG
@@ -412,15 +403,15 @@ void WorkSerializer::DispatchingWorkSerializer::Orphan() {
412
403
  // Implementation of WorkSerializerImpl::Run
413
404
  void WorkSerializer::DispatchingWorkSerializer::Run(
414
405
  std::function<void()> callback, const DebugLocation& location) {
415
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
406
+ if (GRPC_TRACE_FLAG_ENABLED(work_serializer)) {
416
407
  gpr_log(GPR_INFO, "WorkSerializer[%p] Scheduling callback [%s:%d]", this,
417
408
  location.file(), location.line());
418
409
  }
419
410
  global_stats().IncrementWorkSerializerItemsEnqueued();
420
411
  MutexLock lock(&mu_);
421
412
  if (!running_) {
422
- // If we were previously idle, insert this callback directly into the empty
423
- // processing_ list and start running.
413
+ // If we were previously idle, insert this callback directly into the
414
+ // empty processing_ list and start running.
424
415
  running_ = true;
425
416
  running_start_time_ = std::chrono::steady_clock::now();
426
417
  items_processed_during_run_ = 0;
@@ -440,10 +431,10 @@ void WorkSerializer::DispatchingWorkSerializer::Run() {
440
431
  // TODO(ctiller): remove these when we can deprecate ExecCtx
441
432
  ApplicationCallbackExecCtx app_exec_ctx;
442
433
  ExecCtx exec_ctx;
443
- // Grab the last element of processing_ - which is the next item in our queue
444
- // since processing_ is stored in reverse order.
434
+ // Grab the last element of processing_ - which is the next item in our
435
+ // queue since processing_ is stored in reverse order.
445
436
  auto& cb = processing_.back();
446
- if (GRPC_TRACE_FLAG_ENABLED(grpc_work_serializer_trace)) {
437
+ if (GRPC_TRACE_FLAG_ENABLED(work_serializer)) {
447
438
  gpr_log(GPR_INFO, "WorkSerializer[%p] Executing callback [%s:%d]", this,
448
439
  cb.location.file(), cb.location.line());
449
440
  }
@@ -451,9 +442,9 @@ void WorkSerializer::DispatchingWorkSerializer::Run() {
451
442
  const auto start = std::chrono::steady_clock::now();
452
443
  SetCurrentThread();
453
444
  cb.callback();
454
- // pop_back here destroys the callback - freeing any resources it might hold.
455
- // We do so before clearing the current thread in case the callback destructor
456
- // wants to check that it's in the WorkSerializer too.
445
+ // pop_back here destroys the callback - freeing any resources it might
446
+ // hold. We do so before clearing the current thread in case the callback
447
+ // destructor wants to check that it's in the WorkSerializer too.
457
448
  processing_.pop_back();
458
449
  ClearCurrentThread();
459
450
  global_stats().IncrementWorkSerializerItemsDequeued();
@@ -507,8 +498,8 @@ bool WorkSerializer::DispatchingWorkSerializer::Refill() {
507
498
  case RefillResult::kRefilled:
508
499
  // Reverse processing_ so that we can pop_back() items in the correct
509
500
  // order. (note that this is mostly pointer swaps inside the
510
- // std::function's, so should be relatively cheap even for longer lists).
511
- // Do so here so we're outside of the RefillInner lock.
501
+ // std::function's, so should be relatively cheap even for longer
502
+ // lists). Do so here so we're outside of the RefillInner lock.
512
503
  std::reverse(processing_.begin(), processing_.end());
513
504
  return true;
514
505
  case RefillResult::kFinished:
@@ -18,6 +18,8 @@
18
18
 
19
19
  #include "src/core/lib/iomgr/buffer_list.h"
20
20
 
21
+ #include "absl/log/log.h"
22
+
21
23
  #include <grpc/support/log.h>
22
24
  #include <grpc/support/port_platform.h>
23
25
  #include <grpc/support/time.h>
@@ -42,7 +44,7 @@ void FillGprFromTimestamp(gpr_timespec* gts, const struct timespec* ts) {
42
44
 
43
45
  void DefaultTimestampsCallback(void* /*arg*/, Timestamps* /*ts*/,
44
46
  absl::Status /*shudown_err*/) {
45
- gpr_log(GPR_DEBUG, "Timestamps callback has not been registered");
47
+ VLOG(2) << "Timestamps callback has not been registered";
46
48
  }
47
49
 
48
50
  // The saved callback function that will be invoked when we get all the
@@ -321,7 +323,7 @@ void grpc_tcp_set_write_timestamps_callback(
321
323
  // Can't comment out the name because some compilers and formatters don't
322
324
  // like the sequence */* , which would arise from */*fn*/.
323
325
  (void)fn;
324
- gpr_log(GPR_DEBUG, "Timestamps callback is not enabled for this platform");
326
+ VLOG(2) << "Timestamps callback is not enabled for this platform";
325
327
  }
326
328
  } // namespace grpc_core
327
329