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
@@ -30,7 +30,6 @@
30
30
  #include <utility>
31
31
  #include <vector>
32
32
 
33
- #include "absl/memory/memory.h"
34
33
  #include "absl/status/status.h"
35
34
  #include "absl/types/optional.h"
36
35
 
@@ -48,10 +47,10 @@
48
47
  #include "src/core/lib/gpr/useful.h"
49
48
  #include "src/core/lib/gprpp/debug_location.h"
50
49
  #include "src/core/lib/gprpp/mpscq.h"
50
+ #include "src/core/lib/gprpp/status_helper.h"
51
51
  #include "src/core/lib/iomgr/exec_ctx.h"
52
52
  #include "src/core/lib/iomgr/pollset_set.h"
53
53
  #include "src/core/lib/slice/slice_internal.h"
54
- #include "src/core/lib/slice/slice_refcount.h"
55
54
  #include "src/core/lib/surface/api_trace.h"
56
55
  #include "src/core/lib/surface/call.h"
57
56
  #include "src/core/lib/surface/channel.h"
@@ -220,10 +219,9 @@ class Server::RealRequestMatcher : public RequestMatcherInterface {
220
219
  RequestedCall* rc;
221
220
  while ((rc = reinterpret_cast<RequestedCall*>(
222
221
  requests_per_cq_[i].Pop())) != nullptr) {
223
- server_->FailCall(i, rc, GRPC_ERROR_REF(error));
222
+ server_->FailCall(i, rc, error);
224
223
  }
225
224
  }
226
- GRPC_ERROR_UNREF(error);
227
225
  }
228
226
 
229
227
  size_t request_queue_count() const override {
@@ -337,9 +335,7 @@ class Server::AllocatingRequestMatcherBase : public RequestMatcherInterface {
337
335
 
338
336
  void ZombifyPending() override {}
339
337
 
340
- void KillRequests(grpc_error_handle error) override {
341
- GRPC_ERROR_UNREF(error);
342
- }
338
+ void KillRequests(grpc_error_handle /*error*/) override {}
343
339
 
344
340
  size_t request_queue_count() const override { return 0; }
345
341
 
@@ -449,11 +445,9 @@ class ChannelBroadcaster {
449
445
  // Broadcasts a shutdown on each channel.
450
446
  void BroadcastShutdown(bool send_goaway, grpc_error_handle force_disconnect) {
451
447
  for (const RefCountedPtr<Channel>& channel : channels_) {
452
- SendShutdown(channel->c_ptr(), send_goaway,
453
- GRPC_ERROR_REF(force_disconnect));
448
+ SendShutdown(channel->c_ptr(), send_goaway, force_disconnect);
454
449
  }
455
450
  channels_.clear(); // just for safety against double broadcast
456
- GRPC_ERROR_UNREF(force_disconnect);
457
451
  }
458
452
 
459
453
  private:
@@ -464,7 +458,7 @@ class ChannelBroadcaster {
464
458
 
465
459
  static void ShutdownCleanup(void* arg, grpc_error_handle /*error*/) {
466
460
  ShutdownCleanupArgs* a = static_cast<ShutdownCleanupArgs*>(arg);
467
- grpc_slice_unref_internal(a->slice);
461
+ CSliceUnref(a->slice);
468
462
  delete a;
469
463
  }
470
464
 
@@ -477,10 +471,9 @@ class ChannelBroadcaster {
477
471
  grpc_channel_element* elem;
478
472
  op->goaway_error =
479
473
  send_goaway
480
- ? grpc_error_set_int(
481
- GRPC_ERROR_CREATE_FROM_STATIC_STRING("Server shutdown"),
482
- GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_OK)
483
- : GRPC_ERROR_NONE;
474
+ ? grpc_error_set_int(GRPC_ERROR_CREATE("Server shutdown"),
475
+ StatusIntProperty::kRpcStatus, GRPC_STATUS_OK)
476
+ : absl::OkStatus();
484
477
  sc->slice = grpc_slice_from_copied_string("Server shutdown");
485
478
  op->disconnect_with_error = send_disconnect;
486
479
  elem =
@@ -568,11 +561,11 @@ void Server::Start() {
568
561
  }
569
562
  }
570
563
  if (unregistered_request_matcher_ == nullptr) {
571
- unregistered_request_matcher_ = absl::make_unique<RealRequestMatcher>(this);
564
+ unregistered_request_matcher_ = std::make_unique<RealRequestMatcher>(this);
572
565
  }
573
566
  for (std::unique_ptr<RegisteredMethod>& rm : registered_methods_) {
574
567
  if (rm->matcher == nullptr) {
575
- rm->matcher = absl::make_unique<RealRequestMatcher>(this);
568
+ rm->matcher = std::make_unique<RealRequestMatcher>(this);
576
569
  }
577
570
  }
578
571
  {
@@ -627,7 +620,7 @@ grpc_error_handle Server::SetupTransport(
627
620
  // Initialize chand.
628
621
  chand->InitTransport(Ref(), std::move(*channel), cq_idx, transport,
629
622
  channelz_socket_uuid);
630
- return GRPC_ERROR_NONE;
623
+ return absl::OkStatus();
631
624
  }
632
625
 
633
626
  bool Server::HasOpenConnections() {
@@ -639,7 +632,7 @@ void Server::SetRegisteredMethodAllocator(
639
632
  grpc_completion_queue* cq, void* method_tag,
640
633
  std::function<RegisteredCallAllocation()> allocator) {
641
634
  RegisteredMethod* rm = static_cast<RegisteredMethod*>(method_tag);
642
- rm->matcher = absl::make_unique<AllocatingRequestMatcherRegistered>(
635
+ rm->matcher = std::make_unique<AllocatingRequestMatcherRegistered>(
643
636
  this, cq, rm, std::move(allocator));
644
637
  }
645
638
 
@@ -647,8 +640,8 @@ void Server::SetBatchMethodAllocator(
647
640
  grpc_completion_queue* cq, std::function<BatchCallAllocation()> allocator) {
648
641
  GPR_DEBUG_ASSERT(unregistered_request_matcher_ == nullptr);
649
642
  unregistered_request_matcher_ =
650
- absl::make_unique<AllocatingRequestMatcherBatch>(this, cq,
651
- std::move(allocator));
643
+ std::make_unique<AllocatingRequestMatcherBatch>(this, cq,
644
+ std::move(allocator));
652
645
  }
653
646
 
654
647
  void Server::RegisterCompletionQueue(grpc_completion_queue* cq) {
@@ -689,7 +682,7 @@ Server::RegisteredMethod* Server::RegisterMethod(
689
682
  flags);
690
683
  return nullptr;
691
684
  }
692
- registered_methods_.emplace_back(absl::make_unique<RegisteredMethod>(
685
+ registered_methods_.emplace_back(std::make_unique<RegisteredMethod>(
693
686
  method, host, payload_handling, flags));
694
687
  return registered_methods_.back().get();
695
688
  }
@@ -702,7 +695,7 @@ void Server::FailCall(size_t cq_idx, RequestedCall* rc,
702
695
  grpc_error_handle error) {
703
696
  *rc->call = nullptr;
704
697
  rc->initial_metadata->count = 0;
705
- GPR_ASSERT(!GRPC_ERROR_IS_NONE(error));
698
+ GPR_ASSERT(!error.ok());
706
699
  grpc_cq_end_op(cqs_[cq_idx], rc->tag, error, DoneRequestEvent, rc,
707
700
  &rc->completion);
708
701
  }
@@ -715,8 +708,7 @@ void Server::MaybeFinishShutdown() {
715
708
  }
716
709
  {
717
710
  MutexLock lock(&mu_call_);
718
- KillPendingWorkLocked(
719
- GRPC_ERROR_CREATE_FROM_STATIC_STRING("Server Shutdown"));
711
+ KillPendingWorkLocked(GRPC_ERROR_CREATE("Server Shutdown"));
720
712
  }
721
713
  if (!channels_.empty() || listeners_destroyed_ < listeners_.size()) {
722
714
  if (gpr_time_cmp(gpr_time_sub(gpr_now(GPR_CLOCK_REALTIME),
@@ -734,21 +726,20 @@ void Server::MaybeFinishShutdown() {
734
726
  shutdown_published_ = true;
735
727
  for (auto& shutdown_tag : shutdown_tags_) {
736
728
  Ref().release();
737
- grpc_cq_end_op(shutdown_tag.cq, shutdown_tag.tag, GRPC_ERROR_NONE,
729
+ grpc_cq_end_op(shutdown_tag.cq, shutdown_tag.tag, absl::OkStatus(),
738
730
  DoneShutdownEvent, this, &shutdown_tag.completion);
739
731
  }
740
732
  }
741
733
 
742
734
  void Server::KillPendingWorkLocked(grpc_error_handle error) {
743
735
  if (started_) {
744
- unregistered_request_matcher_->KillRequests(GRPC_ERROR_REF(error));
736
+ unregistered_request_matcher_->KillRequests(error);
745
737
  unregistered_request_matcher_->ZombifyPending();
746
738
  for (std::unique_ptr<RegisteredMethod>& rm : registered_methods_) {
747
- rm->matcher->KillRequests(GRPC_ERROR_REF(error));
739
+ rm->matcher->KillRequests(error);
748
740
  rm->matcher->ZombifyPending();
749
741
  }
750
742
  }
751
- GRPC_ERROR_UNREF(error);
752
743
  }
753
744
 
754
745
  std::vector<RefCountedPtr<Channel>> Server::GetChannelsLocked() const {
@@ -801,7 +792,7 @@ void Server::ShutdownAndNotify(grpc_completion_queue* cq, void* tag) {
801
792
  // Stay locked, and gather up some stuff to do.
802
793
  GPR_ASSERT(grpc_cq_begin_op(cq, tag));
803
794
  if (shutdown_published_) {
804
- grpc_cq_end_op(cq, tag, GRPC_ERROR_NONE, DonePublishedShutdown, nullptr,
795
+ grpc_cq_end_op(cq, tag, absl::OkStatus(), DonePublishedShutdown, nullptr,
805
796
  new grpc_cq_completion);
806
797
  return;
807
798
  }
@@ -814,8 +805,7 @@ void Server::ShutdownAndNotify(grpc_completion_queue* cq, void* tag) {
814
805
  // Collect all unregistered then registered calls.
815
806
  {
816
807
  MutexLock lock(&mu_call_);
817
- KillPendingWorkLocked(
818
- GRPC_ERROR_CREATE_FROM_STATIC_STRING("Server Shutdown"));
808
+ KillPendingWorkLocked(GRPC_ERROR_CREATE("Server Shutdown"));
819
809
  }
820
810
  await_requests = ShutdownUnrefOnShutdownCall();
821
811
  }
@@ -825,7 +815,7 @@ void Server::ShutdownAndNotify(grpc_completion_queue* cq, void* tag) {
825
815
  await_requests->WaitForNotification();
826
816
  }
827
817
  StopListening();
828
- broadcaster.BroadcastShutdown(/*send_goaway=*/true, GRPC_ERROR_NONE);
818
+ broadcaster.BroadcastShutdown(/*send_goaway=*/true, absl::OkStatus());
829
819
  }
830
820
 
831
821
  void Server::StopListening() {
@@ -851,8 +841,7 @@ void Server::CancelAllCalls() {
851
841
  broadcaster.FillChannelsLocked(GetChannelsLocked());
852
842
  }
853
843
  broadcaster.BroadcastShutdown(
854
- /*send_goaway=*/false,
855
- GRPC_ERROR_CREATE_FROM_STATIC_STRING("Cancelling all calls"));
844
+ /*send_goaway=*/false, GRPC_ERROR_CREATE("Cancelling all calls"));
856
845
  }
857
846
 
858
847
  void Server::SendGoaways() {
@@ -861,7 +850,7 @@ void Server::SendGoaways() {
861
850
  MutexLock lock(&mu_global_);
862
851
  broadcaster.FillChannelsLocked(GetChannelsLocked());
863
852
  }
864
- broadcaster.BroadcastShutdown(/*send_goaway=*/true, GRPC_ERROR_NONE);
853
+ broadcaster.BroadcastShutdown(/*send_goaway=*/true, absl::OkStatus());
865
854
  }
866
855
 
867
856
  void Server::Orphan() {
@@ -910,8 +899,7 @@ grpc_call_error Server::ValidateServerRequestAndCq(
910
899
 
911
900
  grpc_call_error Server::QueueRequestedCall(size_t cq_idx, RequestedCall* rc) {
912
901
  if (ShutdownCalled()) {
913
- FailCall(cq_idx, rc,
914
- GRPC_ERROR_CREATE_FROM_STATIC_STRING("Server Shutdown"));
902
+ FailCall(cq_idx, rc, GRPC_ERROR_CREATE("Server Shutdown"));
915
903
  return GRPC_CALL_OK;
916
904
  }
917
905
  RequestMatcherInterface* rm;
@@ -1022,7 +1010,7 @@ void Server::ChannelData::InitTransport(RefCountedPtr<Server> server,
1022
1010
  uint32_t max_probes = 0;
1023
1011
  size_t slots = 2 * num_registered_methods;
1024
1012
  registered_methods_ =
1025
- absl::make_unique<std::vector<ChannelRegisteredMethod>>(slots);
1013
+ std::make_unique<std::vector<ChannelRegisteredMethod>>(slots);
1026
1014
  for (std::unique_ptr<RegisteredMethod>& rm : server_->registered_methods_) {
1027
1015
  Slice host;
1028
1016
  Slice method = Slice::FromExternalString(rm->method);
@@ -1063,8 +1051,7 @@ void Server::ChannelData::InitTransport(RefCountedPtr<Server> server,
1063
1051
  op->set_accept_stream_user_data = this;
1064
1052
  op->start_connectivity_watch = MakeOrphanable<ConnectivityWatcher>(this);
1065
1053
  if (server_->ShutdownCalled()) {
1066
- op->disconnect_with_error =
1067
- GRPC_ERROR_CREATE_FROM_STATIC_STRING("Server shutdown");
1054
+ op->disconnect_with_error = GRPC_ERROR_CREATE("Server shutdown");
1068
1055
  }
1069
1056
  grpc_transport_perform_op(transport, op);
1070
1057
  }
@@ -1074,8 +1061,7 @@ Server::ChannelRegisteredMethod* Server::ChannelData::GetRegisteredMethod(
1074
1061
  if (registered_methods_ == nullptr) return nullptr;
1075
1062
  /* TODO(ctiller): unify these two searches */
1076
1063
  /* check for an exact match with host */
1077
- uint32_t hash =
1078
- MixHash32(grpc_slice_hash_internal(host), grpc_slice_hash_internal(path));
1064
+ uint32_t hash = MixHash32(grpc_slice_hash(host), grpc_slice_hash(path));
1079
1065
  for (size_t i = 0; i <= registered_method_max_probes_; i++) {
1080
1066
  ChannelRegisteredMethod* rm =
1081
1067
  &(*registered_methods_)[(hash + i) % registered_methods_->size()];
@@ -1086,7 +1072,7 @@ Server::ChannelRegisteredMethod* Server::ChannelData::GetRegisteredMethod(
1086
1072
  return rm;
1087
1073
  }
1088
1074
  /* check for a wildcard method definition (no host set) */
1089
- hash = MixHash32(0, grpc_slice_hash_internal(path));
1075
+ hash = MixHash32(0, grpc_slice_hash(path));
1090
1076
  for (size_t i = 0; i <= registered_method_max_probes_; i++) {
1091
1077
  ChannelRegisteredMethod* rm =
1092
1078
  &(*registered_methods_)[(hash + i) % registered_methods_->size()];
@@ -1116,8 +1102,7 @@ void Server::ChannelData::AcceptStream(void* arg, grpc_transport* /*transport*/,
1116
1102
  grpc_call_element* elem =
1117
1103
  grpc_call_stack_element(grpc_call_get_call_stack(call), 0);
1118
1104
  auto* calld = static_cast<Server::CallData*>(elem->call_data);
1119
- if (!GRPC_ERROR_IS_NONE(error)) {
1120
- GRPC_ERROR_UNREF(error);
1105
+ if (!error.ok()) {
1121
1106
  calld->FailCallCreation();
1122
1107
  return;
1123
1108
  }
@@ -1161,7 +1146,7 @@ grpc_error_handle Server::ChannelData::InitChannelElement(
1161
1146
  GPR_ASSERT(args->is_first);
1162
1147
  GPR_ASSERT(!args->is_last);
1163
1148
  new (elem->channel_data) ChannelData();
1164
- return GRPC_ERROR_NONE;
1149
+ return absl::OkStatus();
1165
1150
  }
1166
1151
 
1167
1152
  void Server::ChannelData::DestroyChannelElement(grpc_channel_element* elem) {
@@ -1187,7 +1172,6 @@ Server::CallData::CallData(grpc_call_element* elem,
1187
1172
 
1188
1173
  Server::CallData::~CallData() {
1189
1174
  GPR_ASSERT(state_.load(std::memory_order_relaxed) != CallState::PENDING);
1190
- GRPC_ERROR_UNREF(recv_initial_metadata_error_);
1191
1175
  grpc_metadata_array_destroy(&initial_metadata_);
1192
1176
  grpc_byte_buffer_destroy(payload_);
1193
1177
  }
@@ -1240,9 +1224,8 @@ void Server::CallData::Publish(size_t cq_idx, RequestedCall* rc) {
1240
1224
  case RequestedCall::Type::BATCH_CALL:
1241
1225
  GPR_ASSERT(host_.has_value());
1242
1226
  GPR_ASSERT(path_.has_value());
1243
- rc->data.batch.details->host = grpc_slice_ref_internal(host_->c_slice());
1244
- rc->data.batch.details->method =
1245
- grpc_slice_ref_internal(path_->c_slice());
1227
+ rc->data.batch.details->host = CSliceRef(host_->c_slice());
1228
+ rc->data.batch.details->method = CSliceRef(path_->c_slice());
1246
1229
  rc->data.batch.details->deadline =
1247
1230
  deadline_.as_timespec(GPR_CLOCK_MONOTONIC);
1248
1231
  break;
@@ -1255,9 +1238,9 @@ void Server::CallData::Publish(size_t cq_idx, RequestedCall* rc) {
1255
1238
  }
1256
1239
  break;
1257
1240
  default:
1258
- GPR_UNREACHABLE_CODE(return );
1241
+ GPR_UNREACHABLE_CODE(return);
1259
1242
  }
1260
- grpc_cq_end_op(cq_new_, rc->tag, GRPC_ERROR_NONE, Server::DoneRequestEvent,
1243
+ grpc_cq_end_op(cq_new_, rc->tag, absl::OkStatus(), Server::DoneRequestEvent,
1261
1244
  rc, &rc->completion, true);
1262
1245
  }
1263
1246
 
@@ -1267,7 +1250,7 @@ void Server::CallData::PublishNewRpc(void* arg, grpc_error_handle error) {
1267
1250
  auto* chand = static_cast<Server::ChannelData*>(call_elem->channel_data);
1268
1251
  RequestMatcherInterface* rm = calld->matcher_;
1269
1252
  Server* server = rm->server();
1270
- if (!GRPC_ERROR_IS_NONE(error) || server->ShutdownCalled()) {
1253
+ if (!error.ok() || server->ShutdownCalled()) {
1271
1254
  calld->state_.store(CallState::ZOMBIED, std::memory_order_relaxed);
1272
1255
  calld->KillZombie();
1273
1256
  return;
@@ -1286,7 +1269,7 @@ void KillZombieClosure(void* call, grpc_error_handle /*error*/) {
1286
1269
  void Server::CallData::KillZombie() {
1287
1270
  GRPC_CLOSURE_INIT(&kill_zombie_closure_, KillZombieClosure, call_,
1288
1271
  grpc_schedule_on_exec_ctx);
1289
- ExecCtx::Run(DEBUG_LOCATION, &kill_zombie_closure_, GRPC_ERROR_NONE);
1272
+ ExecCtx::Run(DEBUG_LOCATION, &kill_zombie_closure_, absl::OkStatus());
1290
1273
  }
1291
1274
 
1292
1275
  void Server::CallData::StartNewRpc(grpc_call_element* elem) {
@@ -1311,7 +1294,7 @@ void Server::CallData::StartNewRpc(grpc_call_element* elem) {
1311
1294
  // Start recv_message op if needed.
1312
1295
  switch (payload_handling) {
1313
1296
  case GRPC_SRM_PAYLOAD_NONE:
1314
- PublishNewRpc(elem, GRPC_ERROR_NONE);
1297
+ PublishNewRpc(elem, absl::OkStatus());
1315
1298
  break;
1316
1299
  case GRPC_SRM_PAYLOAD_READ_INITIAL_BYTE_BUFFER: {
1317
1300
  grpc_op op;
@@ -1331,9 +1314,9 @@ void Server::CallData::RecvInitialMetadataBatchComplete(
1331
1314
  void* arg, grpc_error_handle error) {
1332
1315
  grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
1333
1316
  auto* calld = static_cast<Server::CallData*>(elem->call_data);
1334
- if (!GRPC_ERROR_IS_NONE(error)) {
1317
+ if (!error.ok()) {
1335
1318
  gpr_log(GPR_DEBUG, "Failed call creation: %s",
1336
- grpc_error_std_string(error).c_str());
1319
+ StatusToString(error).c_str());
1337
1320
  calld->FailCallCreation();
1338
1321
  return;
1339
1322
  }
@@ -1363,13 +1346,11 @@ void Server::CallData::RecvInitialMetadataReady(void* arg,
1363
1346
  grpc_error_handle error) {
1364
1347
  grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
1365
1348
  CallData* calld = static_cast<CallData*>(elem->call_data);
1366
- if (GRPC_ERROR_IS_NONE(error)) {
1349
+ if (error.ok()) {
1367
1350
  calld->path_ = calld->recv_initial_metadata_->Take(HttpPathMetadata());
1368
1351
  auto* host =
1369
1352
  calld->recv_initial_metadata_->get_pointer(HttpAuthorityMetadata());
1370
1353
  if (host != nullptr) calld->host_.emplace(host->Ref());
1371
- } else {
1372
- (void)GRPC_ERROR_REF(error);
1373
1354
  }
1374
1355
  auto op_deadline = calld->recv_initial_metadata_->get(GrpcTimeoutMetadata());
1375
1356
  if (op_deadline.has_value()) {
@@ -1380,10 +1361,9 @@ void Server::CallData::RecvInitialMetadataReady(void* arg,
1380
1361
  } else {
1381
1362
  /* Pass the error reference to calld->recv_initial_metadata_error */
1382
1363
  grpc_error_handle src_error = error;
1383
- error = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
1384
- "Missing :authority or :path", &src_error, 1);
1385
- GRPC_ERROR_UNREF(src_error);
1386
- calld->recv_initial_metadata_error_ = GRPC_ERROR_REF(error);
1364
+ error = GRPC_ERROR_CREATE_REFERENCING("Missing :authority or :path",
1365
+ &src_error, 1);
1366
+ calld->recv_initial_metadata_error_ = error;
1387
1367
  }
1388
1368
  grpc_closure* closure = calld->original_recv_initial_metadata_ready_;
1389
1369
  calld->original_recv_initial_metadata_ready_ = nullptr;
@@ -1401,7 +1381,7 @@ void Server::CallData::RecvTrailingMetadataReady(void* arg,
1401
1381
  grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
1402
1382
  CallData* calld = static_cast<CallData*>(elem->call_data);
1403
1383
  if (calld->original_recv_initial_metadata_ready_ != nullptr) {
1404
- calld->recv_trailing_metadata_error_ = GRPC_ERROR_REF(error);
1384
+ calld->recv_trailing_metadata_error_ = error;
1405
1385
  calld->seen_recv_trailing_metadata_ready_ = true;
1406
1386
  GRPC_CLOSURE_INIT(&calld->recv_trailing_metadata_ready_,
1407
1387
  RecvTrailingMetadataReady, elem,
@@ -1411,9 +1391,7 @@ void Server::CallData::RecvTrailingMetadataReady(void* arg,
1411
1391
  "until after recv_initial_metadata_ready");
1412
1392
  return;
1413
1393
  }
1414
- error =
1415
- grpc_error_add_child(GRPC_ERROR_REF(error),
1416
- GRPC_ERROR_REF(calld->recv_initial_metadata_error_));
1394
+ error = grpc_error_add_child(error, calld->recv_initial_metadata_error_);
1417
1395
  Closure::Run(DEBUG_LOCATION, calld->original_recv_trailing_metadata_ready_,
1418
1396
  error);
1419
1397
  }
@@ -1422,7 +1400,7 @@ grpc_error_handle Server::CallData::InitCallElement(
1422
1400
  grpc_call_element* elem, const grpc_call_element_args* args) {
1423
1401
  auto* chand = static_cast<ChannelData*>(elem->channel_data);
1424
1402
  new (elem->call_data) Server::CallData(elem, *args, chand->server());
1425
- return GRPC_ERROR_NONE;
1403
+ return absl::OkStatus();
1426
1404
  }
1427
1405
 
1428
1406
  void Server::CallData::DestroyCallElement(
@@ -31,7 +31,6 @@
31
31
  #include <vector>
32
32
 
33
33
  #include "absl/base/thread_annotations.h"
34
- #include "absl/memory/memory.h"
35
34
  #include "absl/status/statusor.h"
36
35
  #include "absl/types/optional.h"
37
36
 
@@ -342,12 +341,12 @@ class Server : public InternallyRefCounted<Server>,
342
341
  grpc_metadata_batch* recv_initial_metadata_ = nullptr;
343
342
  grpc_closure recv_initial_metadata_ready_;
344
343
  grpc_closure* original_recv_initial_metadata_ready_;
345
- grpc_error_handle recv_initial_metadata_error_ = GRPC_ERROR_NONE;
344
+ grpc_error_handle recv_initial_metadata_error_;
346
345
 
347
346
  bool seen_recv_trailing_metadata_ready_ = false;
348
347
  grpc_closure recv_trailing_metadata_ready_;
349
348
  grpc_closure* original_recv_trailing_metadata_ready_;
350
- grpc_error_handle recv_trailing_metadata_error_ = GRPC_ERROR_NONE;
349
+ grpc_error_handle recv_trailing_metadata_error_;
351
350
 
352
351
  grpc_closure publish_;
353
352
 
@@ -426,7 +425,7 @@ class Server : public InternallyRefCounted<Server>,
426
425
  MaybeFinishShutdown();
427
426
  return nullptr;
428
427
  }
429
- requests_complete_ = absl::make_unique<Notification>();
428
+ requests_complete_ = std::make_unique<Notification>();
430
429
  return requests_complete_.get();
431
430
  }
432
431
 
@@ -20,6 +20,7 @@
20
20
 
21
21
  #include "src/core/lib/surface/validate_metadata.h"
22
22
 
23
+ #include "absl/status/status.h"
23
24
  #include "absl/strings/string_view.h"
24
25
 
25
26
  #include <grpc/grpc.h>
@@ -27,6 +28,7 @@
27
28
  #include "src/core/lib/gpr/string.h"
28
29
  #include "src/core/lib/gprpp/bitset.h"
29
30
  #include "src/core/lib/gprpp/memory.h"
31
+ #include "src/core/lib/gprpp/status_helper.h"
30
32
  #include "src/core/lib/iomgr/error.h"
31
33
 
32
34
  static grpc_error_handle conforms_to(const grpc_slice& slice,
@@ -41,19 +43,19 @@ static grpc_error_handle conforms_to(const grpc_slice& slice,
41
43
  reinterpret_cast<const char*> GRPC_SLICE_START_PTR(slice),
42
44
  GRPC_SLICE_LENGTH(slice), GPR_DUMP_HEX | GPR_DUMP_ASCII, &len));
43
45
  grpc_error_handle error = grpc_error_set_str(
44
- grpc_error_set_int(GRPC_ERROR_CREATE_FROM_COPIED_STRING(err_desc),
45
- GRPC_ERROR_INT_OFFSET,
46
+ grpc_error_set_int(GRPC_ERROR_CREATE(err_desc),
47
+ grpc_core::StatusIntProperty::kOffset,
46
48
  p - GRPC_SLICE_START_PTR(slice)),
47
- GRPC_ERROR_STR_RAW_BYTES, absl::string_view(ptr.get(), len));
49
+ grpc_core::StatusStrProperty::kRawBytes,
50
+ absl::string_view(ptr.get(), len));
48
51
  return error;
49
52
  }
50
53
  }
51
- return GRPC_ERROR_NONE;
54
+ return absl::OkStatus();
52
55
  }
53
56
 
54
57
  static int error2int(grpc_error_handle error) {
55
- int r = (GRPC_ERROR_IS_NONE(error));
56
- GRPC_ERROR_UNREF(error);
58
+ int r = (error.ok());
57
59
  return r;
58
60
  }
59
61
 
@@ -73,16 +75,13 @@ constexpr LegalHeaderKeyBits g_legal_header_key_bits;
73
75
 
74
76
  grpc_error_handle grpc_validate_header_key_is_legal(const grpc_slice& slice) {
75
77
  if (GRPC_SLICE_LENGTH(slice) == 0) {
76
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
77
- "Metadata keys cannot be zero length");
78
+ return GRPC_ERROR_CREATE("Metadata keys cannot be zero length");
78
79
  }
79
80
  if (GRPC_SLICE_LENGTH(slice) > UINT32_MAX) {
80
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
81
- "Metadata keys cannot be larger than UINT32_MAX");
81
+ return GRPC_ERROR_CREATE("Metadata keys cannot be larger than UINT32_MAX");
82
82
  }
83
83
  if (GRPC_SLICE_START_PTR(slice)[0] == ':') {
84
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
85
- "Metadata keys cannot start with :");
84
+ return GRPC_ERROR_CREATE("Metadata keys cannot start with :");
86
85
  }
87
86
  return conforms_to(slice, g_legal_header_key_bits, "Illegal header key");
88
87
  }
@@ -23,6 +23,6 @@
23
23
 
24
24
  #include <grpc/grpc.h>
25
25
 
26
- const char* grpc_version_string(void) { return "28.0.0"; }
26
+ const char* grpc_version_string(void) { return "29.0.0"; }
27
27
 
28
- const char* grpc_g_stands_for(void) { return "galley"; }
28
+ const char* grpc_g_stands_for(void) { return "galaxy"; }
@@ -64,12 +64,12 @@ class AsyncConnectivityStateWatcherInterface::Notifier {
64
64
  : watcher_(std::move(watcher)), state_(state), status_(status) {
65
65
  if (work_serializer != nullptr) {
66
66
  work_serializer->Run(
67
- [this]() { SendNotification(this, GRPC_ERROR_NONE); },
67
+ [this]() { SendNotification(this, absl::OkStatus()); },
68
68
  DEBUG_LOCATION);
69
69
  } else {
70
70
  GRPC_CLOSURE_INIT(&closure_, SendNotification, this,
71
71
  grpc_schedule_on_exec_ctx);
72
- ExecCtx::Run(DEBUG_LOCATION, &closure_, GRPC_ERROR_NONE);
72
+ ExecCtx::Run(DEBUG_LOCATION, &closure_, absl::OkStatus());
73
73
  }
74
74
  }
75
75
 
@@ -32,7 +32,7 @@
32
32
  #include "src/core/lib/transport/status_conversion.h"
33
33
 
34
34
  static grpc_error_handle recursively_find_error_with_field(
35
- grpc_error_handle error, grpc_error_ints which) {
35
+ grpc_error_handle error, grpc_core::StatusIntProperty which) {
36
36
  intptr_t unused;
37
37
  // If the error itself has a status code, return it.
38
38
  if (grpc_error_get_int(error, which, &unused)) {
@@ -41,9 +41,9 @@ static grpc_error_handle recursively_find_error_with_field(
41
41
  std::vector<absl::Status> children = grpc_core::StatusGetChildren(error);
42
42
  for (const absl::Status& child : children) {
43
43
  grpc_error_handle result = recursively_find_error_with_field(child, which);
44
- if (!GRPC_ERROR_IS_NONE(result)) return result;
44
+ if (!result.ok()) return result;
45
45
  }
46
- return GRPC_ERROR_NONE;
46
+ return absl::OkStatus();
47
47
  }
48
48
 
49
49
  void grpc_error_get_status(grpc_error_handle error,
@@ -52,14 +52,14 @@ void grpc_error_get_status(grpc_error_handle error,
52
52
  grpc_http2_error_code* http_error,
53
53
  const char** error_string) {
54
54
  // Fast path: We expect no error.
55
- if (GPR_LIKELY(GRPC_ERROR_IS_NONE(error))) {
55
+ if (GPR_LIKELY(error.ok())) {
56
56
  if (code != nullptr) *code = GRPC_STATUS_OK;
57
57
  if (message != nullptr) {
58
58
  // Normally, we call grpc_error_get_str(
59
- // error, GRPC_ERROR_STR_GRPC_MESSAGE, message).
59
+ // error, grpc_core::StatusStrProperty::kGrpcMessage, message).
60
60
  // We can fastpath since we know that:
61
61
  // 1) Error is null
62
- // 2) which == GRPC_ERROR_STR_GRPC_MESSAGE
62
+ // 2) which == grpc_core::StatusStrProperty::kGrpcMessage
63
63
  // 3) The resulting message is statically known.
64
64
  // 4) Said resulting message is "".
65
65
  // This means 3 movs, instead of 10s of instructions and a strlen.
@@ -73,24 +73,26 @@ void grpc_error_get_status(grpc_error_handle error,
73
73
 
74
74
  // Start with the parent error and recurse through the tree of children
75
75
  // until we find the first one that has a status code.
76
- grpc_error_handle found_error =
77
- recursively_find_error_with_field(error, GRPC_ERROR_INT_GRPC_STATUS);
78
- if (GRPC_ERROR_IS_NONE(found_error)) {
76
+ grpc_error_handle found_error = recursively_find_error_with_field(
77
+ error, grpc_core::StatusIntProperty::kRpcStatus);
78
+ if (found_error.ok()) {
79
79
  /// If no grpc-status exists, retry through the tree to find a http2 error
80
80
  /// code
81
- found_error =
82
- recursively_find_error_with_field(error, GRPC_ERROR_INT_HTTP2_ERROR);
81
+ found_error = recursively_find_error_with_field(
82
+ error, grpc_core::StatusIntProperty::kHttp2Error);
83
83
  }
84
84
 
85
85
  // If we found an error with a status code above, use that; otherwise,
86
86
  // fall back to using the parent error.
87
- if (GRPC_ERROR_IS_NONE(found_error)) found_error = error;
87
+ if (found_error.ok()) found_error = error;
88
88
 
89
89
  grpc_status_code status = GRPC_STATUS_UNKNOWN;
90
90
  intptr_t integer;
91
- if (grpc_error_get_int(found_error, GRPC_ERROR_INT_GRPC_STATUS, &integer)) {
91
+ if (grpc_error_get_int(found_error, grpc_core::StatusIntProperty::kRpcStatus,
92
+ &integer)) {
92
93
  status = static_cast<grpc_status_code>(integer);
93
- } else if (grpc_error_get_int(found_error, GRPC_ERROR_INT_HTTP2_ERROR,
94
+ } else if (grpc_error_get_int(found_error,
95
+ grpc_core::StatusIntProperty::kHttp2Error,
94
96
  &integer)) {
95
97
  status = grpc_http2_error_to_grpc_status(
96
98
  static_cast<grpc_http2_error_code>(integer), deadline);
@@ -100,30 +102,33 @@ void grpc_error_get_status(grpc_error_handle error,
100
102
  if (code != nullptr) *code = status;
101
103
 
102
104
  if (error_string != nullptr && status != GRPC_STATUS_OK) {
103
- *error_string = gpr_strdup(grpc_error_std_string(error).c_str());
105
+ *error_string = gpr_strdup(grpc_core::StatusToString(error).c_str());
104
106
  }
105
107
 
106
108
  if (http_error != nullptr) {
107
- if (grpc_error_get_int(found_error, GRPC_ERROR_INT_HTTP2_ERROR, &integer)) {
109
+ if (grpc_error_get_int(
110
+ found_error, grpc_core::StatusIntProperty::kHttp2Error, &integer)) {
108
111
  *http_error = static_cast<grpc_http2_error_code>(integer);
109
- } else if (grpc_error_get_int(found_error, GRPC_ERROR_INT_GRPC_STATUS,
112
+ } else if (grpc_error_get_int(found_error,
113
+ grpc_core::StatusIntProperty::kRpcStatus,
110
114
  &integer)) {
111
115
  *http_error =
112
116
  grpc_status_to_http2_error(static_cast<grpc_status_code>(integer));
113
117
  } else {
114
- *http_error = GRPC_ERROR_IS_NONE(found_error) ? GRPC_HTTP2_NO_ERROR
115
- : GRPC_HTTP2_INTERNAL_ERROR;
118
+ *http_error =
119
+ found_error.ok() ? GRPC_HTTP2_NO_ERROR : GRPC_HTTP2_INTERNAL_ERROR;
116
120
  }
117
121
  }
118
122
 
119
123
  // If the error has a status message, use it. Otherwise, fall back to
120
124
  // the error description.
121
125
  if (message != nullptr) {
122
- if (!grpc_error_get_str(found_error, GRPC_ERROR_STR_GRPC_MESSAGE,
123
- message)) {
124
- if (!grpc_error_get_str(found_error, GRPC_ERROR_STR_DESCRIPTION,
126
+ if (!grpc_error_get_str(
127
+ found_error, grpc_core::StatusStrProperty::kGrpcMessage, message)) {
128
+ if (!grpc_error_get_str(found_error,
129
+ grpc_core::StatusStrProperty::kDescription,
125
130
  message)) {
126
- *message = grpc_error_std_string(error);
131
+ *message = grpc_core::StatusToString(error);
127
132
  }
128
133
  }
129
134
  }
@@ -143,16 +148,17 @@ absl::Status grpc_error_to_absl_status(grpc_error_handle error) {
143
148
  grpc_error_handle absl_status_to_grpc_error(absl::Status status) {
144
149
  // Special error checks
145
150
  if (status.ok()) {
146
- return GRPC_ERROR_NONE;
151
+ return absl::OkStatus();
147
152
  }
148
- return grpc_error_set_int(
149
- GRPC_ERROR_CREATE_FROM_STRING_VIEW(status.message()),
150
- GRPC_ERROR_INT_GRPC_STATUS, static_cast<grpc_status_code>(status.code()));
153
+ return grpc_error_set_int(GRPC_ERROR_CREATE(status.message()),
154
+ grpc_core::StatusIntProperty::kRpcStatus,
155
+ static_cast<grpc_status_code>(status.code()));
151
156
  }
152
157
 
153
158
  bool grpc_error_has_clear_grpc_status(grpc_error_handle error) {
154
159
  intptr_t unused;
155
- if (grpc_error_get_int(error, GRPC_ERROR_INT_GRPC_STATUS, &unused)) {
160
+ if (grpc_error_get_int(error, grpc_core::StatusIntProperty::kRpcStatus,
161
+ &unused)) {
156
162
  return true;
157
163
  }
158
164
  std::vector<absl::Status> children = grpc_core::StatusGetChildren(error);