grpc 1.71.0 → 1.72.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (597) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +78 -75
  3. data/include/grpc/event_engine/memory_request.h +3 -3
  4. data/include/grpc/impl/channel_arg_names.h +70 -50
  5. data/include/grpc/support/workaround_list.h +1 -4
  6. data/src/core/{lib/transport → call}/call_arena_allocator.cc +1 -1
  7. data/src/core/{lib/transport → call}/call_arena_allocator.h +3 -3
  8. data/src/core/{lib/transport → call}/call_destination.h +4 -4
  9. data/src/core/{lib/transport → call}/call_filters.cc +2 -2
  10. data/src/core/{lib/transport → call}/call_filters.h +25 -6
  11. data/src/core/{lib/channel → call}/call_finalization.h +3 -3
  12. data/src/core/{lib/transport → call}/call_spine.cc +1 -1
  13. data/src/core/{lib/transport → call}/call_spine.h +68 -26
  14. data/src/core/{lib/transport → call}/call_state.cc +1 -1
  15. data/src/core/{lib/transport → call}/call_state.h +3 -3
  16. data/src/core/{lib/surface → call}/client_call.cc +9 -7
  17. data/src/core/{lib/surface → call}/client_call.h +4 -4
  18. data/src/core/{lib/transport → call}/custom_metadata.h +3 -3
  19. data/src/core/{lib/transport → call}/interception_chain.cc +5 -5
  20. data/src/core/{lib/transport → call}/interception_chain.h +7 -7
  21. data/src/core/{lib/transport → call}/message.cc +1 -1
  22. data/src/core/{lib/transport → call}/message.h +7 -3
  23. data/src/core/{lib/transport → call}/metadata.cc +2 -2
  24. data/src/core/{lib/transport → call}/metadata.h +4 -4
  25. data/src/core/{lib/transport → call}/metadata_batch.cc +1 -1
  26. data/src/core/{lib/transport → call}/metadata_batch.h +7 -7
  27. data/src/core/{lib/transport → call}/metadata_compression_traits.h +3 -3
  28. data/src/core/{lib/transport → call}/metadata_info.cc +27 -9
  29. data/src/core/{lib/transport → call}/metadata_info.h +4 -4
  30. data/src/core/{lib/transport → call}/parsed_metadata.cc +1 -1
  31. data/src/core/{lib/transport → call}/parsed_metadata.h +3 -3
  32. data/src/core/call/request_buffer.h +3 -3
  33. data/src/core/call/security_context.cc +125 -0
  34. data/src/core/call/security_context.h +114 -0
  35. data/src/core/{lib/surface → call}/server_call.cc +3 -3
  36. data/src/core/{lib/surface → call}/server_call.h +5 -5
  37. data/src/core/{lib/transport → call}/simple_slice_based_metadata.h +4 -4
  38. data/src/core/{lib/channel → call}/status_util.cc +1 -1
  39. data/src/core/{lib/channel → call}/status_util.h +3 -3
  40. data/src/core/client_channel/client_channel.cc +24 -16
  41. data/src/core/client_channel/client_channel.h +4 -3
  42. data/src/core/client_channel/client_channel_filter.cc +10 -20
  43. data/src/core/client_channel/client_channel_filter.h +1 -1
  44. data/src/core/client_channel/client_channel_internal.h +1 -1
  45. data/src/core/client_channel/config_selector.h +2 -2
  46. data/src/core/client_channel/direct_channel.cc +2 -2
  47. data/src/core/client_channel/dynamic_filters.cc +0 -1
  48. data/src/core/client_channel/dynamic_filters.h +0 -1
  49. data/src/core/client_channel/lb_metadata.h +1 -1
  50. data/src/core/client_channel/load_balanced_call_destination.cc +1 -1
  51. data/src/core/client_channel/load_balanced_call_destination.h +1 -1
  52. data/src/core/client_channel/retry_filter_legacy_call_data.cc +43 -41
  53. data/src/core/client_channel/retry_filter_legacy_call_data.h +6 -6
  54. data/src/core/client_channel/retry_interceptor.h +1 -1
  55. data/src/core/client_channel/retry_service_config.cc +1 -1
  56. data/src/core/client_channel/retry_service_config.h +1 -1
  57. data/src/core/client_channel/retry_throttle.cc +30 -34
  58. data/src/core/client_channel/retry_throttle.h +10 -2
  59. data/src/core/client_channel/subchannel.cc +7 -8
  60. data/src/core/client_channel/subchannel.h +1 -2
  61. data/src/core/client_channel/subchannel_stream_client.cc +14 -11
  62. data/src/core/client_channel/subchannel_stream_client.h +2 -2
  63. data/src/core/config/core_configuration.h +2 -2
  64. data/src/core/credentials/call/call_credentials.h +157 -0
  65. data/src/core/{lib/security/credentials → credentials/call}/call_creds_util.cc +4 -4
  66. data/src/core/{lib/security/credentials → credentials/call}/call_creds_util.h +4 -4
  67. data/src/core/{lib/security/credentials/composite/composite_credentials.cc → credentials/call/composite/composite_call_credentials.cc} +4 -57
  68. data/src/core/credentials/call/composite/composite_call_credentials.h +82 -0
  69. data/src/core/{lib/security/credentials → credentials/call}/external/aws_external_account_credentials.cc +2 -2
  70. data/src/core/{lib/security/credentials → credentials/call}/external/aws_external_account_credentials.h +5 -5
  71. data/src/core/{lib/security/credentials → credentials/call}/external/aws_request_signer.cc +1 -1
  72. data/src/core/{lib/security/credentials → credentials/call}/external/aws_request_signer.h +3 -3
  73. data/src/core/{lib/security/credentials → credentials/call}/external/external_account_credentials.cc +6 -6
  74. data/src/core/{lib/security/credentials → credentials/call}/external/external_account_credentials.h +5 -5
  75. data/src/core/{lib/security/credentials → credentials/call}/external/file_external_account_credentials.cc +1 -1
  76. data/src/core/{lib/security/credentials → credentials/call}/external/file_external_account_credentials.h +4 -4
  77. data/src/core/{lib/security/credentials → credentials/call}/external/url_external_account_credentials.cc +3 -2
  78. data/src/core/{lib/security/credentials → credentials/call}/external/url_external_account_credentials.h +4 -4
  79. data/src/core/{lib/security/credentials → credentials/call}/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +3 -2
  80. data/src/core/{lib/security/credentials → credentials/call}/gcp_service_account_identity/gcp_service_account_identity_credentials.h +6 -6
  81. data/src/core/{lib/security/credentials → credentials/call}/iam/iam_credentials.cc +2 -2
  82. data/src/core/{lib/security/credentials → credentials/call}/iam/iam_credentials.h +4 -4
  83. data/src/core/{lib/security/util → credentials/call}/json_util.cc +1 -1
  84. data/src/core/{lib/security/util → credentials/call}/json_util.h +3 -3
  85. data/src/core/{lib/security/credentials → credentials/call}/jwt/json_token.cc +2 -2
  86. data/src/core/{lib/security/credentials → credentials/call}/jwt/json_token.h +3 -3
  87. data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_credentials.cc +3 -3
  88. data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_credentials.h +5 -5
  89. data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_verifier.cc +3 -2
  90. data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_verifier.h +3 -3
  91. data/src/core/{lib/security/credentials → credentials/call}/oauth2/oauth2_credentials.cc +4 -3
  92. data/src/core/{lib/security/credentials → credentials/call}/oauth2/oauth2_credentials.h +5 -5
  93. data/src/core/{lib/security/credentials → credentials/call}/plugin/plugin_credentials.cc +2 -2
  94. data/src/core/{lib/security/credentials → credentials/call}/plugin/plugin_credentials.h +5 -5
  95. data/src/core/{lib/security/credentials → credentials/call}/token_fetcher/token_fetcher_credentials.cc +1 -1
  96. data/src/core/{lib/security/credentials → credentials/call}/token_fetcher/token_fetcher_credentials.h +5 -5
  97. data/src/core/{lib/security/credentials → credentials/transport}/alts/alts_credentials.cc +4 -4
  98. data/src/core/{lib/security/credentials → credentials/transport}/alts/alts_credentials.h +5 -5
  99. data/src/core/{lib/security/security_connector → credentials/transport}/alts/alts_security_connector.cc +4 -4
  100. data/src/core/{lib/security/security_connector → credentials/transport}/alts/alts_security_connector.h +4 -4
  101. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment.cc +1 -1
  102. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment.h +3 -3
  103. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_linux.cc +1 -1
  104. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_no_op.cc +1 -1
  105. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_windows.cc +1 -1
  106. data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_client_options.cc +1 -1
  107. data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_options.cc +1 -1
  108. data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_options.h +3 -3
  109. data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_server_options.cc +1 -1
  110. data/src/core/{lib/security/credentials → credentials/transport}/channel_creds_registry.h +4 -4
  111. data/src/core/{lib/security/credentials → credentials/transport}/channel_creds_registry_init.cc +21 -17
  112. data/src/core/credentials/transport/composite/composite_channel_credentials.cc +68 -0
  113. data/src/core/{lib/security/credentials/composite/composite_credentials.h → credentials/transport/composite/composite_channel_credentials.h} +6 -51
  114. data/src/core/{lib/security/credentials → credentials/transport}/fake/fake_credentials.cc +4 -26
  115. data/src/core/{lib/security/credentials → credentials/transport}/fake/fake_credentials.h +5 -37
  116. data/src/core/{lib/security/security_connector → credentials/transport}/fake/fake_security_connector.cc +4 -4
  117. data/src/core/{lib/security/security_connector → credentials/transport}/fake/fake_security_connector.h +4 -4
  118. data/src/core/{lib/security/credentials → credentials/transport}/google_default/credentials_generic.cc +2 -2
  119. data/src/core/{lib/security/credentials → credentials/transport}/google_default/google_default_credentials.cc +31 -19
  120. data/src/core/{lib/security/credentials → credentials/transport}/google_default/google_default_credentials.h +5 -5
  121. data/src/core/{lib/security/credentials → credentials/transport}/insecure/insecure_credentials.cc +2 -2
  122. data/src/core/{lib/security/credentials → credentials/transport}/insecure/insecure_credentials.h +5 -5
  123. data/src/core/{lib/security/security_connector → credentials/transport}/insecure/insecure_security_connector.cc +2 -2
  124. data/src/core/{lib/security/security_connector → credentials/transport}/insecure/insecure_security_connector.h +5 -5
  125. data/src/core/{lib/security/credentials → credentials/transport}/local/local_credentials.cc +2 -2
  126. data/src/core/{lib/security/credentials → credentials/transport}/local/local_credentials.h +5 -5
  127. data/src/core/{lib/security/security_connector → credentials/transport}/local/local_security_connector.cc +4 -4
  128. data/src/core/{lib/security/security_connector → credentials/transport}/local/local_security_connector.h +4 -4
  129. data/src/core/{lib/security/security_connector → credentials/transport}/security_connector.cc +2 -2
  130. data/src/core/{lib/security/security_connector → credentials/transport}/security_connector.h +3 -3
  131. data/src/core/{lib/security/credentials → credentials/transport}/ssl/ssl_credentials.cc +2 -2
  132. data/src/core/{lib/security/credentials → credentials/transport}/ssl/ssl_credentials.h +6 -6
  133. data/src/core/{lib/security/security_connector → credentials/transport}/ssl/ssl_security_connector.cc +5 -5
  134. data/src/core/{lib/security/security_connector → credentials/transport}/ssl/ssl_security_connector.h +4 -4
  135. data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_factory.h +3 -3
  136. data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_registry.cc +1 -1
  137. data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_registry.h +4 -4
  138. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_distributor.cc +1 -1
  139. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_distributor.h +4 -4
  140. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_match.cc +1 -1
  141. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_provider.cc +2 -2
  142. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_provider.h +5 -5
  143. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_verifier.cc +2 -2
  144. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_verifier.h +3 -3
  145. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_credentials_options.cc +1 -1
  146. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_credentials_options.h +7 -7
  147. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_crl_provider.cc +1 -1
  148. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_crl_provider.h +3 -3
  149. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots.h +3 -3
  150. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_fallback.cc +1 -1
  151. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_supported.cc +2 -2
  152. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_supported.h +3 -3
  153. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_windows.cc +1 -1
  154. data/src/core/{lib/security/security_connector → credentials/transport/tls}/ssl_utils.cc +3 -3
  155. data/src/core/{lib/security/security_connector → credentials/transport/tls}/ssl_utils.h +4 -4
  156. data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_credentials.cc +4 -4
  157. data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_credentials.h +5 -5
  158. data/src/core/{lib/security/security_connector → credentials/transport}/tls/tls_security_connector.cc +6 -6
  159. data/src/core/{lib/security/security_connector → credentials/transport}/tls/tls_security_connector.h +6 -6
  160. data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_utils.cc +1 -1
  161. data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_utils.h +3 -3
  162. data/src/core/{lib/security/credentials/credentials.cc → credentials/transport/transport_credentials.cc} +1 -3
  163. data/src/core/{lib/security/credentials/credentials.h → credentials/transport/transport_credentials.h} +5 -121
  164. data/src/core/{lib/security/credentials → credentials/transport}/xds/xds_credentials.cc +5 -5
  165. data/src/core/{lib/security/credentials → credentials/transport}/xds/xds_credentials.h +6 -6
  166. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +1 -1
  167. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +8 -5
  168. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +2 -2
  169. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +1 -1
  170. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +2 -2
  171. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +1 -1
  172. data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
  173. data/src/core/ext/filters/http/client_authority_filter.cc +2 -2
  174. data/src/core/ext/filters/http/message_compress/compression_filter.cc +1 -1
  175. data/src/core/ext/filters/http/message_compress/compression_filter.h +1 -1
  176. data/src/core/ext/filters/http/server/http_server_filter.cc +1 -1
  177. data/src/core/ext/filters/message_size/message_size_filter.cc +1 -1
  178. data/src/core/ext/filters/rbac/rbac_filter.cc +2 -2
  179. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +1 -1
  180. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +3 -3
  181. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +8 -5
  182. data/src/core/ext/transport/chttp2/server/chttp2_server.h +5 -1
  183. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.cc +2 -2
  184. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h +1 -3
  185. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +58 -57
  186. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +3 -3
  187. data/src/core/ext/transport/chttp2/transport/frame.cc +89 -68
  188. data/src/core/ext/transport/chttp2/transport/frame.h +37 -1
  189. data/src/core/ext/transport/chttp2/transport/frame_data.cc +2 -0
  190. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +6 -3
  191. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -2
  192. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -2
  193. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +1 -1
  194. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -2
  195. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -1
  196. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +2 -2
  197. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +10 -8
  198. data/src/core/ext/transport/chttp2/transport/http2_settings.h +2 -2
  199. data/src/core/ext/transport/chttp2/transport/http2_status.h +52 -0
  200. data/src/core/ext/transport/chttp2/transport/internal.h +11 -14
  201. data/src/core/ext/transport/chttp2/transport/parsing.cc +36 -23
  202. data/src/core/ext/transport/chttp2/transport/writing.cc +15 -14
  203. data/src/core/ext/transport/inproc/inproc_transport.cc +1 -1
  204. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +1 -1
  205. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +65 -65
  206. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +28 -28
  207. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +14 -14
  208. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +6 -6
  209. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +6 -6
  210. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +4 -4
  211. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +133 -133
  212. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +71 -71
  213. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +26 -26
  214. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +7 -7
  215. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +216 -218
  216. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +66 -66
  217. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +27 -27
  218. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +9 -9
  219. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +326 -328
  220. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +103 -103
  221. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +58 -58
  222. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +14 -14
  223. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +22 -24
  224. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +3 -3
  225. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +29 -29
  226. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +16 -16
  227. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +186 -192
  228. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +54 -54
  229. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +54 -54
  230. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +21 -21
  231. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +59 -61
  232. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +15 -15
  233. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +100 -100
  234. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +34 -34
  235. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +12 -12
  236. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +5 -5
  237. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +118 -118
  238. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +39 -39
  239. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +19 -19
  240. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +9 -9
  241. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +27 -27
  242. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +10 -10
  243. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +12 -14
  244. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +2 -2
  245. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +41 -41
  246. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +16 -16
  247. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +24 -24
  248. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +9 -9
  249. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +139 -139
  250. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +46 -46
  251. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +61 -61
  252. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +20 -20
  253. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +3 -3
  254. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +1 -1
  255. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +6 -6
  256. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +4 -4
  257. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +33 -33
  258. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +14 -14
  259. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +12 -14
  260. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +2 -2
  261. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +52 -54
  262. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +10 -10
  263. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +620 -626
  264. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +215 -215
  265. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +13 -13
  266. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +4 -4
  267. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +3 -3
  268. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +2 -2
  269. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +7 -7
  270. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +3 -3
  271. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +15 -15
  272. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +7 -7
  273. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +7 -7
  274. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +3 -3
  275. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +16 -16
  276. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +10 -10
  277. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +306 -312
  278. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +96 -96
  279. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +61 -61
  280. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +27 -27
  281. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +19 -19
  282. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +6 -6
  283. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +25 -25
  284. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +9 -9
  285. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +34 -34
  286. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +9 -9
  287. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +3 -3
  288. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +2 -2
  289. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +294 -294
  290. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +105 -105
  291. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +3 -3
  292. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +1 -1
  293. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +23 -23
  294. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +8 -8
  295. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +84 -84
  296. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +28 -28
  297. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +87 -87
  298. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +31 -31
  299. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +24 -24
  300. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +5 -5
  301. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +130 -132
  302. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +43 -43
  303. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +6 -6
  304. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +2 -2
  305. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +60 -60
  306. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +26 -26
  307. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +7 -7
  308. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +3 -3
  309. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +6 -6
  310. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +2 -2
  311. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +7 -7
  312. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +3 -3
  313. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +11 -11
  314. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +4 -4
  315. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +85 -89
  316. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +20 -20
  317. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +80 -83
  318. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +27 -27
  319. data/src/core/ext/upb-gen/google/api/http.upb.h +51 -51
  320. data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +22 -22
  321. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +327 -301
  322. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +97 -85
  323. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +1 -0
  324. data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +9 -11
  325. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +9 -10
  326. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +110 -113
  327. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +25 -25
  328. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +6 -6
  329. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +4 -4
  330. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +21 -22
  331. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +3 -3
  332. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +70 -72
  333. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +17 -17
  334. data/src/core/ext/upb-gen/validate/validate.upb.h +368 -368
  335. data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +117 -117
  336. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +9 -10
  337. data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +7 -7
  338. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +3 -3
  339. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +12 -12
  340. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +2 -2
  341. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +27 -30
  342. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +7 -7
  343. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +3 -3
  344. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +3 -3
  345. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +1 -1
  346. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +22 -24
  347. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +3 -3
  348. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +98 -87
  349. data/src/core/{lib/security/transport → filter/auth}/auth_filters.h +8 -7
  350. data/src/core/{lib/security/transport → filter/auth}/client_auth_filter.cc +7 -6
  351. data/src/core/{lib/security/transport → filter/auth}/server_auth_filter.cc +5 -4
  352. data/src/core/handshaker/handshaker.cc +0 -8
  353. data/src/core/handshaker/security/security_handshaker.cc +1 -1
  354. data/src/core/handshaker/security/security_handshaker.h +1 -1
  355. data/src/core/lib/channel/channel_args.h +49 -30
  356. data/src/core/lib/channel/channel_stack.h +1 -2
  357. data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
  358. data/src/core/lib/channel/connected_channel.cc +2 -2
  359. data/src/core/lib/channel/promise_based_filter.h +3 -3
  360. data/src/core/lib/debug/trace_flags.cc +2 -4
  361. data/src/core/lib/debug/trace_flags.h +1 -2
  362. data/src/core/lib/event_engine/default_event_engine_factory.cc +6 -6
  363. data/src/core/lib/event_engine/default_event_engine_factory.h +1 -1
  364. data/src/core/lib/event_engine/extensions/iomgr_compatible.h +39 -0
  365. data/src/core/lib/event_engine/extensions/supports_win_sockets.h +48 -0
  366. data/src/core/lib/event_engine/extensions/tcp_trace.h +1 -1
  367. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +0 -2
  368. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +1 -3
  369. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +26 -0
  370. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +4 -0
  371. data/src/core/lib/event_engine/posix_engine/set_socket_dualstack.cc +64 -0
  372. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +0 -11
  373. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +10 -2
  374. data/src/core/lib/event_engine/shim.cc +9 -16
  375. data/src/core/lib/event_engine/shim.h +11 -0
  376. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +15 -7
  377. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +2 -1
  378. data/src/core/lib/event_engine/windows/win_socket.cc +11 -0
  379. data/src/core/lib/event_engine/windows/win_socket.h +3 -0
  380. data/src/core/lib/event_engine/windows/windows_endpoint.cc +5 -10
  381. data/src/core/lib/event_engine/windows/windows_engine.cc +42 -0
  382. data/src/core/lib/event_engine/windows/windows_engine.h +8 -2
  383. data/src/core/lib/event_engine/windows/windows_listener.cc +5 -6
  384. data/src/core/lib/event_engine/windows/windows_listener.h +9 -4
  385. data/src/core/lib/experiments/experiments.cc +174 -21
  386. data/src/core/lib/experiments/experiments.h +70 -13
  387. data/src/core/lib/iomgr/endpoint_pair_posix.cc +43 -16
  388. data/src/core/lib/iomgr/endpoint_pair_windows.cc +43 -8
  389. data/src/core/lib/iomgr/error.cc +27 -43
  390. data/src/core/lib/iomgr/ev_epoll1_linux.cc +13 -1
  391. data/src/core/lib/iomgr/ev_poll_posix.cc +13 -0
  392. data/src/core/lib/iomgr/polling_entity.cc +2 -7
  393. data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -0
  394. data/src/core/lib/iomgr/socket_utils_posix.cc +22 -11
  395. data/src/core/lib/iomgr/socket_utils_posix.h +12 -2
  396. data/src/core/lib/iomgr/tcp_client_cfstream.cc +8 -9
  397. data/src/core/lib/iomgr/tcp_client_posix.cc +11 -15
  398. data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
  399. data/src/core/lib/iomgr/tcp_posix.cc +58 -31
  400. data/src/core/lib/iomgr/tcp_posix.h +10 -2
  401. data/src/core/lib/iomgr/tcp_server_posix.cc +9 -1
  402. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -4
  403. data/src/core/lib/iomgr/tcp_server_windows.cc +27 -16
  404. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +10 -2
  405. data/src/core/lib/promise/all_ok.h +31 -0
  406. data/src/core/lib/promise/loop.h +8 -5
  407. data/src/core/lib/promise/map.h +65 -2
  408. data/src/core/lib/promise/party.h +5 -1
  409. data/src/core/lib/promise/poll.h +22 -20
  410. data/src/core/lib/promise/promise.h +2 -2
  411. data/src/core/lib/promise/status_flag.h +23 -11
  412. data/src/core/lib/security/authorization/evaluate_args.cc +1 -1
  413. data/src/core/lib/security/authorization/evaluate_args.h +1 -1
  414. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -1
  415. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
  416. data/src/core/lib/slice/slice.h +6 -0
  417. data/src/core/lib/surface/call.cc +20 -18
  418. data/src/core/lib/surface/call_utils.cc +3 -3
  419. data/src/core/lib/surface/call_utils.h +3 -3
  420. data/src/core/lib/surface/channel.h +2 -2
  421. data/src/core/lib/surface/channel_init.h +2 -2
  422. data/src/core/lib/surface/completion_queue.cc +77 -17
  423. data/src/core/lib/surface/filter_stack_call.cc +40 -27
  424. data/src/core/lib/surface/filter_stack_call.h +1 -1
  425. data/src/core/lib/surface/init.cc +2 -3
  426. data/src/core/lib/surface/lame_client.cc +1 -1
  427. data/src/core/lib/surface/legacy_channel.cc +27 -23
  428. data/src/core/lib/surface/legacy_channel.h +1 -1
  429. data/src/core/lib/surface/version.cc +2 -2
  430. data/src/core/lib/transport/error_utils.cc +65 -11
  431. data/src/core/lib/transport/error_utils.h +2 -2
  432. data/src/core/lib/transport/status_conversion.cc +16 -14
  433. data/src/core/lib/transport/status_conversion.h +5 -4
  434. data/src/core/lib/transport/transport.h +5 -5
  435. data/src/core/lib/transport/transport_op_string.cc +1 -1
  436. data/src/core/load_balancing/delegating_helper.h +1 -1
  437. data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +1 -1
  438. data/src/core/load_balancing/grpclb/grpclb.cc +1 -2
  439. data/src/core/load_balancing/pick_first/pick_first.cc +0 -955
  440. data/src/core/load_balancing/rls/rls.cc +31 -37
  441. data/src/core/load_balancing/weighted_target/weighted_target.cc +1 -1
  442. data/src/core/load_balancing/xds/cds.cc +3 -10
  443. data/src/core/load_balancing/xds/xds_cluster_impl.cc +1 -1
  444. data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -0
  445. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -2
  446. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +1 -3
  447. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +4 -0
  448. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +1 -1
  449. data/src/core/resolver/xds/xds_dependency_manager.cc +8 -3
  450. data/src/core/resolver/xds/xds_resolver.cc +2 -2
  451. data/src/core/server/server.cc +7 -4
  452. data/src/core/server/server.h +1 -1
  453. data/src/core/server/server_call_tracer_filter.cc +1 -1
  454. data/src/core/server/server_config_selector.h +1 -1
  455. data/src/core/server/server_config_selector_filter.cc +1 -1
  456. data/src/core/server/xds_server_config_fetcher.cc +5 -5
  457. data/src/core/service_config/service_config_channel_arg_filter.cc +1 -1
  458. data/src/core/telemetry/call_tracer.cc +2 -4
  459. data/src/core/telemetry/call_tracer.h +3 -3
  460. data/src/core/telemetry/metrics.cc +30 -12
  461. data/src/core/telemetry/metrics.h +15 -3
  462. data/src/core/telemetry/stats_data.cc +75 -2
  463. data/src/core/telemetry/stats_data.h +46 -4
  464. data/src/core/telemetry/tcp_tracer.h +90 -84
  465. data/src/core/{lib/security/context/security_context.cc → transport/auth_context.cc} +1 -96
  466. data/src/core/{lib/security/context/security_context.h → transport/auth_context.h} +6 -76
  467. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
  468. data/src/core/tsi/ssl_transport_security.cc +1 -1
  469. data/src/core/util/check_class_size.h +48 -0
  470. data/src/core/util/gcp_metadata_query.cc +1 -1
  471. data/src/core/util/http_client/httpcli.cc +3 -3
  472. data/src/core/util/http_client/httpcli_security_connector.cc +3 -3
  473. data/src/core/util/load_file.cc +26 -14
  474. data/src/core/util/status_helper.cc +86 -63
  475. data/src/core/util/status_helper.h +9 -26
  476. data/src/core/xds/grpc/certificate_provider_store.cc +1 -1
  477. data/src/core/xds/grpc/certificate_provider_store.h +3 -3
  478. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
  479. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +1 -1
  480. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +10 -7
  481. data/src/core/xds/grpc/xds_certificate_provider.cc +1 -1
  482. data/src/core/xds/grpc/xds_certificate_provider.h +2 -2
  483. data/src/core/xds/grpc/xds_client_grpc.cc +7 -6
  484. data/src/core/xds/grpc/xds_client_grpc.h +4 -2
  485. data/src/core/xds/grpc/xds_cluster.h +3 -3
  486. data/src/core/xds/grpc/xds_cluster_parser.cc +3 -2
  487. data/src/core/xds/grpc/xds_http_fault_filter.cc +1 -1
  488. data/src/core/xds/grpc/xds_http_filter.h +1 -1
  489. data/src/core/xds/grpc/xds_http_filter_registry.h +1 -1
  490. data/src/core/xds/grpc/xds_route_config.h +1 -1
  491. data/src/core/xds/grpc/xds_route_config_parser.cc +1 -1
  492. data/src/core/xds/grpc/xds_route_config_parser.h +1 -1
  493. data/src/core/xds/grpc/xds_routing.h +1 -1
  494. data/src/core/xds/grpc/xds_server_grpc.cc +60 -48
  495. data/src/core/xds/grpc/xds_server_grpc.h +23 -13
  496. data/src/core/xds/grpc/xds_server_grpc_interface.h +2 -2
  497. data/src/core/xds/grpc/xds_transport_grpc.cc +5 -5
  498. data/src/core/xds/grpc/xds_transport_grpc.h +5 -3
  499. data/src/core/xds/xds_client/lrs_client.cc +6 -5
  500. data/src/core/xds/xds_client/lrs_client.h +7 -7
  501. data/src/core/xds/xds_client/xds_bootstrap.h +16 -1
  502. data/src/core/xds/xds_client/xds_client.cc +25 -23
  503. data/src/core/xds/xds_client/xds_client.h +3 -1
  504. data/src/core/xds/xds_client/xds_resource_type.h +1 -2
  505. data/src/core/xds/xds_client/xds_transport.h +1 -1
  506. data/src/ruby/ext/grpc/extconf.rb +1 -1
  507. data/src/ruby/lib/grpc/version.rb +1 -1
  508. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.cc +0 -2
  509. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.cc +0 -2
  510. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.cc +0 -2
  511. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.cc +0 -2
  512. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.cc +0 -2
  513. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.cc +0 -2
  514. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.cc +0 -1
  515. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.cc +0 -1
  516. data/third_party/boringssl-with-bazel/src/crypto/crypto.cc +0 -2
  517. data/third_party/boringssl-with-bazel/src/crypto/internal.h +20 -3
  518. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +3 -25
  519. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +3 -7
  520. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +1 -1
  521. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1 -1
  522. data/third_party/boringssl-with-bazel/src/ssl/internal.h +13 -6
  523. data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +2 -1
  524. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +1 -1
  525. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +1 -1
  526. data/third_party/upb/upb/base/internal/log2.h +3 -1
  527. data/third_party/upb/upb/base/string_view.h +10 -0
  528. data/third_party/upb/upb/hash/common.c +5 -1
  529. data/third_party/upb/upb/json/decode.c +2 -2
  530. data/third_party/upb/upb/json/decode.h +0 -1
  531. data/third_party/upb/upb/mem/alloc.h +5 -0
  532. data/third_party/upb/upb/mem/arena.c +296 -142
  533. data/third_party/upb/upb/mem/arena.h +47 -11
  534. data/third_party/upb/upb/mem/arena.hpp +4 -20
  535. data/third_party/upb/upb/mem/internal/arena.h +4 -6
  536. data/third_party/upb/upb/message/accessors.h +41 -0
  537. data/third_party/upb/upb/message/compat.c +11 -14
  538. data/third_party/upb/upb/message/compat.h +4 -3
  539. data/third_party/upb/upb/message/copy.c +35 -30
  540. data/third_party/upb/upb/message/internal/accessors.h +139 -10
  541. data/third_party/upb/upb/message/internal/extension.c +28 -25
  542. data/third_party/upb/upb/message/internal/extension.h +21 -5
  543. data/third_party/upb/upb/message/internal/iterator.c +58 -0
  544. data/third_party/upb/upb/message/internal/iterator.h +29 -0
  545. data/third_party/upb/upb/message/internal/map.h +2 -3
  546. data/third_party/upb/upb/message/internal/map_sorter.h +3 -2
  547. data/third_party/upb/upb/message/internal/message.c +48 -29
  548. data/third_party/upb/upb/message/internal/message.h +154 -24
  549. data/third_party/upb/upb/message/map_sorter.c +20 -8
  550. data/third_party/upb/upb/message/message.c +90 -38
  551. data/third_party/upb/upb/message/message.h +58 -2
  552. data/third_party/upb/upb/message/value.h +9 -0
  553. data/third_party/upb/upb/mini_descriptor/build_enum.c +1 -1
  554. data/third_party/upb/upb/mini_descriptor/decode.c +97 -136
  555. data/third_party/upb/upb/mini_descriptor/decode.h +4 -3
  556. data/third_party/upb/upb/mini_descriptor/internal/encode.hpp +1 -1
  557. data/third_party/upb/upb/mini_table/extension_registry.c +24 -12
  558. data/third_party/upb/upb/mini_table/extension_registry.h +13 -6
  559. data/third_party/upb/upb/mini_table/message.c +21 -13
  560. data/third_party/upb/upb/port/atomic.h +134 -7
  561. data/third_party/upb/upb/port/def.inc +140 -38
  562. data/third_party/upb/upb/port/undef.inc +11 -1
  563. data/third_party/upb/upb/reflection/def.hpp +5 -1
  564. data/third_party/upb/upb/reflection/def_pool.c +10 -3
  565. data/third_party/upb/upb/reflection/descriptor_bootstrap.h +1 -1
  566. data/third_party/upb/upb/reflection/file_def.c +12 -5
  567. data/third_party/upb/upb/reflection/internal/def_builder.c +1 -1
  568. data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
  569. data/third_party/upb/upb/reflection/message.c +19 -16
  570. data/third_party/upb/upb/reflection/message.h +3 -1
  571. data/third_party/upb/upb/text/encode.c +1 -13
  572. data/third_party/upb/upb/text/internal/encode.c +25 -6
  573. data/third_party/upb/upb/text/internal/encode.h +4 -0
  574. data/third_party/upb/upb/wire/decode.c +60 -45
  575. data/third_party/upb/upb/wire/decode.h +4 -2
  576. data/third_party/upb/upb/wire/encode.c +77 -42
  577. data/third_party/upb/upb/wire/encode.h +2 -0
  578. data/third_party/upb/upb/wire/eps_copy_input_stream.h +18 -20
  579. data/third_party/upb/upb/wire/internal/decoder.h +4 -11
  580. data/third_party/utf8_range/utf8_range.c +15 -275
  581. data/third_party/utf8_range/utf8_range_neon.inc +117 -0
  582. data/third_party/utf8_range/utf8_range_sse.inc +272 -0
  583. data/third_party/zlib/deflate.c +40 -15
  584. data/third_party/zlib/deflate.h +33 -2
  585. data/third_party/zlib/gzguts.h +2 -6
  586. data/third_party/zlib/inflate.c +1 -1
  587. data/third_party/zlib/inftrees.c +3 -3
  588. data/third_party/zlib/inftrees.h +2 -2
  589. data/third_party/zlib/trees.c +18 -4
  590. data/third_party/zlib/zconf.h +1 -9
  591. data/third_party/zlib/zlib.h +12 -12
  592. data/third_party/zlib/zutil.h +4 -25
  593. metadata +155 -145
  594. data/include/grpc/grpc_cronet.h +0 -37
  595. data/src/core/lib/transport/http2_errors.h +0 -43
  596. data/third_party/upb/upb/message/internal/compare_unknown.c +0 -289
  597. data/third_party/upb/upb/message/internal/compare_unknown.h +0 -49
@@ -24,6 +24,7 @@
24
24
  #include "absl/status/status.h"
25
25
  #include "absl/status/statusor.h"
26
26
  #include "absl/strings/str_cat.h"
27
+ #include "absl/strings/str_join.h"
27
28
  #include "src/core/lib/promise/detail/status.h"
28
29
 
29
30
  namespace grpc_core {
@@ -274,17 +275,6 @@ class ValueOrFailure {
274
275
  return value_ != other;
275
276
  }
276
277
 
277
- template <typename Sink>
278
- friend void AbslStringify(Sink& sink, const ValueOrFailure& value) {
279
- if (value.ok()) {
280
- sink.Append("Success(");
281
- sink.Append(absl::StrCat(*value));
282
- sink.Append(")");
283
- } else {
284
- sink.Append("Failure");
285
- }
286
- }
287
-
288
278
  private:
289
279
  std::optional<T> value_;
290
280
  };
@@ -299,6 +289,28 @@ inline std::ostream& operator<<(std::ostream& os,
299
289
  }
300
290
  }
301
291
 
292
+ template <typename Sink, typename T>
293
+ void AbslStringify(Sink& sink, const ValueOrFailure<T>& value) {
294
+ if (value.ok()) {
295
+ sink.Append("Success(");
296
+ sink.Append(absl::StrCat(*value));
297
+ sink.Append(")");
298
+ } else {
299
+ sink.Append("Failure");
300
+ }
301
+ }
302
+
303
+ template <typename Sink, typename... Ts>
304
+ void AbslStringify(Sink& sink, const ValueOrFailure<std::tuple<Ts...>>& value) {
305
+ if (value.ok()) {
306
+ sink.Append("Success(");
307
+ sink.Append(absl::StrCat("(", absl::StrJoin(*value, ", "), ")"));
308
+ sink.Append(")");
309
+ } else {
310
+ sink.Append("Failure");
311
+ }
312
+ }
313
+
302
314
  template <typename T>
303
315
  GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline bool IsStatusOk(
304
316
  const ValueOrFailure<T>& value) {
@@ -23,9 +23,9 @@
23
23
  #include "absl/status/statusor.h"
24
24
  #include "absl/strings/match.h"
25
25
  #include "absl/strings/numbers.h"
26
+ #include "src/core/credentials/transport/tls/tls_utils.h"
26
27
  #include "src/core/handshaker/endpoint_info/endpoint_info_handshaker.h"
27
28
  #include "src/core/lib/address_utils/parse_address.h"
28
- #include "src/core/lib/security/credentials/tls/tls_utils.h"
29
29
  #include "src/core/lib/slice/slice.h"
30
30
  #include "src/core/util/host_port.h"
31
31
  #include "src/core/util/uri.h"
@@ -23,9 +23,9 @@
23
23
  #include <vector>
24
24
 
25
25
  #include "absl/strings/string_view.h"
26
+ #include "src/core/call/metadata_batch.h"
26
27
  #include "src/core/lib/channel/channel_args.h"
27
28
  #include "src/core/lib/iomgr/resolved_address.h"
28
- #include "src/core/lib/transport/metadata_batch.h"
29
29
 
30
30
  namespace grpc_core {
31
31
 
@@ -24,13 +24,13 @@
24
24
  #include "absl/log/log.h"
25
25
  #include "absl/status/status.h"
26
26
  #include "absl/strings/str_join.h"
27
+ #include "src/core/call/metadata_batch.h"
27
28
  #include "src/core/lib/channel/channel_stack.h"
28
29
  #include "src/core/lib/channel/promise_based_filter.h"
29
30
  #include "src/core/lib/debug/trace.h"
30
31
  #include "src/core/lib/promise/promise.h"
31
32
  #include "src/core/lib/security/authorization/authorization_engine.h"
32
33
  #include "src/core/lib/security/authorization/evaluate_args.h"
33
- #include "src/core/lib/transport/metadata_batch.h"
34
34
  #include "src/core/lib/transport/transport.h"
35
35
  #include "src/core/util/latent_see.h"
36
36
 
@@ -25,8 +25,8 @@
25
25
  #include "src/core/lib/promise/arena_promise.h"
26
26
  #include "src/core/lib/security/authorization/authorization_policy_provider.h"
27
27
  #include "src/core/lib/security/authorization/evaluate_args.h"
28
- #include "src/core/lib/security/context/security_context.h"
29
28
  #include "src/core/lib/transport/transport.h"
29
+ #include "src/core/transport/auth_context.h"
30
30
  #include "src/core/util/ref_counted_ptr.h"
31
31
 
32
32
  namespace grpc_core {
@@ -432,6 +432,12 @@ class GPR_MSVC_EMPTY_BASE_CLASS_WORKAROUND Slice
432
432
  static Slice FromExternalString(absl::string_view str) {
433
433
  return FromStaticString(str);
434
434
  }
435
+
436
+ static Slice ZeroContentsWithLength(size_t length) {
437
+ grpc_slice backing = grpc_slice_malloc(length);
438
+ memset(GRPC_SLICE_START_PTR(backing), 0, length);
439
+ return Slice(backing);
440
+ }
435
441
  };
436
442
 
437
443
  } // namespace grpc_core
@@ -55,10 +55,12 @@
55
55
  #include "absl/strings/str_format.h"
56
56
  #include "absl/strings/str_join.h"
57
57
  #include "absl/strings/string_view.h"
58
+ #include "src/core/call/call_finalization.h"
59
+ #include "src/core/call/metadata.h"
60
+ #include "src/core/call/metadata_batch.h"
61
+ #include "src/core/call/status_util.h"
58
62
  #include "src/core/channelz/channelz.h"
59
- #include "src/core/lib/channel/call_finalization.h"
60
63
  #include "src/core/lib/channel/channel_stack.h"
61
- #include "src/core/lib/channel/status_util.h"
62
64
  #include "src/core/lib/compression/compression_internal.h"
63
65
  #include "src/core/lib/event_engine/event_engine_context.h"
64
66
  #include "src/core/lib/experiments/experiments.h"
@@ -86,8 +88,6 @@
86
88
  #include "src/core/lib/surface/completion_queue.h"
87
89
  #include "src/core/lib/surface/validate_metadata.h"
88
90
  #include "src/core/lib/transport/error_utils.h"
89
- #include "src/core/lib/transport/metadata.h"
90
- #include "src/core/lib/transport/metadata_batch.h"
91
91
  #include "src/core/lib/transport/transport.h"
92
92
  #include "src/core/server/server_interface.h"
93
93
  #include "src/core/telemetry/call_tracer.h"
@@ -191,7 +191,7 @@ void Call::PublishToParent(Call* parent) {
191
191
  cc->sibling_prev->child_->sibling_next = this;
192
192
  }
193
193
  if (parent->Completed()) {
194
- CancelWithError(absl::CancelledError());
194
+ CancelWithError(absl::CancelledError("CANCELLED"));
195
195
  }
196
196
  }
197
197
 
@@ -215,16 +215,16 @@ void Call::MaybeUnpublishFromParent() {
215
215
  }
216
216
 
217
217
  void Call::CancelWithStatus(grpc_status_code status, const char* description) {
218
- // copying 'description' is needed to ensure the grpc_call_cancel_with_status
219
- // guarantee that can be short-lived.
220
- // TODO(ctiller): change to
221
- // absl::Status(static_cast<absl::StatusCode>(status), description)
222
- // (ie remove the set_int, set_str).
223
- CancelWithError(grpc_error_set_int(
224
- grpc_error_set_str(
225
- absl::Status(static_cast<absl::StatusCode>(status), description),
226
- StatusStrProperty::kGrpcMessage, description),
227
- StatusIntProperty::kRpcStatus, status));
218
+ if (!IsErrorFlattenEnabled()) {
219
+ CancelWithError(grpc_error_set_int(
220
+ grpc_error_set_str(
221
+ absl::Status(static_cast<absl::StatusCode>(status), description),
222
+ StatusStrProperty::kGrpcMessage, description),
223
+ StatusIntProperty::kRpcStatus, status));
224
+ return;
225
+ }
226
+ CancelWithError(
227
+ absl::Status(static_cast<absl::StatusCode>(status), description));
228
228
  }
229
229
 
230
230
  void Call::PropagateCancellationToChildren() {
@@ -238,7 +238,7 @@ void Call::PropagateCancellationToChildren() {
238
238
  Call* next_child_call = child->child_->sibling_next;
239
239
  if (child->cancellation_is_inherited_) {
240
240
  child->InternalRef("propagate_cancel");
241
- child->CancelWithError(absl::CancelledError());
241
+ child->CancelWithError(absl::CancelledError("CANCELLED"));
242
242
  child->InternalUnref("propagate_cancel");
243
243
  }
244
244
  child = next_child_call;
@@ -414,7 +414,8 @@ grpc_call_error grpc_call_cancel(grpc_call* call, void* reserved) {
414
414
  return GRPC_CALL_ERROR;
415
415
  }
416
416
  grpc_core::ExecCtx exec_ctx;
417
- grpc_core::Call::FromC(call)->CancelWithError(absl::CancelledError());
417
+ grpc_core::Call::FromC(call)->CancelWithError(
418
+ absl::CancelledError("CANCELLED"));
418
419
  return GRPC_CALL_OK;
419
420
  }
420
421
 
@@ -435,7 +436,8 @@ grpc_call_error grpc_call_cancel_with_status(grpc_call* c,
435
436
  }
436
437
 
437
438
  void grpc_call_cancel_internal(grpc_call* call) {
438
- grpc_core::Call::FromC(call)->CancelWithError(absl::CancelledError());
439
+ grpc_core::Call::FromC(call)->CancelWithError(
440
+ absl::CancelledError("CANCELLED"));
439
441
  }
440
442
 
441
443
  grpc_compression_algorithm grpc_call_test_only_get_compression_algorithm(
@@ -46,7 +46,9 @@
46
46
  #include "absl/strings/str_cat.h"
47
47
  #include "absl/strings/str_format.h"
48
48
  #include "absl/strings/string_view.h"
49
- #include "src/core/lib/channel/status_util.h"
49
+ #include "src/core/call/metadata.h"
50
+ #include "src/core/call/metadata_batch.h"
51
+ #include "src/core/call/status_util.h"
50
52
  #include "src/core/lib/iomgr/exec_ctx.h"
51
53
  #include "src/core/lib/promise/activity.h"
52
54
  #include "src/core/lib/promise/context.h"
@@ -56,8 +58,6 @@
56
58
  #include "src/core/lib/slice/slice_internal.h"
57
59
  #include "src/core/lib/surface/completion_queue.h"
58
60
  #include "src/core/lib/surface/validate_metadata.h"
59
- #include "src/core/lib/transport/metadata.h"
60
- #include "src/core/lib/transport/metadata_batch.h"
61
61
  #include "src/core/util/crash.h"
62
62
  #include "src/core/util/debug_location.h"
63
63
  #include "src/core/util/match.h"
@@ -44,6 +44,9 @@
44
44
  #include "absl/status/status.h"
45
45
  #include "absl/strings/str_cat.h"
46
46
  #include "absl/strings/string_view.h"
47
+ #include "src/core/call/message.h"
48
+ #include "src/core/call/metadata.h"
49
+ #include "src/core/call/metadata_batch.h"
47
50
  #include "src/core/lib/promise/activity.h"
48
51
  #include "src/core/lib/promise/cancel_callback.h"
49
52
  #include "src/core/lib/promise/map.h"
@@ -51,9 +54,6 @@
51
54
  #include "src/core/lib/promise/seq.h"
52
55
  #include "src/core/lib/promise/status_flag.h"
53
56
  #include "src/core/lib/surface/completion_queue.h"
54
- #include "src/core/lib/transport/message.h"
55
- #include "src/core/lib/transport/metadata.h"
56
- #include "src/core/lib/transport/metadata_batch.h"
57
57
  #include "src/core/util/crash.h"
58
58
 
59
59
  namespace grpc_core {
@@ -30,6 +30,8 @@
30
30
  #include "absl/base/thread_annotations.h"
31
31
  #include "absl/status/statusor.h"
32
32
  #include "absl/strings/string_view.h"
33
+ #include "src/core/call/call_arena_allocator.h"
34
+ #include "src/core/call/call_destination.h"
33
35
  #include "src/core/channelz/channelz.h"
34
36
  #include "src/core/lib/channel/channel_args.h"
35
37
  #include "src/core/lib/iomgr/iomgr_fwd.h"
@@ -37,8 +39,6 @@
37
39
  #include "src/core/lib/resource_quota/resource_quota.h"
38
40
  #include "src/core/lib/slice/slice.h"
39
41
  #include "src/core/lib/surface/channel_stack_type.h"
40
- #include "src/core/lib/transport/call_arena_allocator.h"
41
- #include "src/core/lib/transport/call_destination.h"
42
42
  #include "src/core/lib/transport/connectivity_state.h"
43
43
  #include "src/core/util/cpp_impl_of.h"
44
44
  #include "src/core/util/ref_counted.h"
@@ -30,12 +30,12 @@
30
30
 
31
31
  #include "absl/functional/any_invocable.h"
32
32
  #include "absl/log/check.h"
33
+ #include "src/core/call/call_filters.h"
34
+ #include "src/core/call/interception_chain.h"
33
35
  #include "src/core/lib/channel/channel_args.h"
34
36
  #include "src/core/lib/channel/channel_fwd.h"
35
37
  #include "src/core/lib/channel/channel_stack_builder.h"
36
38
  #include "src/core/lib/surface/channel_stack_type.h"
37
- #include "src/core/lib/transport/call_filters.h"
38
- #include "src/core/lib/transport/interception_chain.h"
39
39
  #include "src/core/util/debug_location.h"
40
40
  #include "src/core/util/unique_type_name.h"
41
41
 
@@ -17,18 +17,17 @@
17
17
  //
18
18
  #include "src/core/lib/surface/completion_queue.h"
19
19
 
20
+ #include <grpc/event_engine/event_engine.h>
20
21
  #include <grpc/grpc.h>
21
22
  #include <grpc/support/alloc.h>
22
23
  #include <grpc/support/atm.h>
23
24
  #include <grpc/support/port_platform.h>
24
25
  #include <grpc/support/sync.h>
25
26
  #include <grpc/support/time.h>
26
- #include <inttypes.h>
27
27
  #include <stdio.h>
28
28
 
29
29
  #include <algorithm>
30
30
  #include <atomic>
31
- #include <new>
32
31
  #include <string>
33
32
  #include <utility>
34
33
  #include <vector>
@@ -38,11 +37,9 @@
38
37
  #include "absl/status/status.h"
39
38
  #include "absl/strings/str_format.h"
40
39
  #include "absl/strings/str_join.h"
41
- #include "src/core/lib/event_engine/default_event_engine.h"
40
+ #include "src/core/lib/event_engine/shim.h"
42
41
  #include "src/core/lib/iomgr/closure.h"
43
42
  #include "src/core/lib/iomgr/exec_ctx.h"
44
- #include "src/core/lib/iomgr/executor.h"
45
- #include "src/core/lib/iomgr/iomgr.h"
46
43
  #include "src/core/lib/iomgr/pollset.h"
47
44
  #include "src/core/lib/surface/event_string.h"
48
45
  #include "src/core/telemetry/stats.h"
@@ -54,10 +51,6 @@
54
51
  #include "src/core/util/status_helper.h"
55
52
  #include "src/core/util/time.h"
56
53
 
57
- #ifdef GPR_WINDOWS
58
- #include "src/core/lib/experiments/experiments.h"
59
- #endif
60
-
61
54
  namespace {
62
55
 
63
56
  // Specifies a cq thread local cache.
@@ -73,7 +66,7 @@ struct plucker {
73
66
  void* tag;
74
67
  };
75
68
  struct cq_poller_vtable {
76
- bool can_get_pollset;
69
+ bool (*can_get_pollset)();
77
70
  bool can_listen;
78
71
  size_t (*size)(void);
79
72
  void (*init)(grpc_pollset* pollset, gpr_mu** mu);
@@ -186,16 +179,83 @@ void non_polling_poller_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
186
179
  }
187
180
  }
188
181
 
182
+ bool non_polling_poller_can_never_get_pollset() { return false; }
183
+
184
+ bool maybe_event_engine_poller_can_get_pollset() {
185
+ return !grpc_event_engine::experimental::UsePollsetAlternative();
186
+ }
187
+
188
+ // maybe_event_engine*: If iomgr isn't relied upon for polling, then we can use
189
+ // the non-polling poller implementations below.
190
+ size_t maybe_event_engine_poller_size(void) {
191
+ if (grpc_event_engine::experimental::UsePollsetAlternative()) {
192
+ return non_polling_poller_size();
193
+ } else {
194
+ return grpc_pollset_size();
195
+ }
196
+ }
197
+
198
+ void maybe_event_engine_poller_init(grpc_pollset* pollset, gpr_mu** mu) {
199
+ if (grpc_event_engine::experimental::UsePollsetAlternative()) {
200
+ non_polling_poller_init(pollset, mu);
201
+ } else {
202
+ grpc_pollset_init(pollset, mu);
203
+ }
204
+ }
205
+
206
+ void maybe_event_engine_poller_destroy(grpc_pollset* pollset) {
207
+ if (grpc_event_engine::experimental::UsePollsetAlternative()) {
208
+ non_polling_poller_destroy(pollset);
209
+ } else {
210
+ grpc_pollset_destroy(pollset);
211
+ }
212
+ }
213
+
214
+ grpc_error_handle maybe_event_engine_pollset_work(
215
+ grpc_pollset* pollset, grpc_pollset_worker** worker,
216
+ grpc_core::Timestamp deadline) {
217
+ if (grpc_event_engine::experimental::UsePollsetAlternative()) {
218
+ return non_polling_poller_work(pollset, worker, deadline);
219
+ } else {
220
+ return grpc_pollset_work(pollset, worker, deadline);
221
+ }
222
+ }
223
+
224
+ grpc_error_handle maybe_event_engine_poller_kick(
225
+ grpc_pollset* pollset, grpc_pollset_worker* specific_worker) {
226
+ if (grpc_event_engine::experimental::UsePollsetAlternative()) {
227
+ return non_polling_poller_kick(pollset, specific_worker);
228
+ } else {
229
+ return grpc_pollset_kick(pollset, specific_worker);
230
+ }
231
+ }
232
+
233
+ void maybe_event_engine_poller_shutdown(grpc_pollset* pollset,
234
+ grpc_closure* closure) {
235
+ if (grpc_event_engine::experimental::UsePollsetAlternative()) {
236
+ non_polling_poller_shutdown(pollset, closure);
237
+ } else {
238
+ grpc_pollset_shutdown(pollset, closure);
239
+ }
240
+ }
241
+
242
+ // TODO(hork): Once EE is the default everywhere, the only variations will be
243
+ // the bool args controlling whether the poller can get a pollset and whether it
244
+ // can listen.
189
245
  const cq_poller_vtable g_poller_vtable_by_poller_type[] = {
190
246
  // GRPC_CQ_DEFAULT_POLLING
191
- {true, true, grpc_pollset_size, grpc_pollset_init, grpc_pollset_kick,
192
- grpc_pollset_work, grpc_pollset_shutdown, grpc_pollset_destroy},
247
+ {maybe_event_engine_poller_can_get_pollset, true,
248
+ maybe_event_engine_poller_size, maybe_event_engine_poller_init,
249
+ maybe_event_engine_poller_kick, maybe_event_engine_pollset_work,
250
+ maybe_event_engine_poller_shutdown, maybe_event_engine_poller_destroy},
193
251
  // GRPC_CQ_NON_LISTENING
194
- {true, false, grpc_pollset_size, grpc_pollset_init, grpc_pollset_kick,
195
- grpc_pollset_work, grpc_pollset_shutdown, grpc_pollset_destroy},
252
+ {maybe_event_engine_poller_can_get_pollset, false,
253
+ maybe_event_engine_poller_size, maybe_event_engine_poller_init,
254
+ maybe_event_engine_poller_kick, maybe_event_engine_pollset_work,
255
+ maybe_event_engine_poller_shutdown, maybe_event_engine_poller_destroy},
196
256
  // GRPC_CQ_NON_POLLING
197
- {false, false, non_polling_poller_size, non_polling_poller_init,
198
- non_polling_poller_kick, non_polling_poller_work,
257
+ {non_polling_poller_can_never_get_pollset, false, non_polling_poller_size,
258
+ non_polling_poller_init, non_polling_poller_kick, non_polling_poller_work,
199
259
  non_polling_poller_shutdown, non_polling_poller_destroy},
200
260
  };
201
261
 
@@ -1372,7 +1432,7 @@ void grpc_completion_queue_destroy(grpc_completion_queue* cq) {
1372
1432
  }
1373
1433
 
1374
1434
  grpc_pollset* grpc_cq_pollset(grpc_completion_queue* cq) {
1375
- return cq->poller_vtable->can_get_pollset ? POLLSET_FROM_CQ(cq) : nullptr;
1435
+ return cq->poller_vtable->can_get_pollset() ? POLLSET_FROM_CQ(cq) : nullptr;
1376
1436
  }
1377
1437
 
1378
1438
  bool grpc_cq_can_listen(grpc_completion_queue* cq) {
@@ -42,6 +42,7 @@
42
42
  #include "absl/status/status.h"
43
43
  #include "absl/strings/str_cat.h"
44
44
  #include "absl/strings/string_view.h"
45
+ #include "src/core/call/metadata_batch.h"
45
46
  #include "src/core/channelz/channelz.h"
46
47
  #include "src/core/lib/channel/channel_stack.h"
47
48
  #include "src/core/lib/event_engine/event_engine_context.h"
@@ -57,7 +58,6 @@
57
58
  #include "src/core/lib/surface/completion_queue.h"
58
59
  #include "src/core/lib/surface/validate_metadata.h"
59
60
  #include "src/core/lib/transport/error_utils.h"
60
- #include "src/core/lib/transport/metadata_batch.h"
61
61
  #include "src/core/lib/transport/transport.h"
62
62
  #include "src/core/server/server_interface.h"
63
63
  #include "src/core/telemetry/call_tracer.h"
@@ -114,6 +114,7 @@ grpc_error_handle FilterStackCall::Create(grpc_call_create_args* args,
114
114
  *out_call = call->c_ptr();
115
115
  grpc_slice path = grpc_empty_slice();
116
116
  ScopedContext ctx(call);
117
+ Call* parent = Call::FromC(args->parent);
117
118
  if (call->is_client()) {
118
119
  call->final_op_.client.status_details = nullptr;
119
120
  call->final_op_.client.status = nullptr;
@@ -129,8 +130,15 @@ grpc_error_handle FilterStackCall::Create(grpc_call_create_args* args,
129
130
  call->send_initial_metadata_.Set(
130
131
  GrpcRegisteredMethod(), reinterpret_cast<void*>(static_cast<uintptr_t>(
131
132
  args->registered_method)));
132
- channel_stack->stats_plugin_group->AddClientCallTracers(
133
- Slice(CSliceRef(path)), args->registered_method, arena.get());
133
+ if (parent != nullptr) {
134
+ add_init_error(&error, absl_status_to_grpc_error(call->InitParent(
135
+ parent, args->propagation_mask)));
136
+ }
137
+ // Client call tracers should be created after propagating relevant
138
+ // properties (tracing included) from the parent.
139
+ (*channel_stack->stats_plugin_group)
140
+ ->AddClientCallTracers(Slice(CSliceRef(path)), args->registered_method,
141
+ arena.get());
134
142
  } else {
135
143
  global_stats().IncrementServerCallsCreated();
136
144
  call->final_op_.server.cancelled = nullptr;
@@ -157,19 +165,14 @@ grpc_error_handle FilterStackCall::Create(grpc_call_create_args* args,
157
165
  arena->SetContext<CallTracerInterface>(server_call_tracer);
158
166
  }
159
167
  }
160
- channel_stack->stats_plugin_group->AddServerCallTracers(arena.get());
168
+ (*channel_stack->stats_plugin_group)->AddServerCallTracers(arena.get());
161
169
  }
162
170
 
163
- Call* parent = Call::FromC(args->parent);
164
- if (parent != nullptr) {
165
- add_init_error(&error, absl_status_to_grpc_error(call->InitParent(
166
- parent, args->propagation_mask)));
167
- }
168
171
  // initial refcount dropped by grpc_call_unref
169
172
  grpc_call_element_args call_args = {
170
- call->call_stack(), args->server_transport_data, path,
171
- call->start_time(), call->send_deadline(), call->arena(),
172
- &call->call_combiner_};
173
+ call->call_stack(), args->server_transport_data,
174
+ call->start_time(), call->send_deadline(),
175
+ call->arena(), &call->call_combiner_};
173
176
  add_init_error(&error, grpc_call_stack_init(channel_stack, 1, DestroyCall,
174
177
  call, &call_args));
175
178
  // Publish this call to parent only after the call stack has been initialized.
@@ -273,7 +276,7 @@ void FilterStackCall::ExternalUnref() {
273
276
  destroy_called_ = true;
274
277
  bool cancel = gpr_atm_acq_load(&received_final_op_atm_) == 0;
275
278
  if (cancel) {
276
- CancelWithError(absl::CancelledError());
279
+ CancelWithError(absl::CancelledError("CANCELLED"));
277
280
  } else {
278
281
  // Unset the call combiner cancellation closure. This has the
279
282
  // effect of scheduling the previously set cancellation closure, if
@@ -451,21 +454,31 @@ void FilterStackCall::RecvTrailingFilter(grpc_metadata_batch* b,
451
454
  } else {
452
455
  std::optional<grpc_status_code> grpc_status = b->Take(GrpcStatusMetadata());
453
456
  if (grpc_status.has_value()) {
454
- grpc_status_code status_code = *grpc_status;
455
457
  grpc_error_handle error;
456
- if (status_code != GRPC_STATUS_OK) {
457
- Slice peer = GetPeerString();
458
- error = grpc_error_set_int(
459
- GRPC_ERROR_CREATE(absl::StrCat("Error received from peer ",
460
- peer.as_string_view())),
461
- StatusIntProperty::kRpcStatus, static_cast<intptr_t>(status_code));
462
- }
463
- auto grpc_message = b->Take(GrpcMessageMetadata());
464
- if (grpc_message.has_value()) {
465
- error = grpc_error_set_str(error, StatusStrProperty::kGrpcMessage,
466
- grpc_message->as_string_view());
467
- } else if (!error.ok()) {
468
- error = grpc_error_set_str(error, StatusStrProperty::kGrpcMessage, "");
458
+ if (IsErrorFlattenEnabled()) {
459
+ auto grpc_message = b->Take(GrpcMessageMetadata());
460
+ absl::string_view message;
461
+ if (grpc_message.has_value()) message = grpc_message->as_string_view();
462
+ error =
463
+ absl::Status(static_cast<absl::StatusCode>(*grpc_status), message);
464
+ } else {
465
+ grpc_status_code status_code = *grpc_status;
466
+ if (status_code != GRPC_STATUS_OK) {
467
+ Slice peer = GetPeerString();
468
+ error = grpc_error_set_int(
469
+ GRPC_ERROR_CREATE(absl::StrCat("Error received from peer ",
470
+ peer.as_string_view())),
471
+ StatusIntProperty::kRpcStatus,
472
+ static_cast<intptr_t>(status_code));
473
+ }
474
+ auto grpc_message = b->Take(GrpcMessageMetadata());
475
+ if (grpc_message.has_value()) {
476
+ error = grpc_error_set_str(error, StatusStrProperty::kGrpcMessage,
477
+ grpc_message->as_string_view());
478
+ } else if (!error.ok()) {
479
+ error =
480
+ grpc_error_set_str(error, StatusStrProperty::kGrpcMessage, "");
481
+ }
469
482
  }
470
483
  SetFinalStatus(error);
471
484
  } else if (!is_client()) {
@@ -42,6 +42,7 @@
42
42
  #include "absl/strings/str_cat.h"
43
43
  #include "absl/strings/str_join.h"
44
44
  #include "absl/strings/string_view.h"
45
+ #include "src/core/call/metadata_batch.h"
45
46
  #include "src/core/lib/channel/channel_stack.h"
46
47
  #include "src/core/lib/iomgr/call_combiner.h"
47
48
  #include "src/core/lib/iomgr/polling_entity.h"
@@ -51,7 +52,6 @@
51
52
  #include "src/core/lib/surface/call.h"
52
53
  #include "src/core/lib/surface/channel.h"
53
54
  #include "src/core/lib/surface/completion_queue.h"
54
- #include "src/core/lib/transport/metadata_batch.h"
55
55
  #include "src/core/lib/transport/transport.h"
56
56
  #include "src/core/server/server_interface.h"
57
57
  #include "src/core/telemetry/call_tracer.h"
@@ -33,6 +33,8 @@
33
33
  #include "absl/time/time.h"
34
34
  #include "src/core/client_channel/backup_poller.h"
35
35
  #include "src/core/config/core_configuration.h"
36
+ #include "src/core/credentials/transport/security_connector.h"
37
+ #include "src/core/filter/auth/auth_filters.h"
36
38
  #include "src/core/lib/debug/trace.h"
37
39
  #include "src/core/lib/event_engine/posix_engine/timer_manager.h"
38
40
  #include "src/core/lib/experiments/config.h"
@@ -41,9 +43,6 @@
41
43
  #include "src/core/lib/iomgr/iomgr.h"
42
44
  #include "src/core/lib/iomgr/timer_manager.h"
43
45
  #include "src/core/lib/security/authorization/grpc_server_authz_filter.h"
44
- #include "src/core/lib/security/credentials/credentials.h"
45
- #include "src/core/lib/security/security_connector/security_connector.h"
46
- #include "src/core/lib/security/transport/auth_filters.h"
47
46
  #include "src/core/lib/surface/channel_stack_type.h"
48
47
  #include "src/core/lib/surface/init_internally.h"
49
48
  #include "src/core/util/fork.h"
@@ -28,6 +28,7 @@
28
28
 
29
29
  #include "absl/status/status.h"
30
30
  #include "absl/status/statusor.h"
31
+ #include "src/core/call/metadata_batch.h"
31
32
  #include "src/core/config/core_configuration.h"
32
33
  #include "src/core/lib/channel/channel_args.h"
33
34
  #include "src/core/lib/channel/channel_args_preconditioning.h"
@@ -40,7 +41,6 @@
40
41
  #include "src/core/lib/surface/channel.h"
41
42
  #include "src/core/lib/surface/channel_stack_type.h"
42
43
  #include "src/core/lib/transport/connectivity_state.h"
43
- #include "src/core/lib/transport/metadata_batch.h"
44
44
  #include "src/core/lib/transport/transport.h"
45
45
  #include "src/core/util/debug_location.h"
46
46
  #include "src/core/util/ref_counted_ptr.h"