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
@@ -1,365 +0,0 @@
1
- // Copyright 2024 The 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_CHANNEL_METRICS_H
16
- #define GRPC_SRC_CORE_LIB_CHANNEL_METRICS_H
17
-
18
- #include <cstdint>
19
- #include <memory>
20
- #include <vector>
21
-
22
- #include "absl/functional/any_invocable.h"
23
- #include "absl/functional/function_ref.h"
24
- #include "absl/strings/string_view.h"
25
- #include "absl/types/span.h"
26
-
27
- #include <grpc/support/log.h>
28
- #include <grpc/support/metrics.h>
29
- #include <grpc/support/port_platform.h>
30
-
31
- #include "src/core/lib/channel/call_tracer.h"
32
- #include "src/core/lib/channel/channel_args.h"
33
- #include "src/core/lib/channel/context.h"
34
- #include "src/core/lib/gprpp/no_destruct.h"
35
- #include "src/core/lib/gprpp/sync.h"
36
- #include "src/core/lib/gprpp/time.h"
37
- #include "src/core/lib/slice/slice.h"
38
-
39
- namespace grpc_core {
40
-
41
- constexpr absl::string_view kMetricLabelTarget = "grpc.target";
42
-
43
- // A global registry of instruments(metrics). This API is designed to be used
44
- // to register instruments (Counter, Histogram, and Gauge) as part of program
45
- // startup, before the execution of the main function (during dynamic
46
- // initialization time). Using this API after the main function begins may
47
- // result into missing instruments. This API is thread-unsafe.
48
- class GlobalInstrumentsRegistry {
49
- public:
50
- enum class ValueType {
51
- kUndefined,
52
- kInt64,
53
- kUInt64,
54
- kDouble,
55
- };
56
- enum class InstrumentType {
57
- kUndefined,
58
- kCounter,
59
- kHistogram,
60
- kCallbackGauge,
61
- };
62
- using InstrumentID = uint32_t;
63
- struct GlobalInstrumentDescriptor {
64
- ValueType value_type;
65
- InstrumentType instrument_type;
66
- InstrumentID index;
67
- bool enable_by_default;
68
- absl::string_view name;
69
- absl::string_view description;
70
- absl::string_view unit;
71
- std::vector<absl::string_view> label_keys;
72
- std::vector<absl::string_view> optional_label_keys;
73
- };
74
- struct GlobalInstrumentHandle {
75
- // This is the index for the corresponding registered instrument that
76
- // StatsPlugins can use to uniquely identify an instrument in the current
77
- // process. Though this is not guaranteed to be stable between different
78
- // runs or between different versions.
79
- InstrumentID index;
80
- };
81
- struct GlobalUInt64CounterHandle : public GlobalInstrumentHandle {};
82
- struct GlobalDoubleCounterHandle : public GlobalInstrumentHandle {};
83
- struct GlobalUInt64HistogramHandle : public GlobalInstrumentHandle {};
84
- struct GlobalDoubleHistogramHandle : public GlobalInstrumentHandle {};
85
- struct GlobalCallbackInt64GaugeHandle : public GlobalInstrumentHandle {};
86
- struct GlobalCallbackDoubleGaugeHandle : public GlobalInstrumentHandle {};
87
- using GlobalCallbackHandle = absl::variant<GlobalCallbackInt64GaugeHandle,
88
- GlobalCallbackDoubleGaugeHandle>;
89
-
90
- // Creates instrument in the GlobalInstrumentsRegistry.
91
- static GlobalUInt64CounterHandle RegisterUInt64Counter(
92
- absl::string_view name, absl::string_view description,
93
- absl::string_view unit, absl::Span<const absl::string_view> label_keys,
94
- absl::Span<const absl::string_view> optional_label_keys,
95
- bool enable_by_default);
96
- static GlobalDoubleCounterHandle RegisterDoubleCounter(
97
- absl::string_view name, absl::string_view description,
98
- absl::string_view unit, absl::Span<const absl::string_view> label_keys,
99
- absl::Span<const absl::string_view> optional_label_keys,
100
- bool enable_by_default);
101
- static GlobalUInt64HistogramHandle RegisterUInt64Histogram(
102
- absl::string_view name, absl::string_view description,
103
- absl::string_view unit, absl::Span<const absl::string_view> label_keys,
104
- absl::Span<const absl::string_view> optional_label_keys,
105
- bool enable_by_default);
106
- static GlobalDoubleHistogramHandle RegisterDoubleHistogram(
107
- absl::string_view name, absl::string_view description,
108
- absl::string_view unit, absl::Span<const absl::string_view> label_keys,
109
- absl::Span<const absl::string_view> optional_label_keys,
110
- bool enable_by_default);
111
- static GlobalCallbackInt64GaugeHandle RegisterCallbackInt64Gauge(
112
- absl::string_view name, absl::string_view description,
113
- absl::string_view unit, absl::Span<const absl::string_view> label_keys,
114
- absl::Span<const absl::string_view> optional_label_keys,
115
- bool enable_by_default);
116
- static GlobalCallbackDoubleGaugeHandle RegisterCallbackDoubleGauge(
117
- absl::string_view name, absl::string_view description,
118
- absl::string_view unit, absl::Span<const absl::string_view> label_keys,
119
- absl::Span<const absl::string_view> optional_label_keys,
120
- bool enable_by_default);
121
-
122
- static void ForEach(
123
- absl::FunctionRef<void(const GlobalInstrumentDescriptor&)> f);
124
- static const GlobalInstrumentDescriptor& GetInstrumentDescriptor(
125
- GlobalInstrumentHandle handle);
126
-
127
- private:
128
- friend class GlobalInstrumentsRegistryTestPeer;
129
-
130
- GlobalInstrumentsRegistry() = delete;
131
-
132
- static std::vector<GlobalInstrumentsRegistry::GlobalInstrumentDescriptor>&
133
- GetInstrumentList();
134
- };
135
-
136
- // An interface for implementing callback-style metrics.
137
- // To be implemented by stats plugins.
138
- class CallbackMetricReporter {
139
- public:
140
- virtual ~CallbackMetricReporter() = default;
141
-
142
- virtual void Report(
143
- GlobalInstrumentsRegistry::GlobalCallbackInt64GaugeHandle handle,
144
- int64_t value, absl::Span<const absl::string_view> label_values,
145
- absl::Span<const absl::string_view> optional_values) = 0;
146
- virtual void Report(
147
- GlobalInstrumentsRegistry::GlobalCallbackDoubleGaugeHandle handle,
148
- double value, absl::Span<const absl::string_view> label_values,
149
- absl::Span<const absl::string_view> optional_values) = 0;
150
- };
151
-
152
- class RegisteredMetricCallback;
153
-
154
- // The StatsPlugin interface.
155
- class StatsPlugin {
156
- public:
157
- // A general-purpose way for stats plugin to store per-channel or per-server
158
- // state.
159
- class ScopeConfig {
160
- public:
161
- virtual ~ScopeConfig() = default;
162
- };
163
-
164
- virtual ~StatsPlugin() = default;
165
-
166
- // Whether this stats plugin is enabled for the channel specified by \a scope.
167
- // Returns true and a channel-specific ScopeConfig which may then be used to
168
- // configure the ClientCallTracer in GetClientCallTracer().
169
- virtual std::pair<bool, std::shared_ptr<ScopeConfig>> IsEnabledForChannel(
170
- const experimental::StatsPluginChannelScope& scope) const = 0;
171
- // Whether this stats plugin is enabled for the server specified by \a args.
172
- // Returns true and a server-specific ScopeConfig which may then be used to
173
- // configure the ServerCallTracer in GetServerCallTracer().
174
- virtual std::pair<bool, std::shared_ptr<ScopeConfig>> IsEnabledForServer(
175
- const ChannelArgs& args) const = 0;
176
-
177
- // Adds \a value to the uint64 counter specified by \a handle. \a label_values
178
- // and \a optional_label_values specify attributes that are associated with
179
- // this measurement and must match with their corresponding keys in
180
- // GlobalInstrumentsRegistry::RegisterUInt64Counter().
181
- virtual void AddCounter(
182
- GlobalInstrumentsRegistry::GlobalUInt64CounterHandle handle,
183
- uint64_t value, absl::Span<const absl::string_view> label_values,
184
- absl::Span<const absl::string_view> optional_label_values) = 0;
185
- // Adds \a value to the double counter specified by \a handle. \a label_values
186
- // and \a optional_label_values specify attributes that are associated with
187
- // this measurement and must match with their corresponding keys in
188
- // GlobalInstrumentsRegistry::RegisterDoubleCounter().
189
- virtual void AddCounter(
190
- GlobalInstrumentsRegistry::GlobalDoubleCounterHandle handle, double value,
191
- absl::Span<const absl::string_view> label_values,
192
- absl::Span<const absl::string_view> optional_label_values) = 0;
193
- // Records a uint64 \a value to the histogram specified by \a handle. \a
194
- // label_values and \a optional_label_values specify attributes that are
195
- // associated with this measurement and must match with their corresponding
196
- // keys in GlobalInstrumentsRegistry::RegisterUInt64Histogram().
197
- virtual void RecordHistogram(
198
- GlobalInstrumentsRegistry::GlobalUInt64HistogramHandle handle,
199
- uint64_t value, absl::Span<const absl::string_view> label_values,
200
- absl::Span<const absl::string_view> optional_label_values) = 0;
201
- // Records a double \a value to the histogram specified by \a handle. \a
202
- // label_values and \a optional_label_values specify attributes that are
203
- // associated with this measurement and must match with their corresponding
204
- // keys in GlobalInstrumentsRegistry::RegisterDoubleHistogram().
205
- virtual void RecordHistogram(
206
- GlobalInstrumentsRegistry::GlobalDoubleHistogramHandle handle,
207
- double value, absl::Span<const absl::string_view> label_values,
208
- absl::Span<const absl::string_view> optional_label_values) = 0;
209
- // Adds a callback to be invoked when the stats plugin wants to
210
- // populate the corresponding metrics (see callback->metrics() for list).
211
- virtual void AddCallback(RegisteredMetricCallback* callback) = 0;
212
- // Removes a callback previously added via AddCallback(). The stats
213
- // plugin may not use the callback after this method returns.
214
- virtual void RemoveCallback(RegisteredMetricCallback* callback) = 0;
215
-
216
- // Gets a ClientCallTracer associated with this stats plugin which can be used
217
- // in a call.
218
- virtual ClientCallTracer* GetClientCallTracer(
219
- const Slice& path, bool registered_method,
220
- std::shared_ptr<ScopeConfig> scope_config) = 0;
221
- // Gets a ServerCallTracer associated with this stats plugin which can be used
222
- // in a call.
223
- virtual ServerCallTracer* GetServerCallTracer(
224
- std::shared_ptr<ScopeConfig> scope_config) = 0;
225
-
226
- // TODO(yijiem): This is an optimization for the StatsPlugin to create its own
227
- // representation of the label_values and use it multiple times. We would
228
- // change AddCounter and RecordHistogram to take RefCountedPtr<LabelValueSet>
229
- // and also change the StatsPluginsGroup to support this.
230
- // Use the StatsPlugin to get a representation of label values that can be
231
- // saved for multiple uses later.
232
- // virtual RefCountedPtr<LabelValueSet> MakeLabelValueSet(
233
- // absl::Span<absl::string_view> label_values) = 0;
234
- };
235
-
236
- // A global registry of stats plugins. It has shared ownership to the registered
237
- // stats plugins. This API is supposed to be used during runtime after the main
238
- // function begins. This API is thread-safe.
239
- class GlobalStatsPluginRegistry {
240
- public:
241
- // A stats plugin group object is how the code in gRPC normally interacts with
242
- // stats plugins. They got a stats plugin group which contains all the stats
243
- // plugins for a specific scope and all operations on the stats plugin group
244
- // will be applied to all the stats plugins within the group.
245
- class StatsPluginGroup {
246
- public:
247
- // Adds a stats plugin and a scope config (per-channel or per-server) to the
248
- // group.
249
- void AddStatsPlugin(std::shared_ptr<StatsPlugin> plugin,
250
- std::shared_ptr<StatsPlugin::ScopeConfig> config) {
251
- PluginState plugin_state;
252
- plugin_state.plugin = std::move(plugin);
253
- plugin_state.scope_config = std::move(config);
254
- plugins_state_.push_back(std::move(plugin_state));
255
- }
256
- // Adds a counter in all stats plugins within the group. See the StatsPlugin
257
- // interface for more documentation and valid types.
258
- template <class HandleType, class ValueType>
259
- void AddCounter(HandleType handle, ValueType value,
260
- absl::Span<const absl::string_view> label_values,
261
- absl::Span<const absl::string_view> optional_values) {
262
- for (auto& state : plugins_state_) {
263
- state.plugin->AddCounter(handle, value, label_values, optional_values);
264
- }
265
- }
266
- // Records a value to a histogram in all stats plugins within the group. See
267
- // the StatsPlugin interface for more documentation and valid types.
268
- template <class HandleType, class ValueType>
269
- void RecordHistogram(HandleType handle, ValueType value,
270
- absl::Span<const absl::string_view> label_values,
271
- absl::Span<const absl::string_view> optional_values) {
272
- for (auto& state : plugins_state_) {
273
- state.plugin->RecordHistogram(handle, value, label_values,
274
- optional_values);
275
- }
276
- }
277
-
278
- // Registers a callback to be used to populate callback metrics.
279
- // The callback will update the specified metrics. The callback
280
- // will be invoked no more often than min_interval. Multiple callbacks may
281
- // be registered for the same metrics, as long as no two callbacks report
282
- // data for the same set of labels in which case the behavior is undefined.
283
- //
284
- // The returned object is a handle that allows the caller to control
285
- // the lifetime of the callback; when the returned object is
286
- // destroyed, the callback is de-registered. The returned object
287
- // must not outlive the StatsPluginGroup object that created it.
288
- GRPC_MUST_USE_RESULT std::unique_ptr<RegisteredMetricCallback>
289
- RegisterCallback(
290
- absl::AnyInvocable<void(CallbackMetricReporter&)> callback,
291
- std::vector<GlobalInstrumentsRegistry::GlobalCallbackHandle> metrics,
292
- Duration min_interval = Duration::Seconds(5));
293
-
294
- // Adds all available client call tracers associated with the stats plugins
295
- // within the group to \a call_context.
296
- void AddClientCallTracers(const Slice& path, bool registered_method,
297
- grpc_call_context_element* call_context);
298
- // Adds all available server call tracers associated with the stats plugins
299
- // within the group to \a call_context.
300
- void AddServerCallTracers(grpc_call_context_element* call_context);
301
-
302
- private:
303
- friend class RegisteredMetricCallback;
304
-
305
- struct PluginState {
306
- std::shared_ptr<StatsPlugin::ScopeConfig> scope_config;
307
- std::shared_ptr<StatsPlugin> plugin;
308
- };
309
-
310
- std::vector<PluginState> plugins_state_;
311
- };
312
-
313
- // Registers a stats plugin with the global stats plugin registry.
314
- static void RegisterStatsPlugin(std::shared_ptr<StatsPlugin> plugin);
315
-
316
- // The following functions can be invoked to get a StatsPluginGroup for
317
- // a specified scope.
318
- static StatsPluginGroup GetStatsPluginsForChannel(
319
- const experimental::StatsPluginChannelScope& scope);
320
- static StatsPluginGroup GetStatsPluginsForServer(const ChannelArgs& args);
321
-
322
- private:
323
- friend class GlobalStatsPluginRegistryTestPeer;
324
-
325
- GlobalStatsPluginRegistry() = default;
326
-
327
- static NoDestruct<Mutex> mutex_;
328
- static NoDestruct<std::vector<std::shared_ptr<StatsPlugin>>> plugins_
329
- ABSL_GUARDED_BY(mutex_);
330
- };
331
-
332
- // A metric callback that is registered with a stats plugin group.
333
- class RegisteredMetricCallback {
334
- public:
335
- RegisteredMetricCallback(
336
- GlobalStatsPluginRegistry::StatsPluginGroup& stats_plugin_group,
337
- absl::AnyInvocable<void(CallbackMetricReporter&)> callback,
338
- std::vector<GlobalInstrumentsRegistry::GlobalCallbackHandle> metrics,
339
- Duration min_interval);
340
-
341
- ~RegisteredMetricCallback();
342
-
343
- // Invokes the callback. The callback will report metric data via reporter.
344
- void Run(CallbackMetricReporter& reporter) { callback_(reporter); }
345
-
346
- // Returns the set of metrics that this callback will modify.
347
- const std::vector<GlobalInstrumentsRegistry::GlobalCallbackHandle>& metrics()
348
- const {
349
- return metrics_;
350
- }
351
-
352
- // Returns the minimum interval at which a stats plugin may invoke the
353
- // callback.
354
- Duration min_interval() const { return min_interval_; }
355
-
356
- private:
357
- GlobalStatsPluginRegistry::StatsPluginGroup& stats_plugin_group_;
358
- absl::AnyInvocable<void(CallbackMetricReporter&)> callback_;
359
- std::vector<GlobalInstrumentsRegistry::GlobalCallbackHandle> metrics_;
360
- Duration min_interval_;
361
- };
362
-
363
- } // namespace grpc_core
364
-
365
- #endif // GRPC_SRC_CORE_LIB_CHANNEL_METRICS_H
@@ -1,25 +0,0 @@
1
- // Copyright 2022 The 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
- #include "src/core/lib/debug/trace.h"
15
-
16
- #include <grpc/support/port_platform.h>
17
-
18
- grpc_core::TraceFlag grpc_event_engine_trace(false, "event_engine");
19
- grpc_core::TraceFlag grpc_event_engine_dns_trace(false, "event_engine_dns");
20
- grpc_core::TraceFlag grpc_event_engine_endpoint_trace(false,
21
- "event_engine_endpoint");
22
- grpc_core::TraceFlag grpc_event_engine_endpoint_data_trace(
23
- false, "event_engine_endpoint_data");
24
- grpc_core::TraceFlag grpc_event_engine_poller_trace(false,
25
- "event_engine_poller");
@@ -1,166 +0,0 @@
1
- //
2
- //
3
- // Copyright 2015 gRPC authors.
4
- //
5
- // Licensed under the Apache License, Version 2.0 (the "License");
6
- // you may not use this file except in compliance with the License.
7
- // You may obtain a copy of the License at
8
- //
9
- // http://www.apache.org/licenses/LICENSE-2.0
10
- //
11
- // Unless required by applicable law or agreed to in writing, software
12
- // distributed under the License is distributed on an "AS IS" BASIS,
13
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- // See the License for the specific language governing permissions and
15
- // limitations under the License.
16
- //
17
- //
18
-
19
- #include <grpc/support/port_platform.h>
20
-
21
- #include "absl/log/log.h"
22
-
23
- #include <stdio.h>
24
- #include <string.h>
25
-
26
- #include "absl/strings/match.h"
27
- #include "absl/strings/str_cat.h"
28
-
29
- #include <grpc/support/alloc.h>
30
- #include <grpc/support/atm.h>
31
- #include <grpc/support/log.h>
32
-
33
- #include "src/core/lib/config/config_vars.h"
34
- #include "src/core/lib/gpr/string.h"
35
- #include "src/core/lib/gprpp/crash.h"
36
-
37
- #ifndef GPR_DEFAULT_LOG_VERBOSITY_STRING
38
- #define GPR_DEFAULT_LOG_VERBOSITY_STRING "ERROR"
39
- #endif // !GPR_DEFAULT_LOG_VERBOSITY_STRING
40
-
41
- static constexpr gpr_atm GPR_LOG_SEVERITY_UNSET = GPR_LOG_SEVERITY_ERROR + 10;
42
- static constexpr gpr_atm GPR_LOG_SEVERITY_NONE = GPR_LOG_SEVERITY_ERROR + 11;
43
-
44
- void gpr_default_log(gpr_log_func_args* args);
45
- void gpr_platform_log(gpr_log_func_args* args);
46
- static gpr_atm g_log_func = reinterpret_cast<gpr_atm>(gpr_default_log);
47
- static gpr_atm g_min_severity_to_print = GPR_LOG_SEVERITY_UNSET;
48
- static gpr_atm g_min_severity_to_print_stacktrace = GPR_LOG_SEVERITY_UNSET;
49
-
50
- void gpr_unreachable_code(const char* reason, const char* file, int line) {
51
- grpc_core::Crash(absl::StrCat("UNREACHABLE CODE: ", reason),
52
- grpc_core::SourceLocation(file, line));
53
- }
54
-
55
- void gpr_assertion_failed(const char* filename, int line, const char* message) {
56
- grpc_core::Crash(absl::StrCat("ASSERTION FAILED: ", message),
57
- grpc_core::SourceLocation(filename, line));
58
- }
59
-
60
- const char* gpr_log_severity_string(gpr_log_severity severity) {
61
- switch (severity) {
62
- case GPR_LOG_SEVERITY_DEBUG:
63
- return "D";
64
- case GPR_LOG_SEVERITY_INFO:
65
- return "I";
66
- case GPR_LOG_SEVERITY_ERROR:
67
- return "E";
68
- }
69
- GPR_UNREACHABLE_CODE(return "UNKNOWN");
70
- }
71
-
72
- int gpr_should_log(gpr_log_severity severity) {
73
- return static_cast<gpr_atm>(severity) >=
74
- gpr_atm_no_barrier_load(&g_min_severity_to_print)
75
- ? 1
76
- : 0;
77
- }
78
-
79
- void gpr_default_log(gpr_log_func_args* args) {
80
- if (!grpc_core::ConfigVars::Get().AbslLogging()) {
81
- gpr_platform_log(args);
82
- return;
83
- }
84
- switch (args->severity) {
85
- case GPR_LOG_SEVERITY_DEBUG:
86
- // Log DEBUG messages as VLOG(2).
87
- VLOG(2).AtLocation(args->file, args->line) << args->message;
88
- return;
89
- case GPR_LOG_SEVERITY_INFO:
90
- LOG(INFO).AtLocation(args->file, args->line) << args->message;
91
- return;
92
- case GPR_LOG_SEVERITY_ERROR:
93
- LOG(ERROR).AtLocation(args->file, args->line) << args->message;
94
- return;
95
- default:
96
- LOG(ERROR) << __func__ << ": unknown gpr log severity(" << args->severity
97
- << "), using ERROR";
98
- LOG(ERROR).AtLocation(args->file, args->line) << args->message;
99
- }
100
- }
101
-
102
- int gpr_should_log_stacktrace(gpr_log_severity severity) {
103
- return static_cast<gpr_atm>(severity) >=
104
- gpr_atm_no_barrier_load(&g_min_severity_to_print_stacktrace)
105
- ? 1
106
- : 0;
107
- }
108
-
109
- void gpr_log_message(const char* file, int line, gpr_log_severity severity,
110
- const char* message) {
111
- if (gpr_should_log(severity) == 0) {
112
- return;
113
- }
114
-
115
- gpr_log_func_args lfargs;
116
- memset(&lfargs, 0, sizeof(lfargs));
117
- lfargs.file = file;
118
- lfargs.line = line;
119
- lfargs.severity = severity;
120
- lfargs.message = message;
121
- reinterpret_cast<gpr_log_func>(gpr_atm_no_barrier_load(&g_log_func))(&lfargs);
122
- }
123
-
124
- void gpr_set_log_verbosity(gpr_log_severity min_severity_to_print) {
125
- gpr_atm_no_barrier_store(&g_min_severity_to_print,
126
- (gpr_atm)min_severity_to_print);
127
- }
128
-
129
- static gpr_atm parse_log_severity(absl::string_view str, gpr_atm error_value) {
130
- if (absl::EqualsIgnoreCase(str, "DEBUG")) return GPR_LOG_SEVERITY_DEBUG;
131
- if (absl::EqualsIgnoreCase(str, "INFO")) return GPR_LOG_SEVERITY_INFO;
132
- if (absl::EqualsIgnoreCase(str, "ERROR")) return GPR_LOG_SEVERITY_ERROR;
133
- if (absl::EqualsIgnoreCase(str, "NONE")) return GPR_LOG_SEVERITY_NONE;
134
- return error_value;
135
- }
136
-
137
- void gpr_log_verbosity_init() {
138
- // init verbosity when it hasn't been set
139
- if ((gpr_atm_no_barrier_load(&g_min_severity_to_print)) ==
140
- GPR_LOG_SEVERITY_UNSET) {
141
- auto verbosity = grpc_core::ConfigVars::Get().Verbosity();
142
- gpr_atm min_severity_to_print = GPR_LOG_SEVERITY_ERROR;
143
- if (!verbosity.empty()) {
144
- min_severity_to_print =
145
- parse_log_severity(verbosity, min_severity_to_print);
146
- }
147
- gpr_atm_no_barrier_store(&g_min_severity_to_print, min_severity_to_print);
148
- }
149
- // init stacktrace_minloglevel when it hasn't been set
150
- if ((gpr_atm_no_barrier_load(&g_min_severity_to_print_stacktrace)) ==
151
- GPR_LOG_SEVERITY_UNSET) {
152
- auto stacktrace_minloglevel =
153
- grpc_core::ConfigVars::Get().StacktraceMinloglevel();
154
- gpr_atm min_severity_to_print_stacktrace = GPR_LOG_SEVERITY_NONE;
155
- if (!stacktrace_minloglevel.empty()) {
156
- min_severity_to_print_stacktrace = parse_log_severity(
157
- stacktrace_minloglevel, min_severity_to_print_stacktrace);
158
- }
159
- gpr_atm_no_barrier_store(&g_min_severity_to_print_stacktrace,
160
- min_severity_to_print_stacktrace);
161
- }
162
- }
163
-
164
- void gpr_set_log_function(gpr_log_func f) {
165
- gpr_atm_no_barrier_store(&g_log_func, (gpr_atm)(f ? f : gpr_default_log));
166
- }
@@ -1,30 +0,0 @@
1
- //
2
- //
3
- // Copyright 2015 gRPC authors.
4
- //
5
- // Licensed under the Apache License, Version 2.0 (the "License");
6
- // you may not use this file except in compliance with the License.
7
- // You may obtain a copy of the License at
8
- //
9
- // http://www.apache.org/licenses/LICENSE-2.0
10
- //
11
- // Unless required by applicable law or agreed to in writing, software
12
- // distributed under the License is distributed on an "AS IS" BASIS,
13
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- // See the License for the specific language governing permissions and
15
- // limitations under the License.
16
- //
17
- //
18
-
19
- #include <grpc/support/port_platform.h>
20
-
21
- #include "src/core/lib/iomgr/port.h"
22
-
23
- #ifdef GRPC_WINSOCK_SOCKET
24
-
25
- #include "src/core/lib/debug/trace.h"
26
-
27
- grpc_core::DebugOnlyTraceFlag grpc_polling_trace(
28
- false, "polling"); // Disabled by default
29
-
30
- #endif // GRPC_WINSOCK_SOCKET
@@ -1,20 +0,0 @@
1
- // Copyright 2022 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
- #include "src/core/lib/promise/trace.h"
16
-
17
- #include <grpc/support/port_platform.h>
18
-
19
- grpc_core::DebugOnlyTraceFlag grpc_trace_promise_primitives(
20
- false, "promise_primitives");
@@ -1,24 +0,0 @@
1
- // Copyright 2022 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_PROMISE_TRACE_H
16
- #define GRPC_SRC_CORE_LIB_PROMISE_TRACE_H
17
-
18
- #include <grpc/support/port_platform.h>
19
-
20
- #include "src/core/lib/debug/trace.h"
21
-
22
- extern grpc_core::DebugOnlyTraceFlag grpc_trace_promise_primitives;
23
-
24
- #endif // GRPC_SRC_CORE_LIB_PROMISE_TRACE_H
@@ -1,19 +0,0 @@
1
- // Copyright 2021 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
- #include "src/core/lib/resource_quota/trace.h"
16
-
17
- #include <grpc/support/port_platform.h>
18
-
19
- grpc_core::TraceFlag grpc_resource_quota_trace(false, "resource_quota");
@@ -1,24 +0,0 @@
1
- // Copyright 2021 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_RESOURCE_QUOTA_TRACE_H
16
- #define GRPC_SRC_CORE_LIB_RESOURCE_QUOTA_TRACE_H
17
-
18
- #include <grpc/support/port_platform.h>
19
-
20
- #include "src/core/lib/debug/trace.h"
21
-
22
- extern grpc_core::TraceFlag grpc_resource_quota_trace;
23
-
24
- #endif // GRPC_SRC_CORE_LIB_RESOURCE_QUOTA_TRACE_H