grpc 1.50.0 → 1.51.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (459) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +131 -42
  3. data/include/grpc/event_engine/event_engine.h +10 -3
  4. data/include/grpc/event_engine/slice_buffer.h +17 -0
  5. data/include/grpc/grpc.h +0 -10
  6. data/include/grpc/impl/codegen/grpc_types.h +1 -5
  7. data/include/grpc/impl/codegen/port_platform.h +0 -3
  8. data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +19 -13
  9. data/src/core/ext/filters/channel_idle/channel_idle_filter.h +1 -0
  10. data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
  11. data/src/core/ext/filters/client_channel/channel_connectivity.cc +7 -5
  12. data/src/core/ext/filters/client_channel/client_channel.cc +120 -140
  13. data/src/core/ext/filters/client_channel/client_channel.h +3 -4
  14. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +0 -2
  15. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
  16. data/src/core/ext/filters/client_channel/client_channel_service_config.cc +153 -0
  17. data/src/core/ext/filters/client_channel/{resolver_result_parsing.h → client_channel_service_config.h} +26 -23
  18. data/src/core/ext/filters/client_channel/connector.h +1 -1
  19. data/src/core/ext/filters/client_channel/dynamic_filters.cc +20 -47
  20. data/src/core/ext/filters/client_channel/dynamic_filters.h +7 -8
  21. data/src/core/ext/filters/client_channel/health/health_check_client.cc +3 -4
  22. data/src/core/ext/filters/client_channel/http_proxy.cc +0 -1
  23. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +3 -4
  24. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +5 -0
  25. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +8 -7
  26. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +35 -44
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +0 -1
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +1 -3
  29. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +3 -4
  30. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +1 -1
  31. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +41 -29
  32. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +2 -2
  33. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +9 -11
  34. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +15 -12
  35. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +8 -10
  36. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +26 -27
  37. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +7 -9
  38. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +44 -26
  39. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +17 -27
  40. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc +42 -0
  41. data/src/core/ext/filters/client_channel/lb_policy/xds/{xds.h → xds_attributes.h} +15 -17
  42. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +13 -7
  43. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +48 -47
  44. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +40 -126
  45. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +364 -0
  46. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +9 -9
  47. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +23 -32
  48. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +1 -2
  49. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +22 -23
  50. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +50 -52
  51. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
  52. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +2 -4
  53. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +1 -3
  54. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +34 -26
  55. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +3 -4
  56. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +4 -7
  57. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +63 -46
  58. data/src/core/ext/filters/client_channel/retry_filter.cc +80 -102
  59. data/src/core/ext/filters/client_channel/retry_service_config.cc +192 -234
  60. data/src/core/ext/filters/client_channel/retry_service_config.h +20 -23
  61. data/src/core/ext/filters/client_channel/retry_throttle.cc +8 -8
  62. data/src/core/ext/filters/client_channel/retry_throttle.h +8 -7
  63. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +2 -2
  64. data/src/core/ext/filters/client_channel/subchannel.cc +21 -25
  65. data/src/core/ext/filters/client_channel/subchannel.h +2 -2
  66. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +11 -12
  67. data/src/core/ext/filters/deadline/deadline_filter.cc +13 -14
  68. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -1
  69. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +0 -4
  70. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +118 -0
  71. data/src/core/ext/filters/fault_injection/{service_config_parser.h → fault_injection_service_config_parser.h} +20 -12
  72. data/src/core/ext/filters/http/client/http_client_filter.cc +16 -16
  73. data/src/core/ext/filters/http/client_authority_filter.cc +1 -1
  74. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +13 -13
  75. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +34 -34
  76. data/src/core/ext/filters/http/server/http_server_filter.cc +26 -25
  77. data/src/core/ext/filters/message_size/message_size_filter.cc +86 -117
  78. data/src/core/ext/filters/message_size/message_size_filter.h +22 -15
  79. data/src/core/ext/filters/rbac/rbac_filter.cc +12 -12
  80. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +728 -530
  81. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +4 -3
  82. data/src/core/ext/filters/server_config_selector/server_config_selector.h +1 -1
  83. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +6 -7
  84. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +17 -21
  85. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +57 -72
  86. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +5 -5
  87. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -1
  88. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +212 -253
  89. data/src/core/ext/transport/chttp2/transport/flow_control.cc +42 -11
  90. data/src/core/ext/transport/chttp2/transport/flow_control.h +4 -3
  91. data/src/core/ext/transport/chttp2/transport/frame_data.cc +16 -15
  92. data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -1
  93. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +13 -13
  94. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -3
  95. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +10 -7
  96. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +15 -17
  97. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +5 -4
  98. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +5 -6
  99. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +1 -1
  100. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +2 -1
  101. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +31 -39
  102. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +7 -6
  103. data/src/core/ext/transport/chttp2/transport/internal.h +24 -8
  104. data/src/core/ext/transport/chttp2/transport/parsing.cc +51 -52
  105. data/src/core/ext/transport/chttp2/transport/varint.cc +2 -3
  106. data/src/core/ext/transport/chttp2/transport/varint.h +11 -8
  107. data/src/core/ext/transport/chttp2/transport/writing.cc +16 -16
  108. data/src/core/ext/transport/inproc/inproc_transport.cc +97 -115
  109. data/src/core/ext/xds/certificate_provider_store.cc +4 -4
  110. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +4 -7
  111. data/src/core/ext/xds/xds_api.cc +15 -68
  112. data/src/core/ext/xds/xds_api.h +3 -7
  113. data/src/core/ext/xds/xds_bootstrap.h +0 -1
  114. data/src/core/ext/xds/xds_bootstrap_grpc.cc +3 -12
  115. data/src/core/ext/xds/xds_bootstrap_grpc.h +16 -1
  116. data/src/core/ext/xds/xds_certificate_provider.cc +22 -25
  117. data/src/core/ext/xds/xds_channel_stack_modifier.cc +0 -1
  118. data/src/core/ext/xds/xds_client.cc +122 -90
  119. data/src/core/ext/xds/xds_client.h +7 -2
  120. data/src/core/ext/xds/xds_client_grpc.cc +5 -24
  121. data/src/core/ext/xds/xds_cluster.cc +291 -183
  122. data/src/core/ext/xds/xds_cluster.h +11 -15
  123. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +32 -29
  124. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +35 -16
  125. data/src/core/ext/xds/xds_common_types.cc +208 -141
  126. data/src/core/ext/xds/xds_common_types.h +19 -13
  127. data/src/core/ext/xds/xds_endpoint.cc +214 -129
  128. data/src/core/ext/xds/xds_endpoint.h +4 -7
  129. data/src/core/ext/xds/xds_http_fault_filter.cc +56 -43
  130. data/src/core/ext/xds/xds_http_fault_filter.h +13 -21
  131. data/src/core/ext/xds/xds_http_filters.cc +60 -73
  132. data/src/core/ext/xds/xds_http_filters.h +67 -19
  133. data/src/core/ext/xds/xds_http_rbac_filter.cc +152 -207
  134. data/src/core/ext/xds/xds_http_rbac_filter.h +12 -15
  135. data/src/core/ext/xds/xds_lb_policy_registry.cc +122 -169
  136. data/src/core/ext/xds/xds_lb_policy_registry.h +10 -11
  137. data/src/core/ext/xds/xds_listener.cc +459 -417
  138. data/src/core/ext/xds/xds_listener.h +43 -47
  139. data/src/core/ext/xds/xds_resource_type.h +3 -11
  140. data/src/core/ext/xds/xds_resource_type_impl.h +8 -13
  141. data/src/core/ext/xds/xds_route_config.cc +94 -80
  142. data/src/core/ext/xds/xds_route_config.h +10 -10
  143. data/src/core/ext/xds/xds_routing.cc +2 -1
  144. data/src/core/ext/xds/xds_routing.h +2 -0
  145. data/src/core/ext/xds/xds_server_config_fetcher.cc +109 -94
  146. data/src/core/ext/xds/xds_transport_grpc.cc +4 -5
  147. data/src/core/lib/address_utils/parse_address.cc +11 -10
  148. data/src/core/lib/channel/channel_args.h +16 -1
  149. data/src/core/lib/channel/channel_stack.cc +23 -20
  150. data/src/core/lib/channel/channel_stack.h +17 -4
  151. data/src/core/lib/channel/channel_stack_builder.cc +4 -7
  152. data/src/core/lib/channel/channel_stack_builder.h +14 -6
  153. data/src/core/lib/channel/channel_stack_builder_impl.cc +25 -7
  154. data/src/core/lib/channel/channel_stack_builder_impl.h +2 -0
  155. data/src/core/lib/channel/channel_trace.cc +4 -5
  156. data/src/core/lib/channel/channelz.cc +1 -1
  157. data/src/core/lib/channel/connected_channel.cc +695 -35
  158. data/src/core/lib/channel/connected_channel.h +0 -4
  159. data/src/core/lib/channel/promise_based_filter.cc +1004 -140
  160. data/src/core/lib/channel/promise_based_filter.h +364 -87
  161. data/src/core/lib/compression/message_compress.cc +5 -5
  162. data/src/core/lib/debug/event_log.cc +88 -0
  163. data/src/core/lib/debug/event_log.h +81 -0
  164. data/src/core/lib/debug/histogram_view.cc +69 -0
  165. data/src/core/lib/{slice/slice_refcount.cc → debug/histogram_view.h} +15 -13
  166. data/src/core/lib/debug/stats.cc +22 -119
  167. data/src/core/lib/debug/stats.h +29 -35
  168. data/src/core/lib/debug/stats_data.cc +224 -73
  169. data/src/core/lib/debug/stats_data.h +263 -122
  170. data/src/core/lib/event_engine/common_closures.h +71 -0
  171. data/src/core/lib/event_engine/default_event_engine.cc +38 -15
  172. data/src/core/lib/event_engine/default_event_engine.h +15 -3
  173. data/src/core/lib/event_engine/default_event_engine_factory.cc +2 -4
  174. data/src/core/lib/event_engine/memory_allocator.cc +1 -1
  175. data/src/core/lib/event_engine/poller.h +10 -4
  176. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +618 -0
  177. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +129 -0
  178. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +901 -0
  179. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +97 -0
  180. data/src/core/lib/event_engine/posix_engine/event_poller.h +111 -0
  181. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +74 -0
  182. data/src/core/lib/event_engine/{executor/threaded_executor.cc → posix_engine/event_poller_posix_default.h} +13 -16
  183. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +77 -0
  184. data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +179 -0
  185. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +267 -0
  186. data/src/core/lib/event_engine/posix_engine/lockfree_event.h +73 -0
  187. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +1270 -0
  188. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +682 -0
  189. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +453 -18
  190. data/src/core/lib/event_engine/posix_engine/posix_engine.h +148 -24
  191. data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +80 -0
  192. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +1081 -0
  193. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +361 -0
  194. data/src/core/lib/event_engine/posix_engine/timer.h +9 -8
  195. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +57 -194
  196. data/src/core/lib/event_engine/posix_engine/timer_manager.h +21 -49
  197. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +301 -0
  198. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +179 -0
  199. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +126 -0
  200. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +45 -0
  201. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +151 -0
  202. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +45 -0
  203. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +76 -0
  204. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +67 -0
  205. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +37 -0
  206. data/src/core/lib/event_engine/slice.cc +7 -6
  207. data/src/core/lib/event_engine/slice_buffer.cc +2 -2
  208. data/src/core/lib/event_engine/thread_pool.cc +106 -25
  209. data/src/core/lib/event_engine/thread_pool.h +32 -9
  210. data/src/core/lib/event_engine/windows/win_socket.cc +7 -7
  211. data/src/core/lib/event_engine/windows/windows_engine.cc +18 -12
  212. data/src/core/lib/event_engine/windows/windows_engine.h +8 -4
  213. data/src/core/lib/experiments/config.cc +1 -1
  214. data/src/core/lib/experiments/experiments.cc +13 -2
  215. data/src/core/lib/experiments/experiments.h +8 -1
  216. data/src/core/lib/gpr/cpu_linux.cc +6 -2
  217. data/src/core/lib/gpr/log_linux.cc +3 -4
  218. data/src/core/lib/gpr/string.h +1 -1
  219. data/src/core/lib/gpr/tmpfile_posix.cc +3 -2
  220. data/src/core/lib/gprpp/load_file.cc +75 -0
  221. data/src/core/lib/gprpp/load_file.h +33 -0
  222. data/src/core/lib/gprpp/per_cpu.h +46 -0
  223. data/src/core/lib/gprpp/stat_posix.cc +5 -4
  224. data/src/core/lib/gprpp/stat_windows.cc +3 -2
  225. data/src/core/lib/gprpp/status_helper.h +1 -3
  226. data/src/core/lib/gprpp/strerror.cc +41 -0
  227. data/src/core/{ext/xds/xds_resource_type.cc → lib/gprpp/strerror.h} +9 -13
  228. data/src/core/lib/gprpp/thd_windows.cc +1 -2
  229. data/src/core/lib/gprpp/time.cc +3 -4
  230. data/src/core/lib/gprpp/time.h +13 -2
  231. data/src/core/lib/gprpp/validation_errors.h +18 -1
  232. data/src/core/lib/http/httpcli.cc +40 -44
  233. data/src/core/lib/http/httpcli.h +6 -5
  234. data/src/core/lib/http/httpcli_security_connector.cc +4 -6
  235. data/src/core/lib/http/parser.cc +54 -65
  236. data/src/core/lib/iomgr/buffer_list.cc +105 -116
  237. data/src/core/lib/iomgr/buffer_list.h +60 -44
  238. data/src/core/lib/iomgr/call_combiner.cc +11 -10
  239. data/src/core/lib/iomgr/call_combiner.h +3 -4
  240. data/src/core/lib/iomgr/cfstream_handle.cc +13 -16
  241. data/src/core/lib/iomgr/closure.h +49 -5
  242. data/src/core/lib/iomgr/combiner.cc +2 -2
  243. data/src/core/lib/iomgr/endpoint.h +1 -1
  244. data/src/core/lib/iomgr/endpoint_cfstream.cc +26 -25
  245. data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -2
  246. data/src/core/lib/iomgr/error.cc +27 -42
  247. data/src/core/lib/iomgr/error.h +22 -152
  248. data/src/core/lib/iomgr/ev_apple.cc +4 -4
  249. data/src/core/lib/iomgr/ev_epoll1_linux.cc +26 -25
  250. data/src/core/lib/iomgr/ev_poll_posix.cc +27 -31
  251. data/src/core/lib/iomgr/exec_ctx.cc +3 -4
  252. data/src/core/lib/iomgr/exec_ctx.h +2 -3
  253. data/src/core/lib/iomgr/executor.cc +1 -2
  254. data/src/core/lib/iomgr/internal_errqueue.cc +3 -1
  255. data/src/core/lib/iomgr/iocp_windows.cc +1 -0
  256. data/src/core/lib/iomgr/iomgr_posix.cc +2 -2
  257. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -1
  258. data/src/core/lib/iomgr/iomgr_windows.cc +2 -1
  259. data/src/core/lib/iomgr/load_file.cc +5 -9
  260. data/src/core/lib/iomgr/lockfree_event.cc +10 -10
  261. data/src/core/lib/iomgr/pollset_windows.cc +4 -4
  262. data/src/core/lib/iomgr/python_util.h +2 -2
  263. data/src/core/lib/iomgr/resolve_address.cc +8 -3
  264. data/src/core/lib/iomgr/resolve_address.h +3 -4
  265. data/src/core/lib/iomgr/resolve_address_impl.h +1 -1
  266. data/src/core/lib/iomgr/resolve_address_posix.cc +14 -25
  267. data/src/core/lib/iomgr/resolve_address_posix.h +1 -2
  268. data/src/core/lib/iomgr/resolve_address_windows.cc +14 -17
  269. data/src/core/lib/iomgr/resolve_address_windows.h +1 -2
  270. data/src/core/lib/iomgr/socket_utils_common_posix.cc +30 -29
  271. data/src/core/lib/iomgr/socket_utils_posix.cc +1 -0
  272. data/src/core/lib/iomgr/socket_utils_posix.h +2 -2
  273. data/src/core/lib/iomgr/socket_windows.cc +2 -2
  274. data/src/core/lib/iomgr/tcp_client_cfstream.cc +6 -10
  275. data/src/core/lib/iomgr/tcp_client_posix.cc +31 -35
  276. data/src/core/lib/iomgr/tcp_client_windows.cc +8 -12
  277. data/src/core/lib/iomgr/tcp_posix.cc +92 -108
  278. data/src/core/lib/iomgr/tcp_server_posix.cc +34 -34
  279. data/src/core/lib/iomgr/tcp_server_utils_posix.h +1 -1
  280. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +18 -21
  281. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +12 -13
  282. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +1 -1
  283. data/src/core/lib/iomgr/tcp_server_windows.cc +26 -29
  284. data/src/core/lib/iomgr/tcp_windows.cc +27 -34
  285. data/src/core/lib/iomgr/timer.h +8 -8
  286. data/src/core/lib/iomgr/timer_generic.cc +9 -15
  287. data/src/core/lib/iomgr/unix_sockets_posix.cc +2 -4
  288. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +4 -3
  289. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +10 -8
  290. data/src/core/lib/json/json_channel_args.h +42 -0
  291. data/src/core/lib/json/json_object_loader.cc +7 -2
  292. data/src/core/lib/json/json_object_loader.h +22 -0
  293. data/src/core/lib/json/json_util.cc +5 -5
  294. data/src/core/lib/json/json_util.h +4 -4
  295. data/src/core/lib/load_balancing/lb_policy.cc +1 -1
  296. data/src/core/lib/load_balancing/lb_policy.h +4 -0
  297. data/src/core/lib/load_balancing/subchannel_interface.h +0 -7
  298. data/src/core/lib/matchers/matchers.cc +3 -4
  299. data/src/core/lib/promise/activity.cc +16 -2
  300. data/src/core/lib/promise/activity.h +38 -15
  301. data/src/core/lib/promise/arena_promise.h +80 -51
  302. data/src/core/lib/promise/context.h +13 -6
  303. data/src/core/lib/promise/detail/basic_seq.h +9 -28
  304. data/src/core/lib/promise/detail/promise_factory.h +58 -10
  305. data/src/core/lib/promise/detail/status.h +28 -0
  306. data/src/core/lib/promise/detail/switch.h +1455 -0
  307. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +3 -1
  308. data/src/core/lib/promise/for_each.h +129 -0
  309. data/src/core/lib/promise/loop.h +7 -5
  310. data/src/core/lib/promise/map_pipe.h +87 -0
  311. data/src/core/lib/promise/pipe.cc +19 -0
  312. data/src/core/lib/promise/pipe.h +505 -0
  313. data/src/core/lib/promise/poll.h +13 -0
  314. data/src/core/lib/promise/seq.h +3 -5
  315. data/src/core/lib/promise/sleep.cc +5 -4
  316. data/src/core/lib/promise/sleep.h +1 -2
  317. data/src/core/lib/promise/try_concurrently.h +341 -0
  318. data/src/core/lib/promise/try_seq.h +10 -13
  319. data/src/core/lib/resolver/server_address.cc +1 -0
  320. data/src/core/lib/resolver/server_address.h +1 -3
  321. data/src/core/lib/resource_quota/api.cc +0 -1
  322. data/src/core/lib/resource_quota/arena.cc +19 -0
  323. data/src/core/lib/resource_quota/arena.h +89 -0
  324. data/src/core/lib/resource_quota/memory_quota.cc +1 -0
  325. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +1 -3
  326. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +4 -2
  327. data/src/core/lib/security/authorization/matchers.cc +25 -22
  328. data/src/core/lib/security/authorization/rbac_policy.cc +2 -3
  329. data/src/core/lib/security/context/security_context.h +10 -0
  330. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +3 -4
  331. data/src/core/lib/security/credentials/composite/composite_credentials.cc +1 -1
  332. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +77 -55
  333. data/src/core/lib/security/credentials/external/aws_request_signer.cc +4 -3
  334. data/src/core/lib/security/credentials/external/external_account_credentials.cc +40 -51
  335. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +17 -21
  336. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +21 -25
  337. data/src/core/lib/security/credentials/fake/fake_credentials.cc +1 -0
  338. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +27 -24
  339. data/src/core/lib/security/credentials/iam/iam_credentials.cc +1 -0
  340. data/src/core/lib/security/credentials/jwt/json_token.cc +1 -2
  341. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +1 -1
  342. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +5 -5
  343. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +24 -30
  344. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -5
  345. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +3 -3
  346. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +19 -27
  347. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +4 -11
  348. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +29 -41
  349. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +1 -1
  350. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +6 -11
  351. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +8 -15
  352. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
  353. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +2 -6
  354. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +1 -4
  355. data/src/core/lib/security/security_connector/local/local_security_connector.cc +7 -11
  356. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +9 -14
  357. data/src/core/lib/security/security_connector/ssl_utils.cc +5 -7
  358. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +21 -27
  359. data/src/core/lib/security/transport/client_auth_filter.cc +1 -1
  360. data/src/core/lib/security/transport/secure_endpoint.cc +26 -28
  361. data/src/core/lib/security/transport/security_handshaker.cc +53 -53
  362. data/src/core/lib/security/transport/server_auth_filter.cc +21 -21
  363. data/src/core/lib/security/transport/tsi_error.cc +6 -3
  364. data/src/core/lib/security/util/json_util.cc +4 -5
  365. data/src/core/lib/service_config/service_config.h +1 -1
  366. data/src/core/lib/service_config/service_config_impl.cc +111 -158
  367. data/src/core/lib/service_config/service_config_impl.h +14 -17
  368. data/src/core/lib/service_config/service_config_parser.cc +14 -31
  369. data/src/core/lib/service_config/service_config_parser.h +14 -10
  370. data/src/core/lib/slice/b64.cc +2 -2
  371. data/src/core/lib/slice/slice.cc +7 -1
  372. data/src/core/lib/slice/slice.h +19 -6
  373. data/src/core/lib/slice/slice_buffer.cc +13 -14
  374. data/src/core/lib/slice/slice_internal.h +13 -21
  375. data/src/core/lib/slice/slice_refcount.h +34 -19
  376. data/src/core/lib/surface/byte_buffer.cc +3 -4
  377. data/src/core/lib/surface/byte_buffer_reader.cc +4 -4
  378. data/src/core/lib/surface/call.cc +1366 -239
  379. data/src/core/lib/surface/call.h +44 -0
  380. data/src/core/lib/surface/call_details.cc +3 -3
  381. data/src/core/lib/surface/call_trace.cc +113 -0
  382. data/src/core/lib/surface/call_trace.h +30 -0
  383. data/src/core/lib/surface/channel.cc +44 -49
  384. data/src/core/lib/surface/channel.h +9 -1
  385. data/src/core/lib/surface/channel_ping.cc +1 -1
  386. data/src/core/lib/surface/channel_stack_type.cc +4 -0
  387. data/src/core/lib/surface/channel_stack_type.h +2 -0
  388. data/src/core/lib/surface/completion_queue.cc +38 -52
  389. data/src/core/lib/surface/init.cc +8 -39
  390. data/src/core/lib/surface/init_internally.h +8 -0
  391. data/src/core/lib/surface/lame_client.cc +10 -8
  392. data/src/core/lib/surface/server.cc +48 -70
  393. data/src/core/lib/surface/server.h +3 -4
  394. data/src/core/lib/surface/validate_metadata.cc +11 -12
  395. data/src/core/lib/surface/version.cc +2 -2
  396. data/src/core/lib/transport/connectivity_state.cc +2 -2
  397. data/src/core/lib/transport/error_utils.cc +34 -28
  398. data/src/core/lib/transport/error_utils.h +3 -3
  399. data/src/core/lib/transport/handshaker.cc +14 -14
  400. data/src/core/lib/transport/handshaker.h +1 -1
  401. data/src/core/lib/transport/handshaker_factory.h +26 -0
  402. data/src/core/lib/transport/handshaker_registry.cc +8 -2
  403. data/src/core/lib/transport/handshaker_registry.h +3 -4
  404. data/src/core/lib/transport/http_connect_handshaker.cc +23 -24
  405. data/src/core/lib/transport/metadata_batch.h +17 -1
  406. data/src/core/lib/transport/parsed_metadata.cc +2 -6
  407. data/src/core/lib/transport/tcp_connect_handshaker.cc +15 -20
  408. data/src/core/lib/transport/transport.cc +63 -17
  409. data/src/core/lib/transport/transport.h +64 -68
  410. data/src/core/lib/transport/transport_impl.h +1 -1
  411. data/src/core/lib/transport/transport_op_string.cc +7 -6
  412. data/src/core/plugin_registry/grpc_plugin_registry.cc +6 -10
  413. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -14
  414. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +10 -10
  415. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +8 -8
  416. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -1
  417. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +7 -7
  418. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +7 -6
  419. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
  420. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +5 -5
  421. data/src/core/tsi/fake_transport_security.cc +3 -3
  422. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +7 -3
  423. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
  424. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +6 -2
  425. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +0 -2
  426. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +0 -3
  427. data/src/ruby/lib/grpc/version.rb +1 -1
  428. data/src/ruby/spec/channel_spec.rb +0 -43
  429. data/src/ruby/spec/generic/active_call_spec.rb +12 -3
  430. data/third_party/abseil-cpp/absl/cleanup/cleanup.h +140 -0
  431. data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +100 -0
  432. data/third_party/zlib/compress.c +3 -3
  433. data/third_party/zlib/crc32.c +21 -12
  434. data/third_party/zlib/deflate.c +112 -106
  435. data/third_party/zlib/deflate.h +2 -2
  436. data/third_party/zlib/gzlib.c +1 -1
  437. data/third_party/zlib/gzread.c +3 -5
  438. data/third_party/zlib/gzwrite.c +1 -1
  439. data/third_party/zlib/infback.c +10 -7
  440. data/third_party/zlib/inflate.c +5 -2
  441. data/third_party/zlib/inftrees.c +2 -2
  442. data/third_party/zlib/inftrees.h +1 -1
  443. data/third_party/zlib/trees.c +61 -62
  444. data/third_party/zlib/uncompr.c +2 -2
  445. data/third_party/zlib/zconf.h +16 -3
  446. data/third_party/zlib/zlib.h +10 -10
  447. data/third_party/zlib/zutil.c +9 -7
  448. data/third_party/zlib/zutil.h +1 -0
  449. metadata +55 -18
  450. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +0 -188
  451. data/src/core/ext/filters/fault_injection/service_config_parser.cc +0 -187
  452. data/src/core/lib/event_engine/executor/threaded_executor.h +0 -44
  453. data/src/core/lib/gpr/murmur_hash.cc +0 -82
  454. data/src/core/lib/gpr/murmur_hash.h +0 -29
  455. data/src/core/lib/gpr/tls.h +0 -156
  456. data/src/core/lib/promise/call_push_pull.h +0 -148
  457. data/src/core/lib/slice/slice_api.cc +0 -39
  458. data/src/core/lib/slice/slice_buffer_api.cc +0 -35
  459. data/src/core/lib/slice/slice_refcount_base.h +0 -60
@@ -61,9 +61,11 @@ uLong ZEXPORT zlibCompileFlags()
61
61
  #ifdef ZLIB_DEBUG
62
62
  flags += 1 << 8;
63
63
  #endif
64
+ /*
64
65
  #if defined(ASMV) || defined(ASMINF)
65
66
  flags += 1 << 9;
66
67
  #endif
68
+ */
67
69
  #ifdef ZLIB_WINAPI
68
70
  flags += 1 << 10;
69
71
  #endif
@@ -119,7 +121,7 @@ uLong ZEXPORT zlibCompileFlags()
119
121
  # endif
120
122
  int ZLIB_INTERNAL z_verbose = verbose;
121
123
 
122
- void ZLIB_INTERNAL z_error (m)
124
+ void ZLIB_INTERNAL z_error(m)
123
125
  char *m;
124
126
  {
125
127
  fprintf(stderr, "%s\n", m);
@@ -214,7 +216,7 @@ local ptr_table table[MAX_PTR];
214
216
  * a protected system like OS/2. Use Microsoft C instead.
215
217
  */
216
218
 
217
- voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, unsigned items, unsigned size)
219
+ voidpf ZLIB_INTERNAL zcalloc(voidpf opaque, unsigned items, unsigned size)
218
220
  {
219
221
  voidpf buf;
220
222
  ulg bsize = (ulg)items*size;
@@ -240,7 +242,7 @@ voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, unsigned items, unsigned size)
240
242
  return buf;
241
243
  }
242
244
 
243
- void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
245
+ void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr)
244
246
  {
245
247
  int n;
246
248
 
@@ -277,13 +279,13 @@ void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
277
279
  # define _hfree hfree
278
280
  #endif
279
281
 
280
- voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, uInt items, uInt size)
282
+ voidpf ZLIB_INTERNAL zcalloc(voidpf opaque, uInt items, uInt size)
281
283
  {
282
284
  (void)opaque;
283
285
  return _halloc((long)items, size);
284
286
  }
285
287
 
286
- void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
288
+ void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr)
287
289
  {
288
290
  (void)opaque;
289
291
  _hfree(ptr);
@@ -302,7 +304,7 @@ extern voidp calloc OF((uInt items, uInt size));
302
304
  extern void free OF((voidpf ptr));
303
305
  #endif
304
306
 
305
- voidpf ZLIB_INTERNAL zcalloc (opaque, items, size)
307
+ voidpf ZLIB_INTERNAL zcalloc(opaque, items, size)
306
308
  voidpf opaque;
307
309
  unsigned items;
308
310
  unsigned size;
@@ -312,7 +314,7 @@ voidpf ZLIB_INTERNAL zcalloc (opaque, items, size)
312
314
  (voidpf)calloc(items, size);
313
315
  }
314
316
 
315
- void ZLIB_INTERNAL zcfree (opaque, ptr)
317
+ void ZLIB_INTERNAL zcfree(opaque, ptr)
316
318
  voidpf opaque;
317
319
  voidpf ptr;
318
320
  {
@@ -193,6 +193,7 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
193
193
  (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0)
194
194
  ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t));
195
195
  ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t));
196
+ ZEXTERN uLong ZEXPORT crc32_combine_gen64 OF((z_off_t));
196
197
  #endif
197
198
 
198
199
  /* common defaults */
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grpc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.50.0
4
+ version: 1.51.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - gRPC Authors
8
8
  autorequire:
9
9
  bindir: src/ruby/bin
10
10
  cert_chain: []
11
- date: 2022-10-14 00:00:00.000000000 Z
11
+ date: 2022-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -292,6 +292,8 @@ files:
292
292
  - src/core/ext/filters/client_channel/client_channel_factory.cc
293
293
  - src/core/ext/filters/client_channel/client_channel_factory.h
294
294
  - src/core/ext/filters/client_channel/client_channel_plugin.cc
295
+ - src/core/ext/filters/client_channel/client_channel_service_config.cc
296
+ - src/core/ext/filters/client_channel/client_channel_service_config.h
295
297
  - src/core/ext/filters/client_channel/config_selector.cc
296
298
  - src/core/ext/filters/client_channel/config_selector.h
297
299
  - src/core/ext/filters/client_channel/connector.h
@@ -331,11 +333,13 @@ files:
331
333
  - src/core/ext/filters/client_channel/lb_policy/subchannel_list.h
332
334
  - src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc
333
335
  - src/core/ext/filters/client_channel/lb_policy/xds/cds.cc
334
- - src/core/ext/filters/client_channel/lb_policy/xds/xds.h
336
+ - src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc
337
+ - src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.h
335
338
  - src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h
336
339
  - src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc
337
340
  - src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc
338
341
  - src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc
342
+ - src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc
339
343
  - src/core/ext/filters/client_channel/local_subchannel_pool.cc
340
344
  - src/core/ext/filters/client_channel/local_subchannel_pool.h
341
345
  - src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc
@@ -358,8 +362,6 @@ files:
358
362
  - src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc
359
363
  - src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc
360
364
  - src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h
361
- - src/core/ext/filters/client_channel/resolver_result_parsing.cc
362
- - src/core/ext/filters/client_channel/resolver_result_parsing.h
363
365
  - src/core/ext/filters/client_channel/retry_filter.cc
364
366
  - src/core/ext/filters/client_channel/retry_filter.h
365
367
  - src/core/ext/filters/client_channel/retry_service_config.cc
@@ -378,8 +380,8 @@ files:
378
380
  - src/core/ext/filters/deadline/deadline_filter.h
379
381
  - src/core/ext/filters/fault_injection/fault_injection_filter.cc
380
382
  - src/core/ext/filters/fault_injection/fault_injection_filter.h
381
- - src/core/ext/filters/fault_injection/service_config_parser.cc
382
- - src/core/ext/filters/fault_injection/service_config_parser.h
383
+ - src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc
384
+ - src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h
383
385
  - src/core/ext/filters/http/client/http_client_filter.cc
384
386
  - src/core/ext/filters/http/client/http_client_filter.h
385
387
  - src/core/ext/filters/http/client_authority_filter.cc
@@ -1064,7 +1066,6 @@ files:
1064
1066
  - src/core/ext/xds/xds_lb_policy_registry.h
1065
1067
  - src/core/ext/xds/xds_listener.cc
1066
1068
  - src/core/ext/xds/xds_listener.h
1067
- - src/core/ext/xds/xds_resource_type.cc
1068
1069
  - src/core/ext/xds/xds_resource_type.h
1069
1070
  - src/core/ext/xds/xds_resource_type_impl.h
1070
1071
  - src/core/ext/xds/xds_route_config.cc
@@ -1115,6 +1116,10 @@ files:
1115
1116
  - src/core/lib/compression/message_compress.h
1116
1117
  - src/core/lib/config/core_configuration.cc
1117
1118
  - src/core/lib/config/core_configuration.h
1119
+ - src/core/lib/debug/event_log.cc
1120
+ - src/core/lib/debug/event_log.h
1121
+ - src/core/lib/debug/histogram_view.cc
1122
+ - src/core/lib/debug/histogram_view.h
1118
1123
  - src/core/lib/debug/stats.cc
1119
1124
  - src/core/lib/debug/stats.h
1120
1125
  - src/core/lib/debug/stats_data.cc
@@ -1123,26 +1128,50 @@ files:
1123
1128
  - src/core/lib/debug/trace.h
1124
1129
  - src/core/lib/event_engine/channel_args_endpoint_config.cc
1125
1130
  - src/core/lib/event_engine/channel_args_endpoint_config.h
1131
+ - src/core/lib/event_engine/common_closures.h
1126
1132
  - src/core/lib/event_engine/default_event_engine.cc
1127
1133
  - src/core/lib/event_engine/default_event_engine.h
1128
1134
  - src/core/lib/event_engine/default_event_engine_factory.cc
1129
1135
  - src/core/lib/event_engine/default_event_engine_factory.h
1130
1136
  - src/core/lib/event_engine/executor/executor.h
1131
- - src/core/lib/event_engine/executor/threaded_executor.cc
1132
- - src/core/lib/event_engine/executor/threaded_executor.h
1133
1137
  - src/core/lib/event_engine/forkable.cc
1134
1138
  - src/core/lib/event_engine/forkable.h
1135
1139
  - src/core/lib/event_engine/handle_containers.h
1136
1140
  - src/core/lib/event_engine/memory_allocator.cc
1137
1141
  - src/core/lib/event_engine/poller.h
1142
+ - src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
1143
+ - src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h
1144
+ - src/core/lib/event_engine/posix_engine/ev_poll_posix.cc
1145
+ - src/core/lib/event_engine/posix_engine/ev_poll_posix.h
1146
+ - src/core/lib/event_engine/posix_engine/event_poller.h
1147
+ - src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc
1148
+ - src/core/lib/event_engine/posix_engine/event_poller_posix_default.h
1149
+ - src/core/lib/event_engine/posix_engine/internal_errqueue.cc
1150
+ - src/core/lib/event_engine/posix_engine/internal_errqueue.h
1151
+ - src/core/lib/event_engine/posix_engine/lockfree_event.cc
1152
+ - src/core/lib/event_engine/posix_engine/lockfree_event.h
1153
+ - src/core/lib/event_engine/posix_engine/posix_endpoint.cc
1154
+ - src/core/lib/event_engine/posix_engine/posix_endpoint.h
1138
1155
  - src/core/lib/event_engine/posix_engine/posix_engine.cc
1139
1156
  - src/core/lib/event_engine/posix_engine/posix_engine.h
1157
+ - src/core/lib/event_engine/posix_engine/posix_engine_closure.h
1158
+ - src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc
1159
+ - src/core/lib/event_engine/posix_engine/tcp_socket_utils.h
1140
1160
  - src/core/lib/event_engine/posix_engine/timer.cc
1141
1161
  - src/core/lib/event_engine/posix_engine/timer.h
1142
1162
  - src/core/lib/event_engine/posix_engine/timer_heap.cc
1143
1163
  - src/core/lib/event_engine/posix_engine/timer_heap.h
1144
1164
  - src/core/lib/event_engine/posix_engine/timer_manager.cc
1145
1165
  - src/core/lib/event_engine/posix_engine/timer_manager.h
1166
+ - src/core/lib/event_engine/posix_engine/traced_buffer_list.cc
1167
+ - src/core/lib/event_engine/posix_engine/traced_buffer_list.h
1168
+ - src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc
1169
+ - src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h
1170
+ - src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc
1171
+ - src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h
1172
+ - src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h
1173
+ - src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc
1174
+ - src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h
1146
1175
  - src/core/lib/event_engine/resolved_address.cc
1147
1176
  - src/core/lib/event_engine/slice.cc
1148
1177
  - src/core/lib/event_engine/slice_buffer.cc
@@ -1177,8 +1206,6 @@ files:
1177
1206
  - src/core/lib/gpr/log_linux.cc
1178
1207
  - src/core/lib/gpr/log_posix.cc
1179
1208
  - src/core/lib/gpr/log_windows.cc
1180
- - src/core/lib/gpr/murmur_hash.cc
1181
- - src/core/lib/gpr/murmur_hash.h
1182
1209
  - src/core/lib/gpr/spinlock.h
1183
1210
  - src/core/lib/gpr/string.cc
1184
1211
  - src/core/lib/gpr/string.h
@@ -1194,7 +1221,6 @@ files:
1194
1221
  - src/core/lib/gpr/time_precise.cc
1195
1222
  - src/core/lib/gpr/time_precise.h
1196
1223
  - src/core/lib/gpr/time_windows.cc
1197
- - src/core/lib/gpr/tls.h
1198
1224
  - src/core/lib/gpr/tmpfile.h
1199
1225
  - src/core/lib/gpr/tmpfile_msys.cc
1200
1226
  - src/core/lib/gpr/tmpfile_posix.cc
@@ -1223,6 +1249,8 @@ files:
1223
1249
  - src/core/lib/gprpp/global_config_generic.h
1224
1250
  - src/core/lib/gprpp/host_port.cc
1225
1251
  - src/core/lib/gprpp/host_port.h
1252
+ - src/core/lib/gprpp/load_file.cc
1253
+ - src/core/lib/gprpp/load_file.h
1226
1254
  - src/core/lib/gprpp/manual_constructor.h
1227
1255
  - src/core/lib/gprpp/match.h
1228
1256
  - src/core/lib/gprpp/memory.h
@@ -1233,6 +1261,7 @@ files:
1233
1261
  - src/core/lib/gprpp/orphanable.h
1234
1262
  - src/core/lib/gprpp/overload.h
1235
1263
  - src/core/lib/gprpp/packed_table.h
1264
+ - src/core/lib/gprpp/per_cpu.h
1236
1265
  - src/core/lib/gprpp/ref_counted.h
1237
1266
  - src/core/lib/gprpp/ref_counted_ptr.h
1238
1267
  - src/core/lib/gprpp/single_set_ptr.h
@@ -1242,6 +1271,8 @@ files:
1242
1271
  - src/core/lib/gprpp/stat_windows.cc
1243
1272
  - src/core/lib/gprpp/status_helper.cc
1244
1273
  - src/core/lib/gprpp/status_helper.h
1274
+ - src/core/lib/gprpp/strerror.cc
1275
+ - src/core/lib/gprpp/strerror.h
1245
1276
  - src/core/lib/gprpp/sync.h
1246
1277
  - src/core/lib/gprpp/table.h
1247
1278
  - src/core/lib/gprpp/tchar.cc
@@ -1406,6 +1437,7 @@ files:
1406
1437
  - src/core/lib/iomgr/wakeup_fd_posix.h
1407
1438
  - src/core/lib/json/json.h
1408
1439
  - src/core/lib/json/json_args.h
1440
+ - src/core/lib/json/json_channel_args.h
1409
1441
  - src/core/lib/json/json_object_loader.cc
1410
1442
  - src/core/lib/json/json_object_loader.h
1411
1443
  - src/core/lib/json/json_reader.cc
@@ -1423,23 +1455,28 @@ files:
1423
1455
  - src/core/lib/promise/activity.cc
1424
1456
  - src/core/lib/promise/activity.h
1425
1457
  - src/core/lib/promise/arena_promise.h
1426
- - src/core/lib/promise/call_push_pull.h
1427
1458
  - src/core/lib/promise/context.h
1428
1459
  - src/core/lib/promise/detail/basic_seq.h
1429
1460
  - src/core/lib/promise/detail/promise_factory.h
1430
1461
  - src/core/lib/promise/detail/promise_like.h
1431
1462
  - src/core/lib/promise/detail/status.h
1463
+ - src/core/lib/promise/detail/switch.h
1432
1464
  - src/core/lib/promise/exec_ctx_wakeup_scheduler.h
1465
+ - src/core/lib/promise/for_each.h
1433
1466
  - src/core/lib/promise/intra_activity_waiter.h
1434
1467
  - src/core/lib/promise/latch.h
1435
1468
  - src/core/lib/promise/loop.h
1436
1469
  - src/core/lib/promise/map.h
1470
+ - src/core/lib/promise/map_pipe.h
1471
+ - src/core/lib/promise/pipe.cc
1472
+ - src/core/lib/promise/pipe.h
1437
1473
  - src/core/lib/promise/poll.h
1438
1474
  - src/core/lib/promise/promise.h
1439
1475
  - src/core/lib/promise/race.h
1440
1476
  - src/core/lib/promise/seq.h
1441
1477
  - src/core/lib/promise/sleep.cc
1442
1478
  - src/core/lib/promise/sleep.h
1479
+ - src/core/lib/promise/try_concurrently.h
1443
1480
  - src/core/lib/promise/try_seq.h
1444
1481
  - src/core/lib/resolver/resolver.cc
1445
1482
  - src/core/lib/resolver/resolver.h
@@ -1591,14 +1628,10 @@ files:
1591
1628
  - src/core/lib/slice/percent_encoding.h
1592
1629
  - src/core/lib/slice/slice.cc
1593
1630
  - src/core/lib/slice/slice.h
1594
- - src/core/lib/slice/slice_api.cc
1595
1631
  - src/core/lib/slice/slice_buffer.cc
1596
1632
  - src/core/lib/slice/slice_buffer.h
1597
- - src/core/lib/slice/slice_buffer_api.cc
1598
1633
  - src/core/lib/slice/slice_internal.h
1599
- - src/core/lib/slice/slice_refcount.cc
1600
1634
  - src/core/lib/slice/slice_refcount.h
1601
- - src/core/lib/slice/slice_refcount_base.h
1602
1635
  - src/core/lib/slice/slice_string_helpers.cc
1603
1636
  - src/core/lib/slice/slice_string_helpers.h
1604
1637
  - src/core/lib/surface/api_trace.cc
@@ -1612,6 +1645,8 @@ files:
1612
1645
  - src/core/lib/surface/call_details.cc
1613
1646
  - src/core/lib/surface/call_log_batch.cc
1614
1647
  - src/core/lib/surface/call_test_only.h
1648
+ - src/core/lib/surface/call_trace.cc
1649
+ - src/core/lib/surface/call_trace.h
1615
1650
  - src/core/lib/surface/channel.cc
1616
1651
  - src/core/lib/surface/channel.h
1617
1652
  - src/core/lib/surface/channel_init.cc
@@ -1905,6 +1940,8 @@ files:
1905
1940
  - third_party/abseil-cpp/absl/base/policy_checks.h
1906
1941
  - third_party/abseil-cpp/absl/base/port.h
1907
1942
  - third_party/abseil-cpp/absl/base/thread_annotations.h
1943
+ - third_party/abseil-cpp/absl/cleanup/cleanup.h
1944
+ - third_party/abseil-cpp/absl/cleanup/internal/cleanup.h
1908
1945
  - third_party/abseil-cpp/absl/container/fixed_array.h
1909
1946
  - third_party/abseil-cpp/absl/container/flat_hash_map.h
1910
1947
  - third_party/abseil-cpp/absl/container/flat_hash_set.h
@@ -1,188 +0,0 @@
1
- //
2
- // Copyright 2018 gRPC authors.
3
- //
4
- // Licensed under the Apache License, Version 2.0 (the "License");
5
- // you may not use this file except in compliance with the License.
6
- // You may obtain a copy of the License at
7
- //
8
- // http://www.apache.org/licenses/LICENSE-2.0
9
- //
10
- // Unless required by applicable law or agreed to in writing, software
11
- // distributed under the License is distributed on an "AS IS" BASIS,
12
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- // See the License for the specific language governing permissions and
14
- // limitations under the License.
15
- //
16
-
17
- #include <grpc/support/port_platform.h>
18
-
19
- #include "src/core/ext/filters/client_channel/resolver_result_parsing.h"
20
-
21
- #include <ctype.h>
22
-
23
- #include <algorithm>
24
- #include <map>
25
- #include <vector>
26
-
27
- #include "absl/memory/memory.h"
28
- #include "absl/status/status.h"
29
- #include "absl/status/statusor.h"
30
- #include "absl/strings/str_cat.h"
31
- #include "absl/types/optional.h"
32
-
33
- #include <grpc/support/log.h>
34
-
35
- #include "src/core/lib/iomgr/error.h"
36
- #include "src/core/lib/json/json_util.h"
37
- #include "src/core/lib/load_balancing/lb_policy_registry.h"
38
-
39
- // As per the retry design, we do not allow more than 5 retry attempts.
40
- #define MAX_MAX_RETRY_ATTEMPTS 5
41
-
42
- namespace grpc_core {
43
- namespace internal {
44
-
45
- size_t ClientChannelServiceConfigParser::ParserIndex() {
46
- return CoreConfiguration::Get().service_config_parser().GetParserIndex(
47
- parser_name());
48
- }
49
-
50
- void ClientChannelServiceConfigParser::Register(
51
- CoreConfiguration::Builder* builder) {
52
- builder->service_config_parser()->RegisterParser(
53
- absl::make_unique<ClientChannelServiceConfigParser>());
54
- }
55
-
56
- namespace {
57
-
58
- absl::optional<std::string> ParseHealthCheckConfig(const Json& field,
59
- grpc_error_handle* error) {
60
- GPR_DEBUG_ASSERT(error != nullptr && GRPC_ERROR_IS_NONE(*error));
61
- if (field.type() != Json::Type::OBJECT) {
62
- *error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
63
- "field:healthCheckConfig error:should be of type object");
64
- return absl::nullopt;
65
- }
66
- std::vector<grpc_error_handle> error_list;
67
- absl::optional<std::string> service_name;
68
- auto it = field.object_value().find("serviceName");
69
- if (it != field.object_value().end()) {
70
- if (it->second.type() != Json::Type::STRING) {
71
- error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
72
- "field:serviceName error:should be of type string"));
73
- } else {
74
- service_name = it->second.string_value();
75
- }
76
- }
77
- *error =
78
- GRPC_ERROR_CREATE_FROM_VECTOR("field:healthCheckConfig", &error_list);
79
- return service_name;
80
- }
81
-
82
- } // namespace
83
-
84
- absl::StatusOr<std::unique_ptr<ServiceConfigParser::ParsedConfig>>
85
- ClientChannelServiceConfigParser::ParseGlobalParams(const ChannelArgs& /*args*/,
86
- const Json& json) {
87
- std::vector<grpc_error_handle> error_list;
88
- const auto& lb_policy_registry =
89
- CoreConfiguration::Get().lb_policy_registry();
90
- // Parse LB config.
91
- RefCountedPtr<LoadBalancingPolicy::Config> parsed_lb_config;
92
- auto it = json.object_value().find("loadBalancingConfig");
93
- if (it != json.object_value().end()) {
94
- auto config = lb_policy_registry.ParseLoadBalancingConfig(it->second);
95
- if (!config.ok()) {
96
- error_list.push_back(GRPC_ERROR_CREATE_FROM_CPP_STRING(absl::StrCat(
97
- "field:loadBalancingConfig error:", config.status().message())));
98
- } else {
99
- parsed_lb_config = std::move(*config);
100
- }
101
- }
102
- // Parse deprecated LB policy.
103
- std::string lb_policy_name;
104
- it = json.object_value().find("loadBalancingPolicy");
105
- if (it != json.object_value().end()) {
106
- if (it->second.type() != Json::Type::STRING) {
107
- error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
108
- "field:loadBalancingPolicy error:type should be string"));
109
- } else {
110
- lb_policy_name = it->second.string_value();
111
- for (size_t i = 0; i < lb_policy_name.size(); ++i) {
112
- lb_policy_name[i] = tolower(lb_policy_name[i]);
113
- }
114
- bool requires_config = false;
115
- if (!lb_policy_registry.LoadBalancingPolicyExists(lb_policy_name.c_str(),
116
- &requires_config)) {
117
- error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
118
- "field:loadBalancingPolicy error:Unknown lb policy"));
119
- } else if (requires_config) {
120
- error_list.push_back(GRPC_ERROR_CREATE_FROM_CPP_STRING(
121
- absl::StrCat("field:loadBalancingPolicy error:", lb_policy_name,
122
- " requires a config. Please use loadBalancingConfig "
123
- "instead.")));
124
- }
125
- }
126
- }
127
- // Parse health check config.
128
- absl::optional<std::string> health_check_service_name;
129
- it = json.object_value().find("healthCheckConfig");
130
- if (it != json.object_value().end()) {
131
- grpc_error_handle parsing_error = GRPC_ERROR_NONE;
132
- health_check_service_name =
133
- ParseHealthCheckConfig(it->second, &parsing_error);
134
- if (!GRPC_ERROR_IS_NONE(parsing_error)) {
135
- error_list.push_back(parsing_error);
136
- }
137
- }
138
- if (!error_list.empty()) {
139
- grpc_error_handle error = GRPC_ERROR_CREATE_FROM_VECTOR(
140
- "Client channel global parser", &error_list);
141
- absl::Status status = absl::InvalidArgumentError(
142
- absl::StrCat("error parsing client channel global parameters: ",
143
- grpc_error_std_string(error)));
144
- GRPC_ERROR_UNREF(error);
145
- return status;
146
- }
147
- return absl::make_unique<ClientChannelGlobalParsedConfig>(
148
- std::move(parsed_lb_config), std::move(lb_policy_name),
149
- std::move(health_check_service_name));
150
- }
151
-
152
- absl::StatusOr<std::unique_ptr<ServiceConfigParser::ParsedConfig>>
153
- ClientChannelServiceConfigParser::ParsePerMethodParams(
154
- const ChannelArgs& /*args*/, const Json& json) {
155
- std::vector<grpc_error_handle> error_list;
156
- // Parse waitForReady.
157
- absl::optional<bool> wait_for_ready;
158
- auto it = json.object_value().find("waitForReady");
159
- if (it != json.object_value().end()) {
160
- if (it->second.type() == Json::Type::JSON_TRUE) {
161
- wait_for_ready.emplace(true);
162
- } else if (it->second.type() == Json::Type::JSON_FALSE) {
163
- wait_for_ready.emplace(false);
164
- } else {
165
- error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
166
- "field:waitForReady error:Type should be true/false"));
167
- }
168
- }
169
- // Parse timeout.
170
- Duration timeout;
171
- ParseJsonObjectFieldAsDuration(json.object_value(), "timeout", &timeout,
172
- &error_list, false);
173
- // Return result.
174
- if (!error_list.empty()) {
175
- grpc_error_handle error =
176
- GRPC_ERROR_CREATE_FROM_VECTOR("Client channel parser", &error_list);
177
- absl::Status status = absl::InvalidArgumentError(
178
- absl::StrCat("error parsing client channel method parameters: ",
179
- grpc_error_std_string(error)));
180
- GRPC_ERROR_UNREF(error);
181
- return status;
182
- }
183
- return absl::make_unique<ClientChannelMethodParsedConfig>(timeout,
184
- wait_for_ready);
185
- }
186
-
187
- } // namespace internal
188
- } // namespace grpc_core