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
@@ -68,9 +68,6 @@ namespace grpc_core {
68
68
 
69
69
  using ::grpc_event_engine::experimental::EventEngine;
70
70
 
71
- TraceFlag grpc_xds_client_trace(false, "xds_client");
72
- TraceFlag grpc_xds_client_refcount_trace(false, "xds_client_refcount");
73
-
74
71
  //
75
72
  // Internal class declarations
76
73
  //
@@ -253,7 +250,7 @@ class XdsClient::XdsChannel::AdsCall final
253
250
  }
254
251
 
255
252
  void OnTimer() {
256
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
253
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
257
254
  gpr_log(GPR_INFO,
258
255
  "[xds_client %p] xds server %s: timeout obtaining resource "
259
256
  "{type=%s name=%s} from xds server",
@@ -456,12 +453,12 @@ class XdsClient::XdsChannel::LrsCall final
456
453
 
457
454
  XdsClient::XdsChannel::XdsChannel(WeakRefCountedPtr<XdsClient> xds_client,
458
455
  const XdsBootstrap::XdsServer& server)
459
- : DualRefCounted<XdsChannel>(
460
- GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_refcount_trace) ? "XdsChannel"
461
- : nullptr),
456
+ : DualRefCounted<XdsChannel>(GRPC_TRACE_FLAG_ENABLED(xds_client_refcount)
457
+ ? "XdsChannel"
458
+ : nullptr),
462
459
  xds_client_(std::move(xds_client)),
463
460
  server_(server) {
464
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
461
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
465
462
  gpr_log(GPR_INFO, "[xds_client %p] creating channel %p for server %s",
466
463
  xds_client_.get(), this, server.server_uri().c_str());
467
464
  }
@@ -478,7 +475,7 @@ XdsClient::XdsChannel::XdsChannel(WeakRefCountedPtr<XdsClient> xds_client,
478
475
  }
479
476
 
480
477
  XdsClient::XdsChannel::~XdsChannel() {
481
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
478
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
482
479
  gpr_log(GPR_INFO, "[xds_client %p] destroying xds channel %p for server %s",
483
480
  xds_client(), this, server_.server_uri().c_str());
484
481
  }
@@ -490,7 +487,7 @@ XdsClient::XdsChannel::~XdsChannel() {
490
487
  // called from DualRefCounted::Unref, which cannot have a lock annotation for
491
488
  // a lock in this subclass.
492
489
  void XdsClient::XdsChannel::Orphaned() ABSL_NO_THREAD_SAFETY_ANALYSIS {
493
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
490
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
494
491
  gpr_log(GPR_INFO, "[xds_client %p] orphaning xds channel %p for server %s",
495
492
  xds_client(), this, server_.server_uri().c_str());
496
493
  }
@@ -578,7 +575,7 @@ bool XdsClient::XdsChannel::MaybeFallbackLocked(
578
575
  type_resource.first, {authority, key_state.first});
579
576
  }
580
577
  }
581
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
578
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
582
579
  gpr_log(GPR_INFO,
583
580
  "[xds_client %p] authority %s: added fallback server %s (%s)",
584
581
  xds_client_.get(), authority.c_str(),
@@ -587,7 +584,7 @@ bool XdsClient::XdsChannel::MaybeFallbackLocked(
587
584
  }
588
585
  if (authority_state.xds_channels.back()->status().ok()) return true;
589
586
  }
590
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
587
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
591
588
  gpr_log(GPR_INFO, "[xds_client %p] authority %s: No fallback server",
592
589
  xds_client_.get(), authority.c_str());
593
590
  }
@@ -607,7 +604,7 @@ void XdsClient::XdsChannel::SetHealthyLocked() {
607
604
  auto channel_it = std::find(channels.begin(), channels.end(), this);
608
605
  // Skip if this is not on the list
609
606
  if (channel_it != channels.end()) {
610
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
607
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
611
608
  gpr_log(GPR_INFO, "[xds_client %p] authority %s: Falling forward to %s",
612
609
  xds_client_.get(), authority.first.c_str(),
613
610
  server_.server_uri().c_str());
@@ -720,7 +717,7 @@ void XdsClient::XdsChannel::RetryableCall<T>::StartNewCallLocked() {
720
717
  if (shutting_down_) return;
721
718
  CHECK(xds_channel_->transport_ != nullptr);
722
719
  CHECK(call_ == nullptr);
723
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
720
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
724
721
  gpr_log(GPR_INFO,
725
722
  "[xds_client %p] xds server %s: start new call from retryable "
726
723
  "call %p",
@@ -737,7 +734,7 @@ void XdsClient::XdsChannel::RetryableCall<T>::StartRetryTimerLocked() {
737
734
  const Timestamp next_attempt_time = backoff_.NextAttemptTime();
738
735
  const Duration timeout =
739
736
  std::max(next_attempt_time - Timestamp::Now(), Duration::Zero());
740
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
737
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
741
738
  gpr_log(GPR_INFO,
742
739
  "[xds_client %p] xds server %s: call attempt failed; "
743
740
  "retry timer will fire in %" PRId64 "ms.",
@@ -759,7 +756,7 @@ void XdsClient::XdsChannel::RetryableCall<T>::OnRetryTimer() {
759
756
  if (timer_handle_.has_value()) {
760
757
  timer_handle_.reset();
761
758
  if (shutting_down_) return;
762
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
759
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
763
760
  gpr_log(GPR_INFO,
764
761
  "[xds_client %p] xds server %s: retry timer fired (retryable "
765
762
  "call: %p)",
@@ -797,7 +794,7 @@ class XdsClient::XdsChannel::AdsCall::AdsReadDelayHandle final
797
794
  absl::Status
798
795
  XdsClient::XdsChannel::AdsCall::AdsResponseParser::ProcessAdsResponseFields(
799
796
  AdsResponseFields fields) {
800
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
797
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
801
798
  gpr_log(
802
799
  GPR_INFO,
803
800
  "[xds_client %p] xds server %s: received ADS response: type_url=%s, "
@@ -863,7 +860,7 @@ void XdsClient::XdsChannel::AdsCall::AdsResponseParser::ParseResource(
863
860
  }
864
861
  // Parse the resource.
865
862
  XdsResourceType::DecodeContext context = {
866
- xds_client(), ads_call_->xds_channel()->server_, &grpc_xds_client_trace,
863
+ xds_client(), ads_call_->xds_channel()->server_, &xds_client_trace,
867
864
  xds_client()->def_pool_.ptr(), arena};
868
865
  XdsResourceType::DecodeResult decode_result =
869
866
  result_.type->Decode(context, serialized_resource);
@@ -964,7 +961,7 @@ void XdsClient::XdsChannel::AdsCall::AdsResponseParser::ParseResource(
964
961
  if (resource_state.resource != nullptr &&
965
962
  result_.type->ResourcesEqual(resource_state.resource.get(),
966
963
  decode_result.resource->get())) {
967
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
964
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
968
965
  gpr_log(GPR_INFO,
969
966
  "[xds_client %p] %s resource %s identical to current, ignoring.",
970
967
  xds_client(), result_.type_url.c_str(),
@@ -1003,8 +1000,7 @@ void XdsClient::XdsChannel::AdsCall::AdsResponseParser::
1003
1000
  XdsClient::XdsChannel::AdsCall::AdsCall(
1004
1001
  RefCountedPtr<RetryableCall<AdsCall>> retryable_call)
1005
1002
  : InternallyRefCounted<AdsCall>(
1006
- GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_refcount_trace) ? "AdsCall"
1007
- : nullptr),
1003
+ GRPC_TRACE_FLAG_ENABLED(xds_client_refcount) ? "AdsCall" : nullptr),
1008
1004
  retryable_call_(std::move(retryable_call)) {
1009
1005
  CHECK_NE(xds_client(), nullptr);
1010
1006
  // Init the ADS call.
@@ -1018,7 +1014,7 @@ XdsClient::XdsChannel::AdsCall::AdsCall(
1018
1014
  RefCountedPtr<AdsCall>(this)));
1019
1015
  CHECK(streaming_call_ != nullptr);
1020
1016
  // Start the call.
1021
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
1017
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
1022
1018
  gpr_log(GPR_INFO,
1023
1019
  "[xds_client %p] xds server %s: starting ADS call "
1024
1020
  "(ads_call: %p, streaming_call: %p)",
@@ -1072,7 +1068,7 @@ void XdsClient::XdsChannel::AdsCall::SendMessageLocked(
1072
1068
  state.nonce, ResourceNamesForRequest(type), state.status,
1073
1069
  !sent_initial_message_);
1074
1070
  sent_initial_message_ = true;
1075
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
1071
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
1076
1072
  gpr_log(GPR_INFO,
1077
1073
  "[xds_client %p] xds server %s: sending ADS request: type=%s "
1078
1074
  "version=%s nonce=%s error=%s",
@@ -1262,7 +1258,7 @@ void XdsClient::XdsChannel::AdsCall::OnRecvMessage(absl::string_view payload) {
1262
1258
  void XdsClient::XdsChannel::AdsCall::OnStatusReceived(absl::Status status) {
1263
1259
  {
1264
1260
  MutexLock lock(&xds_client()->mu_);
1265
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
1261
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
1266
1262
  gpr_log(GPR_INFO,
1267
1263
  "[xds_client %p] xds server %s: ADS call status received "
1268
1264
  "(xds_channel=%p, ads_call=%p, streaming_call=%p): %s",
@@ -1335,7 +1331,7 @@ void XdsClient::XdsChannel::LrsCall::Timer::Orphan() {
1335
1331
  }
1336
1332
 
1337
1333
  void XdsClient::XdsChannel::LrsCall::Timer::ScheduleNextReportLocked() {
1338
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
1334
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
1339
1335
  gpr_log(GPR_INFO,
1340
1336
  "[xds_client %p] xds server %s: scheduling next load report in %s",
1341
1337
  xds_client(),
@@ -1364,8 +1360,7 @@ void XdsClient::XdsChannel::LrsCall::Timer::OnNextReportTimer() {
1364
1360
  XdsClient::XdsChannel::LrsCall::LrsCall(
1365
1361
  RefCountedPtr<RetryableCall<LrsCall>> retryable_call)
1366
1362
  : InternallyRefCounted<LrsCall>(
1367
- GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_refcount_trace) ? "LrsCall"
1368
- : nullptr),
1363
+ GRPC_TRACE_FLAG_ENABLED(xds_client_refcount) ? "LrsCall" : nullptr),
1369
1364
  retryable_call_(std::move(retryable_call)) {
1370
1365
  // Init the LRS call. Note that the call will progress every time there's
1371
1366
  // activity in xds_client()->interested_parties_, which is comprised of
@@ -1380,7 +1375,7 @@ XdsClient::XdsChannel::LrsCall::LrsCall(
1380
1375
  RefCountedPtr<LrsCall>(this)));
1381
1376
  CHECK(streaming_call_ != nullptr);
1382
1377
  // Start the call.
1383
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
1378
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
1384
1379
  gpr_log(GPR_INFO,
1385
1380
  "[xds_client %p] xds server %s: starting LRS call (lrs_call=%p, "
1386
1381
  "streaming_call=%p)",
@@ -1494,7 +1489,7 @@ void XdsClient::XdsChannel::LrsCall::OnRecvMessage(absl::string_view payload) {
1494
1489
  return;
1495
1490
  }
1496
1491
  seen_response_ = true;
1497
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
1492
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
1498
1493
  gpr_log(
1499
1494
  GPR_INFO,
1500
1495
  "[xds_client %p] xds server %s: LRS response received, %" PRIuPTR
@@ -1513,7 +1508,7 @@ void XdsClient::XdsChannel::LrsCall::OnRecvMessage(absl::string_view payload) {
1513
1508
  Duration::Milliseconds(GRPC_XDS_MIN_CLIENT_LOAD_REPORTING_INTERVAL_MS)) {
1514
1509
  new_load_reporting_interval =
1515
1510
  Duration::Milliseconds(GRPC_XDS_MIN_CLIENT_LOAD_REPORTING_INTERVAL_MS);
1516
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
1511
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
1517
1512
  gpr_log(GPR_INFO,
1518
1513
  "[xds_client %p] xds server %s: increased load_report_interval "
1519
1514
  "to minimum value %dms",
@@ -1525,7 +1520,7 @@ void XdsClient::XdsChannel::LrsCall::OnRecvMessage(absl::string_view payload) {
1525
1520
  if (send_all_clusters == send_all_clusters_ &&
1526
1521
  cluster_names_ == new_cluster_names &&
1527
1522
  load_reporting_interval_ == new_load_reporting_interval) {
1528
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
1523
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
1529
1524
  gpr_log(GPR_INFO,
1530
1525
  "[xds_client %p] xds server %s: incoming LRS response identical "
1531
1526
  "to current, ignoring.",
@@ -1549,7 +1544,7 @@ void XdsClient::XdsChannel::LrsCall::OnRecvMessage(absl::string_view payload) {
1549
1544
 
1550
1545
  void XdsClient::XdsChannel::LrsCall::OnStatusReceived(absl::Status status) {
1551
1546
  MutexLock lock(&xds_client()->mu_);
1552
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
1547
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
1553
1548
  gpr_log(GPR_INFO,
1554
1549
  "[xds_client %p] xds server %s: LRS call status received "
1555
1550
  "(xds_channel=%p, lrs_call=%p, streaming_call=%p): %s",
@@ -1585,18 +1580,17 @@ XdsClient::XdsClient(
1585
1580
  std::string user_agent_name, std::string user_agent_version,
1586
1581
  Duration resource_request_timeout)
1587
1582
  : DualRefCounted<XdsClient>(
1588
- GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_refcount_trace) ? "XdsClient"
1589
- : nullptr),
1583
+ GRPC_TRACE_FLAG_ENABLED(xds_client_refcount) ? "XdsClient" : nullptr),
1590
1584
  bootstrap_(std::move(bootstrap)),
1591
1585
  transport_factory_(std::move(transport_factory)),
1592
1586
  request_timeout_(resource_request_timeout),
1593
1587
  xds_federation_enabled_(XdsFederationEnabled()),
1594
- api_(this, &grpc_xds_client_trace, bootstrap_->node(), &def_pool_,
1588
+ api_(this, &xds_client_trace, bootstrap_->node(), &def_pool_,
1595
1589
  std::move(user_agent_name), std::move(user_agent_version)),
1596
1590
  work_serializer_(engine),
1597
1591
  engine_(std::move(engine)),
1598
1592
  metrics_reporter_(std::move(metrics_reporter)) {
1599
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
1593
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
1600
1594
  gpr_log(GPR_INFO, "[xds_client %p] creating xds client", this);
1601
1595
  }
1602
1596
  CHECK(bootstrap_ != nullptr);
@@ -1607,13 +1601,13 @@ XdsClient::XdsClient(
1607
1601
  }
1608
1602
 
1609
1603
  XdsClient::~XdsClient() {
1610
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
1604
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
1611
1605
  gpr_log(GPR_INFO, "[xds_client %p] destroying xds client", this);
1612
1606
  }
1613
1607
  }
1614
1608
 
1615
1609
  void XdsClient::Orphaned() {
1616
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
1610
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
1617
1611
  gpr_log(GPR_INFO, "[xds_client %p] shutting down xds client", this);
1618
1612
  }
1619
1613
  MutexLock lock(&mu_);
@@ -1735,7 +1729,7 @@ void XdsClient::WatchResource(const XdsResourceType* type,
1735
1729
  // If we already have a cached value for the resource, notify the new
1736
1730
  // watcher immediately.
1737
1731
  if (resource_state.resource != nullptr) {
1738
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
1732
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
1739
1733
  gpr_log(GPR_INFO,
1740
1734
  "[xds_client %p] returning cached listener data for %s", this,
1741
1735
  std::string(name).c_str());
@@ -1749,7 +1743,7 @@ void XdsClient::WatchResource(const XdsResourceType* type,
1749
1743
  DEBUG_LOCATION);
1750
1744
  } else if (resource_state.meta.client_status ==
1751
1745
  XdsApi::ResourceMetadata::DOES_NOT_EXIST) {
1752
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
1746
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
1753
1747
  gpr_log(GPR_INFO,
1754
1748
  "[xds_client %p] reporting cached does-not-exist for %s",
1755
1749
  this, std::string(name).c_str());
@@ -1761,7 +1755,7 @@ void XdsClient::WatchResource(const XdsResourceType* type,
1761
1755
  DEBUG_LOCATION);
1762
1756
  } else if (resource_state.meta.client_status ==
1763
1757
  XdsApi::ResourceMetadata::NACKED) {
1764
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
1758
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
1765
1759
  gpr_log(
1766
1760
  GPR_INFO,
1767
1761
  "[xds_client %p] reporting cached validation failure for %s: %s",
@@ -1786,7 +1780,7 @@ void XdsClient::WatchResource(const XdsResourceType* type,
1786
1780
  }
1787
1781
  absl::Status channel_status = authority_state.xds_channels.back()->status();
1788
1782
  if (!channel_status.ok()) {
1789
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
1783
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
1790
1784
  gpr_log(GPR_INFO,
1791
1785
  "[xds_client %p] returning cached channel error for %s: %s",
1792
1786
  this, std::string(name).c_str(),
@@ -2091,7 +2085,7 @@ void XdsClient::NotifyWatchersOnResourceDoesNotExist(
2091
2085
  XdsApi::ClusterLoadReportMap XdsClient::BuildLoadReportSnapshotLocked(
2092
2086
  const XdsBootstrap::XdsServer& xds_server, bool send_all_clusters,
2093
2087
  const std::set<std::string>& clusters) {
2094
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
2088
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
2095
2089
  gpr_log(GPR_INFO, "[xds_client %p] start building load report", this);
2096
2090
  }
2097
2091
  XdsApi::ClusterLoadReportMap snapshot_map;
@@ -2118,7 +2112,7 @@ XdsApi::ClusterLoadReportMap XdsClient::BuildLoadReportSnapshotLocked(
2118
2112
  if (load_report.drop_stats != nullptr) {
2119
2113
  snapshot.dropped_requests +=
2120
2114
  load_report.drop_stats->GetSnapshotAndReset();
2121
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
2115
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
2122
2116
  gpr_log(GPR_INFO,
2123
2117
  "[xds_client %p] cluster=%s eds_service_name=%s drop_stats=%p",
2124
2118
  this, cluster_key.first.c_str(), cluster_key.second.c_str(),
@@ -2136,7 +2130,7 @@ XdsApi::ClusterLoadReportMap XdsClient::BuildLoadReportSnapshotLocked(
2136
2130
  if (locality_state.locality_stats != nullptr) {
2137
2131
  locality_snapshot +=
2138
2132
  locality_state.locality_stats->GetSnapshotAndReset();
2139
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
2133
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
2140
2134
  gpr_log(GPR_INFO,
2141
2135
  "[xds_client %p] cluster=%s eds_service_name=%s "
2142
2136
  "locality=%s locality_stats=%p",
@@ -55,9 +55,6 @@ namespace testing {
55
55
  class XdsClientTestPeer;
56
56
  }
57
57
 
58
- extern TraceFlag grpc_xds_client_trace;
59
- extern TraceFlag grpc_xds_client_refcount_trace;
60
-
61
58
  class XdsClient : public DualRefCounted<XdsClient> {
62
59
  public:
63
60
  // The authority reported for old-style (non-xdstp) resource names.
@@ -43,14 +43,14 @@ XdsClusterDropStats::XdsClusterDropStats(RefCountedPtr<XdsClient> xds_client,
43
43
  absl::string_view lrs_server,
44
44
  absl::string_view cluster_name,
45
45
  absl::string_view eds_service_name)
46
- : RefCounted(GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_refcount_trace)
46
+ : RefCounted(GRPC_TRACE_FLAG_ENABLED(xds_client_refcount)
47
47
  ? "XdsClusterDropStats"
48
48
  : nullptr),
49
49
  xds_client_(std::move(xds_client)),
50
50
  lrs_server_(lrs_server),
51
51
  cluster_name_(cluster_name),
52
52
  eds_service_name_(eds_service_name) {
53
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
53
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
54
54
  gpr_log(GPR_INFO, "[xds_client %p] created drop stats %p for {%s, %s, %s}",
55
55
  xds_client_.get(), this, std::string(lrs_server_).c_str(),
56
56
  std::string(cluster_name_).c_str(),
@@ -59,7 +59,7 @@ XdsClusterDropStats::XdsClusterDropStats(RefCountedPtr<XdsClient> xds_client,
59
59
  }
60
60
 
61
61
  XdsClusterDropStats::~XdsClusterDropStats() {
62
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
62
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
63
63
  gpr_log(GPR_INFO,
64
64
  "[xds_client %p] destroying drop stats %p for {%s, %s, %s}",
65
65
  xds_client_.get(), this, std::string(lrs_server_).c_str(),
@@ -96,7 +96,7 @@ XdsClusterLocalityStats::XdsClusterLocalityStats(
96
96
  RefCountedPtr<XdsClient> xds_client, absl::string_view lrs_server,
97
97
  absl::string_view cluster_name, absl::string_view eds_service_name,
98
98
  RefCountedPtr<XdsLocalityName> name)
99
- : RefCounted(GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_refcount_trace)
99
+ : RefCounted(GRPC_TRACE_FLAG_ENABLED(xds_client_refcount)
100
100
  ? "XdsClusterLocalityStats"
101
101
  : nullptr),
102
102
  xds_client_(std::move(xds_client)),
@@ -104,7 +104,7 @@ XdsClusterLocalityStats::XdsClusterLocalityStats(
104
104
  cluster_name_(cluster_name),
105
105
  eds_service_name_(eds_service_name),
106
106
  name_(std::move(name)) {
107
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
107
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
108
108
  gpr_log(
109
109
  GPR_INFO,
110
110
  "[xds_client %p] created locality stats %p for {%s, %s, %s, %s}",
@@ -116,7 +116,7 @@ XdsClusterLocalityStats::XdsClusterLocalityStats(
116
116
  }
117
117
 
118
118
  XdsClusterLocalityStats::~XdsClusterLocalityStats() {
119
- if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
119
+ if (GRPC_TRACE_FLAG_ENABLED(xds_client)) {
120
120
  gpr_log(
121
121
  GPR_INFO,
122
122
  "[xds_client %p] destroying locality stats %p for {%s, %s, %s, %s}",
@@ -31,13 +31,13 @@
31
31
 
32
32
  #include <grpc/support/port_platform.h>
33
33
 
34
- #include "src/core/lib/channel/call_tracer.h"
35
- #include "src/core/lib/gpr/useful.h"
36
34
  #include "src/core/lib/gprpp/per_cpu.h"
37
35
  #include "src/core/lib/gprpp/ref_counted.h"
38
36
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
39
37
  #include "src/core/lib/gprpp/sync.h"
40
38
  #include "src/core/resolver/endpoint_addresses.h"
39
+ #include "src/core/telemetry/call_tracer.h"
40
+ #include "src/core/util/useful.h"
41
41
  #include "src/core/xds/xds_client/xds_bootstrap.h"
42
42
 
43
43
  namespace grpc_core {
@@ -8,28 +8,7 @@ require 'google/protobuf'
8
8
  descriptor_data = "\n\nmath.proto\x12\x04math\",\n\x07\x44ivArgs\x12\x10\n\x08\x64ividend\x18\x01 \x01(\x03\x12\x0f\n\x07\x64ivisor\x18\x02 \x01(\x03\"/\n\x08\x44ivReply\x12\x10\n\x08quotient\x18\x01 \x01(\x03\x12\x11\n\tremainder\x18\x02 \x01(\x03\"\x18\n\x07\x46ibArgs\x12\r\n\x05limit\x18\x01 \x01(\x03\"\x12\n\x03Num\x12\x0b\n\x03num\x18\x01 \x01(\x03\"\x19\n\x08\x46ibReply\x12\r\n\x05\x63ount\x18\x01 \x01(\x03\x32\xa4\x01\n\x04Math\x12&\n\x03\x44iv\x12\r.math.DivArgs\x1a\x0e.math.DivReply\"\x00\x12.\n\x07\x44ivMany\x12\r.math.DivArgs\x1a\x0e.math.DivReply\"\x00(\x01\x30\x01\x12#\n\x03\x46ib\x12\r.math.FibArgs\x1a\t.math.Num\"\x00\x30\x01\x12\x1f\n\x03Sum\x12\t.math.Num\x1a\t.math.Num\"\x00(\x01\x62\x06proto3"
9
9
 
10
10
  pool = Google::Protobuf::DescriptorPool.generated_pool
11
-
12
- begin
13
- pool.add_serialized_file(descriptor_data)
14
- rescue TypeError
15
- # Compatibility code: will be removed in the next major version.
16
- require 'google/protobuf/descriptor_pb'
17
- parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
18
- parsed.clear_dependency
19
- serialized = parsed.class.encode(parsed)
20
- file = pool.add_serialized_file(serialized)
21
- warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
22
- imports = [
23
- ]
24
- imports.each do |type_name, expected_filename|
25
- import_file = pool.lookup(type_name).file_descriptor
26
- if import_file.name != expected_filename
27
- warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
28
- end
29
- end
30
- warn "Each proto file must use a consistent fully-qualified name."
31
- warn "This will become an error in the next major version."
32
- end
11
+ pool.add_serialized_file(descriptor_data)
33
12
 
34
13
  module Math
35
14
  DivArgs = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("math.DivArgs").msgclass
@@ -808,6 +808,12 @@ struct call_run_batch_args {
808
808
  run_batch_stack* st;
809
809
  };
810
810
 
811
+ static void cancel_call_unblock_func(void* arg) {
812
+ gpr_log(GPR_INFO, "GRPC_RUBY: cancel_call_unblock_func");
813
+ grpc_call* call = (grpc_call*)arg;
814
+ grpc_call_cancel(call, NULL);
815
+ }
816
+
811
817
  static VALUE grpc_rb_call_run_batch_try(VALUE value_args) {
812
818
  grpc_rb_fork_unsafe_begin();
813
819
  struct call_run_batch_args* args = (struct call_run_batch_args*)value_args;
@@ -830,7 +836,8 @@ static VALUE grpc_rb_call_run_batch_try(VALUE value_args) {
830
836
  grpc_call_error_detail_of(err), err);
831
837
  }
832
838
  ev = rb_completion_queue_pluck(args->call->queue, tag,
833
- gpr_inf_future(GPR_CLOCK_REALTIME), NULL);
839
+ gpr_inf_future(GPR_CLOCK_REALTIME),
840
+ cancel_call_unblock_func, args->call->wrapped);
834
841
  if (!ev.success) {
835
842
  rb_raise(grpc_rb_eCallError, "call#run_batch failed somehow");
836
843
  }
@@ -35,23 +35,15 @@ typedef struct next_call_stack {
35
35
  grpc_event event;
36
36
  gpr_timespec timeout;
37
37
  void* tag;
38
- volatile int interrupted;
38
+ void (*unblock_func)(void*);
39
+ void* unblock_func_arg;
39
40
  } next_call_stack;
40
41
 
41
42
  /* Calls grpc_completion_queue_pluck without holding the ruby GIL */
42
43
  static void* grpc_rb_completion_queue_pluck_no_gil(void* param) {
43
44
  next_call_stack* const next_call = (next_call_stack*)param;
44
- gpr_timespec increment = gpr_time_from_millis(20, GPR_TIMESPAN);
45
- gpr_timespec deadline;
46
- do {
47
- deadline = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), increment);
48
- next_call->event = grpc_completion_queue_pluck(
49
- next_call->cq, next_call->tag, deadline, NULL);
50
- if (next_call->event.type != GRPC_QUEUE_TIMEOUT ||
51
- gpr_time_cmp(deadline, next_call->timeout) > 0) {
52
- break;
53
- }
54
- } while (!next_call->interrupted);
45
+ next_call->event = grpc_completion_queue_pluck(next_call->cq, next_call->tag,
46
+ next_call->timeout, NULL);
55
47
  return NULL;
56
48
  }
57
49
 
@@ -65,37 +57,28 @@ void grpc_rb_completion_queue_destroy(grpc_completion_queue* cq) {
65
57
  grpc_completion_queue_destroy(cq);
66
58
  }
67
59
 
68
- static void unblock_func(void* param) {
60
+ static void outer_unblock_func(void* param) {
69
61
  next_call_stack* const next_call = (next_call_stack*)param;
70
- next_call->interrupted = 1;
62
+ if (next_call->unblock_func == NULL) return;
63
+ next_call->unblock_func(next_call->unblock_func_arg);
71
64
  }
72
65
 
73
66
  /* Does the same thing as grpc_completion_queue_pluck, while properly releasing
74
67
  the GVL and handling interrupts */
75
68
  grpc_event rb_completion_queue_pluck(grpc_completion_queue* queue, void* tag,
76
- gpr_timespec deadline, void* reserved) {
69
+ gpr_timespec deadline,
70
+ void (*unblock_func)(void* param),
71
+ void* unblock_func_arg) {
77
72
  next_call_stack next_call;
78
73
  MEMZERO(&next_call, next_call_stack, 1);
79
74
  next_call.cq = queue;
80
75
  next_call.timeout = deadline;
81
76
  next_call.tag = tag;
82
77
  next_call.event.type = GRPC_QUEUE_TIMEOUT;
83
- (void)reserved;
84
- /* Loop until we finish a pluck without an interruption. The internal
85
- pluck function runs either until it is interrupted or it gets an
86
- event, or time runs out.
87
-
88
- The basic reason we need this relatively complicated construction is that
89
- we need to re-acquire the GVL when an interrupt comes in, so that the ruby
90
- interpreter can do what it needs to do with the interrupt. But we also need
91
- to get back to plucking when the interrupt has been handled. */
92
- do {
93
- next_call.interrupted = 0;
94
- rb_thread_call_without_gvl(grpc_rb_completion_queue_pluck_no_gil,
95
- (void*)&next_call, unblock_func,
96
- (void*)&next_call);
97
- /* If an interrupt prevented pluck from returning useful information, then
98
- any plucks that did complete must have timed out */
99
- } while (next_call.interrupted && next_call.event.type == GRPC_QUEUE_TIMEOUT);
78
+ next_call.unblock_func = unblock_func;
79
+ next_call.unblock_func_arg = unblock_func_arg;
80
+ rb_thread_call_without_gvl(grpc_rb_completion_queue_pluck_no_gil,
81
+ (void*)&next_call, outer_unblock_func,
82
+ (void*)&next_call);
100
83
  return next_call.event;
101
84
  }
@@ -29,8 +29,14 @@ void grpc_rb_completion_queue_destroy(grpc_completion_queue* cq);
29
29
  * Makes the implementation of CompletionQueue#pluck available in other files
30
30
  *
31
31
  * This avoids having code that holds the GIL repeated at multiple sites.
32
+ *
33
+ * unblock_func is invoked with the provided argument to unblock the CQ
34
+ * operation in the event of process termination (e.g. a signal), but
35
+ * unblock_func may be NULL in which case it's unused.
32
36
  */
33
37
  grpc_event rb_completion_queue_pluck(grpc_completion_queue* queue, void* tag,
34
- gpr_timespec deadline, void* reserved);
38
+ gpr_timespec deadline,
39
+ void (*unblock_func)(void* param),
40
+ void* unblock_func_arg);
35
41
 
36
42
  #endif /* GRPC_RB_COMPLETION_QUEUE_H_ */
@@ -747,13 +747,13 @@ extern gpr_should_log_type gpr_should_log_import;
747
747
  typedef void(*gpr_log_message_type)(const char* file, int line, gpr_log_severity severity, const char* message);
748
748
  extern gpr_log_message_type gpr_log_message_import;
749
749
  #define gpr_log_message gpr_log_message_import
750
- typedef void(*gpr_set_log_verbosity_type)(gpr_log_severity min_severity_to_print);
750
+ typedef void(*gpr_set_log_verbosity_type)(gpr_log_severity deprecated_setting);
751
751
  extern gpr_set_log_verbosity_type gpr_set_log_verbosity_import;
752
752
  #define gpr_set_log_verbosity gpr_set_log_verbosity_import
753
753
  typedef void(*gpr_log_verbosity_init_type)(void);
754
754
  extern gpr_log_verbosity_init_type gpr_log_verbosity_init_import;
755
755
  #define gpr_log_verbosity_init gpr_log_verbosity_init_import
756
- typedef void(*gpr_set_log_function_type)(gpr_log_func func);
756
+ typedef void(*gpr_set_log_function_type)(gpr_log_func deprecated_setting);
757
757
  extern gpr_set_log_function_type gpr_set_log_function_import;
758
758
  #define gpr_set_log_function gpr_set_log_function_import
759
759
  typedef void(*gpr_assertion_failed_type)(const char* filename, int line, const char* message);