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
@@ -46,6 +46,7 @@
46
46
  #include <unordered_map>
47
47
 
48
48
  #include "absl/log/check.h"
49
+ #include "absl/log/log.h"
49
50
 
50
51
  #include <grpc/slice.h>
51
52
  #include <grpc/support/alloc.h>
@@ -56,12 +57,8 @@
56
57
 
57
58
  #include "src/core/lib/address_utils/sockaddr_utils.h"
58
59
  #include "src/core/lib/debug/event_log.h"
59
- #include "src/core/lib/debug/stats.h"
60
- #include "src/core/lib/debug/stats_data.h"
61
60
  #include "src/core/lib/debug/trace.h"
62
61
  #include "src/core/lib/experiments/experiments.h"
63
- #include "src/core/lib/gpr/string.h"
64
- #include "src/core/lib/gpr/useful.h"
65
62
  #include "src/core/lib/gprpp/crash.h"
66
63
  #include "src/core/lib/gprpp/strerror.h"
67
64
  #include "src/core/lib/gprpp/sync.h"
@@ -74,9 +71,12 @@
74
71
  #include "src/core/lib/iomgr/tcp_posix.h"
75
72
  #include "src/core/lib/resource_quota/api.h"
76
73
  #include "src/core/lib/resource_quota/memory_quota.h"
77
- #include "src/core/lib/resource_quota/trace.h"
78
74
  #include "src/core/lib/slice/slice_internal.h"
79
75
  #include "src/core/lib/slice/slice_string_helpers.h"
76
+ #include "src/core/telemetry/stats.h"
77
+ #include "src/core/telemetry/stats_data.h"
78
+ #include "src/core/util/string.h"
79
+ #include "src/core/util/useful.h"
80
80
 
81
81
  #ifndef SOL_TCP
82
82
  #define SOL_TCP IPPROTO_TCP
@@ -108,8 +108,6 @@ typedef GRPC_MSG_IOVLEN_TYPE msg_iovlen_type;
108
108
  typedef size_t msg_iovlen_type;
109
109
  #endif
110
110
 
111
- extern grpc_core::TraceFlag grpc_tcp_trace;
112
-
113
111
  namespace grpc_core {
114
112
 
115
113
  class TcpZerocopySendRecord {
@@ -212,7 +210,7 @@ class TcpZerocopySendCtx {
212
210
  if (send_records_ == nullptr || free_send_records_ == nullptr) {
213
211
  gpr_free(send_records_);
214
212
  gpr_free(free_send_records_);
215
- gpr_log(GPR_INFO, "Disabling TCP TX zerocopy due to memory pressure.\n");
213
+ LOG(INFO) << "Disabling TCP TX zerocopy due to memory pressure.\n";
216
214
  memory_limited_ = true;
217
215
  } else {
218
216
  for (int idx = 0; idx < max_sends_; ++idx) {
@@ -620,7 +618,7 @@ static void tcp_drop_uncovered_then_handle_write(void* arg /* grpc_tcp */,
620
618
 
621
619
  static void done_poller(void* bp, grpc_error_handle /*error_ignored*/) {
622
620
  backup_poller* p = static_cast<backup_poller*>(bp);
623
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
621
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
624
622
  gpr_log(GPR_INFO, "BACKUP_POLLER:%p destroy", p);
625
623
  }
626
624
  grpc_pollset_destroy(BACKUP_POLLER_POLLSET(p));
@@ -629,7 +627,7 @@ static void done_poller(void* bp, grpc_error_handle /*error_ignored*/) {
629
627
 
630
628
  static void run_poller(void* bp, grpc_error_handle /*error_ignored*/) {
631
629
  backup_poller* p = static_cast<backup_poller*>(bp);
632
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
630
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
633
631
  gpr_log(GPR_INFO, "BACKUP_POLLER:%p run", p);
634
632
  }
635
633
  gpr_mu_lock(p->pollset_mu);
@@ -646,7 +644,7 @@ static void run_poller(void* bp, grpc_error_handle /*error_ignored*/) {
646
644
  g_backup_poller = nullptr;
647
645
  g_uncovered_notifications_pending = 0;
648
646
  g_backup_poller_mu->Unlock();
649
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
647
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
650
648
  gpr_log(GPR_INFO, "BACKUP_POLLER:%p shutdown", p);
651
649
  }
652
650
  grpc_pollset_shutdown(BACKUP_POLLER_POLLSET(p),
@@ -654,7 +652,7 @@ static void run_poller(void* bp, grpc_error_handle /*error_ignored*/) {
654
652
  grpc_schedule_on_exec_ctx));
655
653
  } else {
656
654
  g_backup_poller_mu->Unlock();
657
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
655
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
658
656
  gpr_log(GPR_INFO, "BACKUP_POLLER:%p reschedule", p);
659
657
  }
660
658
  grpc_core::Executor::Run(&p->run_poller, absl::OkStatus(),
@@ -671,7 +669,7 @@ static void drop_uncovered(grpc_tcp* /*tcp*/) {
671
669
  old_count = g_uncovered_notifications_pending--;
672
670
  g_backup_poller_mu->Unlock();
673
671
  CHECK_GT(old_count, 1);
674
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
672
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
675
673
  gpr_log(GPR_INFO, "BACKUP_POLLER:%p uncover cnt %d->%d", p, old_count,
676
674
  old_count - 1);
677
675
  }
@@ -695,7 +693,7 @@ static void cover_self(grpc_tcp* tcp) {
695
693
  g_backup_poller = p;
696
694
  grpc_pollset_init(BACKUP_POLLER_POLLSET(p), &p->pollset_mu);
697
695
  g_backup_poller_mu->Unlock();
698
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
696
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
699
697
  gpr_log(GPR_INFO, "BACKUP_POLLER:%p create", p);
700
698
  }
701
699
  grpc_core::Executor::Run(
@@ -707,7 +705,7 @@ static void cover_self(grpc_tcp* tcp) {
707
705
  p = g_backup_poller;
708
706
  g_backup_poller_mu->Unlock();
709
707
  }
710
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
708
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
711
709
  gpr_log(GPR_INFO, "BACKUP_POLLER:%p add %p cnt %d->%d", p, tcp,
712
710
  old_count - 1, old_count);
713
711
  }
@@ -715,14 +713,14 @@ static void cover_self(grpc_tcp* tcp) {
715
713
  }
716
714
 
717
715
  static void notify_on_read(grpc_tcp* tcp) {
718
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
716
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
719
717
  gpr_log(GPR_INFO, "TCP:%p notify_on_read", tcp);
720
718
  }
721
719
  grpc_fd_notify_on_read(tcp->em_fd, &tcp->read_done_closure);
722
720
  }
723
721
 
724
722
  static void notify_on_write(grpc_tcp* tcp) {
725
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
723
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
726
724
  gpr_log(GPR_INFO, "TCP:%p notify_on_write", tcp);
727
725
  }
728
726
  if (!grpc_event_engine_run_in_background()) {
@@ -733,7 +731,7 @@ static void notify_on_write(grpc_tcp* tcp) {
733
731
 
734
732
  static void tcp_drop_uncovered_then_handle_write(void* arg,
735
733
  grpc_error_handle error) {
736
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
734
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
737
735
  gpr_log(GPR_INFO, "TCP:%p got_write: %s", arg,
738
736
  grpc_core::StatusToString(error).c_str());
739
737
  }
@@ -761,28 +759,16 @@ static void finish_estimate(grpc_tcp* tcp) {
761
759
 
762
760
  static grpc_error_handle tcp_annotate_error(grpc_error_handle src_error,
763
761
  grpc_tcp* tcp) {
764
- return grpc_error_set_str(
765
- grpc_error_set_int(
766
- grpc_error_set_int(src_error, grpc_core::StatusIntProperty::kFd,
767
- tcp->fd),
768
- // All tcp errors are marked with UNAVAILABLE so that application may
769
- // choose to retry.
770
- grpc_core::StatusIntProperty::kRpcStatus, GRPC_STATUS_UNAVAILABLE),
771
- grpc_core::StatusStrProperty::kTargetAddress, tcp->peer_string);
762
+ return grpc_error_set_int(
763
+ grpc_error_set_int(src_error, grpc_core::StatusIntProperty::kFd, tcp->fd),
764
+ // All tcp errors are marked with UNAVAILABLE so that application may
765
+ // choose to retry.
766
+ grpc_core::StatusIntProperty::kRpcStatus, GRPC_STATUS_UNAVAILABLE);
772
767
  }
773
768
 
774
769
  static void tcp_handle_read(void* arg /* grpc_tcp */, grpc_error_handle error);
775
770
  static void tcp_handle_write(void* arg /* grpc_tcp */, grpc_error_handle error);
776
771
 
777
- static void tcp_shutdown(grpc_endpoint* ep, grpc_error_handle why) {
778
- grpc_tcp* tcp = reinterpret_cast<grpc_tcp*>(ep);
779
- ZerocopyDisableAndWaitForRemaining(tcp);
780
- grpc_fd_shutdown(tcp->em_fd, why);
781
- tcp->read_mu.Lock();
782
- tcp->memory_owner.Reset();
783
- tcp->read_mu.Unlock();
784
- }
785
-
786
772
  static void tcp_free(grpc_tcp* tcp) {
787
773
  grpc_fd_orphan(tcp->em_fd, tcp->release_fd_cb, tcp->release_fd,
788
774
  "tcp_unref_orphan");
@@ -820,10 +806,11 @@ static void tcp_ref(grpc_tcp* tcp) { tcp->refcount.Ref(); }
820
806
  #endif
821
807
 
822
808
  static void tcp_destroy(grpc_endpoint* ep) {
809
+ gpr_log(GPR_INFO, "IOMGR endpoint shutdown");
823
810
  grpc_tcp* tcp = reinterpret_cast<grpc_tcp*>(ep);
824
- grpc_slice_buffer_reset_and_unref(&tcp->last_read_buffer);
811
+ ZerocopyDisableAndWaitForRemaining(tcp);
812
+ grpc_fd_shutdown(tcp->em_fd, absl::UnavailableError("endpoint shutdown"));
825
813
  if (grpc_event_engine_can_track_errors()) {
826
- ZerocopyDisableAndWaitForRemaining(tcp);
827
814
  gpr_atm_no_barrier_store(&tcp->stop_error_notification, true);
828
815
  grpc_fd_set_error(tcp->em_fd);
829
816
  }
@@ -835,8 +822,8 @@ static void tcp_destroy(grpc_endpoint* ep) {
835
822
 
836
823
  static void perform_reclamation(grpc_tcp* tcp)
837
824
  ABSL_LOCKS_EXCLUDED(tcp->read_mu) {
838
- if (GRPC_TRACE_FLAG_ENABLED(grpc_resource_quota_trace)) {
839
- gpr_log(GPR_INFO, "TCP: benign reclamation to free memory");
825
+ if (GRPC_TRACE_FLAG_ENABLED(resource_quota)) {
826
+ LOG(INFO) << "TCP: benign reclamation to free memory";
840
827
  }
841
828
  tcp->read_mu.Lock();
842
829
  if (tcp->incoming_buffer != nullptr) {
@@ -865,16 +852,16 @@ static void maybe_post_reclaimer(grpc_tcp* tcp)
865
852
  static void tcp_trace_read(grpc_tcp* tcp, grpc_error_handle error)
866
853
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(tcp->read_mu) {
867
854
  grpc_closure* cb = tcp->read_cb;
868
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
855
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
869
856
  gpr_log(GPR_INFO, "TCP:%p call_cb %p %p:%p", tcp, cb, cb->cb, cb->cb_arg);
870
857
  size_t i;
871
858
  gpr_log(GPR_INFO, "READ %p (peer=%s) error=%s", tcp,
872
859
  tcp->peer_string.c_str(), grpc_core::StatusToString(error).c_str());
873
- if (gpr_should_log(GPR_LOG_SEVERITY_DEBUG)) {
860
+ if (ABSL_VLOG_IS_ON(2)) {
874
861
  for (i = 0; i < tcp->incoming_buffer->count; i++) {
875
862
  char* dump = grpc_dump_slice(tcp->incoming_buffer->slices[i],
876
863
  GPR_DUMP_HEX | GPR_DUMP_ASCII);
877
- gpr_log(GPR_DEBUG, "READ DATA: %s", dump);
864
+ VLOG(2) << "READ DATA: " << dump;
878
865
  gpr_free(dump);
879
866
  }
880
867
  }
@@ -930,7 +917,7 @@ static void update_rcvlowat(grpc_tcp* tcp)
930
917
  #define MAX_READ_IOVEC 64
931
918
  static bool tcp_do_read(grpc_tcp* tcp, grpc_error_handle* error)
932
919
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(tcp->read_mu) {
933
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
920
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
934
921
  gpr_log(GPR_INFO, "TCP:%p do_read", tcp);
935
922
  }
936
923
  struct msghdr msg;
@@ -1143,7 +1130,7 @@ static void maybe_make_read_slices(grpc_tcp* tcp)
1143
1130
 
1144
1131
  static void tcp_handle_read(void* arg /* grpc_tcp */, grpc_error_handle error) {
1145
1132
  grpc_tcp* tcp = static_cast<grpc_tcp*>(arg);
1146
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
1133
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
1147
1134
  gpr_log(GPR_INFO, "TCP:%p got_read: %s", tcp,
1148
1135
  grpc_core::StatusToString(error).c_str());
1149
1136
  }
@@ -1293,8 +1280,8 @@ static bool tcp_write_with_timestamps(grpc_tcp* tcp, struct msghdr* msg,
1293
1280
  uint32_t opt = grpc_core::kTimestampingSocketOptions;
1294
1281
  if (setsockopt(tcp->fd, SOL_SOCKET, SO_TIMESTAMPING,
1295
1282
  static_cast<void*>(&opt), sizeof(opt)) != 0) {
1296
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
1297
- gpr_log(GPR_ERROR, "Failed to set timestamping options on the socket.");
1283
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
1284
+ LOG(ERROR) << "Failed to set timestamping options on the socket.";
1298
1285
  }
1299
1286
  return false;
1300
1287
  }
@@ -1379,8 +1366,8 @@ struct cmsghdr* process_timestamp(grpc_tcp* tcp, msghdr* msg,
1379
1366
  auto next_cmsg = CMSG_NXTHDR(msg, cmsg);
1380
1367
  cmsghdr* opt_stats = nullptr;
1381
1368
  if (next_cmsg == nullptr) {
1382
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
1383
- gpr_log(GPR_ERROR, "Received timestamp without extended error");
1369
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
1370
+ LOG(ERROR) << "Received timestamp without extended error";
1384
1371
  }
1385
1372
  return cmsg;
1386
1373
  }
@@ -1391,8 +1378,8 @@ struct cmsghdr* process_timestamp(grpc_tcp* tcp, msghdr* msg,
1391
1378
  opt_stats = next_cmsg;
1392
1379
  next_cmsg = CMSG_NXTHDR(msg, opt_stats);
1393
1380
  if (next_cmsg == nullptr) {
1394
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
1395
- gpr_log(GPR_ERROR, "Received timestamp without extended error");
1381
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
1382
+ LOG(ERROR) << "Received timestamp without extended error";
1396
1383
  }
1397
1384
  return opt_stats;
1398
1385
  }
@@ -1401,8 +1388,8 @@ struct cmsghdr* process_timestamp(grpc_tcp* tcp, msghdr* msg,
1401
1388
  if (!(next_cmsg->cmsg_level == SOL_IP || next_cmsg->cmsg_level == SOL_IPV6) ||
1402
1389
  !(next_cmsg->cmsg_type == IP_RECVERR ||
1403
1390
  next_cmsg->cmsg_type == IPV6_RECVERR)) {
1404
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
1405
- gpr_log(GPR_ERROR, "Unexpected control message");
1391
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
1392
+ LOG(ERROR) << "Unexpected control message";
1406
1393
  }
1407
1394
  return cmsg;
1408
1395
  }
@@ -1412,7 +1399,7 @@ struct cmsghdr* process_timestamp(grpc_tcp* tcp, msghdr* msg,
1412
1399
  auto serr = reinterpret_cast<struct sock_extended_err*>(CMSG_DATA(next_cmsg));
1413
1400
  if (serr->ee_errno != ENOMSG ||
1414
1401
  serr->ee_origin != SO_EE_ORIGIN_TIMESTAMPING) {
1415
- gpr_log(GPR_ERROR, "Unexpected control message");
1402
+ LOG(ERROR) << "Unexpected control message";
1416
1403
  return cmsg;
1417
1404
  }
1418
1405
  tcp->tb_list.ProcessTimestamp(serr, opt_stats, tss);
@@ -1462,7 +1449,7 @@ static bool process_errors(grpc_tcp* tcp) {
1462
1449
  return processed_err;
1463
1450
  }
1464
1451
  if (GPR_UNLIKELY((msg.msg_flags & MSG_CTRUNC) != 0)) {
1465
- gpr_log(GPR_ERROR, "Error message was truncated.");
1452
+ LOG(ERROR) << "Error message was truncated.";
1466
1453
  }
1467
1454
 
1468
1455
  if (msg.msg_controllen == 0) {
@@ -1484,7 +1471,7 @@ static bool process_errors(grpc_tcp* tcp) {
1484
1471
  } else {
1485
1472
  // Got a control message that is not a timestamp or zerocopy. Don't know
1486
1473
  // how to handle this.
1487
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
1474
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
1488
1475
  gpr_log(GPR_INFO,
1489
1476
  "unknown control message cmsg_level:%d cmsg_type:%d",
1490
1477
  cmsg->cmsg_level, cmsg->cmsg_type);
@@ -1501,7 +1488,7 @@ static bool process_errors(grpc_tcp* tcp) {
1501
1488
  static void tcp_handle_error(void* arg /* grpc_tcp */,
1502
1489
  grpc_error_handle error) {
1503
1490
  grpc_tcp* tcp = static_cast<grpc_tcp*>(arg);
1504
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
1491
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
1505
1492
  gpr_log(GPR_INFO, "TCP:%p got_error: %s", tcp,
1506
1493
  grpc_core::StatusToString(error).c_str());
1507
1494
  }
@@ -1539,14 +1526,14 @@ static bool tcp_write_with_timestamps(grpc_tcp* /*tcp*/, struct msghdr* /*msg*/,
1539
1526
  ssize_t* /*sent_length*/,
1540
1527
  int* /* saved_errno */,
1541
1528
  int /*additional_flags*/) {
1542
- gpr_log(GPR_ERROR, "Write with timestamps not supported for this platform");
1529
+ LOG(ERROR) << "Write with timestamps not supported for this platform";
1543
1530
  CHECK(0);
1544
1531
  return false;
1545
1532
  }
1546
1533
 
1547
1534
  static void tcp_handle_error(void* /*arg*/ /* grpc_tcp */,
1548
1535
  grpc_error_handle /*error*/) {
1549
- gpr_log(GPR_ERROR, "Error handling is not supported for this platform");
1536
+ LOG(ERROR) << "Error handling is not supported for this platform";
1550
1537
  CHECK(0);
1551
1538
  }
1552
1539
  #endif // GRPC_LINUX_ERRQUEUE
@@ -1667,10 +1654,6 @@ static bool do_tcp_flush_zerocopy(grpc_tcp* tcp, TcpZerocopySendRecord* record,
1667
1654
  if (saved_errno == EAGAIN || saved_errno == ENOBUFS) {
1668
1655
  record->UnwindIfThrottled(unwind_slice_idx, unwind_byte_idx);
1669
1656
  return false;
1670
- } else if (saved_errno == EPIPE) {
1671
- *error = tcp_annotate_error(GRPC_OS_ERROR(saved_errno, "sendmsg"), tcp);
1672
- tcp_shutdown_buffer_list(tcp);
1673
- return true;
1674
1657
  } else {
1675
1658
  *error = tcp_annotate_error(GRPC_OS_ERROR(saved_errno, "sendmsg"), tcp);
1676
1659
  tcp_shutdown_buffer_list(tcp);
@@ -1781,11 +1764,6 @@ static bool tcp_flush(grpc_tcp* tcp, grpc_error_handle* error) {
1781
1764
  grpc_slice_buffer_remove_first(tcp->outgoing_buffer);
1782
1765
  }
1783
1766
  return false;
1784
- } else if (saved_errno == EPIPE) {
1785
- *error = tcp_annotate_error(GRPC_OS_ERROR(saved_errno, "sendmsg"), tcp);
1786
- grpc_slice_buffer_reset_and_unref(tcp->outgoing_buffer);
1787
- tcp_shutdown_buffer_list(tcp);
1788
- return true;
1789
1767
  } else {
1790
1768
  *error = tcp_annotate_error(GRPC_OS_ERROR(saved_errno, "sendmsg"), tcp);
1791
1769
  grpc_slice_buffer_reset_and_unref(tcp->outgoing_buffer);
@@ -1841,8 +1819,8 @@ static void tcp_handle_write(void* arg /* grpc_tcp */,
1841
1819
  ? tcp_flush_zerocopy(tcp, tcp->current_zerocopy_send, &error)
1842
1820
  : tcp_flush(tcp, &error);
1843
1821
  if (!flush_result) {
1844
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
1845
- gpr_log(GPR_INFO, "write: delayed");
1822
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
1823
+ LOG(INFO) << "write: delayed";
1846
1824
  }
1847
1825
  notify_on_write(tcp);
1848
1826
  // tcp_flush does not populate error if it has returned false.
@@ -1851,9 +1829,7 @@ static void tcp_handle_write(void* arg /* grpc_tcp */,
1851
1829
  cb = tcp->write_cb;
1852
1830
  tcp->write_cb = nullptr;
1853
1831
  tcp->current_zerocopy_send = nullptr;
1854
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
1855
- gpr_log(GPR_INFO, "write: %s", grpc_core::StatusToString(error).c_str());
1856
- }
1832
+ GRPC_TRACE_LOG(tcp, INFO) << "write: " << grpc_core::StatusToString(error);
1857
1833
  // No need to take a ref on error since tcp_flush provides a ref.
1858
1834
  grpc_core::Closure::Run(DEBUG_LOCATION, cb, error);
1859
1835
  TCP_UNREF(tcp, "write");
@@ -1868,15 +1844,15 @@ static void tcp_write(grpc_endpoint* ep, grpc_slice_buffer* buf,
1868
1844
 
1869
1845
  grpc_core::EventLog::Append("tcp-write-outstanding", buf->length);
1870
1846
 
1871
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
1847
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
1872
1848
  size_t i;
1873
1849
 
1874
1850
  for (i = 0; i < buf->count; i++) {
1875
1851
  gpr_log(GPR_INFO, "WRITE %p (peer=%s)", tcp, tcp->peer_string.c_str());
1876
- if (gpr_should_log(GPR_LOG_SEVERITY_DEBUG)) {
1852
+ if (ABSL_VLOG_IS_ON(2)) {
1877
1853
  char* data =
1878
1854
  grpc_dump_slice(buf->slices[i], GPR_DUMP_HEX | GPR_DUMP_ASCII);
1879
- gpr_log(GPR_DEBUG, "WRITE DATA: %s", data);
1855
+ VLOG(2) << "WRITE DATA: " << data;
1880
1856
  gpr_free(data);
1881
1857
  }
1882
1858
  }
@@ -1914,14 +1890,12 @@ static void tcp_write(grpc_endpoint* ep, grpc_slice_buffer* buf,
1914
1890
  TCP_REF(tcp, "write");
1915
1891
  tcp->write_cb = cb;
1916
1892
  tcp->current_zerocopy_send = zerocopy_send_record;
1917
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
1918
- gpr_log(GPR_INFO, "write: delayed");
1893
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
1894
+ LOG(INFO) << "write: delayed";
1919
1895
  }
1920
1896
  notify_on_write(tcp);
1921
1897
  } else {
1922
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
1923
- gpr_log(GPR_INFO, "write: %s", grpc_core::StatusToString(error).c_str());
1924
- }
1898
+ GRPC_TRACE_LOG(tcp, INFO) << "write: " << grpc_core::StatusToString(error);
1925
1899
  grpc_core::Closure::Run(DEBUG_LOCATION, cb, error);
1926
1900
  }
1927
1901
  }
@@ -1976,7 +1950,6 @@ static const grpc_endpoint_vtable vtable = {tcp_read,
1976
1950
  tcp_add_to_pollset,
1977
1951
  tcp_add_to_pollset_set,
1978
1952
  tcp_delete_from_pollset_set,
1979
- tcp_shutdown,
1980
1953
  tcp_destroy,
1981
1954
  tcp_get_peer,
1982
1955
  tcp_get_local_address,
@@ -2029,13 +2002,13 @@ grpc_endpoint* grpc_tcp_create(grpc_fd* em_fd,
2029
2002
  if (err == 0) {
2030
2003
  tcp->tcp_zerocopy_send_ctx.set_enabled(true);
2031
2004
  } else {
2032
- gpr_log(GPR_ERROR, "Failed to set zerocopy options on the socket.");
2005
+ LOG(ERROR) << "Failed to set zerocopy options on the socket.";
2033
2006
  }
2034
2007
  #endif
2035
2008
  }
2036
2009
  // paired with unref in grpc_tcp_destroy
2037
- new (&tcp->refcount) grpc_core::RefCount(
2038
- 1, GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace) ? "tcp" : nullptr);
2010
+ new (&tcp->refcount)
2011
+ grpc_core::RefCount(1, GRPC_TRACE_FLAG_ENABLED(tcp) ? "tcp" : nullptr);
2039
2012
  gpr_atm_no_barrier_store(&tcp->shutdown_count, 0);
2040
2013
  tcp->em_fd = em_fd;
2041
2014
  grpc_slice_buffer_init(&tcp->last_read_buffer);
@@ -38,8 +38,6 @@
38
38
  #include "src/core/lib/iomgr/port.h"
39
39
  #include "src/core/lib/iomgr/socket_utils_posix.h"
40
40
 
41
- extern grpc_core::TraceFlag grpc_tcp_trace;
42
-
43
41
  /// Create a tcp endpoint given a file desciptor and a read slice size.
44
42
  /// Takes ownership of \a fd. Takes ownership of the \a slice_allocator.
45
43
  grpc_endpoint* grpc_tcp_create(grpc_fd* fd,
@@ -177,7 +177,7 @@ static grpc_error_handle CreateEventEngineListener(
177
177
  addr_uri.status().ToString().c_str());
178
178
  return;
179
179
  }
180
- if (grpc_tcp_trace.enabled()) {
180
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
181
181
  gpr_log(GPR_INFO,
182
182
  "SERVER_CONNECT: incoming external connection: %s",
183
183
  addr_uri->c_str());
@@ -467,7 +467,7 @@ static void on_read(void* arg, grpc_error_handle err) {
467
467
  addr_uri.status().ToString().c_str());
468
468
  goto error;
469
469
  }
470
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
470
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
471
471
  gpr_log(GPR_INFO, "SERVER_CONNECT: incoming connection: %s",
472
472
  addr_uri->c_str());
473
473
  }
@@ -928,7 +928,7 @@ class ExternalConnectionHandler : public grpc_core::TcpServerFdHandler {
928
928
  addr_uri.status().ToString().c_str());
929
929
  return;
930
930
  }
931
- if (grpc_tcp_trace.enabled()) {
931
+ if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
932
932
  gpr_log(GPR_INFO, "SERVER_CONNECT: incoming external connection: %s",
933
933
  addr_uri->c_str());
934
934
  }
@@ -32,10 +32,10 @@
32
32
  #include <string>
33
33
 
34
34
  #include "absl/log/check.h"
35
+ #include "absl/log/log.h"
35
36
  #include "absl/strings/str_cat.h"
36
37
 
37
38
  #include <grpc/support/alloc.h>
38
- #include <grpc/support/log.h>
39
39
  #include <grpc/support/sync.h>
40
40
 
41
41
  #include "src/core/lib/address_utils/sockaddr_utils.h"
@@ -72,10 +72,8 @@ static void init_max_accept_queue_size(void) {
72
72
  s_max_accept_queue_size = n;
73
73
 
74
74
  if (s_max_accept_queue_size < MIN_SAFE_ACCEPT_QUEUE_SIZE) {
75
- gpr_log(GPR_INFO,
76
- "Suspiciously small accept queue (%d) will probably lead to "
77
- "connection drops",
78
- s_max_accept_queue_size);
75
+ LOG(INFO) << "Suspiciously small accept queue (" << s_max_accept_queue_size
76
+ << ") will probably lead to connection drops";
79
77
  }
80
78
  }
81
79
 
@@ -221,7 +219,7 @@ grpc_error_handle grpc_tcp_server_prepare_socket(
221
219
  err = grpc_set_socket_zerocopy(fd);
222
220
  if (!err.ok()) {
223
221
  // it's not fatal, so just log it.
224
- gpr_log(GPR_DEBUG, "Node does not support SO_ZEROCOPY, continuing.");
222
+ VLOG(2) << "Node does not support SO_ZEROCOPY, continuing.";
225
223
  }
226
224
  #endif
227
225
  err = grpc_set_socket_nonblocking(fd, 1);
@@ -31,10 +31,10 @@
31
31
  #include <string>
32
32
 
33
33
  #include "absl/log/check.h"
34
+ #include "absl/log/log.h"
34
35
  #include "absl/strings/str_cat.h"
35
36
 
36
37
  #include <grpc/support/alloc.h>
37
- #include <grpc/support/log.h>
38
38
 
39
39
  #include "src/core/lib/address_utils/sockaddr_utils.h"
40
40
  #include "src/core/lib/gprpp/crash.h"
@@ -115,7 +115,7 @@ grpc_error_handle grpc_tcp_server_add_all_local_addrs(grpc_tcp_server* s,
115
115
  } else if (requested_port <= 0) {
116
116
  return GRPC_ERROR_CREATE("Bad get_unused_port()");
117
117
  }
118
- gpr_log(GPR_DEBUG, "Picked unused port %d", requested_port);
118
+ VLOG(2) << "Picked unused port " << requested_port;
119
119
  }
120
120
 
121
121
  static bool v4_available = grpc_is_ipv4_availabile();
@@ -150,14 +150,14 @@ grpc_error_handle grpc_tcp_server_add_all_local_addrs(grpc_tcp_server* s,
150
150
  if (!addr_str.ok()) {
151
151
  return GRPC_ERROR_CREATE(addr_str.status().ToString());
152
152
  }
153
- gpr_log(GPR_DEBUG,
154
- "Adding local addr from interface %s flags 0x%x to server: %s",
155
- ifa_name, ifa_it->ifa_flags, addr_str->c_str());
153
+ VLOG(2) << absl::StrFormat(
154
+ "Adding local addr from interface %s flags 0x%x to server: %s",
155
+ ifa_name, ifa_it->ifa_flags, addr_str->c_str());
156
156
  // We could have multiple interfaces with the same address (e.g., bonding),
157
157
  // so look for duplicates.
158
158
  if (find_listener_with_addr(s, &addr) != nullptr) {
159
- gpr_log(GPR_DEBUG, "Skipping duplicate addr %s on interface %s",
160
- addr_str->c_str(), ifa_name);
159
+ VLOG(2) << "Skipping duplicate addr " << *addr_str << " on interface "
160
+ << ifa_name;
161
161
  continue;
162
162
  }
163
163
  if ((err = grpc_tcp_server_add_addr(s, &addr, port_index, fd_index, &dsmode,
@@ -28,13 +28,13 @@
28
28
  #include <vector>
29
29
 
30
30
  #include "absl/log/check.h"
31
+ #include "absl/log/log.h"
31
32
  #include "absl/strings/str_cat.h"
32
33
 
33
34
  #include <grpc/event_engine/endpoint_config.h>
34
35
  #include <grpc/event_engine/event_engine.h>
35
36
  #include <grpc/event_engine/memory_allocator.h>
36
37
  #include <grpc/support/alloc.h>
37
- #include <grpc/support/log.h>
38
38
  #include <grpc/support/log_windows.h>
39
39
  #include <grpc/support/string_util.h>
40
40
  #include <grpc/support/sync.h>
@@ -294,14 +294,9 @@ static grpc_error_handle prepare_socket(SOCKET sock,
294
294
 
295
295
  failure:
296
296
  CHECK(!error.ok());
297
- auto addr_uri = grpc_sockaddr_to_uri(addr);
298
- error = grpc_error_set_int(
299
- grpc_error_set_str(
300
- GRPC_ERROR_CREATE_REFERENCING("Failed to prepare server socket",
301
- &error, 1),
302
- grpc_core::StatusStrProperty::kTargetAddress,
303
- addr_uri.ok() ? *addr_uri : addr_uri.status().ToString()),
304
- grpc_core::StatusIntProperty::kFd, (intptr_t)sock);
297
+ error = grpc_error_set_int(GRPC_ERROR_CREATE_REFERENCING(
298
+ "Failed to prepare server socket", &error, 1),
299
+ grpc_core::StatusIntProperty::kFd, (intptr_t)sock);
305
300
  if (sock != INVALID_SOCKET) closesocket(sock);
306
301
  return error;
307
302
  }
@@ -391,8 +386,8 @@ static void on_accept(void* arg, grpc_error_handle error) {
391
386
  // this is necessary in the read/write case, it's useless for the accept
392
387
  // case. We only need to adjust the pending callback count
393
388
  if (!error.ok()) {
394
- gpr_log(GPR_INFO, "Skipping on_accept due to error: %s",
395
- grpc_core::StatusToString(error).c_str());
389
+ LOG(INFO) << "Skipping on_accept due to error: "
390
+ << grpc_core::StatusToString(error);
396
391
 
397
392
  gpr_mu_unlock(&sp->server->mu);
398
393
  return;
@@ -405,7 +400,7 @@ static void on_accept(void* arg, grpc_error_handle error) {
405
400
  if (!wsa_success) {
406
401
  if (!sp->shutting_down) {
407
402
  char* utf8_message = gpr_format_message(WSAGetLastError());
408
- gpr_log(GPR_ERROR, "on_accept error: %s", utf8_message);
403
+ LOG(ERROR) << "on_accept error: " << utf8_message;
409
404
  gpr_free(utf8_message);
410
405
  }
411
406
  closesocket(sock);
@@ -415,7 +410,7 @@ static void on_accept(void* arg, grpc_error_handle error) {
415
410
  (char*)&sp->socket->socket, sizeof(sp->socket->socket));
416
411
  if (err) {
417
412
  char* utf8_message = gpr_format_message(WSAGetLastError());
418
- gpr_log(GPR_ERROR, "setsockopt error: %s", utf8_message);
413
+ LOG(ERROR) << "setsockopt error: " << utf8_message;
419
414
  gpr_free(utf8_message);
420
415
  }
421
416
  int peer_name_len = (int)peer_name.len;
@@ -427,12 +422,11 @@ static void on_accept(void* arg, grpc_error_handle error) {
427
422
  if (addr_uri.ok()) {
428
423
  peer_name_string = addr_uri.value();
429
424
  } else {
430
- gpr_log(GPR_ERROR, "invalid peer name: %s",
431
- addr_uri.status().ToString().c_str());
425
+ LOG(ERROR) << "invalid peer name: " << addr_uri.status();
432
426
  }
433
427
  } else {
434
428
  char* utf8_message = gpr_format_message(WSAGetLastError());
435
- gpr_log(GPR_ERROR, "getpeername error: %s", utf8_message);
429
+ LOG(ERROR) << "getpeername error: " << utf8_message;
436
430
  gpr_free(utf8_message);
437
431
  }
438
432
  std::string fd_name = absl::StrCat("tcp_server:", peer_name_string);