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
@@ -0,0 +1,255 @@
1
+ // Copyright 2024 gRPC authors.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ //
16
+ // Automatically generated by tools/codegen/core/gen_trace_flags.py
17
+ //
18
+
19
+ #include "absl/container/flat_hash_map.h"
20
+
21
+ #include "src/core/lib/debug/trace.h"
22
+ #include "src/core/lib/gprpp/no_destruct.h"
23
+
24
+ namespace grpc_core {
25
+
26
+ DebugOnlyTraceFlag auth_context_refcount_trace(false, "auth_context_refcount");
27
+ DebugOnlyTraceFlag call_combiner_trace(false, "call_combiner");
28
+ DebugOnlyTraceFlag call_refcount_trace(false, "call_refcount");
29
+ DebugOnlyTraceFlag closure_trace(false, "closure");
30
+ DebugOnlyTraceFlag combiner_trace(false, "combiner");
31
+ DebugOnlyTraceFlag cq_refcount_trace(false, "cq_refcount");
32
+ DebugOnlyTraceFlag error_refcount_trace(false, "error_refcount");
33
+ DebugOnlyTraceFlag fd_refcount_trace(false, "fd_refcount");
34
+ DebugOnlyTraceFlag fd_trace_trace(false, "fd_trace");
35
+ DebugOnlyTraceFlag lb_policy_refcount_trace(false, "lb_policy_refcount");
36
+ DebugOnlyTraceFlag party_state_trace(false, "party_state");
37
+ DebugOnlyTraceFlag pending_tags_trace(false, "pending_tags");
38
+ DebugOnlyTraceFlag polling_trace(false, "polling");
39
+ DebugOnlyTraceFlag polling_api_trace(false, "polling_api");
40
+ DebugOnlyTraceFlag promise_primitives_trace(false, "promise_primitives");
41
+ DebugOnlyTraceFlag resolver_refcount_trace(false, "resolver_refcount");
42
+ DebugOnlyTraceFlag security_connector_refcount_trace(
43
+ false, "security_connector_refcount");
44
+ DebugOnlyTraceFlag slice_refcount_trace(false, "slice_refcount");
45
+ DebugOnlyTraceFlag stream_refcount_trace(false, "stream_refcount");
46
+ DebugOnlyTraceFlag subchannel_refcount_trace(false, "subchannel_refcount");
47
+ DebugOnlyTraceFlag work_serializer_trace(false, "work_serializer");
48
+ TraceFlag api_trace(false, "api");
49
+ TraceFlag apple_polling_trace(false, "apple_polling");
50
+ TraceFlag backend_metric_trace(false, "backend_metric");
51
+ TraceFlag backend_metric_filter_trace(false, "backend_metric_filter");
52
+ TraceFlag bdp_estimator_trace(false, "bdp_estimator");
53
+ TraceFlag call_trace(false, "call");
54
+ TraceFlag call_error_trace(false, "call_error");
55
+ TraceFlag cares_address_sorting_trace(false, "cares_address_sorting");
56
+ TraceFlag cares_resolver_trace(false, "cares_resolver");
57
+ TraceFlag cds_lb_trace(false, "cds_lb");
58
+ TraceFlag channel_trace(false, "channel");
59
+ TraceFlag channel_stack_trace(false, "channel_stack");
60
+ TraceFlag chaotic_good_trace(false, "chaotic_good");
61
+ TraceFlag chttp2_hpack_parser_trace(false, "chttp2_hpack_parser");
62
+ TraceFlag chttp2_new_stream_trace(false, "chttp2_new_stream");
63
+ TraceFlag client_channel_trace(false, "client_channel");
64
+ TraceFlag client_channel_call_trace(false, "client_channel_call");
65
+ TraceFlag client_channel_lb_call_trace(false, "client_channel_lb_call");
66
+ TraceFlag client_idle_filter_trace(false, "client_idle_filter");
67
+ TraceFlag compression_trace(false, "compression");
68
+ TraceFlag connectivity_state_trace(false, "connectivity_state");
69
+ TraceFlag cronet_trace(false, "cronet");
70
+ TraceFlag dns_resolver_trace(false, "dns_resolver");
71
+ TraceFlag environment_autodetect_trace(false, "environment_autodetect");
72
+ TraceFlag event_engine_trace(false, "event_engine");
73
+ TraceFlag event_engine_client_channel_resolver_trace(
74
+ false, "event_engine_client_channel_resolver");
75
+ TraceFlag event_engine_dns_trace(false, "event_engine_dns");
76
+ TraceFlag event_engine_endpoint_trace(false, "event_engine_endpoint");
77
+ TraceFlag event_engine_endpoint_data_trace(false, "event_engine_endpoint_data");
78
+ TraceFlag event_engine_poller_trace(false, "event_engine_poller");
79
+ TraceFlag executor_trace(false, "executor");
80
+ TraceFlag fault_injection_filter_trace(false, "fault_injection_filter");
81
+ TraceFlag flowctl_trace(false, "flowctl");
82
+ TraceFlag fork_trace(false, "fork");
83
+ TraceFlag fuzzing_ee_timers_trace(false, "fuzzing_ee_timers");
84
+ TraceFlag fuzzing_ee_writes_trace(false, "fuzzing_ee_writes");
85
+ TraceFlag glb_trace(false, "glb");
86
+ TraceFlag grpc_authz_api_trace(false, "grpc_authz_api");
87
+ TraceFlag handshaker_trace(false, "handshaker");
88
+ TraceFlag health_check_client_trace(false, "health_check_client");
89
+ TraceFlag http_trace(false, "http");
90
+ TraceFlag http1_trace(false, "http1");
91
+ TraceFlag http2_ping_trace(false, "http2_ping");
92
+ TraceFlag http2_stream_state_trace(false, "http2_stream_state");
93
+ TraceFlag http_keepalive_trace(false, "http_keepalive");
94
+ TraceFlag inproc_trace(false, "inproc");
95
+ TraceFlag metadata_query_trace(false, "metadata_query");
96
+ TraceFlag op_failure_trace(false, "op_failure");
97
+ TraceFlag orca_client_trace(false, "orca_client");
98
+ TraceFlag outlier_detection_lb_trace(false, "outlier_detection_lb");
99
+ TraceFlag pick_first_trace(false, "pick_first");
100
+ TraceFlag plugin_credentials_trace(false, "plugin_credentials");
101
+ TraceFlag priority_lb_trace(false, "priority_lb");
102
+ TraceFlag queue_pluck_trace(false, "queue_pluck");
103
+ TraceFlag resource_quota_trace(false, "resource_quota");
104
+ TraceFlag retry_trace(false, "retry");
105
+ TraceFlag ring_hash_lb_trace(false, "ring_hash_lb");
106
+ TraceFlag rls_lb_trace(false, "rls_lb");
107
+ TraceFlag round_robin_trace(false, "round_robin");
108
+ TraceFlag secure_endpoint_trace(false, "secure_endpoint");
109
+ TraceFlag server_channel_trace(false, "server_channel");
110
+ TraceFlag stateful_session_filter_trace(false, "stateful_session_filter");
111
+ TraceFlag subchannel_trace(false, "subchannel");
112
+ TraceFlag subchannel_pool_trace(false, "subchannel_pool");
113
+ TraceFlag tcp_trace(false, "tcp");
114
+ TraceFlag timer_trace(false, "timer");
115
+ TraceFlag timer_check_trace(false, "timer_check");
116
+ TraceFlag tsi_trace(false, "tsi");
117
+ TraceFlag weighted_round_robin_lb_trace(false, "weighted_round_robin_lb");
118
+ TraceFlag weighted_target_lb_trace(false, "weighted_target_lb");
119
+ TraceFlag xds_client_trace(false, "xds_client");
120
+ TraceFlag xds_client_refcount_trace(false, "xds_client_refcount");
121
+ TraceFlag xds_cluster_impl_lb_trace(false, "xds_cluster_impl_lb");
122
+ TraceFlag xds_cluster_manager_lb_trace(false, "xds_cluster_manager_lb");
123
+ TraceFlag xds_cluster_resource_type_test_trace(
124
+ true, "xds_cluster_resource_type_test");
125
+ TraceFlag xds_common_types_test_trace(true, "xds_common_types_test");
126
+ TraceFlag xds_endpoint_resource_type_test_trace(
127
+ true, "xds_endpoint_resource_type_test");
128
+ TraceFlag xds_listener_resource_type_test_trace(
129
+ true, "xds_listener_resource_type_test");
130
+ TraceFlag xds_override_host_lb_trace(false, "xds_override_host_lb");
131
+ TraceFlag xds_resolver_trace(false, "xds_resolver");
132
+ TraceFlag xds_route_config_resource_type_test_trace(
133
+ true, "xds_route_config_resource_type_test");
134
+ TraceFlag xds_server_config_fetcher_trace(false, "xds_server_config_fetcher");
135
+ TraceFlag xds_wrr_locality_lb_trace(false, "xds_wrr_locality_lb");
136
+
137
+ const absl::flat_hash_map<std::string, TraceFlag*>& GetAllTraceFlags() {
138
+ static const NoDestruct<absl::flat_hash_map<std::string, TraceFlag*>> all(
139
+ absl::flat_hash_map<std::string, TraceFlag*>({
140
+ {"api", &api_trace},
141
+ {"apple_polling", &apple_polling_trace},
142
+ {"backend_metric", &backend_metric_trace},
143
+ {"backend_metric_filter", &backend_metric_filter_trace},
144
+ {"bdp_estimator", &bdp_estimator_trace},
145
+ {"call", &call_trace},
146
+ {"call_error", &call_error_trace},
147
+ {"cares_address_sorting", &cares_address_sorting_trace},
148
+ {"cares_resolver", &cares_resolver_trace},
149
+ {"cds_lb", &cds_lb_trace},
150
+ {"channel", &channel_trace},
151
+ {"channel_stack", &channel_stack_trace},
152
+ {"chaotic_good", &chaotic_good_trace},
153
+ {"chttp2_hpack_parser", &chttp2_hpack_parser_trace},
154
+ {"chttp2_new_stream", &chttp2_new_stream_trace},
155
+ {"client_channel", &client_channel_trace},
156
+ {"client_channel_call", &client_channel_call_trace},
157
+ {"client_channel_lb_call", &client_channel_lb_call_trace},
158
+ {"client_idle_filter", &client_idle_filter_trace},
159
+ {"compression", &compression_trace},
160
+ {"connectivity_state", &connectivity_state_trace},
161
+ {"cronet", &cronet_trace},
162
+ {"dns_resolver", &dns_resolver_trace},
163
+ {"environment_autodetect", &environment_autodetect_trace},
164
+ {"event_engine", &event_engine_trace},
165
+ {"event_engine_client_channel_resolver",
166
+ &event_engine_client_channel_resolver_trace},
167
+ {"event_engine_dns", &event_engine_dns_trace},
168
+ {"event_engine_endpoint", &event_engine_endpoint_trace},
169
+ {"event_engine_endpoint_data", &event_engine_endpoint_data_trace},
170
+ {"event_engine_poller", &event_engine_poller_trace},
171
+ {"executor", &executor_trace},
172
+ {"fault_injection_filter", &fault_injection_filter_trace},
173
+ {"flowctl", &flowctl_trace},
174
+ {"fork", &fork_trace},
175
+ {"fuzzing_ee_timers", &fuzzing_ee_timers_trace},
176
+ {"fuzzing_ee_writes", &fuzzing_ee_writes_trace},
177
+ {"glb", &glb_trace},
178
+ {"grpc_authz_api", &grpc_authz_api_trace},
179
+ {"handshaker", &handshaker_trace},
180
+ {"health_check_client", &health_check_client_trace},
181
+ {"http", &http_trace},
182
+ {"http1", &http1_trace},
183
+ {"http2_ping", &http2_ping_trace},
184
+ {"http2_stream_state", &http2_stream_state_trace},
185
+ {"http_keepalive", &http_keepalive_trace},
186
+ {"inproc", &inproc_trace},
187
+ {"metadata_query", &metadata_query_trace},
188
+ {"op_failure", &op_failure_trace},
189
+ {"orca_client", &orca_client_trace},
190
+ {"outlier_detection_lb", &outlier_detection_lb_trace},
191
+ {"pick_first", &pick_first_trace},
192
+ {"plugin_credentials", &plugin_credentials_trace},
193
+ {"priority_lb", &priority_lb_trace},
194
+ {"queue_pluck", &queue_pluck_trace},
195
+ {"resource_quota", &resource_quota_trace},
196
+ {"retry", &retry_trace},
197
+ {"ring_hash_lb", &ring_hash_lb_trace},
198
+ {"rls_lb", &rls_lb_trace},
199
+ {"round_robin", &round_robin_trace},
200
+ {"secure_endpoint", &secure_endpoint_trace},
201
+ {"server_channel", &server_channel_trace},
202
+ {"stateful_session_filter", &stateful_session_filter_trace},
203
+ {"subchannel", &subchannel_trace},
204
+ {"subchannel_pool", &subchannel_pool_trace},
205
+ {"tcp", &tcp_trace},
206
+ {"timer", &timer_trace},
207
+ {"timer_check", &timer_check_trace},
208
+ {"tsi", &tsi_trace},
209
+ {"weighted_round_robin_lb", &weighted_round_robin_lb_trace},
210
+ {"weighted_target_lb", &weighted_target_lb_trace},
211
+ {"xds_client", &xds_client_trace},
212
+ {"xds_client_refcount", &xds_client_refcount_trace},
213
+ {"xds_cluster_impl_lb", &xds_cluster_impl_lb_trace},
214
+ {"xds_cluster_manager_lb", &xds_cluster_manager_lb_trace},
215
+ {"xds_cluster_resource_type_test",
216
+ &xds_cluster_resource_type_test_trace},
217
+ {"xds_common_types_test", &xds_common_types_test_trace},
218
+ {"xds_endpoint_resource_type_test",
219
+ &xds_endpoint_resource_type_test_trace},
220
+ {"xds_listener_resource_type_test",
221
+ &xds_listener_resource_type_test_trace},
222
+ {"xds_override_host_lb", &xds_override_host_lb_trace},
223
+ {"xds_resolver", &xds_resolver_trace},
224
+ {"xds_route_config_resource_type_test",
225
+ &xds_route_config_resource_type_test_trace},
226
+ {"xds_server_config_fetcher", &xds_server_config_fetcher_trace},
227
+ {"xds_wrr_locality_lb", &xds_wrr_locality_lb_trace},
228
+ #ifndef NDEBUG
229
+ {"auth_context_refcount", &auth_context_refcount_trace},
230
+ {"call_combiner", &call_combiner_trace},
231
+ {"call_refcount", &call_refcount_trace},
232
+ {"closure", &closure_trace},
233
+ {"combiner", &combiner_trace},
234
+ {"cq_refcount", &cq_refcount_trace},
235
+ {"error_refcount", &error_refcount_trace},
236
+ {"fd_refcount", &fd_refcount_trace},
237
+ {"fd_trace", &fd_trace_trace},
238
+ {"lb_policy_refcount", &lb_policy_refcount_trace},
239
+ {"party_state", &party_state_trace},
240
+ {"pending_tags", &pending_tags_trace},
241
+ {"polling", &polling_trace},
242
+ {"polling_api", &polling_api_trace},
243
+ {"promise_primitives", &promise_primitives_trace},
244
+ {"resolver_refcount", &resolver_refcount_trace},
245
+ {"security_connector_refcount", &security_connector_refcount_trace},
246
+ {"slice_refcount", &slice_refcount_trace},
247
+ {"stream_refcount", &stream_refcount_trace},
248
+ {"subchannel_refcount", &subchannel_refcount_trace},
249
+ {"work_serializer", &work_serializer_trace},
250
+ #endif
251
+ }));
252
+ return *all;
253
+ }
254
+
255
+ } // namespace grpc_core
@@ -0,0 +1,133 @@
1
+ // Copyright 2024 gRPC authors.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ //
16
+ // Automatically generated by tools/codegen/core/gen_trace_flags.py
17
+ //
18
+
19
+ #ifndef GRPC_SRC_CORE_LIB_DEBUG_TRACE_FLAGS_H
20
+ #define GRPC_SRC_CORE_LIB_DEBUG_TRACE_FLAGS_H
21
+
22
+ #include "src/core/lib/debug/trace_impl.h"
23
+
24
+ namespace grpc_core {
25
+
26
+ extern DebugOnlyTraceFlag auth_context_refcount_trace;
27
+ extern DebugOnlyTraceFlag call_combiner_trace;
28
+ extern DebugOnlyTraceFlag call_refcount_trace;
29
+ extern DebugOnlyTraceFlag closure_trace;
30
+ extern DebugOnlyTraceFlag combiner_trace;
31
+ extern DebugOnlyTraceFlag cq_refcount_trace;
32
+ extern DebugOnlyTraceFlag error_refcount_trace;
33
+ extern DebugOnlyTraceFlag fd_refcount_trace;
34
+ extern DebugOnlyTraceFlag fd_trace_trace;
35
+ extern DebugOnlyTraceFlag lb_policy_refcount_trace;
36
+ extern DebugOnlyTraceFlag party_state_trace;
37
+ extern DebugOnlyTraceFlag pending_tags_trace;
38
+ extern DebugOnlyTraceFlag polling_trace;
39
+ extern DebugOnlyTraceFlag polling_api_trace;
40
+ extern DebugOnlyTraceFlag promise_primitives_trace;
41
+ extern DebugOnlyTraceFlag resolver_refcount_trace;
42
+ extern DebugOnlyTraceFlag security_connector_refcount_trace;
43
+ extern DebugOnlyTraceFlag slice_refcount_trace;
44
+ extern DebugOnlyTraceFlag stream_refcount_trace;
45
+ extern DebugOnlyTraceFlag subchannel_refcount_trace;
46
+ extern DebugOnlyTraceFlag work_serializer_trace;
47
+ extern TraceFlag api_trace;
48
+ extern TraceFlag apple_polling_trace;
49
+ extern TraceFlag backend_metric_trace;
50
+ extern TraceFlag backend_metric_filter_trace;
51
+ extern TraceFlag bdp_estimator_trace;
52
+ extern TraceFlag call_trace;
53
+ extern TraceFlag call_error_trace;
54
+ extern TraceFlag cares_address_sorting_trace;
55
+ extern TraceFlag cares_resolver_trace;
56
+ extern TraceFlag cds_lb_trace;
57
+ extern TraceFlag channel_trace;
58
+ extern TraceFlag channel_stack_trace;
59
+ extern TraceFlag chaotic_good_trace;
60
+ extern TraceFlag chttp2_hpack_parser_trace;
61
+ extern TraceFlag chttp2_new_stream_trace;
62
+ extern TraceFlag client_channel_trace;
63
+ extern TraceFlag client_channel_call_trace;
64
+ extern TraceFlag client_channel_lb_call_trace;
65
+ extern TraceFlag client_idle_filter_trace;
66
+ extern TraceFlag compression_trace;
67
+ extern TraceFlag connectivity_state_trace;
68
+ extern TraceFlag cronet_trace;
69
+ extern TraceFlag dns_resolver_trace;
70
+ extern TraceFlag environment_autodetect_trace;
71
+ extern TraceFlag event_engine_trace;
72
+ extern TraceFlag event_engine_client_channel_resolver_trace;
73
+ extern TraceFlag event_engine_dns_trace;
74
+ extern TraceFlag event_engine_endpoint_trace;
75
+ extern TraceFlag event_engine_endpoint_data_trace;
76
+ extern TraceFlag event_engine_poller_trace;
77
+ extern TraceFlag executor_trace;
78
+ extern TraceFlag fault_injection_filter_trace;
79
+ extern TraceFlag flowctl_trace;
80
+ extern TraceFlag fork_trace;
81
+ extern TraceFlag fuzzing_ee_timers_trace;
82
+ extern TraceFlag fuzzing_ee_writes_trace;
83
+ extern TraceFlag glb_trace;
84
+ extern TraceFlag grpc_authz_api_trace;
85
+ extern TraceFlag handshaker_trace;
86
+ extern TraceFlag health_check_client_trace;
87
+ extern TraceFlag http_trace;
88
+ extern TraceFlag http1_trace;
89
+ extern TraceFlag http2_ping_trace;
90
+ extern TraceFlag http2_stream_state_trace;
91
+ extern TraceFlag http_keepalive_trace;
92
+ extern TraceFlag inproc_trace;
93
+ extern TraceFlag metadata_query_trace;
94
+ extern TraceFlag op_failure_trace;
95
+ extern TraceFlag orca_client_trace;
96
+ extern TraceFlag outlier_detection_lb_trace;
97
+ extern TraceFlag pick_first_trace;
98
+ extern TraceFlag plugin_credentials_trace;
99
+ extern TraceFlag priority_lb_trace;
100
+ extern TraceFlag queue_pluck_trace;
101
+ extern TraceFlag resource_quota_trace;
102
+ extern TraceFlag retry_trace;
103
+ extern TraceFlag ring_hash_lb_trace;
104
+ extern TraceFlag rls_lb_trace;
105
+ extern TraceFlag round_robin_trace;
106
+ extern TraceFlag secure_endpoint_trace;
107
+ extern TraceFlag server_channel_trace;
108
+ extern TraceFlag stateful_session_filter_trace;
109
+ extern TraceFlag subchannel_trace;
110
+ extern TraceFlag subchannel_pool_trace;
111
+ extern TraceFlag tcp_trace;
112
+ extern TraceFlag timer_trace;
113
+ extern TraceFlag timer_check_trace;
114
+ extern TraceFlag tsi_trace;
115
+ extern TraceFlag weighted_round_robin_lb_trace;
116
+ extern TraceFlag weighted_target_lb_trace;
117
+ extern TraceFlag xds_client_trace;
118
+ extern TraceFlag xds_client_refcount_trace;
119
+ extern TraceFlag xds_cluster_impl_lb_trace;
120
+ extern TraceFlag xds_cluster_manager_lb_trace;
121
+ extern TraceFlag xds_cluster_resource_type_test_trace;
122
+ extern TraceFlag xds_common_types_test_trace;
123
+ extern TraceFlag xds_endpoint_resource_type_test_trace;
124
+ extern TraceFlag xds_listener_resource_type_test_trace;
125
+ extern TraceFlag xds_override_host_lb_trace;
126
+ extern TraceFlag xds_resolver_trace;
127
+ extern TraceFlag xds_route_config_resource_type_test_trace;
128
+ extern TraceFlag xds_server_config_fetcher_trace;
129
+ extern TraceFlag xds_wrr_locality_lb_trace;
130
+
131
+ } // namespace grpc_core
132
+
133
+ #endif // GRPC_SRC_CORE_LIB_DEBUG_TRACE_FLAGS_H
@@ -0,0 +1,115 @@
1
+ // Copyright 2015 gRPC authors.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ #ifndef GRPC_SRC_CORE_LIB_DEBUG_TRACE_IMPL_H
16
+ #define GRPC_SRC_CORE_LIB_DEBUG_TRACE_IMPL_H
17
+
18
+ #include <atomic>
19
+ #include <map>
20
+ #include <string>
21
+
22
+ #include "absl/container/flat_hash_map.h"
23
+ #include "absl/log/log.h"
24
+ #include "absl/strings/string_view.h"
25
+
26
+ #include <grpc/support/port_platform.h>
27
+
28
+ void grpc_tracer_init();
29
+ void grpc_tracer_shutdown(void);
30
+
31
+ namespace grpc_core {
32
+ bool ParseTracers(absl::string_view tracers);
33
+ class SavedTraceFlags;
34
+
35
+ class TraceFlag;
36
+
37
+ namespace testing {
38
+ void grpc_tracer_enable_flag(TraceFlag* flag);
39
+ }
40
+
41
+ class TraceFlag {
42
+ public:
43
+ TraceFlag(bool default_enabled, const char* name);
44
+ // TraceFlag needs to be trivially destructible since it is used as global
45
+ // variable.
46
+ ~TraceFlag() = default;
47
+
48
+ const char* name() const { return name_; }
49
+
50
+ // Use the symbol GRPC_USE_TRACERS to determine if tracers will be enabled in
51
+ // opt builds (tracers are always on in dbg builds). The default in OSS is for
52
+ // tracers to be on since we support binary distributions of gRPC for the
53
+ // wrapped language (wr don't want to force recompilation to get tracing).
54
+ // Internally, however, for performance reasons, we compile them out by
55
+ // default, since internal build systems make recompiling trivial.
56
+ //
57
+ // Prefer GRPC_TRACE_FLAG_ENABLED() macro instead of using enabled() directly.
58
+ #define GRPC_USE_TRACERS // tracers on by default in OSS
59
+ #if defined(GRPC_USE_TRACERS) || !defined(NDEBUG)
60
+ bool enabled() { return value_.load(std::memory_order_relaxed); }
61
+ #else
62
+ bool enabled() { return false; }
63
+ #endif // defined(GRPC_USE_TRACERS) || !defined(NDEBUG)
64
+
65
+ private:
66
+ friend void testing::grpc_tracer_enable_flag(TraceFlag* flag);
67
+ friend bool ParseTracers(absl::string_view tracers);
68
+ friend SavedTraceFlags;
69
+
70
+ void set_enabled(bool enabled) {
71
+ value_.store(enabled, std::memory_order_relaxed);
72
+ }
73
+
74
+ TraceFlag* next_tracer_;
75
+ const char* const name_;
76
+ std::atomic<bool> value_;
77
+ };
78
+
79
+ #define GRPC_TRACE_FLAG_ENABLED_OBJ(obj) GPR_UNLIKELY((obj).enabled())
80
+ #define GRPC_TRACE_FLAG_ENABLED(tracer) \
81
+ GPR_UNLIKELY((grpc_core::tracer##_trace).enabled())
82
+ #define GRPC_TRACE_LOG(tracer, level) \
83
+ LOG_IF(level, GRPC_TRACE_FLAG_ENABLED(tracer))
84
+ #define GRPC_TRACE_VLOG(tracer, level) \
85
+ if (GRPC_TRACE_FLAG_ENABLED(tracer)) VLOG(level)
86
+
87
+ #ifndef NDEBUG
88
+ typedef TraceFlag DebugOnlyTraceFlag;
89
+ #else
90
+ class DebugOnlyTraceFlag {
91
+ public:
92
+ constexpr DebugOnlyTraceFlag(bool /*default_enabled*/, const char* /*name*/) {
93
+ }
94
+ constexpr bool enabled() const { return false; }
95
+ constexpr const char* name() const { return "DebugOnlyTraceFlag"; }
96
+
97
+ private:
98
+ void set_enabled(bool /*enabled*/) {}
99
+ };
100
+ #endif
101
+
102
+ class SavedTraceFlags {
103
+ public:
104
+ SavedTraceFlags();
105
+ void Restore();
106
+
107
+ private:
108
+ std::map<std::string, std::pair<bool, TraceFlag*>> values_;
109
+ };
110
+
111
+ const absl::flat_hash_map<std::string, TraceFlag*>& GetAllTraceFlags();
112
+
113
+ } // namespace grpc_core
114
+
115
+ #endif // GRPC_SRC_CORE_LIB_DEBUG_TRACE_IMPL_H
@@ -53,6 +53,7 @@
53
53
  #include "absl/functional/any_invocable.h"
54
54
  #include "absl/hash/hash.h"
55
55
  #include "absl/log/check.h"
56
+ #include "absl/log/log.h"
56
57
  #include "absl/strings/match.h"
57
58
  #include "absl/strings/numbers.h"
58
59
  #include "absl/strings/str_cat.h"
@@ -80,8 +81,6 @@
80
81
  namespace grpc_event_engine {
81
82
  namespace experimental {
82
83
 
83
- grpc_core::TraceFlag grpc_trace_ares_resolver(false, "cares_resolver");
84
-
85
84
  namespace {
86
85
 
87
86
  absl::Status AresStatusToAbslStatus(int status, absl::string_view error_msg) {
@@ -200,7 +199,7 @@ AresResolver::CreateAresResolver(
200
199
  ares_channel channel;
201
200
  int status = ares_init_options(&channel, &opts, ARES_OPT_FLAGS);
202
201
  if (status != ARES_SUCCESS) {
203
- gpr_log(GPR_ERROR, "ares_init_options failed, status: %d", status);
202
+ LOG(ERROR) << "ares_init_options failed, status: " << status;
204
203
  return AresStatusToAbslStatus(
205
204
  status,
206
205
  absl::StrCat("Failed to init c-ares channel: ", ares_strerror(status)));
@@ -221,8 +220,7 @@ AresResolver::AresResolver(
221
220
  std::unique_ptr<GrpcPolledFdFactory> polled_fd_factory,
222
221
  std::shared_ptr<EventEngine> event_engine, ares_channel channel)
223
222
  : RefCountedDNSResolverInterface(
224
- GRPC_TRACE_FLAG_ENABLED(grpc_trace_ares_resolver) ? "AresResolver"
225
- : nullptr),
223
+ GRPC_TRACE_FLAG_ENABLED(cares_resolver) ? "AresResolver" : nullptr),
226
224
  channel_(channel),
227
225
  polled_fd_factory_(std::move(polled_fd_factory)),
228
226
  event_engine_(std::move(event_engine)) {
@@ -767,9 +765,9 @@ void AresResolver::OnTXTDoneLocked(void* arg, int status, int /*timeouts*/,
767
765
  }
768
766
  GRPC_ARES_RESOLVER_TRACE_LOG("resolver:%p Got %zu TXT records", ares_resolver,
769
767
  result.size());
770
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_ares_resolver)) {
768
+ if (GRPC_TRACE_FLAG_ENABLED(cares_resolver)) {
771
769
  for (const auto& record : result) {
772
- gpr_log(GPR_INFO, "%s", record.c_str());
770
+ LOG(INFO) << record;
773
771
  }
774
772
  }
775
773
  // Clean up.
@@ -46,11 +46,9 @@
46
46
  namespace grpc_event_engine {
47
47
  namespace experimental {
48
48
 
49
- extern grpc_core::TraceFlag grpc_trace_ares_resolver;
50
-
51
49
  #define GRPC_ARES_RESOLVER_TRACE_LOG(format, ...) \
52
50
  do { \
53
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_ares_resolver)) { \
51
+ if (GRPC_TRACE_FLAG_ENABLED(cares_resolver)) { \
54
52
  gpr_log(GPR_INFO, "(EventEngine c-ares resolver) " format, __VA_ARGS__); \
55
53
  } \
56
54
  } while (0)
@@ -63,7 +63,7 @@ CFEventEngine::CFEventEngine()
63
63
  CFEventEngine::~CFEventEngine() {
64
64
  {
65
65
  grpc_core::MutexLock lock(&task_mu_);
66
- if (GRPC_TRACE_FLAG_ENABLED(grpc_event_engine_trace)) {
66
+ if (GRPC_TRACE_FLAG_ENABLED(event_engine)) {
67
67
  for (auto handle : known_handles_) {
68
68
  gpr_log(GPR_ERROR,
69
69
  "CFEventEngine:%p uncleared TaskHandle at shutdown:%s", this,
@@ -35,11 +35,9 @@ namespace experimental {
35
35
  void DNSServiceResolverImpl::LookupHostname(
36
36
  EventEngine::DNSResolver::LookupHostnameCallback on_resolve,
37
37
  absl::string_view name, absl::string_view default_port) {
38
- GRPC_EVENT_ENGINE_DNS_TRACE(
39
- "DNSServiceResolverImpl::LookupHostname: name: %.*s, default_port: %.*s, "
40
- "this: %p",
41
- static_cast<int>(name.length()), name.data(),
42
- static_cast<int>(default_port.length()), default_port.data(), this);
38
+ GRPC_TRACE_LOG(event_engine_dns, INFO)
39
+ << "DNSServiceResolverImpl::LookupHostname: name: " << name
40
+ << ", default_port: " << default_port << ", this: " << this;
43
41
 
44
42
  absl::string_view host;
45
43
  absl::string_view port_string;
@@ -139,13 +137,12 @@ void DNSServiceResolverImpl::ResolveCallback(
139
137
  DNSServiceRef sdRef, DNSServiceFlags flags, uint32_t interfaceIndex,
140
138
  DNSServiceErrorType errorCode, const char* hostname,
141
139
  const struct sockaddr* address, uint32_t ttl, void* context) {
142
- GRPC_EVENT_ENGINE_DNS_TRACE(
143
- "DNSServiceResolverImpl::ResolveCallback: sdRef: %p, flags: %x, "
144
- "interface: %d, errorCode: %d, hostname: %s, addressFamily: %d, ttl: "
145
- "%d, "
146
- "this: %p",
147
- sdRef, flags, interfaceIndex, errorCode, hostname, address->sa_family,
148
- ttl, context);
140
+ GRPC_TRACE_LOG(event_engine_dns, INFO)
141
+ << "DNSServiceResolverImpl::ResolveCallback: sdRef: " << sdRef
142
+ << ", flags: " << flags << ", interface: " << interfaceIndex
143
+ << ", errorCode: " << errorCode << ", hostname: " << hostname
144
+ << ", addressFamily: " << address->sa_family << ", ttl: " << ttl
145
+ << ", this: " << context;
149
146
 
150
147
  // no need to increase refcount here, since ResolveCallback and Shutdown is
151
148
  // called from the serial queue and it is guarenteed that it won't be called
@@ -195,12 +192,11 @@ void DNSServiceResolverImpl::ResolveCallback(
195
192
  ->sin6_port = htons(request.port);
196
193
  }
197
194
 
198
- GRPC_EVENT_ENGINE_DNS_TRACE(
199
- "DNSServiceResolverImpl::ResolveCallback: "
200
- "sdRef: %p, hostname: %s, addressPort: %s, this: %p",
201
- sdRef, hostname,
202
- ResolvedAddressToString(resolved_address).value_or("ERROR").c_str(),
203
- context);
195
+ GRPC_TRACE_LOG(event_engine_dns, INFO)
196
+ << "DNSServiceResolverImpl::ResolveCallback: sdRef: " << sdRef
197
+ << ", hostname: " << hostname << ", addressPort: "
198
+ << ResolvedAddressToString(resolved_address).value_or("ERROR")
199
+ << ", this: " << context;
204
200
  }
205
201
 
206
202
  // received both ipv4 and ipv6 responses, and no more responses (e.g. multiple
@@ -231,10 +227,9 @@ void DNSServiceResolverImpl::Shutdown() {
231
227
  for (auto& kv : that->requests_) {
232
228
  auto& sdRef = kv.first;
233
229
  auto& request = kv.second;
234
- GRPC_EVENT_ENGINE_DNS_TRACE(
235
- "DNSServiceResolverImpl::Shutdown sdRef: %p, this: %p", sdRef,
236
- thatPtr);
237
-
230
+ GRPC_TRACE_LOG(event_engine_dns, INFO)
231
+ << "DNSServiceResolverImpl::Shutdown sdRef: " << sdRef
232
+ << ", this: " << thatPtr;
238
233
  request.on_resolve(
239
234
  absl::CancelledError("DNSServiceResolverImpl::Shutdown"));
240
235
  DNSServiceRefDeallocate(static_cast<DNSServiceRef>(sdRef));