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
@@ -41,6 +41,7 @@
41
41
  #include <string>
42
42
  #include <vector>
43
43
 
44
+ #include "absl/log/log.h"
44
45
  #include "absl/strings/str_cat.h"
45
46
  #include "absl/strings/str_format.h"
46
47
  #include "absl/strings/str_join.h"
@@ -48,10 +49,6 @@
48
49
  #include <grpc/support/alloc.h>
49
50
  #include <grpc/support/cpu.h>
50
51
 
51
- #include "src/core/lib/debug/stats.h"
52
- #include "src/core/lib/debug/stats_data.h"
53
- #include "src/core/lib/gpr/string.h"
54
- #include "src/core/lib/gpr/useful.h"
55
52
  #include "src/core/lib/gprpp/manual_constructor.h"
56
53
  #include "src/core/lib/gprpp/strerror.h"
57
54
  #include "src/core/lib/iomgr/block_annotate.h"
@@ -60,6 +57,10 @@
60
57
  #include "src/core/lib/iomgr/iomgr_internal.h"
61
58
  #include "src/core/lib/iomgr/lockfree_event.h"
62
59
  #include "src/core/lib/iomgr/wakeup_fd_posix.h"
60
+ #include "src/core/telemetry/stats.h"
61
+ #include "src/core/telemetry/stats_data.h"
62
+ #include "src/core/util/string.h"
63
+ #include "src/core/util/useful.h"
63
64
 
64
65
  static grpc_wakeup_fd global_wakeup_fd;
65
66
  static bool g_is_shutdown = true;
@@ -100,14 +101,14 @@ static int epoll_create_and_cloexec() {
100
101
  #ifdef GRPC_LINUX_EPOLL_CREATE1
101
102
  int fd = epoll_create1(EPOLL_CLOEXEC);
102
103
  if (fd < 0) {
103
- gpr_log(GPR_ERROR, "epoll_create1 unavailable");
104
+ LOG(ERROR) << "epoll_create1 unavailable";
104
105
  }
105
106
  #else
106
107
  int fd = epoll_create(MAX_EPOLL_EVENTS);
107
108
  if (fd < 0) {
108
- gpr_log(GPR_ERROR, "epoll_create unavailable");
109
+ LOG(ERROR) << "epoll_create unavailable";
109
110
  } else if (fcntl(fd, F_SETFD, FD_CLOEXEC) != 0) {
110
- gpr_log(GPR_ERROR, "fcntl following epoll_create failed");
111
+ LOG(ERROR) << "fcntl following epoll_create failed";
111
112
  return -1;
112
113
  }
113
114
  #endif
@@ -361,7 +362,7 @@ static grpc_fd* fd_create(int fd, const char* name, bool track_err) {
361
362
  grpc_iomgr_register_object(&new_fd->iomgr_object, fd_name.c_str());
362
363
  fork_fd_list_add_grpc_fd(new_fd);
363
364
  #ifndef NDEBUG
364
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_fd_refcount)) {
365
+ if (GRPC_TRACE_FLAG_ENABLED(fd_refcount)) {
365
366
  gpr_log(GPR_DEBUG, "FD %d %p create %s", fd, new_fd, fd_name.c_str());
366
367
  }
367
368
  #endif
@@ -730,7 +731,7 @@ static grpc_error_handle do_epoll_wait(grpc_pollset* ps,
730
731
 
731
732
  if (r < 0) return GRPC_OS_ERROR(errno, "epoll_wait");
732
733
 
733
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
734
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
734
735
  gpr_log(GPR_INFO, "ps: %p poll got %d events", ps, r);
735
736
  }
736
737
 
@@ -749,7 +750,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
749
750
  worker->schedule_on_end_work = (grpc_closure_list)GRPC_CLOSURE_LIST_INIT;
750
751
  pollset->begin_refs++;
751
752
 
752
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
753
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
753
754
  gpr_log(GPR_INFO, "PS:%p BEGIN_STARTS:%p", pollset, worker);
754
755
  }
755
756
 
@@ -768,7 +769,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
768
769
  retry_lock_neighborhood:
769
770
  gpr_mu_lock(&neighborhood->mu);
770
771
  gpr_mu_lock(&pollset->mu);
771
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
772
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
772
773
  gpr_log(GPR_INFO, "PS:%p BEGIN_REORG:%p kick_state=%s is_reassigning=%d",
773
774
  pollset, worker, kick_state_string(worker->state),
774
775
  is_reassigning);
@@ -821,7 +822,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
821
822
  worker->initialized_cv = true;
822
823
  gpr_cv_init(&worker->cv);
823
824
  while (worker->state == UNKICKED && !pollset->shutting_down) {
824
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
825
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
825
826
  gpr_log(GPR_INFO, "PS:%p BEGIN_WAIT:%p kick_state=%s shutdown=%d",
826
827
  pollset, worker, kick_state_string(worker->state),
827
828
  pollset->shutting_down);
@@ -838,7 +839,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
838
839
  grpc_core::ExecCtx::Get()->InvalidateNow();
839
840
  }
840
841
 
841
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
842
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
842
843
  gpr_log(GPR_INFO,
843
844
  "PS:%p BEGIN_DONE:%p kick_state=%s shutdown=%d "
844
845
  "kicked_without_poller: %d",
@@ -881,7 +882,7 @@ static bool check_neighborhood_for_available_poller(
881
882
  if (gpr_atm_no_barrier_cas(
882
883
  &g_active_poller, 0,
883
884
  reinterpret_cast<gpr_atm>(inspect_worker))) {
884
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
885
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
885
886
  gpr_log(GPR_INFO, " .. choose next poller to be %p",
886
887
  inspect_worker);
887
888
  }
@@ -890,8 +891,8 @@ static bool check_neighborhood_for_available_poller(
890
891
  gpr_cv_signal(&inspect_worker->cv);
891
892
  }
892
893
  } else {
893
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
894
- gpr_log(GPR_INFO, " .. beaten to choose next poller");
894
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
895
+ LOG(INFO) << " .. beaten to choose next poller";
895
896
  }
896
897
  }
897
898
  // even if we didn't win the cas, there's a worker, we can stop
@@ -908,7 +909,7 @@ static bool check_neighborhood_for_available_poller(
908
909
  } while (!found_worker && inspect_worker != inspect->root_worker);
909
910
  }
910
911
  if (!found_worker) {
911
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
912
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
912
913
  gpr_log(GPR_INFO, " .. mark pollset %p inactive", inspect);
913
914
  }
914
915
  inspect->seen_inactive = true;
@@ -927,7 +928,7 @@ static bool check_neighborhood_for_available_poller(
927
928
 
928
929
  static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
929
930
  grpc_pollset_worker** worker_hdl) {
930
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
931
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
931
932
  gpr_log(GPR_INFO, "PS:%p END_WORKER:%p", pollset, worker);
932
933
  }
933
934
  if (worker_hdl != nullptr) *worker_hdl = nullptr;
@@ -938,7 +939,7 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
938
939
  if (gpr_atm_no_barrier_load(&g_active_poller) ==
939
940
  reinterpret_cast<gpr_atm>(worker)) {
940
941
  if (worker->next != worker && worker->next->state == UNKICKED) {
941
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
942
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
942
943
  gpr_log(GPR_INFO, " .. choose next poller to be peer %p", worker);
943
944
  }
944
945
  CHECK(worker->next->initialized_cv);
@@ -989,8 +990,8 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
989
990
  if (worker->initialized_cv) {
990
991
  gpr_cv_destroy(&worker->cv);
991
992
  }
992
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
993
- gpr_log(GPR_INFO, " .. remove worker");
993
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
994
+ LOG(INFO) << " .. remove worker";
994
995
  }
995
996
  if (EMPTIED == worker_remove(pollset, worker)) {
996
997
  pollset_maybe_finish_shutdown(pollset);
@@ -1055,7 +1056,7 @@ static grpc_error_handle pollset_work(grpc_pollset* ps,
1055
1056
  static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1056
1057
  grpc_pollset_worker* specific_worker) {
1057
1058
  grpc_error_handle ret_err;
1058
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1059
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
1059
1060
  std::vector<std::string> log;
1060
1061
  log.push_back(absl::StrFormat(
1061
1062
  "PS:%p KICK:%p curps=%p curworker=%p root=%p", pollset, specific_worker,
@@ -1080,20 +1081,20 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1080
1081
  grpc_pollset_worker* root_worker = pollset->root_worker;
1081
1082
  if (root_worker == nullptr) {
1082
1083
  pollset->kicked_without_poller = true;
1083
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1084
- gpr_log(GPR_INFO, " .. kicked_without_poller");
1084
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
1085
+ LOG(INFO) << " .. kicked_without_poller";
1085
1086
  }
1086
1087
  goto done;
1087
1088
  }
1088
1089
  grpc_pollset_worker* next_worker = root_worker->next;
1089
1090
  if (root_worker->state == KICKED) {
1090
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1091
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
1091
1092
  gpr_log(GPR_INFO, " .. already kicked %p", root_worker);
1092
1093
  }
1093
1094
  SET_KICK_STATE(root_worker, KICKED);
1094
1095
  goto done;
1095
1096
  } else if (next_worker->state == KICKED) {
1096
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1097
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
1097
1098
  gpr_log(GPR_INFO, " .. already kicked %p", next_worker);
1098
1099
  }
1099
1100
  SET_KICK_STATE(next_worker, KICKED);
@@ -1103,14 +1104,14 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1103
1104
  root_worker ==
1104
1105
  reinterpret_cast<grpc_pollset_worker*>(
1105
1106
  gpr_atm_no_barrier_load(&g_active_poller))) {
1106
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1107
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
1107
1108
  gpr_log(GPR_INFO, " .. kicked %p", root_worker);
1108
1109
  }
1109
1110
  SET_KICK_STATE(root_worker, KICKED);
1110
1111
  ret_err = grpc_wakeup_fd_wakeup(&global_wakeup_fd);
1111
1112
  goto done;
1112
1113
  } else if (next_worker->state == UNKICKED) {
1113
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1114
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
1114
1115
  gpr_log(GPR_INFO, " .. kicked %p", next_worker);
1115
1116
  }
1116
1117
  CHECK(next_worker->initialized_cv);
@@ -1119,7 +1120,7 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1119
1120
  goto done;
1120
1121
  } else if (next_worker->state == DESIGNATED_POLLER) {
1121
1122
  if (root_worker->state != DESIGNATED_POLLER) {
1122
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1123
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
1123
1124
  gpr_log(
1124
1125
  GPR_INFO,
1125
1126
  " .. kicked root non-poller %p (initialized_cv=%d) (poller=%p)",
@@ -1131,7 +1132,7 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1131
1132
  }
1132
1133
  goto done;
1133
1134
  } else {
1134
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1135
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
1135
1136
  gpr_log(GPR_INFO, " .. non-root poller %p (root=%p)", next_worker,
1136
1137
  root_worker);
1137
1138
  }
@@ -1145,8 +1146,8 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1145
1146
  goto done;
1146
1147
  }
1147
1148
  } else {
1148
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1149
- gpr_log(GPR_INFO, " .. kicked while waking up");
1149
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
1150
+ LOG(INFO) << " .. kicked while waking up";
1150
1151
  }
1151
1152
  goto done;
1152
1153
  }
@@ -1155,12 +1156,12 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1155
1156
  }
1156
1157
 
1157
1158
  if (specific_worker->state == KICKED) {
1158
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1159
- gpr_log(GPR_INFO, " .. specific worker already kicked");
1159
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
1160
+ LOG(INFO) << " .. specific worker already kicked";
1160
1161
  }
1161
1162
  goto done;
1162
1163
  } else if (g_current_thread_worker == specific_worker) {
1163
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1164
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
1164
1165
  gpr_log(GPR_INFO, " .. mark %p kicked", specific_worker);
1165
1166
  }
1166
1167
  SET_KICK_STATE(specific_worker, KICKED);
@@ -1168,22 +1169,22 @@ static grpc_error_handle pollset_kick(grpc_pollset* pollset,
1168
1169
  } else if (specific_worker ==
1169
1170
  reinterpret_cast<grpc_pollset_worker*>(
1170
1171
  gpr_atm_no_barrier_load(&g_active_poller))) {
1171
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1172
- gpr_log(GPR_INFO, " .. kick active poller");
1172
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
1173
+ LOG(INFO) << " .. kick active poller";
1173
1174
  }
1174
1175
  SET_KICK_STATE(specific_worker, KICKED);
1175
1176
  ret_err = grpc_wakeup_fd_wakeup(&global_wakeup_fd);
1176
1177
  goto done;
1177
1178
  } else if (specific_worker->initialized_cv) {
1178
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1179
- gpr_log(GPR_INFO, " .. kick waiting worker");
1179
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
1180
+ LOG(INFO) << " .. kick waiting worker";
1180
1181
  }
1181
1182
  SET_KICK_STATE(specific_worker, KICKED);
1182
1183
  gpr_cv_signal(&specific_worker->cv);
1183
1184
  goto done;
1184
1185
  } else {
1185
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1186
- gpr_log(GPR_INFO, " .. kick non-waiting worker");
1186
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
1187
+ LOG(INFO) << " .. kick non-waiting worker";
1187
1188
  }
1188
1189
  SET_KICK_STATE(specific_worker, KICKED);
1189
1190
  goto done;
@@ -1311,7 +1312,7 @@ static void reset_event_manager_on_fork() {
1311
1312
  static bool init_epoll1_linux() {
1312
1313
  if (!g_is_shutdown) return true;
1313
1314
  if (!grpc_has_wakeup_fd()) {
1314
- gpr_log(GPR_ERROR, "Skipping epoll1 because of no wakeup fd.");
1315
+ LOG(ERROR) << "Skipping epoll1 because of no wakeup fd.";
1315
1316
  return false;
1316
1317
  }
1317
1318
 
@@ -34,21 +34,22 @@
34
34
  #include <string>
35
35
 
36
36
  #include "absl/log/check.h"
37
+ #include "absl/log/log.h"
37
38
  #include "absl/strings/str_cat.h"
38
39
  #include "absl/strings/str_format.h"
39
40
 
40
41
  #include <grpc/support/alloc.h>
41
42
  #include <grpc/support/log.h>
42
43
 
43
- #include "src/core/lib/debug/stats.h"
44
- #include "src/core/lib/debug/stats_data.h"
45
- #include "src/core/lib/gpr/useful.h"
46
44
  #include "src/core/lib/gprpp/crash.h"
47
45
  #include "src/core/lib/gprpp/thd.h"
48
46
  #include "src/core/lib/iomgr/block_annotate.h"
49
47
  #include "src/core/lib/iomgr/ev_poll_posix.h"
50
48
  #include "src/core/lib/iomgr/iomgr_internal.h"
51
49
  #include "src/core/lib/iomgr/wakeup_fd_posix.h"
50
+ #include "src/core/telemetry/stats.h"
51
+ #include "src/core/telemetry/stats_data.h"
52
+ #include "src/core/util/useful.h"
52
53
 
53
54
  #define GRPC_POLLSET_KICK_BROADCAST ((grpc_pollset_worker*)1)
54
55
 
@@ -266,19 +267,29 @@ struct grpc_pollset_set {
266
267
  //
267
268
 
268
269
  static void fork_fd_list_remove_node(grpc_fork_fd_list* node) {
270
+ gpr_mu_lock(&fork_fd_list_mu);
271
+ if (fork_fd_list_head == node) {
272
+ fork_fd_list_head = node->next;
273
+ }
274
+ if (node->prev != nullptr) {
275
+ node->prev->next = node->next;
276
+ }
277
+ if (node->next != nullptr) {
278
+ node->next->prev = node->prev;
279
+ }
280
+ gpr_free(node);
281
+ gpr_mu_unlock(&fork_fd_list_mu);
282
+ }
283
+
284
+ static void fork_fd_list_remove_grpc_fd(grpc_fd* fd) {
269
285
  if (track_fds_for_fork) {
270
- gpr_mu_lock(&fork_fd_list_mu);
271
- if (fork_fd_list_head == node) {
272
- fork_fd_list_head = node->next;
273
- }
274
- if (node->prev != nullptr) {
275
- node->prev->next = node->next;
276
- }
277
- if (node->next != nullptr) {
278
- node->next->prev = node->prev;
279
- }
280
- gpr_free(node);
281
- gpr_mu_unlock(&fork_fd_list_mu);
286
+ fork_fd_list_remove_node(fd->fork_fd_list);
287
+ }
288
+ }
289
+
290
+ static void fork_fd_list_remove_wakeup_fd(grpc_cached_wakeup_fd* fd) {
291
+ if (track_fds_for_fork) {
292
+ fork_fd_list_remove_node(fd->fork_fd_list);
282
293
  }
283
294
  }
284
295
 
@@ -322,7 +333,7 @@ static void fork_fd_list_add_wakeup_fd(grpc_cached_wakeup_fd* fd) {
322
333
  #define UNREF_BY(fd, n, reason) unref_by(fd, n, reason, __FILE__, __LINE__)
323
334
  static void ref_by(grpc_fd* fd, int n, const char* reason, const char* file,
324
335
  int line) {
325
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_fd_refcount)) {
336
+ if (GRPC_TRACE_FLAG_ENABLED(fd_refcount)) {
326
337
  gpr_log(GPR_DEBUG,
327
338
  "FD %d %p ref %d %" PRIdPTR " -> %" PRIdPTR " [%s; %s:%d]",
328
339
  fd->fd, fd, n, gpr_atm_no_barrier_load(&fd->refst),
@@ -347,7 +358,7 @@ static void ref_by(grpc_fd* fd, int n) {
347
358
  #ifndef NDEBUG
348
359
  static void unref_by(grpc_fd* fd, int n, const char* reason, const char* file,
349
360
  int line) {
350
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_fd_refcount)) {
361
+ if (GRPC_TRACE_FLAG_ENABLED(fd_refcount)) {
351
362
  gpr_log(GPR_DEBUG,
352
363
  "FD %d %p unref %d %" PRIdPTR " -> %" PRIdPTR " [%s; %s:%d]",
353
364
  fd->fd, fd, n, gpr_atm_no_barrier_load(&fd->refst),
@@ -360,7 +371,7 @@ static void unref_by(grpc_fd* fd, int n) {
360
371
  if (old == n) {
361
372
  gpr_mu_destroy(&fd->mu);
362
373
  grpc_iomgr_unregister_object(&fd->iomgr_object);
363
- fork_fd_list_remove_node(fd->fork_fd_list);
374
+ fork_fd_list_remove_grpc_fd(fd);
364
375
  if (fd->shutdown) {
365
376
  }
366
377
  fd->shutdown_error.~Status();
@@ -582,9 +593,8 @@ static void fd_notify_on_write(grpc_fd* fd, grpc_closure* closure) {
582
593
  }
583
594
 
584
595
  static void fd_notify_on_error(grpc_fd* /*fd*/, grpc_closure* closure) {
585
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
586
- gpr_log(GPR_ERROR, "Polling engine does not support tracking errors.");
587
- }
596
+ GRPC_TRACE_LOG(polling, ERROR)
597
+ << "Polling engine does not support tracking errors.";
588
598
  grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure, absl::CancelledError());
589
599
  }
590
600
 
@@ -601,9 +611,8 @@ static void fd_set_writable(grpc_fd* fd) {
601
611
  }
602
612
 
603
613
  static void fd_set_error(grpc_fd* /*fd*/) {
604
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
605
- gpr_log(GPR_ERROR, "Polling engine does not support tracking errors.");
606
- }
614
+ GRPC_TRACE_LOG(polling, ERROR)
615
+ << "Polling engine does not support tracking errors.";
607
616
  }
608
617
 
609
618
  static uint32_t fd_begin_poll(grpc_fd* fd, grpc_pollset* pollset,
@@ -859,7 +868,7 @@ static void pollset_destroy(grpc_pollset* pollset) {
859
868
  CHECK(!pollset_has_workers(pollset));
860
869
  while (pollset->local_wakeup_cache) {
861
870
  grpc_cached_wakeup_fd* next = pollset->local_wakeup_cache->next;
862
- fork_fd_list_remove_node(pollset->local_wakeup_cache->fork_fd_list);
871
+ fork_fd_list_remove_wakeup_fd(pollset->local_wakeup_cache);
863
872
  grpc_wakeup_fd_destroy(&pollset->local_wakeup_cache->fd);
864
873
  gpr_free(pollset->local_wakeup_cache);
865
874
  pollset->local_wakeup_cache = next;
@@ -1020,7 +1029,7 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
1020
1029
  r = grpc_poll_function(pfds, pfd_count, timeout);
1021
1030
  GRPC_SCHEDULING_END_BLOCKING_REGION;
1022
1031
 
1023
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1032
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
1024
1033
  gpr_log(GPR_INFO, "%p poll=%d", pollset, r);
1025
1034
  }
1026
1035
 
@@ -1044,7 +1053,7 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
1044
1053
  }
1045
1054
  } else {
1046
1055
  if (pfds[0].revents & POLLIN_CHECK) {
1047
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1056
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
1048
1057
  gpr_log(GPR_INFO, "%p: got_wakeup", pollset);
1049
1058
  }
1050
1059
  work_combine_error(
@@ -1058,7 +1067,7 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
1058
1067
  }
1059
1068
  fd_end_poll(&watchers[i], 0, 0);
1060
1069
  } else {
1061
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
1070
+ if (GRPC_TRACE_FLAG_ENABLED(polling)) {
1062
1071
  gpr_log(GPR_INFO, "%p got_event: %d r:%d w:%d [%d]", pollset,
1063
1072
  pfds[i].fd, (pfds[i].revents & POLLIN_CHECK) != 0,
1064
1073
  (pfds[i].revents & POLLOUT_CHECK) != 0, pfds[i].revents);
@@ -1397,7 +1406,7 @@ const grpc_event_engine_vtable grpc_ev_poll_posix = {
1397
1406
  // check_engine_available =
1398
1407
  [](bool) {
1399
1408
  if (!grpc_has_wakeup_fd()) {
1400
- gpr_log(GPR_ERROR, "Skipping poll because of no wakeup fd.");
1409
+ LOG(ERROR) << "Skipping poll because of no wakeup fd.";
1401
1410
  return false;
1402
1411
  }
1403
1412
  if (!GRPC_LOG_IF_ERROR("pollset_global_init", pollset_global_init())) {
@@ -25,6 +25,7 @@
25
25
 
26
26
  #include <string.h>
27
27
 
28
+ #include "absl/log/log.h"
28
29
  #include "absl/strings/str_format.h"
29
30
  #include "absl/strings/str_split.h"
30
31
 
@@ -34,25 +35,19 @@
34
35
 
35
36
  #include "src/core/lib/config/config_vars.h"
36
37
  #include "src/core/lib/debug/trace.h"
37
- #include "src/core/lib/gpr/useful.h"
38
38
  #include "src/core/lib/gprpp/crash.h"
39
39
  #include "src/core/lib/iomgr/ev_epoll1_linux.h"
40
40
  #include "src/core/lib/iomgr/ev_poll_posix.h"
41
41
  #include "src/core/lib/iomgr/ev_posix.h"
42
42
  #include "src/core/lib/iomgr/internal_errqueue.h"
43
-
44
- grpc_core::DebugOnlyTraceFlag grpc_polling_trace(
45
- false, "polling"); // Disabled by default
43
+ #include "src/core/util/useful.h"
46
44
 
47
45
  // Traces fd create/close operations
48
- grpc_core::DebugOnlyTraceFlag grpc_fd_trace(false, "fd_trace");
49
- grpc_core::DebugOnlyTraceFlag grpc_trace_fd_refcount(false, "fd_refcount");
50
- grpc_core::DebugOnlyTraceFlag grpc_polling_api_trace(false, "polling_api");
51
46
 
52
47
  // Polling API trace only enabled in debug builds
53
48
  #ifndef NDEBUG
54
49
  #define GRPC_POLLING_API_TRACE(format, ...) \
55
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_api_trace)) { \
50
+ if (GRPC_TRACE_FLAG_ENABLED(polling_api)) { \
56
51
  gpr_log(GPR_INFO, "(polling-api) " format, __VA_ARGS__); \
57
52
  }
58
53
  #else
@@ -109,7 +104,7 @@ static void try_engine(absl::string_view engine) {
109
104
  if (g_vtables[i] != nullptr && is(engine, g_vtables[i]->name) &&
110
105
  g_vtables[i]->check_engine_available(engine == g_vtables[i]->name)) {
111
106
  g_event_engine = g_vtables[i];
112
- gpr_log(GPR_DEBUG, "Using polling engine: %s", g_event_engine->name);
107
+ VLOG(2) << "Using polling engine: " << g_event_engine->name;
113
108
  return;
114
109
  }
115
110
  }
@@ -339,4 +334,8 @@ void grpc_shutdown_background_closure(void) {
339
334
  g_event_engine->shutdown_background_closure();
340
335
  }
341
336
 
337
+ #else // GRPC_POSIX_SOCKET_EV
338
+
339
+ const char* grpc_get_poll_strategy_name() { return ""; }
340
+
342
341
  #endif // GRPC_POSIX_SOCKET_EV
@@ -19,6 +19,10 @@
19
19
  #ifndef GRPC_SRC_CORE_LIB_IOMGR_EV_POSIX_H
20
20
  #define GRPC_SRC_CORE_LIB_IOMGR_EV_POSIX_H
21
21
 
22
+ #include "src/core/lib/iomgr/port.h"
23
+
24
+ #ifdef GRPC_POSIX_SOCKET_EV
25
+
22
26
  #include <poll.h>
23
27
 
24
28
  #include <grpc/support/port_platform.h>
@@ -29,11 +33,8 @@
29
33
  #include "src/core/lib/iomgr/pollset_set.h"
30
34
  #include "src/core/lib/iomgr/wakeup_fd_posix.h"
31
35
 
32
- extern grpc_core::DebugOnlyTraceFlag grpc_fd_trace; // Disabled by default
33
- extern grpc_core::DebugOnlyTraceFlag grpc_polling_trace; // Disabled by default
34
-
35
36
  #define GRPC_FD_TRACE(format, ...) \
36
- if (GRPC_TRACE_FLAG_ENABLED(grpc_fd_trace)) { \
37
+ if (GRPC_TRACE_FLAG_ENABLED(fd_trace)) { \
37
38
  gpr_log(GPR_INFO, "(fd-trace) " format, __VA_ARGS__); \
38
39
  }
39
40
 
@@ -99,9 +100,6 @@ void grpc_register_event_engine_factory(const grpc_event_engine_vtable* vtable,
99
100
  void grpc_event_engine_init(void);
100
101
  void grpc_event_engine_shutdown(void);
101
102
 
102
- // Return the name of the poll strategy
103
- const char* grpc_get_poll_strategy_name();
104
-
105
103
  // Returns true if polling engine can track errors separately, false otherwise.
106
104
  // If this is true, fd can be created with track_err set. After this, error
107
105
  // events will be reported using fd_notify_on_error. If it is not set, errors
@@ -207,4 +205,9 @@ void grpc_shutdown_background_closure();
207
205
  typedef int (*grpc_poll_function_type)(struct pollfd*, nfds_t, int);
208
206
  extern grpc_poll_function_type grpc_poll_function;
209
207
 
208
+ #endif // GRPC_POSIX_SOCKET_EV
209
+
210
+ // Return the name of the poll strategy
211
+ const char* grpc_get_poll_strategy_name();
212
+
210
213
  #endif // GRPC_SRC_CORE_LIB_IOMGR_EV_POSIX_H
@@ -34,7 +34,7 @@ void RunEventEngineClosure(grpc_closure* closure, grpc_error_handle error) {
34
34
  grpc_core::ExecCtx exec_ctx;
35
35
  #ifndef NDEBUG
36
36
  closure->scheduled = false;
37
- if (grpc_trace_closure.enabled()) {
37
+ if (GRPC_TRACE_FLAG_ENABLED(closure)) {
38
38
  gpr_log(GPR_DEBUG,
39
39
  "EventEngine: running closure %p: created [%s:%d]: %s [%s:%d]",
40
40
  closure, closure->file_created, closure->line_created,
@@ -44,7 +44,7 @@ void RunEventEngineClosure(grpc_closure* closure, grpc_error_handle error) {
44
44
  #endif
45
45
  closure->cb(closure->cb_arg, error);
46
46
  #ifndef NDEBUG
47
- if (grpc_trace_closure.enabled()) {
47
+ if (GRPC_TRACE_FLAG_ENABLED(closure)) {
48
48
  gpr_log(GPR_DEBUG, "EventEngine: closure %p finished", closure);
49
49
  }
50
50
  #endif