grpc 1.37.1 → 1.39.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 (636) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +96 -59
  3. data/include/grpc/event_engine/README.md +38 -0
  4. data/include/grpc/event_engine/endpoint_config.h +48 -0
  5. data/include/grpc/event_engine/event_engine.h +334 -0
  6. data/include/grpc/event_engine/port.h +41 -0
  7. data/include/grpc/event_engine/slice_allocator.h +91 -0
  8. data/include/grpc/grpc.h +11 -4
  9. data/include/grpc/grpc_security.h +32 -0
  10. data/include/grpc/grpc_security_constants.h +15 -0
  11. data/include/grpc/impl/codegen/grpc_types.h +28 -13
  12. data/include/grpc/impl/codegen/port_platform.h +22 -0
  13. data/include/grpc/module.modulemap +14 -14
  14. data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
  15. data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
  16. data/src/core/ext/filters/client_channel/client_channel.cc +630 -3103
  17. data/src/core/ext/filters/client_channel/client_channel.h +489 -55
  18. data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
  19. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
  20. data/src/core/ext/filters/client_channel/config_selector.h +1 -1
  21. data/src/core/ext/filters/client_channel/connector.h +1 -1
  22. data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
  23. data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
  24. data/src/core/ext/filters/client_channel/health/health_check_client.cc +28 -27
  25. data/src/core/ext/filters/client_channel/health/health_check_client.h +30 -29
  26. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
  27. data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
  30. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
  31. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
  32. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
  33. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
  34. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +755 -0
  35. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
  36. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
  37. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
  38. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
  39. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +46 -54
  40. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
  41. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
  42. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +146 -155
  43. data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
  44. data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
  45. data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
  46. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
  47. data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
  48. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +24 -18
  49. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
  50. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
  51. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
  52. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
  53. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
  54. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
  55. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
  56. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
  57. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
  58. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  59. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +18 -12
  60. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
  61. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
  62. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +20 -13
  63. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
  64. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +60 -32
  65. data/src/core/ext/filters/client_channel/resolver.h +2 -2
  66. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
  67. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
  68. data/src/core/ext/filters/client_channel/retry_filter.cc +2449 -0
  69. data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
  70. data/src/core/ext/filters/client_channel/retry_service_config.cc +306 -0
  71. data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
  72. data/src/core/ext/filters/client_channel/server_address.cc +1 -1
  73. data/src/core/ext/filters/client_channel/service_config.cc +15 -14
  74. data/src/core/ext/filters/client_channel/service_config.h +7 -6
  75. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
  76. data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
  77. data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
  78. data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
  79. data/src/core/ext/filters/client_channel/subchannel.h +7 -6
  80. data/src/core/ext/filters/client_idle/client_idle_filter.cc +17 -16
  81. data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
  82. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +25 -18
  83. data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
  84. data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
  85. data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
  86. data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
  87. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
  88. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
  89. data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
  90. data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
  91. data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
  92. data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
  93. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
  94. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
  95. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
  96. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
  97. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +3 -2
  98. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
  99. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -45
  100. data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
  101. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
  102. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +5 -4
  103. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
  104. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -120
  105. data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
  106. data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
  107. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
  108. data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
  109. data/src/core/ext/transport/chttp2/transport/frame_data.cc +8 -8
  110. data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
  111. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
  112. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
  113. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
  114. data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
  115. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
  116. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
  117. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
  118. data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
  119. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
  120. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
  121. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
  122. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
  123. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
  124. data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
  125. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  126. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
  127. data/src/core/ext/transport/chttp2/transport/internal.h +32 -27
  128. data/src/core/ext/transport/chttp2/transport/parsing.cc +65 -58
  129. data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
  130. data/src/core/ext/transport/inproc/inproc_transport.cc +72 -60
  131. data/src/core/ext/xds/certificate_provider_factory.h +1 -1
  132. data/src/core/ext/xds/certificate_provider_store.h +3 -3
  133. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
  134. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
  135. data/src/core/ext/xds/xds_api.cc +348 -199
  136. data/src/core/ext/xds/xds_api.h +21 -12
  137. data/src/core/ext/xds/xds_bootstrap.cc +97 -159
  138. data/src/core/ext/xds/xds_bootstrap.h +19 -24
  139. data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
  140. data/src/core/ext/xds/xds_certificate_provider.h +4 -4
  141. data/src/core/ext/xds/xds_channel_args.h +5 -2
  142. data/src/core/ext/xds/xds_client.cc +310 -178
  143. data/src/core/ext/xds/xds_client.h +41 -27
  144. data/src/core/ext/xds/xds_client_stats.h +3 -2
  145. data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
  146. data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
  147. data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
  148. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +16 -20
  149. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +16 -11
  150. data/src/core/lib/channel/channel_stack.cc +10 -9
  151. data/src/core/lib/channel/channel_stack.h +10 -9
  152. data/src/core/lib/channel/channel_stack_builder.cc +2 -2
  153. data/src/core/lib/channel/channel_stack_builder.h +1 -1
  154. data/src/core/lib/channel/channelz.cc +21 -13
  155. data/src/core/lib/channel/channelz.h +3 -0
  156. data/src/core/lib/channel/connected_channel.cc +4 -4
  157. data/src/core/lib/channel/handshaker.cc +7 -6
  158. data/src/core/lib/channel/handshaker.h +5 -5
  159. data/src/core/lib/event_engine/endpoint_config.cc +46 -0
  160. data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
  161. data/src/core/lib/event_engine/event_engine.cc +50 -0
  162. data/src/core/lib/event_engine/slice_allocator.cc +89 -0
  163. data/src/core/lib/event_engine/sockaddr.cc +40 -0
  164. data/src/core/lib/event_engine/sockaddr.h +44 -0
  165. data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
  166. data/src/core/lib/gprpp/ref_counted.h +28 -14
  167. data/src/core/lib/gprpp/status_helper.cc +407 -0
  168. data/src/core/lib/gprpp/status_helper.h +183 -0
  169. data/src/core/lib/http/httpcli.cc +11 -11
  170. data/src/core/lib/http/httpcli_security_connector.cc +11 -7
  171. data/src/core/lib/http/parser.cc +16 -16
  172. data/src/core/lib/http/parser.h +4 -4
  173. data/src/core/lib/iomgr/buffer_list.cc +7 -9
  174. data/src/core/lib/iomgr/buffer_list.h +4 -5
  175. data/src/core/lib/iomgr/call_combiner.cc +15 -12
  176. data/src/core/lib/iomgr/call_combiner.h +12 -14
  177. data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
  178. data/src/core/lib/iomgr/cfstream_handle.h +1 -1
  179. data/src/core/lib/iomgr/closure.h +7 -6
  180. data/src/core/lib/iomgr/combiner.cc +14 -12
  181. data/src/core/lib/iomgr/combiner.h +2 -2
  182. data/src/core/lib/iomgr/endpoint.cc +1 -1
  183. data/src/core/lib/iomgr/endpoint.h +2 -2
  184. data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
  185. data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +33 -0
  186. data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
  187. data/src/core/lib/iomgr/error.cc +168 -61
  188. data/src/core/lib/iomgr/error.h +217 -106
  189. data/src/core/lib/iomgr/error_cfstream.cc +3 -2
  190. data/src/core/lib/iomgr/error_cfstream.h +2 -2
  191. data/src/core/lib/iomgr/error_internal.h +5 -1
  192. data/src/core/lib/iomgr/ev_apple.cc +5 -5
  193. data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
  194. data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
  195. data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
  196. data/src/core/lib/iomgr/ev_posix.cc +9 -8
  197. data/src/core/lib/iomgr/ev_posix.h +9 -9
  198. data/src/core/lib/iomgr/event_engine/closure.cc +54 -0
  199. data/src/core/lib/iomgr/event_engine/closure.h +33 -0
  200. data/src/core/lib/iomgr/event_engine/endpoint.cc +194 -0
  201. data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
  202. data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
  203. data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
  204. data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
  205. data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
  206. data/src/core/lib/iomgr/event_engine/promise.h +51 -0
  207. data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
  208. data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
  209. data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
  210. data/src/core/lib/iomgr/event_engine/tcp.cc +243 -0
  211. data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
  212. data/src/core/lib/iomgr/exec_ctx.cc +12 -4
  213. data/src/core/lib/iomgr/exec_ctx.h +4 -5
  214. data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
  215. data/src/core/lib/iomgr/executor/threadpool.h +2 -2
  216. data/src/core/lib/iomgr/executor.cc +8 -8
  217. data/src/core/lib/iomgr/executor.h +2 -2
  218. data/src/core/lib/iomgr/iomgr.cc +2 -2
  219. data/src/core/lib/iomgr/iomgr.h +1 -1
  220. data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
  221. data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
  222. data/src/core/lib/iomgr/iomgr_internal.h +3 -3
  223. data/src/core/lib/iomgr/iomgr_posix.cc +3 -1
  224. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -12
  225. data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
  226. data/src/core/lib/iomgr/load_file.cc +4 -4
  227. data/src/core/lib/iomgr/load_file.h +2 -2
  228. data/src/core/lib/iomgr/lockfree_event.cc +5 -5
  229. data/src/core/lib/iomgr/lockfree_event.h +1 -1
  230. data/src/core/lib/iomgr/pollset.cc +5 -5
  231. data/src/core/lib/iomgr/pollset.h +9 -9
  232. data/src/core/lib/iomgr/pollset_custom.cc +7 -7
  233. data/src/core/lib/iomgr/pollset_custom.h +3 -1
  234. data/src/core/lib/iomgr/pollset_uv.cc +3 -1
  235. data/src/core/lib/iomgr/pollset_uv.h +5 -1
  236. data/src/core/lib/iomgr/pollset_windows.cc +5 -5
  237. data/src/core/lib/iomgr/port.h +7 -5
  238. data/src/core/lib/iomgr/python_util.h +1 -1
  239. data/src/core/lib/iomgr/resolve_address.cc +8 -4
  240. data/src/core/lib/iomgr/resolve_address.h +12 -6
  241. data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
  242. data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
  243. data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
  244. data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
  245. data/src/core/lib/iomgr/resource_quota.cc +11 -10
  246. data/src/core/lib/iomgr/sockaddr.h +1 -0
  247. data/src/core/lib/iomgr/socket_mutator.cc +15 -2
  248. data/src/core/lib/iomgr/socket_mutator.h +26 -2
  249. data/src/core/lib/iomgr/socket_utils_common_posix.cc +24 -22
  250. data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
  251. data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
  252. data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
  253. data/src/core/lib/iomgr/tcp_client_posix.cc +22 -19
  254. data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
  255. data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
  256. data/src/core/lib/iomgr/tcp_custom.cc +14 -16
  257. data/src/core/lib/iomgr/tcp_custom.h +13 -12
  258. data/src/core/lib/iomgr/tcp_posix.cc +78 -73
  259. data/src/core/lib/iomgr/tcp_posix.h +8 -0
  260. data/src/core/lib/iomgr/tcp_server.cc +6 -6
  261. data/src/core/lib/iomgr/tcp_server.h +12 -11
  262. data/src/core/lib/iomgr/tcp_server_custom.cc +26 -25
  263. data/src/core/lib/iomgr/tcp_server_posix.cc +28 -21
  264. data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
  265. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -18
  266. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
  267. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
  268. data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
  269. data/src/core/lib/iomgr/tcp_uv.cc +25 -23
  270. data/src/core/lib/iomgr/tcp_windows.cc +13 -13
  271. data/src/core/lib/iomgr/tcp_windows.h +2 -2
  272. data/src/core/lib/iomgr/timer.h +6 -1
  273. data/src/core/lib/iomgr/timer_custom.cc +2 -1
  274. data/src/core/lib/iomgr/timer_custom.h +1 -1
  275. data/src/core/lib/iomgr/timer_generic.cc +6 -6
  276. data/src/core/lib/iomgr/udp_server.cc +21 -20
  277. data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
  278. data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
  279. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
  280. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
  281. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
  282. data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
  283. data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
  284. data/src/core/lib/iomgr/work_serializer.h +17 -1
  285. data/src/core/lib/json/json.h +1 -1
  286. data/src/core/lib/json/json_reader.cc +4 -4
  287. data/src/core/lib/matchers/matchers.cc +39 -39
  288. data/src/core/lib/matchers/matchers.h +28 -28
  289. data/src/core/lib/security/authorization/authorization_engine.h +44 -0
  290. data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
  291. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
  292. data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
  293. data/src/core/lib/security/authorization/evaluate_args.h +91 -0
  294. data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
  295. data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
  296. data/src/core/lib/security/credentials/credentials.h +2 -2
  297. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
  298. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
  299. data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
  300. data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
  301. data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
  302. data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
  303. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
  304. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
  305. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
  306. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
  307. data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
  308. data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
  309. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +12 -10
  310. data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
  311. data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
  312. data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
  313. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
  314. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
  315. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
  316. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
  317. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
  318. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
  319. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
  320. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
  321. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
  322. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
  323. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
  324. data/src/core/lib/security/credentials/tls/tls_utils.cc +32 -0
  325. data/src/core/lib/security/credentials/tls/tls_utils.h +13 -0
  326. data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
  327. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
  328. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
  329. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
  330. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
  331. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
  332. data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -9
  333. data/src/core/lib/security/security_connector/security_connector.h +9 -4
  334. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
  335. data/src/core/lib/security/security_connector/ssl_utils.cc +27 -4
  336. data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
  337. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +56 -60
  338. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
  339. data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
  340. data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
  341. data/src/core/lib/security/transport/security_handshaker.cc +33 -32
  342. data/src/core/lib/security/transport/server_auth_filter.cc +19 -13
  343. data/src/core/lib/security/transport/tsi_error.cc +2 -1
  344. data/src/core/lib/security/transport/tsi_error.h +2 -1
  345. data/src/core/lib/security/util/json_util.cc +2 -2
  346. data/src/core/lib/security/util/json_util.h +1 -1
  347. data/src/core/lib/surface/call.cc +67 -46
  348. data/src/core/lib/surface/call.h +13 -2
  349. data/src/core/lib/surface/channel.cc +6 -6
  350. data/src/core/lib/surface/channel.h +3 -2
  351. data/src/core/lib/surface/channel_ping.cc +1 -1
  352. data/src/core/lib/surface/completion_queue.cc +68 -69
  353. data/src/core/lib/surface/completion_queue.h +3 -2
  354. data/src/core/lib/surface/completion_queue_factory.cc +1 -2
  355. data/src/core/lib/surface/init.cc +1 -3
  356. data/src/core/lib/surface/init.h +10 -1
  357. data/src/core/lib/surface/lame_client.cc +11 -11
  358. data/src/core/lib/surface/lame_client.h +1 -1
  359. data/src/core/lib/surface/server.cc +28 -22
  360. data/src/core/lib/surface/server.h +16 -15
  361. data/src/core/lib/surface/validate_metadata.cc +7 -7
  362. data/src/core/lib/surface/validate_metadata.h +3 -2
  363. data/src/core/lib/surface/version.cc +4 -2
  364. data/src/core/lib/transport/byte_stream.cc +5 -5
  365. data/src/core/lib/transport/byte_stream.h +8 -8
  366. data/src/core/lib/transport/connectivity_state.cc +1 -1
  367. data/src/core/lib/transport/error_utils.cc +21 -10
  368. data/src/core/lib/transport/error_utils.h +11 -5
  369. data/src/core/lib/transport/metadata_batch.cc +37 -37
  370. data/src/core/lib/transport/metadata_batch.h +19 -18
  371. data/src/core/lib/transport/transport.cc +4 -3
  372. data/src/core/lib/transport/transport.h +6 -4
  373. data/src/core/lib/transport/transport_op_string.cc +6 -6
  374. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
  375. data/src/core/tsi/alts/crypt/gsec.h +6 -0
  376. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
  377. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
  378. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
  379. data/src/core/tsi/ssl_transport_security.cc +32 -14
  380. data/src/core/tsi/ssl_transport_security.h +3 -4
  381. data/src/ruby/bin/math_services_pb.rb +1 -1
  382. data/src/ruby/ext/grpc/extconf.rb +2 -0
  383. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -0
  384. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +11 -2
  385. data/src/ruby/lib/grpc/version.rb +1 -1
  386. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
  387. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
  388. data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
  389. data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
  390. data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
  391. data/third_party/abseil-cpp/absl/base/config.h +37 -9
  392. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
  393. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
  394. data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
  395. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
  396. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
  397. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
  398. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
  399. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
  400. data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
  401. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
  402. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
  403. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
  404. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
  405. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
  406. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
  407. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
  408. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
  409. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
  410. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
  411. data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
  412. data/third_party/abseil-cpp/absl/base/macros.h +11 -0
  413. data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
  414. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  415. data/third_party/abseil-cpp/absl/base/port.h +0 -1
  416. data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
  417. data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
  418. data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
  419. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
  420. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
  421. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
  422. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
  423. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
  424. data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
  425. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
  426. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
  427. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
  428. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
  429. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
  430. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
  431. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
  432. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
  433. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
  434. data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
  435. data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
  436. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
  437. data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
  438. data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
  439. data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
  440. data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
  441. data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
  442. data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
  443. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
  444. data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
  445. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
  446. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
  447. data/third_party/abseil-cpp/absl/status/status.cc +29 -22
  448. data/third_party/abseil-cpp/absl/status/status.h +81 -20
  449. data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
  450. data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
  451. data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
  452. data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
  453. data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
  454. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
  455. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
  456. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
  457. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
  458. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
  459. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
  460. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
  461. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
  462. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
  463. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
  464. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
  465. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
  466. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
  467. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
  468. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
  469. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
  470. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
  471. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
  472. data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
  473. data/third_party/abseil-cpp/absl/strings/match.h +16 -6
  474. data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
  475. data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
  476. data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
  477. data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
  478. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
  479. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
  480. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
  481. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
  482. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
  483. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
  484. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
  485. data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
  486. data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
  487. data/third_party/abseil-cpp/absl/time/clock.h +2 -2
  488. data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
  489. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
  490. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
  491. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
  492. data/third_party/abseil-cpp/absl/time/time.cc +4 -3
  493. data/third_party/abseil-cpp/absl/time/time.h +26 -24
  494. data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
  495. data/third_party/abseil-cpp/absl/types/variant.h +9 -4
  496. data/third_party/boringssl-with-bazel/err_data.c +483 -461
  497. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
  498. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +9 -7
  499. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
  500. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
  501. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
  502. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
  503. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
  504. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +4 -0
  505. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
  506. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
  507. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
  508. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
  509. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
  510. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
  511. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
  512. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
  513. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
  514. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
  515. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
  516. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
  517. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +7 -0
  518. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
  519. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
  520. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
  521. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
  522. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
  523. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
  524. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
  525. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +52 -65
  526. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
  527. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
  528. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
  529. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
  530. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
  531. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
  532. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
  533. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -4
  534. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -13
  535. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
  536. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +26 -24
  537. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +10 -7
  538. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
  539. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
  540. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +61 -75
  541. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
  542. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
  543. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +367 -315
  544. data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
  545. data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
  546. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
  547. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +5 -3
  548. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
  549. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
  550. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
  551. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
  552. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
  553. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
  554. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
  555. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -0
  556. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
  557. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
  558. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
  559. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
  560. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
  561. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +14 -15
  562. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
  563. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +31 -0
  564. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
  565. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
  566. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -0
  567. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
  568. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
  569. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
  570. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
  571. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
  572. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
  573. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
  574. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +7 -0
  575. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
  576. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
  577. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
  578. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -8
  579. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
  580. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
  581. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
  582. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +47 -7
  583. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -0
  584. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
  585. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
  586. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
  587. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +6 -2
  588. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
  589. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
  590. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
  591. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +20 -49
  592. data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
  593. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +325 -0
  594. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
  595. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +25 -7
  596. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
  597. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
  598. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +99 -63
  599. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +283 -85
  600. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +13 -19
  601. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +445 -152
  602. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
  603. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -1
  604. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
  605. data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
  606. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
  607. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
  608. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +66 -30
  609. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +189 -86
  610. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +154 -24
  611. data/third_party/boringssl-with-bazel/src/ssl/internal.h +414 -135
  612. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
  613. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
  614. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
  615. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
  616. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
  617. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +51 -60
  618. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
  619. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +8 -31
  620. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
  621. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +4 -3
  622. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
  623. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +664 -702
  624. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +65 -7
  625. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -39
  626. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +141 -94
  627. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +213 -118
  628. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
  629. metadata +94 -46
  630. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
  631. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
  632. data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
  633. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
  634. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
  635. data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -246
  636. data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
@@ -39,7 +39,7 @@ static void add_to_write_list(grpc_chttp2_write_cb** list,
39
39
  }
40
40
 
41
41
  static void finish_write_cb(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
42
- grpc_chttp2_write_cb* cb, grpc_error* error) {
42
+ grpc_chttp2_write_cb* cb, grpc_error_handle error) {
43
43
  grpc_chttp2_complete_closure_step(t, s, &cb->closure, error,
44
44
  "finish_write_cb");
45
45
  cb->next = t->write_cb_pool;
@@ -75,6 +75,10 @@ static void maybe_initiate_ping(grpc_chttp2_transport* t) {
75
75
  }
76
76
  return;
77
77
  }
78
+ // InvalidateNow to avoid getting stuck re-initializing the ping timer
79
+ // in a loop while draining the currently-held combiner. Also see
80
+ // https://github.com/grpc/grpc/issues/26079.
81
+ grpc_core::ExecCtx::Get()->InvalidateNow();
78
82
  grpc_millis now = grpc_core::ExecCtx::Get()->Now();
79
83
 
80
84
  grpc_millis next_allowed_ping_interval =
@@ -134,7 +138,7 @@ static void maybe_initiate_ping(grpc_chttp2_transport* t) {
134
138
 
135
139
  static bool update_list(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
136
140
  int64_t send_bytes, grpc_chttp2_write_cb** list,
137
- int64_t* ctr, grpc_error* error) {
141
+ int64_t* ctr, grpc_error_handle error) {
138
142
  bool sched_any = false;
139
143
  grpc_chttp2_write_cb* cb = *list;
140
144
  *list = nullptr;
@@ -678,7 +682,7 @@ grpc_chttp2_begin_write_result grpc_chttp2_begin_write(
678
682
  return ctx.Result();
679
683
  }
680
684
 
681
- void grpc_chttp2_end_write(grpc_chttp2_transport* t, grpc_error* error) {
685
+ void grpc_chttp2_end_write(grpc_chttp2_transport* t, grpc_error_handle error) {
682
686
  GPR_TIMER_SCOPE("grpc_chttp2_end_write", 0);
683
687
  grpc_chttp2_stream* s;
684
688
 
@@ -50,15 +50,15 @@ grpc_slice g_fake_auth_key;
50
50
  grpc_slice g_fake_auth_value;
51
51
 
52
52
  struct inproc_stream;
53
- bool cancel_stream_locked(inproc_stream* s, grpc_error* error);
54
- void maybe_process_ops_locked(inproc_stream* s, grpc_error* error);
55
- void op_state_machine_locked(inproc_stream* s, grpc_error* error);
53
+ bool cancel_stream_locked(inproc_stream* s, grpc_error_handle error);
54
+ void maybe_process_ops_locked(inproc_stream* s, grpc_error_handle error);
55
+ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error);
56
56
  void log_metadata(const grpc_metadata_batch* md_batch, bool is_client,
57
57
  bool is_initial);
58
- grpc_error* fill_in_metadata(inproc_stream* s,
59
- const grpc_metadata_batch* metadata,
60
- uint32_t flags, grpc_metadata_batch* out_md,
61
- uint32_t* outflags, bool* markfilled);
58
+ grpc_error_handle fill_in_metadata(inproc_stream* s,
59
+ const grpc_metadata_batch* metadata,
60
+ uint32_t flags, grpc_metadata_batch* out_md,
61
+ uint32_t* outflags, bool* markfilled);
62
62
 
63
63
  struct shared_mu {
64
64
  shared_mu() {
@@ -239,7 +239,7 @@ struct inproc_stream {
239
239
  grpc_millis write_buffer_deadline = GRPC_MILLIS_INF_FUTURE;
240
240
  grpc_metadata_batch write_buffer_trailing_md;
241
241
  bool write_buffer_trailing_md_filled = false;
242
- grpc_error* write_buffer_cancel_error = GRPC_ERROR_NONE;
242
+ grpc_error_handle write_buffer_cancel_error = GRPC_ERROR_NONE;
243
243
 
244
244
  struct inproc_stream* other_side;
245
245
  bool other_side_closed = false; // won't talk anymore
@@ -270,8 +270,8 @@ struct inproc_stream {
270
270
 
271
271
  bool closed = false;
272
272
 
273
- grpc_error* cancel_self_error = GRPC_ERROR_NONE;
274
- grpc_error* cancel_other_error = GRPC_ERROR_NONE;
273
+ grpc_error_handle cancel_self_error = GRPC_ERROR_NONE;
274
+ grpc_error_handle cancel_other_error = GRPC_ERROR_NONE;
275
275
 
276
276
  grpc_millis deadline = GRPC_MILLIS_INF_FUTURE;
277
277
 
@@ -293,10 +293,10 @@ void log_metadata(const grpc_metadata_batch* md_batch, bool is_client,
293
293
  }
294
294
  }
295
295
 
296
- grpc_error* fill_in_metadata(inproc_stream* s,
297
- const grpc_metadata_batch* metadata,
298
- uint32_t flags, grpc_metadata_batch* out_md,
299
- uint32_t* outflags, bool* markfilled) {
296
+ grpc_error_handle fill_in_metadata(inproc_stream* s,
297
+ const grpc_metadata_batch* metadata,
298
+ uint32_t flags, grpc_metadata_batch* out_md,
299
+ uint32_t* outflags, bool* markfilled) {
300
300
  if (GRPC_TRACE_FLAG_ENABLED(grpc_inproc_trace)) {
301
301
  log_metadata(metadata, s->t->is_client, outflags != nullptr);
302
302
  }
@@ -307,7 +307,7 @@ grpc_error* fill_in_metadata(inproc_stream* s,
307
307
  if (markfilled != nullptr) {
308
308
  *markfilled = true;
309
309
  }
310
- grpc_error* error = GRPC_ERROR_NONE;
310
+ grpc_error_handle error = GRPC_ERROR_NONE;
311
311
  for (grpc_linked_mdelem* elem = metadata->list.head;
312
312
  (elem != nullptr) && (error == GRPC_ERROR_NONE); elem = elem->next) {
313
313
  grpc_linked_mdelem* nelem =
@@ -374,7 +374,7 @@ void close_other_side_locked(inproc_stream* s, const char* reason) {
374
374
  // this stream_op_batch is only one of the pending operations for this
375
375
  // stream. This is called when one of the pending operations for the stream
376
376
  // is done and about to be NULLed out
377
- void complete_if_batch_end_locked(inproc_stream* s, grpc_error* error,
377
+ void complete_if_batch_end_locked(inproc_stream* s, grpc_error_handle error,
378
378
  grpc_transport_stream_op_batch* op,
379
379
  const char* msg) {
380
380
  int is_sm = static_cast<int>(op == s->send_message_op);
@@ -388,20 +388,21 @@ void complete_if_batch_end_locked(inproc_stream* s, grpc_error* error,
388
388
  int is_rtm = static_cast<int>(op == s->recv_trailing_md_op);
389
389
 
390
390
  if ((is_sm + is_stm + is_rim + is_rm + is_rtm) == 1) {
391
- INPROC_LOG(GPR_INFO, "%s %p %p %p", msg, s, op, error);
391
+ INPROC_LOG(GPR_INFO, "%s %p %p %s", msg, s, op,
392
+ grpc_error_std_string(error).c_str());
392
393
  grpc_core::ExecCtx::Run(DEBUG_LOCATION, op->on_complete,
393
394
  GRPC_ERROR_REF(error));
394
395
  }
395
396
  }
396
397
 
397
- void maybe_process_ops_locked(inproc_stream* s, grpc_error* error) {
398
+ void maybe_process_ops_locked(inproc_stream* s, grpc_error_handle error) {
398
399
  if (s && (error != GRPC_ERROR_NONE || s->ops_needed)) {
399
400
  s->ops_needed = false;
400
401
  op_state_machine_locked(s, error);
401
402
  }
402
403
  }
403
404
 
404
- void fail_helper_locked(inproc_stream* s, grpc_error* error) {
405
+ void fail_helper_locked(inproc_stream* s, grpc_error_handle error) {
405
406
  INPROC_LOG(GPR_INFO, "op_state_machine %p fail_helper", s);
406
407
  // If we're failing this side, we need to make sure that
407
408
  // we also send or have already sent trailing metadata
@@ -431,7 +432,7 @@ void fail_helper_locked(inproc_stream* s, grpc_error* error) {
431
432
  }
432
433
  }
433
434
  if (s->recv_initial_md_op) {
434
- grpc_error* err;
435
+ grpc_error_handle err;
435
436
  if (!s->t->is_client) {
436
437
  // If this is a server, provide initial metadata with a path and authority
437
438
  // since it expects that as well as no error yet
@@ -468,8 +469,9 @@ void fail_helper_locked(inproc_stream* s, grpc_error* error) {
468
469
  .trailing_metadata_available = true;
469
470
  }
470
471
  INPROC_LOG(GPR_INFO,
471
- "fail_helper %p scheduling initial-metadata-ready %p %p", s,
472
- error, err);
472
+ "fail_helper %p scheduling initial-metadata-ready %s %s", s,
473
+ grpc_error_std_string(error).c_str(),
474
+ grpc_error_std_string(err).c_str());
473
475
  grpc_core::ExecCtx::Run(
474
476
  DEBUG_LOCATION,
475
477
  s->recv_initial_md_op->payload->recv_initial_metadata
@@ -483,8 +485,13 @@ void fail_helper_locked(inproc_stream* s, grpc_error* error) {
483
485
  s->recv_initial_md_op = nullptr;
484
486
  }
485
487
  if (s->recv_message_op) {
486
- INPROC_LOG(GPR_INFO, "fail_helper %p scheduling message-ready %p", s,
487
- error);
488
+ INPROC_LOG(GPR_INFO, "fail_helper %p scheduling message-ready %s", s,
489
+ grpc_error_std_string(error).c_str());
490
+ if (s->recv_message_op->payload->recv_message
491
+ .call_failed_before_recv_message != nullptr) {
492
+ *s->recv_message_op->payload->recv_message
493
+ .call_failed_before_recv_message = true;
494
+ }
488
495
  grpc_core::ExecCtx::Run(
489
496
  DEBUG_LOCATION,
490
497
  s->recv_message_op->payload->recv_message.recv_message_ready,
@@ -508,15 +515,15 @@ void fail_helper_locked(inproc_stream* s, grpc_error* error) {
508
515
  s->send_trailing_md_op = nullptr;
509
516
  }
510
517
  if (s->recv_trailing_md_op) {
511
- INPROC_LOG(GPR_INFO, "fail_helper %p scheduling trailing-metadata-ready %p",
512
- s, error);
518
+ INPROC_LOG(GPR_INFO, "fail_helper %p scheduling trailing-metadata-ready %s",
519
+ s, grpc_error_std_string(error).c_str());
513
520
  grpc_core::ExecCtx::Run(
514
521
  DEBUG_LOCATION,
515
522
  s->recv_trailing_md_op->payload->recv_trailing_metadata
516
523
  .recv_trailing_metadata_ready,
517
524
  GRPC_ERROR_REF(error));
518
- INPROC_LOG(GPR_INFO, "fail_helper %p scheduling trailing-md-on-complete %p",
519
- s, error);
525
+ INPROC_LOG(GPR_INFO, "fail_helper %p scheduling trailing-md-on-complete %s",
526
+ s, grpc_error_std_string(error).c_str());
520
527
  complete_if_batch_end_locked(
521
528
  s, error, s->recv_trailing_md_op,
522
529
  "fail_helper scheduling recv-trailing-metadata-on-complete");
@@ -550,7 +557,7 @@ void message_transfer_locked(inproc_stream* sender, inproc_stream* receiver) {
550
557
  GPR_ASSERT(
551
558
  sender->send_message_op->payload->send_message.send_message->Next(
552
559
  SIZE_MAX, &unused));
553
- grpc_error* error =
560
+ grpc_error_handle error =
554
561
  sender->send_message_op->payload->send_message.send_message->Pull(
555
562
  &message_slice);
556
563
  if (error != GRPC_ERROR_NONE) {
@@ -583,13 +590,13 @@ void message_transfer_locked(inproc_stream* sender, inproc_stream* receiver) {
583
590
  sender->send_message_op = nullptr;
584
591
  }
585
592
 
586
- void op_state_machine_locked(inproc_stream* s, grpc_error* error) {
593
+ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error) {
587
594
  // This function gets called when we have contents in the unprocessed reads
588
595
  // Get what we want based on our ops wanted
589
596
  // Schedule our appropriate closures
590
597
  // and then return to ops_needed state if still needed
591
598
 
592
- grpc_error* new_err = GRPC_ERROR_NONE;
599
+ grpc_error_handle new_err = GRPC_ERROR_NONE;
593
600
 
594
601
  bool needs_close = false;
595
602
 
@@ -685,8 +692,8 @@ void op_state_machine_locked(inproc_stream* s, grpc_error* error) {
685
692
  INPROC_LOG(
686
693
  GPR_INFO,
687
694
  "op_state_machine %p scheduling on_complete errors for already "
688
- "recvd initial md %p",
689
- s, new_err);
695
+ "recvd initial md %s",
696
+ s, grpc_error_std_string(new_err).c_str());
690
697
  fail_helper_locked(s, GRPC_ERROR_REF(new_err));
691
698
  goto done;
692
699
  }
@@ -710,8 +717,8 @@ void op_state_machine_locked(inproc_stream* s, grpc_error* error) {
710
717
  grpc_metadata_batch_clear(&s->to_read_initial_md);
711
718
  s->to_read_initial_md_filled = false;
712
719
  INPROC_LOG(GPR_INFO,
713
- "op_state_machine %p scheduling initial-metadata-ready %p", s,
714
- new_err);
720
+ "op_state_machine %p scheduling initial-metadata-ready %s", s,
721
+ grpc_error_std_string(new_err).c_str());
715
722
  grpc_core::ExecCtx::Run(
716
723
  DEBUG_LOCATION,
717
724
  s->recv_initial_md_op->payload->recv_initial_metadata
@@ -724,8 +731,8 @@ void op_state_machine_locked(inproc_stream* s, grpc_error* error) {
724
731
 
725
732
  if (new_err != GRPC_ERROR_NONE) {
726
733
  INPROC_LOG(GPR_INFO,
727
- "op_state_machine %p scheduling on_complete errors2 %p", s,
728
- new_err);
734
+ "op_state_machine %p scheduling on_complete errors2 %s", s,
735
+ grpc_error_std_string(new_err).c_str());
729
736
  fail_helper_locked(s, GRPC_ERROR_REF(new_err));
730
737
  goto done;
731
738
  }
@@ -753,8 +760,8 @@ void op_state_machine_locked(inproc_stream* s, grpc_error* error) {
753
760
  INPROC_LOG(
754
761
  GPR_INFO,
755
762
  "op_state_machine %p scheduling on_complete errors for already "
756
- "recvd trailing md %p",
757
- s, new_err);
763
+ "recvd trailing md %s",
764
+ s, grpc_error_std_string(new_err).c_str());
758
765
  fail_helper_locked(s, GRPC_ERROR_REF(new_err));
759
766
  goto done;
760
767
  }
@@ -801,8 +808,8 @@ void op_state_machine_locked(inproc_stream* s, grpc_error* error) {
801
808
  // a final status, so don't mark this op complete)
802
809
  if (s->t->is_client || s->trailing_md_sent) {
803
810
  INPROC_LOG(GPR_INFO,
804
- "op_state_machine %p scheduling trailing-md-on-complete %p",
805
- s, new_err);
811
+ "op_state_machine %p scheduling trailing-md-on-complete %s",
812
+ s, grpc_error_std_string(new_err).c_str());
806
813
  grpc_core::ExecCtx::Run(
807
814
  DEBUG_LOCATION,
808
815
  s->recv_trailing_md_op->payload->recv_trailing_metadata
@@ -816,8 +823,8 @@ void op_state_machine_locked(inproc_stream* s, grpc_error* error) {
816
823
  } else {
817
824
  INPROC_LOG(GPR_INFO,
818
825
  "op_state_machine %p server needs to delay handling "
819
- "trailing-md-on-complete %p",
820
- s, new_err);
826
+ "trailing-md-on-complete %s",
827
+ s, grpc_error_std_string(new_err).c_str());
821
828
  }
822
829
  } else if (!s->trailing_md_recvd) {
823
830
  INPROC_LOG(
@@ -830,8 +837,8 @@ void op_state_machine_locked(inproc_stream* s, grpc_error* error) {
830
837
  // In this case, we don't care to receive the write-close from the client
831
838
  // because we have already sent status and the RPC is over as far as we
832
839
  // are concerned.
833
- INPROC_LOG(GPR_INFO, "op_state_machine %p scheduling trailing-md-ready %p",
834
- s, new_err);
840
+ INPROC_LOG(GPR_INFO, "op_state_machine %p scheduling trailing-md-ready %s",
841
+ s, grpc_error_std_string(new_err).c_str());
835
842
  grpc_core::ExecCtx::Run(
836
843
  DEBUG_LOCATION,
837
844
  s->recv_trailing_md_op->payload->recv_trailing_metadata
@@ -887,9 +894,10 @@ done:
887
894
  GRPC_ERROR_UNREF(new_err);
888
895
  }
889
896
 
890
- bool cancel_stream_locked(inproc_stream* s, grpc_error* error) {
897
+ bool cancel_stream_locked(inproc_stream* s, grpc_error_handle error) {
891
898
  bool ret = false; // was the cancel accepted
892
- INPROC_LOG(GPR_INFO, "cancel_stream %p with %s", s, grpc_error_string(error));
899
+ INPROC_LOG(GPR_INFO, "cancel_stream %p with %s", s,
900
+ grpc_error_std_string(error).c_str());
893
901
  if (s->cancel_self_error == GRPC_ERROR_NONE) {
894
902
  ret = true;
895
903
  s->cancel_self_error = GRPC_ERROR_REF(error);
@@ -943,7 +951,7 @@ bool cancel_stream_locked(inproc_stream* s, grpc_error* error) {
943
951
  return ret;
944
952
  }
945
953
 
946
- void do_nothing(void* /*arg*/, grpc_error* /*error*/) {}
954
+ void do_nothing(void* /*arg*/, grpc_error_handle /*error*/) {}
947
955
 
948
956
  void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
949
957
  grpc_transport_stream_op_batch* op) {
@@ -962,7 +970,7 @@ void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
962
970
  s->t->is_client, false);
963
971
  }
964
972
  }
965
- grpc_error* error = GRPC_ERROR_NONE;
973
+ grpc_error_handle error = GRPC_ERROR_NONE;
966
974
  grpc_closure* on_complete = op->on_complete;
967
975
  // TODO(roth): This is a hack needed because we use data inside of the
968
976
  // closure itself to do the barrier calculation (i.e., to ensure that
@@ -1090,8 +1098,8 @@ void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
1090
1098
  }
1091
1099
  INPROC_LOG(
1092
1100
  GPR_INFO,
1093
- "perform_stream_op error %p scheduling initial-metadata-ready %p",
1094
- s, error);
1101
+ "perform_stream_op error %p scheduling initial-metadata-ready %s",
1102
+ s, grpc_error_std_string(error).c_str());
1095
1103
  grpc_core::ExecCtx::Run(
1096
1104
  DEBUG_LOCATION,
1097
1105
  op->payload->recv_initial_metadata.recv_initial_metadata_ready,
@@ -1100,8 +1108,12 @@ void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
1100
1108
  if (op->recv_message) {
1101
1109
  INPROC_LOG(
1102
1110
  GPR_INFO,
1103
- "perform_stream_op error %p scheduling recv message-ready %p", s,
1104
- error);
1111
+ "perform_stream_op error %p scheduling recv message-ready %s", s,
1112
+ grpc_error_std_string(error).c_str());
1113
+ if (op->payload->recv_message.call_failed_before_recv_message !=
1114
+ nullptr) {
1115
+ *op->payload->recv_message.call_failed_before_recv_message = true;
1116
+ }
1105
1117
  grpc_core::ExecCtx::Run(DEBUG_LOCATION,
1106
1118
  op->payload->recv_message.recv_message_ready,
1107
1119
  GRPC_ERROR_REF(error));
@@ -1109,16 +1121,16 @@ void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
1109
1121
  if (op->recv_trailing_metadata) {
1110
1122
  INPROC_LOG(
1111
1123
  GPR_INFO,
1112
- "perform_stream_op error %p scheduling trailing-metadata-ready %p",
1113
- s, error);
1124
+ "perform_stream_op error %p scheduling trailing-metadata-ready %s",
1125
+ s, grpc_error_std_string(error).c_str());
1114
1126
  grpc_core::ExecCtx::Run(
1115
1127
  DEBUG_LOCATION,
1116
1128
  op->payload->recv_trailing_metadata.recv_trailing_metadata_ready,
1117
1129
  GRPC_ERROR_REF(error));
1118
1130
  }
1119
1131
  }
1120
- INPROC_LOG(GPR_INFO, "perform_stream_op %p scheduling on_complete %p", s,
1121
- error);
1132
+ INPROC_LOG(GPR_INFO, "perform_stream_op %p scheduling on_complete %s", s,
1133
+ grpc_error_std_string(error).c_str());
1122
1134
  grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_complete, GRPC_ERROR_REF(error));
1123
1135
  }
1124
1136
  gpr_mu_unlock(mu);
@@ -1293,7 +1305,7 @@ grpc_channel* grpc_inproc_channel_create(grpc_server* server,
1293
1305
  client_args);
1294
1306
 
1295
1307
  // TODO(ncteisen): design and support channelz GetSocket for inproc.
1296
- grpc_error* error = server->core_server->SetupTransport(
1308
+ grpc_error_handle error = server->core_server->SetupTransport(
1297
1309
  server_transport, nullptr, server_args, nullptr);
1298
1310
  grpc_channel* channel = nullptr;
1299
1311
  if (error == GRPC_ERROR_NONE) {
@@ -1303,7 +1315,7 @@ grpc_channel* grpc_inproc_channel_create(grpc_server* server,
1303
1315
  if (error != GRPC_ERROR_NONE) {
1304
1316
  GPR_ASSERT(!channel);
1305
1317
  gpr_log(GPR_ERROR, "Failed to create client channel: %s",
1306
- grpc_error_string(error));
1318
+ grpc_error_std_string(error).c_str());
1307
1319
  intptr_t integer;
1308
1320
  grpc_status_code status = GRPC_STATUS_INTERNAL;
1309
1321
  if (grpc_error_get_int(error, GRPC_ERROR_INT_GRPC_STATUS, &integer)) {
@@ -1318,7 +1330,7 @@ grpc_channel* grpc_inproc_channel_create(grpc_server* server,
1318
1330
  } else {
1319
1331
  GPR_ASSERT(!channel);
1320
1332
  gpr_log(GPR_ERROR, "Failed to create server channel: %s",
1321
- grpc_error_string(error));
1333
+ grpc_error_std_string(error).c_str());
1322
1334
  intptr_t integer;
1323
1335
  grpc_status_code status = GRPC_STATUS_INTERNAL;
1324
1336
  if (grpc_error_get_int(error, GRPC_ERROR_INT_GRPC_STATUS, &integer)) {
@@ -49,7 +49,7 @@ class CertificateProviderFactory {
49
49
  virtual const char* name() const = 0;
50
50
 
51
51
  virtual RefCountedPtr<Config> CreateCertificateProviderConfig(
52
- const Json& config_json, grpc_error** error) = 0;
52
+ const Json& config_json, grpc_error_handle* error) = 0;
53
53
 
54
54
  // Create a CertificateProvider instance from config.
55
55
  virtual RefCountedPtr<grpc_tls_certificate_provider>
@@ -92,7 +92,7 @@ class CertificateProviderStore
92
92
  };
93
93
 
94
94
  RefCountedPtr<CertificateProviderWrapper> CreateCertificateProviderLocked(
95
- absl::string_view key);
95
+ absl::string_view key) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
96
96
 
97
97
  // Releases a previously created certificate provider from the certificate
98
98
  // provider map if the value matches \a wrapper.
@@ -101,10 +101,10 @@ class CertificateProviderStore
101
101
 
102
102
  Mutex mu_;
103
103
  // Map of plugin configurations
104
- PluginDefinitionMap plugin_config_map_;
104
+ PluginDefinitionMap plugin_config_map_ ABSL_GUARDED_BY(mu_);
105
105
  // Underlying map for the providers.
106
106
  std::map<absl::string_view, CertificateProviderWrapper*>
107
- certificate_providers_map_;
107
+ certificate_providers_map_ ABSL_GUARDED_BY(mu_);
108
108
  };
109
109
 
110
110
  } // namespace grpc_core
@@ -64,14 +64,14 @@ std::string FileWatcherCertificateProviderFactory::Config::ToString() const {
64
64
 
65
65
  RefCountedPtr<FileWatcherCertificateProviderFactory::Config>
66
66
  FileWatcherCertificateProviderFactory::Config::Parse(const Json& config_json,
67
- grpc_error** error) {
67
+ grpc_error_handle* error) {
68
68
  auto config = MakeRefCounted<FileWatcherCertificateProviderFactory::Config>();
69
69
  if (config_json.type() != Json::Type::OBJECT) {
70
70
  *error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
71
71
  "error:config type should be OBJECT.");
72
72
  return nullptr;
73
73
  }
74
- std::vector<grpc_error*> error_list;
74
+ std::vector<grpc_error_handle> error_list;
75
75
  ParseJsonObjectField(config_json.object_value(), "certificate_file",
76
76
  &config->identity_cert_file_, &error_list, false);
77
77
  ParseJsonObjectField(config_json.object_value(), "private_key_file",
@@ -112,7 +112,7 @@ const char* FileWatcherCertificateProviderFactory::name() const {
112
112
 
113
113
  RefCountedPtr<CertificateProviderFactory::Config>
114
114
  FileWatcherCertificateProviderFactory::CreateCertificateProviderConfig(
115
- const Json& config_json, grpc_error** error) {
115
+ const Json& config_json, grpc_error_handle* error) {
116
116
  return FileWatcherCertificateProviderFactory::Config::Parse(config_json,
117
117
  error);
118
118
  }
@@ -31,7 +31,7 @@ class FileWatcherCertificateProviderFactory
31
31
  class Config : public CertificateProviderFactory::Config {
32
32
  public:
33
33
  static RefCountedPtr<Config> Parse(const Json& config_json,
34
- grpc_error** error);
34
+ grpc_error_handle* error);
35
35
 
36
36
  const char* name() const override;
37
37
 
@@ -58,7 +58,7 @@ class FileWatcherCertificateProviderFactory
58
58
 
59
59
  RefCountedPtr<CertificateProviderFactory::Config>
60
60
  CreateCertificateProviderConfig(const Json& config_json,
61
- grpc_error** error) override;
61
+ grpc_error_handle* error) override;
62
62
 
63
63
  RefCountedPtr<grpc_tls_certificate_provider> CreateCertificateProvider(
64
64
  RefCountedPtr<CertificateProviderFactory::Config> config) override;