grpc 1.37.1 → 1.40.0.pre1
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.
- checksums.yaml +4 -4
- data/Makefile +112 -59
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/endpoint_config.h +48 -0
- data/include/grpc/event_engine/event_engine.h +330 -0
- data/include/grpc/event_engine/port.h +41 -0
- data/include/grpc/event_engine/slice_allocator.h +66 -0
- data/include/grpc/grpc.h +11 -4
- data/include/grpc/grpc_security.h +32 -0
- data/include/grpc/grpc_security_constants.h +15 -0
- data/include/grpc/impl/codegen/grpc_types.h +44 -19
- data/include/grpc/impl/codegen/port_platform.h +46 -0
- data/include/grpc/module.modulemap +14 -14
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +975 -3282
- data/src/core/ext/filters/client_channel/client_channel.h +513 -55
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +20 -7
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +28 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +30 -29
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +53 -51
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +14 -23
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +16 -16
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +734 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +10 -17
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +17 -20
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +53 -65
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +36 -44
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +33 -55
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +151 -163
- data/src/core/ext/filters/client_channel/lb_policy.cc +2 -16
- data/src/core/ext/filters/client_channel/lb_policy.h +70 -46
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +24 -18
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +18 -12
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +20 -13
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +158 -102
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2598 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +316 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
- data/src/core/ext/filters/client_channel/server_address.cc +1 -1
- data/src/core/ext/filters/client_channel/service_config.cc +15 -14
- data/src/core/ext/filters/client_channel/service_config.h +7 -6
- data/src/core/ext/filters/client_channel/service_config_call_data.h +45 -5
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
- data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
- data/src/core/ext/filters/client_channel/subchannel.h +7 -6
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +17 -16
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -18
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +33 -23
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
- data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
- data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
- data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +3 -2
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +49 -46
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +5 -4
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +66 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +74 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +141 -126
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +9 -9
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +12 -12
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +15 -16
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +11 -10
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +652 -736
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +195 -74
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +33 -28
- data/src/core/ext/transport/chttp2/transport/parsing.cc +129 -106
- data/src/core/ext/transport/chttp2/transport/varint.cc +6 -4
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +72 -60
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +56 -35
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +180 -76
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +35 -27
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +97 -48
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +45 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +67 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +66 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +227 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +121 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +90 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +32 -24
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +120 -73
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +4 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +15 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +171 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +8 -6
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +27 -19
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +24 -7
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +57 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +29 -17
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +72 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +4 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +6 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +15 -11
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +85 -43
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +274 -91
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +11 -8
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +30 -13
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +33 -5
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +115 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +181 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +1 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +82 -66
- data/src/core/ext/upb-generated/validate/validate.upb.h +220 -124
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +15 -7
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +53 -52
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +318 -277
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +437 -410
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +198 -170
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +9 -8
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +219 -163
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +15 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +29 -25
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +135 -125
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +131 -123
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +90 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +32 -24
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +69 -55
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +684 -664
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +441 -375
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +122 -114
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +112 -79
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +35 -32
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +182 -160
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/xds_api.cc +665 -317
- data/src/core/ext/xds/xds_api.h +52 -14
- data/src/core/ext/xds/xds_bootstrap.cc +101 -160
- data/src/core/ext/xds/xds_bootstrap.h +19 -24
- data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
- data/src/core/ext/xds/xds_certificate_provider.h +4 -4
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_client.cc +370 -215
- data/src/core/ext/xds/xds_client.h +38 -28
- data/src/core/ext/xds/xds_client_stats.h +3 -2
- data/src/core/ext/xds/xds_http_filters.cc +3 -2
- data/src/core/ext/xds/xds_http_filters.h +3 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +16 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +16 -11
- data/src/core/lib/channel/call_tracer.h +85 -0
- data/src/core/lib/channel/channel_stack.cc +10 -9
- data/src/core/lib/channel/channel_stack.h +11 -10
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channelz.cc +21 -13
- data/src/core/lib/channel/channelz.h +3 -0
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/context.h +3 -0
- data/src/core/lib/channel/handshaker.cc +7 -6
- data/src/core/lib/channel/handshaker.h +5 -5
- data/src/core/lib/channel/status_util.h +4 -0
- data/src/core/lib/compression/stream_compression.h +1 -1
- data/src/core/lib/compression/stream_compression_gzip.h +1 -1
- data/src/core/lib/compression/stream_compression_identity.h +1 -1
- data/src/core/lib/debug/stats.h +1 -1
- data/src/core/lib/event_engine/endpoint_config.cc +46 -0
- data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
- data/src/core/lib/event_engine/event_engine.cc +50 -0
- data/src/core/lib/event_engine/sockaddr.cc +40 -0
- data/src/core/lib/event_engine/sockaddr.h +44 -0
- data/src/core/lib/gpr/murmur_hash.cc +4 -2
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- data/src/core/lib/gprpp/manual_constructor.h +1 -1
- data/src/core/lib/gprpp/orphanable.h +3 -3
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +183 -0
- data/src/core/lib/gprpp/sync.h +2 -30
- data/src/core/lib/http/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli_security_connector.cc +11 -7
- data/src/core/lib/http/parser.cc +16 -16
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +8 -10
- data/src/core/lib/iomgr/buffer_list.h +4 -5
- data/src/core/lib/iomgr/call_combiner.cc +15 -12
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +33 -0
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +168 -61
- data/src/core/lib/iomgr/error.h +217 -106
- data/src/core/lib/iomgr/error_cfstream.cc +3 -2
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +5 -1
- data/src/core/lib/iomgr/ev_apple.cc +5 -5
- data/src/core/lib/iomgr/ev_apple.h +1 -1
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
- data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +9 -8
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/event_engine/closure.cc +54 -0
- data/src/core/lib/iomgr/event_engine/closure.h +33 -0
- data/src/core/lib/iomgr/event_engine/endpoint.cc +192 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
- data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
- data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
- data/src/core/lib/iomgr/event_engine/promise.h +51 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +263 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
- data/src/core/lib/iomgr/exec_ctx.cc +12 -4
- data/src/core/lib/iomgr/exec_ctx.h +4 -5
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
- data/src/core/lib/iomgr/executor/threadpool.h +2 -2
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +2 -2
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +3 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -12
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +7 -7
- data/src/core/lib/iomgr/pollset_custom.h +3 -1
- data/src/core/lib/iomgr/pollset_uv.cc +3 -1
- data/src/core/lib/iomgr/pollset_uv.h +5 -1
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +7 -5
- data/src/core/lib/iomgr/python_util.h +2 -2
- data/src/core/lib/iomgr/resolve_address.cc +8 -4
- data/src/core/lib/iomgr/resolve_address.h +12 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +13 -10
- data/src/core/lib/iomgr/sockaddr.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.cc +15 -2
- data/src/core/lib/iomgr/socket_mutator.h +26 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +24 -22
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +22 -19
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +7 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +78 -73
- data/src/core/lib/iomgr/tcp_posix.h +8 -0
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +26 -25
- data/src/core/lib/iomgr/tcp_server_posix.cc +29 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -18
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +25 -23
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer.h +6 -1
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +6 -6
- data/src/core/lib/iomgr/timer_manager.cc +1 -1
- data/src/core/lib/iomgr/udp_server.cc +21 -20
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_reader.cc +5 -6
- data/src/core/lib/matchers/matchers.cc +46 -58
- data/src/core/lib/matchers/matchers.h +30 -29
- data/src/core/lib/security/authorization/authorization_engine.h +44 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
- data/src/core/lib/security/authorization/evaluate_args.h +91 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.h +2 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +12 -10
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +68 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/tls/tls_utils.cc +32 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +13 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -9
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +27 -4
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +60 -76
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
- data/src/core/lib/security/transport/security_handshaker.cc +45 -36
- data/src/core/lib/security/transport/server_auth_filter.cc +17 -18
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +2 -2
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/slice/slice_internal.h +1 -0
- data/src/core/lib/surface/call.cc +72 -52
- data/src/core/lib/surface/call.h +13 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +3 -2
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +68 -69
- data/src/core/lib/surface/completion_queue.h +3 -2
- data/src/core/lib/surface/completion_queue_factory.cc +1 -2
- data/src/core/lib/surface/init.cc +1 -3
- data/src/core/lib/surface/init.h +10 -1
- data/src/core/lib/surface/lame_client.cc +11 -11
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +31 -23
- data/src/core/lib/surface/server.h +19 -18
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +21 -10
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +37 -37
- data/src/core/lib/transport/metadata_batch.h +19 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +6 -4
- data/src/core/lib/transport/transport_op_string.cc +6 -6
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/tsi/alts/crypt/gsec.h +6 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/ssl_transport_security.cc +32 -14
- data/src/core/tsi/ssl_transport_security.h +3 -4
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +11 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
- data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +37 -9
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +29 -22
- data/third_party/abseil-cpp/absl/status/status.h +81 -20
- data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
- data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +26 -24
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/boringssl-with-bazel/err_data.c +483 -461
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +9 -7
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +52 -65
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +26 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +61 -75
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +367 -315
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +47 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +6 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +20 -49
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +325 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +25 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +99 -63
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +283 -85
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +13 -19
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +445 -152
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +66 -30
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +189 -86
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +154 -24
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +414 -135
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +51 -60
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +8 -31
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +664 -702
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +65 -7
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -39
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +141 -94
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +213 -118
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- data/third_party/xxhash/xxhash.h +77 -195
- metadata +116 -51
- data/src/core/lib/gpr/arena.h +0 -47
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -246
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
@@ -58,7 +58,7 @@ class CallCombiner {
|
|
58
58
|
#define GRPC_CALL_COMBINER_STOP(call_combiner, reason) \
|
59
59
|
(call_combiner)->Stop(__FILE__, __LINE__, (reason))
|
60
60
|
/// Starts processing \a closure.
|
61
|
-
void Start(grpc_closure* closure,
|
61
|
+
void Start(grpc_closure* closure, grpc_error_handle error, const char* file,
|
62
62
|
int line, const char* reason);
|
63
63
|
/// Yields the call combiner to the next closure in the queue, if any.
|
64
64
|
void Stop(const char* file, int line, const char* reason);
|
@@ -68,7 +68,8 @@ class CallCombiner {
|
|
68
68
|
#define GRPC_CALL_COMBINER_STOP(call_combiner, reason) \
|
69
69
|
(call_combiner)->Stop((reason))
|
70
70
|
/// Starts processing \a closure.
|
71
|
-
void Start(grpc_closure* closure,
|
71
|
+
void Start(grpc_closure* closure, grpc_error_handle error,
|
72
|
+
const char* reason);
|
72
73
|
/// Yields the call combiner to the next closure in the queue, if any.
|
73
74
|
void Stop(const char* reason);
|
74
75
|
#endif
|
@@ -94,26 +95,22 @@ class CallCombiner {
|
|
94
95
|
/// cancellation; this effectively unregisters the previously set closure.
|
95
96
|
/// However, most filters will not need to explicitly unregister their
|
96
97
|
/// callbacks, as this is done automatically when the call is destroyed.
|
97
|
-
/// Filters that schedule the cancellation closure on ExecCtx do not need
|
98
|
-
/// to take a ref on the call stack to guarantee closure liveness. This is
|
99
|
-
/// done by explicitly flushing ExecCtx after the unregistration during
|
100
|
-
/// call destruction.
|
101
98
|
void SetNotifyOnCancel(grpc_closure* closure);
|
102
99
|
|
103
100
|
/// Indicates that the call has been cancelled.
|
104
|
-
void Cancel(
|
101
|
+
void Cancel(grpc_error_handle error);
|
105
102
|
|
106
103
|
private:
|
107
|
-
void ScheduleClosure(grpc_closure* closure,
|
104
|
+
void ScheduleClosure(grpc_closure* closure, grpc_error_handle error);
|
108
105
|
#ifdef GRPC_TSAN_ENABLED
|
109
|
-
static void TsanClosure(void* arg,
|
106
|
+
static void TsanClosure(void* arg, grpc_error_handle error);
|
110
107
|
#endif
|
111
108
|
|
112
109
|
gpr_atm size_ = 0; // size_t, num closures in queue or currently executing
|
113
110
|
MultiProducerSingleConsumerQueue queue_;
|
114
111
|
// Either 0 (if not cancelled and no cancellation closure set),
|
115
112
|
// a grpc_closure* (if the lowest bit is 0),
|
116
|
-
// or a
|
113
|
+
// or a grpc_error_handle (if the lowest bit is 1).
|
117
114
|
gpr_atm cancel_state_ = 0;
|
118
115
|
#ifdef GRPC_TSAN_ENABLED
|
119
116
|
// A fake ref-counted lock that is kept alive after the destruction of
|
@@ -150,7 +147,7 @@ class CallCombinerClosureList {
|
|
150
147
|
|
151
148
|
// Adds a closure to the list. The closure must eventually result in
|
152
149
|
// the call combiner being yielded.
|
153
|
-
void Add(grpc_closure* closure,
|
150
|
+
void Add(grpc_closure* closure, grpc_error_handle error, const char* reason) {
|
154
151
|
closures_.emplace_back(closure, error, reason);
|
155
152
|
}
|
156
153
|
|
@@ -176,7 +173,8 @@ class CallCombinerClosureList {
|
|
176
173
|
"CallCombinerClosureList executing closure while already "
|
177
174
|
"holding call_combiner %p: closure=%p error=%s reason=%s",
|
178
175
|
call_combiner, closures_[0].closure,
|
179
|
-
|
176
|
+
grpc_error_std_string(closures_[0].error).c_str(),
|
177
|
+
closures_[0].reason);
|
180
178
|
}
|
181
179
|
// This will release the call combiner.
|
182
180
|
ExecCtx::Run(DEBUG_LOCATION, closures_[0].closure, closures_[0].error);
|
@@ -199,10 +197,10 @@ class CallCombinerClosureList {
|
|
199
197
|
private:
|
200
198
|
struct CallCombinerClosure {
|
201
199
|
grpc_closure* closure;
|
202
|
-
|
200
|
+
grpc_error_handle error;
|
203
201
|
const char* reason;
|
204
202
|
|
205
|
-
CallCombinerClosure(grpc_closure* closure,
|
203
|
+
CallCombinerClosure(grpc_closure* closure, grpc_error_handle error,
|
206
204
|
const char* reason)
|
207
205
|
: closure(closure), error(error), reason(reason) {}
|
208
206
|
};
|
@@ -62,7 +62,7 @@ void CFStreamHandle::ReadCallback(CFReadStreamRef stream,
|
|
62
62
|
void* client_callback_info) {
|
63
63
|
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
64
64
|
grpc_core::ExecCtx exec_ctx;
|
65
|
-
|
65
|
+
grpc_error_handle error;
|
66
66
|
CFErrorRef stream_error;
|
67
67
|
CFStreamHandle* handle = static_cast<CFStreamHandle*>(client_callback_info);
|
68
68
|
if (grpc_tcp_trace.enabled()) {
|
@@ -97,7 +97,7 @@ void CFStreamHandle::WriteCallback(CFWriteStreamRef stream,
|
|
97
97
|
void* clientCallBackInfo) {
|
98
98
|
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
99
99
|
grpc_core::ExecCtx exec_ctx;
|
100
|
-
|
100
|
+
grpc_error_handle error;
|
101
101
|
CFErrorRef stream_error;
|
102
102
|
CFStreamHandle* handle = static_cast<CFStreamHandle*>(clientCallBackInfo);
|
103
103
|
if (grpc_tcp_trace.enabled()) {
|
@@ -171,7 +171,7 @@ void CFStreamHandle::NotifyOnWrite(grpc_closure* closure) {
|
|
171
171
|
write_event_.NotifyOn(closure);
|
172
172
|
}
|
173
173
|
|
174
|
-
void CFStreamHandle::Shutdown(
|
174
|
+
void CFStreamHandle::Shutdown(grpc_error_handle error) {
|
175
175
|
open_event_.SetShutdown(GRPC_ERROR_REF(error));
|
176
176
|
read_event_.SetShutdown(GRPC_ERROR_REF(error));
|
177
177
|
write_event_.SetShutdown(GRPC_ERROR_REF(error));
|
@@ -53,7 +53,7 @@ class CFStreamHandle : public GrpcLibraryInitHolder {
|
|
53
53
|
void NotifyOnOpen(grpc_closure* closure);
|
54
54
|
void NotifyOnRead(grpc_closure* closure);
|
55
55
|
void NotifyOnWrite(grpc_closure* closure);
|
56
|
-
void Shutdown(
|
56
|
+
void Shutdown(grpc_error_handle error);
|
57
57
|
|
58
58
|
void Ref(const char* file = "", int line = 0, const char* reason = nullptr);
|
59
59
|
void Unref(const char* file = "", int line = 0, const char* reason = nullptr);
|
@@ -50,7 +50,7 @@ typedef struct grpc_closure_list {
|
|
50
50
|
* describing what went wrong.
|
51
51
|
* Error contract: it is not the cb's job to unref this error;
|
52
52
|
* the closure scheduler will do that after the cb returns */
|
53
|
-
typedef void (*grpc_iomgr_cb_func)(void* arg,
|
53
|
+
typedef void (*grpc_iomgr_cb_func)(void* arg, grpc_error_handle error);
|
54
54
|
|
55
55
|
/** A closure over a grpc_iomgr_cb_func. */
|
56
56
|
struct grpc_closure {
|
@@ -72,7 +72,7 @@ struct grpc_closure {
|
|
72
72
|
|
73
73
|
/** Once queued, the result of the closure. Before then: scratch space */
|
74
74
|
union {
|
75
|
-
|
75
|
+
grpc_error_handle error;
|
76
76
|
uintptr_t scratch;
|
77
77
|
} error_data;
|
78
78
|
|
@@ -126,7 +126,7 @@ struct wrapped_closure {
|
|
126
126
|
void* cb_arg;
|
127
127
|
grpc_closure wrapper;
|
128
128
|
};
|
129
|
-
inline void closure_wrapper(void* arg,
|
129
|
+
inline void closure_wrapper(void* arg, grpc_error_handle error) {
|
130
130
|
wrapped_closure* wc = static_cast<wrapped_closure*>(arg);
|
131
131
|
grpc_iomgr_cb_func cb = wc->cb;
|
132
132
|
void* cb_arg = wc->cb_arg;
|
@@ -175,7 +175,8 @@ inline void grpc_closure_list_init(grpc_closure_list* closure_list) {
|
|
175
175
|
and set \a closure's result to \a error
|
176
176
|
Returns true if \a list becomes non-empty */
|
177
177
|
inline bool grpc_closure_list_append(grpc_closure_list* closure_list,
|
178
|
-
grpc_closure* closure,
|
178
|
+
grpc_closure* closure,
|
179
|
+
grpc_error_handle error) {
|
179
180
|
if (closure == nullptr) {
|
180
181
|
GRPC_ERROR_UNREF(error);
|
181
182
|
return false;
|
@@ -194,7 +195,7 @@ inline bool grpc_closure_list_append(grpc_closure_list* closure_list,
|
|
194
195
|
|
195
196
|
/** force all success bits in \a list to false */
|
196
197
|
inline void grpc_closure_list_fail_all(grpc_closure_list* list,
|
197
|
-
|
198
|
+
grpc_error_handle forced_failure) {
|
198
199
|
for (grpc_closure* c = list->head; c != nullptr; c = c->next_data.next) {
|
199
200
|
if (c->error_data.error == GRPC_ERROR_NONE) {
|
200
201
|
c->error_data.error = GRPC_ERROR_REF(forced_failure);
|
@@ -227,7 +228,7 @@ namespace grpc_core {
|
|
227
228
|
class Closure {
|
228
229
|
public:
|
229
230
|
static void Run(const DebugLocation& location, grpc_closure* closure,
|
230
|
-
|
231
|
+
grpc_error_handle error) {
|
231
232
|
(void)location;
|
232
233
|
if (closure == nullptr) {
|
233
234
|
GRPC_ERROR_UNREF(error);
|
@@ -46,11 +46,12 @@ grpc_core::DebugOnlyTraceFlag grpc_combiner_trace(false, "combiner");
|
|
46
46
|
#define STATE_ELEM_COUNT_LOW_BIT 2
|
47
47
|
|
48
48
|
static void combiner_exec(grpc_core::Combiner* lock, grpc_closure* closure,
|
49
|
-
|
49
|
+
grpc_error_handle error);
|
50
50
|
static void combiner_finally_exec(grpc_core::Combiner* lock,
|
51
|
-
grpc_closure* closure,
|
51
|
+
grpc_closure* closure,
|
52
|
+
grpc_error_handle error);
|
52
53
|
|
53
|
-
static void offload(void* arg,
|
54
|
+
static void offload(void* arg, grpc_error_handle error);
|
54
55
|
|
55
56
|
grpc_core::Combiner* grpc_combiner_create(void) {
|
56
57
|
grpc_core::Combiner* lock = new grpc_core::Combiner();
|
@@ -126,7 +127,7 @@ static void push_first_on_exec_ctx(grpc_core::Combiner* lock) {
|
|
126
127
|
}
|
127
128
|
|
128
129
|
static void combiner_exec(grpc_core::Combiner* lock, grpc_closure* cl,
|
129
|
-
|
130
|
+
grpc_error_handle error) {
|
130
131
|
GPR_TIMER_SCOPE("combiner.execute", 0);
|
131
132
|
GRPC_STATS_INC_COMBINER_LOCKS_SCHEDULED_ITEMS();
|
132
133
|
gpr_atm last = gpr_atm_full_fetch_add(&lock->state, STATE_ELEM_COUNT_LOW_BIT);
|
@@ -167,7 +168,7 @@ static void move_next() {
|
|
167
168
|
}
|
168
169
|
}
|
169
170
|
|
170
|
-
static void offload(void* arg,
|
171
|
+
static void offload(void* arg, grpc_error_handle /*error*/) {
|
171
172
|
grpc_core::Combiner* lock = static_cast<grpc_core::Combiner*>(arg);
|
172
173
|
push_last_on_exec_ctx(lock);
|
173
174
|
}
|
@@ -230,7 +231,7 @@ bool grpc_combiner_continue_exec_ctx() {
|
|
230
231
|
}
|
231
232
|
GPR_TIMER_SCOPE("combiner.exec1", 0);
|
232
233
|
grpc_closure* cl = reinterpret_cast<grpc_closure*>(n);
|
233
|
-
|
234
|
+
grpc_error_handle cl_err = cl->error_data.error;
|
234
235
|
#ifndef NDEBUG
|
235
236
|
cl->scheduled = false;
|
236
237
|
#endif
|
@@ -246,7 +247,7 @@ bool grpc_combiner_continue_exec_ctx() {
|
|
246
247
|
GRPC_COMBINER_TRACE(
|
247
248
|
gpr_log(GPR_INFO, "C:%p execute_final[%d] c=%p", lock, loops, c));
|
248
249
|
grpc_closure* next = c->next_data.next;
|
249
|
-
|
250
|
+
grpc_error_handle error = c->error_data.error;
|
250
251
|
#ifndef NDEBUG
|
251
252
|
c->scheduled = false;
|
252
253
|
#endif
|
@@ -297,10 +298,11 @@ bool grpc_combiner_continue_exec_ctx() {
|
|
297
298
|
return true;
|
298
299
|
}
|
299
300
|
|
300
|
-
static void enqueue_finally(void* closure,
|
301
|
+
static void enqueue_finally(void* closure, grpc_error_handle error);
|
301
302
|
|
302
303
|
static void combiner_finally_exec(grpc_core::Combiner* lock,
|
303
|
-
grpc_closure* closure,
|
304
|
+
grpc_closure* closure,
|
305
|
+
grpc_error_handle error) {
|
304
306
|
GPR_ASSERT(lock != nullptr);
|
305
307
|
GPR_TIMER_SCOPE("combiner.execute_finally", 0);
|
306
308
|
GRPC_STATS_INC_COMBINER_LOCKS_SCHEDULED_FINAL_ITEMS();
|
@@ -322,7 +324,7 @@ static void combiner_finally_exec(grpc_core::Combiner* lock,
|
|
322
324
|
grpc_closure_list_append(&lock->final_list, closure, error);
|
323
325
|
}
|
324
326
|
|
325
|
-
static void enqueue_finally(void* closure,
|
327
|
+
static void enqueue_finally(void* closure, grpc_error_handle error) {
|
326
328
|
grpc_closure* cl = static_cast<grpc_closure*>(closure);
|
327
329
|
combiner_finally_exec(
|
328
330
|
reinterpret_cast<grpc_core::Combiner*>(cl->error_data.scratch), cl,
|
@@ -330,11 +332,11 @@ static void enqueue_finally(void* closure, grpc_error* error) {
|
|
330
332
|
}
|
331
333
|
|
332
334
|
namespace grpc_core {
|
333
|
-
void Combiner::Run(grpc_closure* closure,
|
335
|
+
void Combiner::Run(grpc_closure* closure, grpc_error_handle error) {
|
334
336
|
combiner_exec(this, closure, error);
|
335
337
|
}
|
336
338
|
|
337
|
-
void Combiner::FinallyRun(grpc_closure* closure,
|
339
|
+
void Combiner::FinallyRun(grpc_closure* closure, grpc_error_handle error) {
|
338
340
|
combiner_finally_exec(this, closure, error);
|
339
341
|
}
|
340
342
|
} // namespace grpc_core
|
@@ -32,9 +32,9 @@ namespace grpc_core {
|
|
32
32
|
// use ExecCtx
|
33
33
|
class Combiner {
|
34
34
|
public:
|
35
|
-
void Run(grpc_closure* closure,
|
35
|
+
void Run(grpc_closure* closure, grpc_error_handle error);
|
36
36
|
// TODO(yashkt) : Remove this method
|
37
|
-
void FinallyRun(grpc_closure* closure,
|
37
|
+
void FinallyRun(grpc_closure* closure, grpc_error_handle error);
|
38
38
|
Combiner* next_combiner_on_this_exec_ctx = nullptr;
|
39
39
|
MultiProducerSingleConsumerQueue queue;
|
40
40
|
// either:
|
@@ -46,7 +46,7 @@ void grpc_endpoint_delete_from_pollset_set(grpc_endpoint* ep,
|
|
46
46
|
ep->vtable->delete_from_pollset_set(ep, pollset_set);
|
47
47
|
}
|
48
48
|
|
49
|
-
void grpc_endpoint_shutdown(grpc_endpoint* ep,
|
49
|
+
void grpc_endpoint_shutdown(grpc_endpoint* ep, grpc_error_handle why) {
|
50
50
|
ep->vtable->shutdown(ep, why);
|
51
51
|
}
|
52
52
|
|
@@ -44,7 +44,7 @@ struct grpc_endpoint_vtable {
|
|
44
44
|
void (*add_to_pollset)(grpc_endpoint* ep, grpc_pollset* pollset);
|
45
45
|
void (*add_to_pollset_set)(grpc_endpoint* ep, grpc_pollset_set* pollset);
|
46
46
|
void (*delete_from_pollset_set)(grpc_endpoint* ep, grpc_pollset_set* pollset);
|
47
|
-
void (*shutdown)(grpc_endpoint* ep,
|
47
|
+
void (*shutdown)(grpc_endpoint* ep, grpc_error_handle why);
|
48
48
|
void (*destroy)(grpc_endpoint* ep);
|
49
49
|
grpc_resource_user* (*get_resource_user)(grpc_endpoint* ep);
|
50
50
|
absl::string_view (*get_peer)(grpc_endpoint* ep);
|
@@ -86,7 +86,7 @@ void grpc_endpoint_write(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
|
86
86
|
|
87
87
|
/* Causes any pending and future read/write callbacks to run immediately with
|
88
88
|
success==0 */
|
89
|
-
void grpc_endpoint_shutdown(grpc_endpoint* ep,
|
89
|
+
void grpc_endpoint_shutdown(grpc_endpoint* ep, grpc_error_handle why);
|
90
90
|
void grpc_endpoint_destroy(grpc_endpoint* ep);
|
91
91
|
|
92
92
|
/* Add an endpoint to a pollset or pollset_set, so that when the pollset is
|
@@ -29,13 +29,13 @@
|
|
29
29
|
#include <grpc/support/alloc.h>
|
30
30
|
#include <grpc/support/string_util.h>
|
31
31
|
|
32
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
32
33
|
#include "src/core/lib/gpr/string.h"
|
33
34
|
#include "src/core/lib/iomgr/cfstream_handle.h"
|
34
35
|
#include "src/core/lib/iomgr/closure.h"
|
35
36
|
#include "src/core/lib/iomgr/endpoint.h"
|
36
37
|
#include "src/core/lib/iomgr/error_cfstream.h"
|
37
38
|
#include "src/core/lib/iomgr/sockaddr.h"
|
38
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
39
39
|
#include "src/core/lib/slice/slice_internal.h"
|
40
40
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
41
41
|
|
@@ -106,8 +106,8 @@ static void CFStreamUnref(CFStreamEndpoint* ep) {
|
|
106
106
|
static void CFStreamRef(CFStreamEndpoint* ep) { gpr_ref(&ep->refcount); }
|
107
107
|
#endif
|
108
108
|
|
109
|
-
static
|
110
|
-
|
109
|
+
static grpc_error_handle CFStreamAnnotateError(grpc_error_handle src_error,
|
110
|
+
CFStreamEndpoint* ep) {
|
111
111
|
return grpc_error_set_str(
|
112
112
|
grpc_error_set_int(src_error, GRPC_ERROR_INT_GRPC_STATUS,
|
113
113
|
GRPC_STATUS_UNAVAILABLE),
|
@@ -115,13 +115,12 @@ static grpc_error* CFStreamAnnotateError(grpc_error* src_error,
|
|
115
115
|
grpc_slice_from_copied_string(ep->peer_string.c_str()));
|
116
116
|
}
|
117
117
|
|
118
|
-
static void CallReadCb(CFStreamEndpoint* ep,
|
118
|
+
static void CallReadCb(CFStreamEndpoint* ep, grpc_error_handle error) {
|
119
119
|
if (grpc_tcp_trace.enabled()) {
|
120
120
|
gpr_log(GPR_DEBUG, "CFStream endpoint:%p call_read_cb %p %p:%p", ep,
|
121
121
|
ep->read_cb, ep->read_cb->cb, ep->read_cb->cb_arg);
|
122
122
|
size_t i;
|
123
|
-
|
124
|
-
gpr_log(GPR_DEBUG, "read: error=%s", str);
|
123
|
+
gpr_log(GPR_DEBUG, "read: error=%s", grpc_error_std_string(error).c_str());
|
125
124
|
|
126
125
|
for (i = 0; i < ep->read_slices->count; i++) {
|
127
126
|
char* dump = grpc_dump_slice(ep->read_slices->slices[i],
|
@@ -137,12 +136,11 @@ static void CallReadCb(CFStreamEndpoint* ep, grpc_error* error) {
|
|
137
136
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, error);
|
138
137
|
}
|
139
138
|
|
140
|
-
static void CallWriteCb(CFStreamEndpoint* ep,
|
139
|
+
static void CallWriteCb(CFStreamEndpoint* ep, grpc_error_handle error) {
|
141
140
|
if (grpc_tcp_trace.enabled()) {
|
142
141
|
gpr_log(GPR_DEBUG, "CFStream endpoint:%p call_write_cb %p %p:%p", ep,
|
143
142
|
ep->write_cb, ep->write_cb->cb, ep->write_cb->cb_arg);
|
144
|
-
|
145
|
-
gpr_log(GPR_DEBUG, "write: error=%s", str);
|
143
|
+
gpr_log(GPR_DEBUG, "write: error=%s", grpc_error_std_string(error).c_str());
|
146
144
|
}
|
147
145
|
grpc_closure* cb = ep->write_cb;
|
148
146
|
ep->write_cb = nullptr;
|
@@ -150,7 +148,7 @@ static void CallWriteCb(CFStreamEndpoint* ep, grpc_error* error) {
|
|
150
148
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, error);
|
151
149
|
}
|
152
150
|
|
153
|
-
static void ReadAction(void* arg,
|
151
|
+
static void ReadAction(void* arg, grpc_error_handle error) {
|
154
152
|
CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
|
155
153
|
GPR_ASSERT(ep->read_cb != nullptr);
|
156
154
|
if (error) {
|
@@ -192,7 +190,7 @@ static void ReadAction(void* arg, grpc_error* error) {
|
|
192
190
|
}
|
193
191
|
}
|
194
192
|
|
195
|
-
static void WriteAction(void* arg,
|
193
|
+
static void WriteAction(void* arg, grpc_error_handle error) {
|
196
194
|
CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
|
197
195
|
GPR_ASSERT(ep->write_cb != nullptr);
|
198
196
|
if (error) {
|
@@ -242,7 +240,7 @@ static void WriteAction(void* arg, grpc_error* error) {
|
|
242
240
|
grpc_slice_unref_internal(slice);
|
243
241
|
}
|
244
242
|
|
245
|
-
static void CFStreamReadAllocationDone(void* arg,
|
243
|
+
static void CFStreamReadAllocationDone(void* arg, grpc_error_handle error) {
|
246
244
|
CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
|
247
245
|
if (error == GRPC_ERROR_NONE) {
|
248
246
|
ep->stream_sync->NotifyOnRead(&ep->read_action);
|
@@ -286,7 +284,7 @@ static void CFStreamWrite(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
|
286
284
|
ep_impl->stream_sync->NotifyOnWrite(&ep_impl->write_action);
|
287
285
|
}
|
288
286
|
|
289
|
-
void CFStreamShutdown(grpc_endpoint* ep,
|
287
|
+
void CFStreamShutdown(grpc_endpoint* ep, grpc_error_handle why) {
|
290
288
|
CFStreamEndpoint* ep_impl = reinterpret_cast<CFStreamEndpoint*>(ep);
|
291
289
|
if (grpc_tcp_trace.enabled()) {
|
292
290
|
gpr_log(GPR_DEBUG, "CFStream endpoint:%p shutdown (%p)", ep_impl, why);
|
@@ -0,0 +1,33 @@
|
|
1
|
+
// Copyright 2021 The gRPC Authors
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
#include <grpc/support/port_platform.h>
|
15
|
+
|
16
|
+
#ifdef GRPC_USE_EVENT_ENGINE
|
17
|
+
#include "src/core/lib/iomgr/port.h"
|
18
|
+
|
19
|
+
#include <stdlib.h>
|
20
|
+
|
21
|
+
#include <grpc/support/log.h>
|
22
|
+
|
23
|
+
#include "src/core/lib/iomgr/endpoint_pair.h"
|
24
|
+
|
25
|
+
grpc_endpoint_pair grpc_iomgr_create_endpoint_pair(
|
26
|
+
const char* /* name */, grpc_channel_args* /* args */) {
|
27
|
+
// TODO(hork): determine what's needed here in the long run
|
28
|
+
GPR_ASSERT(
|
29
|
+
false &&
|
30
|
+
"grpc_iomgr_create_endpoint_pair is not suppoted with event_engine");
|
31
|
+
}
|
32
|
+
|
33
|
+
#endif // GRPC_USE_EVENT_ENGINE
|
@@ -21,9 +21,9 @@
|
|
21
21
|
#include "src/core/lib/iomgr/port.h"
|
22
22
|
|
23
23
|
#ifdef GRPC_WINSOCK_SOCKET
|
24
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
24
25
|
#include "src/core/lib/iomgr/endpoint_pair.h"
|
25
26
|
#include "src/core/lib/iomgr/sockaddr.h"
|
26
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
27
27
|
|
28
28
|
#include <errno.h>
|
29
29
|
#include <fcntl.h>
|
data/src/core/lib/iomgr/error.cc
CHANGED
@@ -41,6 +41,115 @@ grpc_core::DebugOnlyTraceFlag grpc_trace_error_refcount(false,
|
|
41
41
|
"error_refcount");
|
42
42
|
grpc_core::DebugOnlyTraceFlag grpc_trace_closure(false, "closure");
|
43
43
|
|
44
|
+
static gpr_atm g_error_creation_allowed = true;
|
45
|
+
|
46
|
+
void grpc_disable_error_creation() {
|
47
|
+
gpr_atm_no_barrier_store(&g_error_creation_allowed, false);
|
48
|
+
}
|
49
|
+
|
50
|
+
void grpc_enable_error_creation() {
|
51
|
+
gpr_atm_no_barrier_store(&g_error_creation_allowed, true);
|
52
|
+
}
|
53
|
+
|
54
|
+
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
55
|
+
|
56
|
+
absl::Status grpc_status_create(absl::StatusCode code, absl::string_view msg,
|
57
|
+
const grpc_core::DebugLocation& location,
|
58
|
+
size_t children_count, absl::Status* children) {
|
59
|
+
absl::Status s = StatusCreate(code, msg, location, {});
|
60
|
+
for (size_t i = 0; i < children_count; ++i) {
|
61
|
+
if (!children[i].ok()) {
|
62
|
+
grpc_core::StatusAddChild(&s, children[i]);
|
63
|
+
}
|
64
|
+
}
|
65
|
+
return s;
|
66
|
+
}
|
67
|
+
|
68
|
+
std::string grpc_error_std_string(const absl::Status& error) {
|
69
|
+
return grpc_core::StatusToString(error);
|
70
|
+
}
|
71
|
+
|
72
|
+
absl::Status grpc_os_error(const grpc_core::DebugLocation& location, int err,
|
73
|
+
const char* call_name) {
|
74
|
+
absl::Status s =
|
75
|
+
StatusCreate(absl::StatusCode::kUnknown, "OS Error", location, {});
|
76
|
+
grpc_core::StatusSetInt(&s, grpc_core::StatusIntProperty::kErrorNo, err);
|
77
|
+
grpc_core::StatusSetStr(&s, grpc_core::StatusStrProperty::kOsError,
|
78
|
+
strerror(err));
|
79
|
+
grpc_core::StatusSetStr(&s, grpc_core::StatusStrProperty::kSyscall,
|
80
|
+
call_name);
|
81
|
+
return s;
|
82
|
+
}
|
83
|
+
|
84
|
+
#ifdef GPR_WINDOWS
|
85
|
+
absl::Status grpc_wsa_error(const grpc_core::DebugLocation& location, int err,
|
86
|
+
const char* call_name) {
|
87
|
+
char* utf8_message = gpr_format_message(err);
|
88
|
+
absl::Status s =
|
89
|
+
StatusCreate(absl::StatusCode::kUnknown, "WSA Error", location, {});
|
90
|
+
StatusSetInt(&s, StatusIntProperty::WSA_ERROR, err);
|
91
|
+
StatusSetStr(&s, StatusStrProperty::OS_ERROR, utf8_message);
|
92
|
+
StatusSetStr(&s, StatusStrProperty::SYSCALL, call_name);
|
93
|
+
}
|
94
|
+
#endif
|
95
|
+
|
96
|
+
grpc_error_handle grpc_error_set_int(grpc_error_handle src,
|
97
|
+
grpc_error_ints which, intptr_t value) {
|
98
|
+
grpc_core::StatusSetInt(
|
99
|
+
&src, static_cast<grpc_core::StatusIntProperty>(which), value);
|
100
|
+
return src;
|
101
|
+
}
|
102
|
+
|
103
|
+
bool grpc_error_get_int(grpc_error_handle error, grpc_error_ints which,
|
104
|
+
intptr_t* p) {
|
105
|
+
absl::optional<intptr_t> value = grpc_core::StatusGetInt(
|
106
|
+
error, static_cast<grpc_core::StatusIntProperty>(which));
|
107
|
+
if (value.has_value()) {
|
108
|
+
*p = *value;
|
109
|
+
return true;
|
110
|
+
} else {
|
111
|
+
return false;
|
112
|
+
}
|
113
|
+
}
|
114
|
+
|
115
|
+
grpc_error_handle grpc_error_set_str(grpc_error_handle src,
|
116
|
+
grpc_error_strs which,
|
117
|
+
const grpc_slice& str) {
|
118
|
+
grpc_core::StatusSetStr(
|
119
|
+
&src, static_cast<grpc_core::StatusStrProperty>(which),
|
120
|
+
std::string(reinterpret_cast<const char*>(GRPC_SLICE_START_PTR(str)),
|
121
|
+
GRPC_SLICE_LENGTH(str)));
|
122
|
+
return src;
|
123
|
+
}
|
124
|
+
|
125
|
+
bool grpc_error_get_str(grpc_error_handle error, grpc_error_strs which,
|
126
|
+
grpc_slice* s) {
|
127
|
+
absl::optional<std::string> value = grpc_core::StatusGetStr(
|
128
|
+
error, static_cast<grpc_core::StatusStrProperty>(which));
|
129
|
+
if (value.has_value()) {
|
130
|
+
*s = grpc_slice_from_copied_buffer(value->c_str(), value->size());
|
131
|
+
return true;
|
132
|
+
} else {
|
133
|
+
return false;
|
134
|
+
}
|
135
|
+
}
|
136
|
+
|
137
|
+
grpc_error_handle grpc_error_add_child(grpc_error_handle src,
|
138
|
+
grpc_error_handle child) {
|
139
|
+
grpc_core::StatusAddChild(&src, child);
|
140
|
+
return src;
|
141
|
+
}
|
142
|
+
|
143
|
+
bool grpc_log_error(const char* what, grpc_error_handle error, const char* file,
|
144
|
+
int line) {
|
145
|
+
GPR_DEBUG_ASSERT(error != GRPC_ERROR_NONE);
|
146
|
+
gpr_log(file, line, GPR_LOG_SEVERITY_ERROR, "%s: %s", what,
|
147
|
+
grpc_core::StatusToString(error).c_str());
|
148
|
+
return false;
|
149
|
+
}
|
150
|
+
|
151
|
+
#else // GRPC_ERROR_IS_ABSEIL_STATUS
|
152
|
+
|
44
153
|
static const char* error_int_name(grpc_error_ints key) {
|
45
154
|
switch (key) {
|
46
155
|
case GRPC_ERROR_INT_ERRNO:
|
@@ -61,20 +170,18 @@ static const char* error_int_name(grpc_error_ints key) {
|
|
61
170
|
return "http2_error";
|
62
171
|
case GRPC_ERROR_INT_TSI_CODE:
|
63
172
|
return "tsi_code";
|
64
|
-
case GRPC_ERROR_INT_SECURITY_STATUS:
|
65
|
-
return "security_status";
|
66
173
|
case GRPC_ERROR_INT_FD:
|
67
174
|
return "fd";
|
68
175
|
case GRPC_ERROR_INT_WSA_ERROR:
|
69
176
|
return "wsa_error";
|
70
177
|
case GRPC_ERROR_INT_HTTP_STATUS:
|
71
178
|
return "http_status";
|
72
|
-
case GRPC_ERROR_INT_LIMIT:
|
73
|
-
return "limit";
|
74
179
|
case GRPC_ERROR_INT_OCCURRED_DURING_WRITE:
|
75
180
|
return "occurred_during_write";
|
76
181
|
case GRPC_ERROR_INT_CHANNEL_CONNECTIVITY_STATE:
|
77
182
|
return "channel_connectivity_state";
|
183
|
+
case GRPC_ERROR_INT_LB_POLICY_DROP:
|
184
|
+
return "lb_policy_drop";
|
78
185
|
case GRPC_ERROR_INT_MAX:
|
79
186
|
GPR_UNREACHABLE_CODE(return "unknown");
|
80
187
|
}
|
@@ -105,8 +212,6 @@ static const char* error_str_name(grpc_error_strs key) {
|
|
105
212
|
return "tsi_error";
|
106
213
|
case GRPC_ERROR_STR_FILENAME:
|
107
214
|
return "filename";
|
108
|
-
case GRPC_ERROR_STR_QUEUED_BUFFERS:
|
109
|
-
return "queued_buffers";
|
110
215
|
case GRPC_ERROR_STR_MAX:
|
111
216
|
GPR_UNREACHABLE_CODE(return "unknown");
|
112
217
|
}
|
@@ -124,7 +229,8 @@ static const char* error_time_name(grpc_error_times key) {
|
|
124
229
|
}
|
125
230
|
|
126
231
|
#ifndef NDEBUG
|
127
|
-
|
232
|
+
grpc_error_handle grpc_error_do_ref(grpc_error_handle err, const char* file,
|
233
|
+
int line) {
|
128
234
|
if (grpc_trace_error_refcount.enabled()) {
|
129
235
|
gpr_log(GPR_DEBUG, "%p: %" PRIdPTR " -> %" PRIdPTR " [%s:%d]", err,
|
130
236
|
gpr_atm_no_barrier_load(&err->atomics.refs.count),
|
@@ -134,13 +240,13 @@ grpc_error* grpc_error_do_ref(grpc_error* err, const char* file, int line) {
|
|
134
240
|
return err;
|
135
241
|
}
|
136
242
|
#else
|
137
|
-
|
243
|
+
grpc_error_handle grpc_error_do_ref(grpc_error_handle err) {
|
138
244
|
gpr_ref(&err->atomics.refs);
|
139
245
|
return err;
|
140
246
|
}
|
141
247
|
#endif
|
142
248
|
|
143
|
-
static void unref_errs(
|
249
|
+
static void unref_errs(grpc_error_handle err) {
|
144
250
|
uint8_t slot = err->first_err;
|
145
251
|
while (slot != UINT8_MAX) {
|
146
252
|
grpc_linked_error* lerr =
|
@@ -152,7 +258,7 @@ static void unref_errs(grpc_error* err) {
|
|
152
258
|
}
|
153
259
|
}
|
154
260
|
|
155
|
-
static void unref_strs(
|
261
|
+
static void unref_strs(grpc_error_handle err) {
|
156
262
|
for (size_t which = 0; which < GRPC_ERROR_STR_MAX; ++which) {
|
157
263
|
uint8_t slot = err->strs[which];
|
158
264
|
if (slot != UINT8_MAX) {
|
@@ -162,7 +268,7 @@ static void unref_strs(grpc_error* err) {
|
|
162
268
|
}
|
163
269
|
}
|
164
270
|
|
165
|
-
static void error_destroy(
|
271
|
+
static void error_destroy(grpc_error_handle err) {
|
166
272
|
GPR_ASSERT(!grpc_error_is_special(err));
|
167
273
|
unref_errs(err);
|
168
274
|
unref_strs(err);
|
@@ -172,7 +278,7 @@ static void error_destroy(grpc_error* err) {
|
|
172
278
|
}
|
173
279
|
|
174
280
|
#ifndef NDEBUG
|
175
|
-
void grpc_error_do_unref(
|
281
|
+
void grpc_error_do_unref(grpc_error_handle err, const char* file, int line) {
|
176
282
|
if (grpc_trace_error_refcount.enabled()) {
|
177
283
|
gpr_log(GPR_DEBUG, "%p: %" PRIdPTR " -> %" PRIdPTR " [%s:%d]", err,
|
178
284
|
gpr_atm_no_barrier_load(&err->atomics.refs.count),
|
@@ -183,14 +289,14 @@ void grpc_error_do_unref(grpc_error* err, const char* file, int line) {
|
|
183
289
|
}
|
184
290
|
}
|
185
291
|
#else
|
186
|
-
void grpc_error_do_unref(
|
292
|
+
void grpc_error_do_unref(grpc_error_handle err) {
|
187
293
|
if (gpr_unref(&err->atomics.refs)) {
|
188
294
|
error_destroy(err);
|
189
295
|
}
|
190
296
|
}
|
191
297
|
#endif
|
192
298
|
|
193
|
-
static uint8_t get_placement(
|
299
|
+
static uint8_t get_placement(grpc_error_handle* err, size_t size) {
|
194
300
|
GPR_ASSERT(*err);
|
195
301
|
uint8_t slots = static_cast<uint8_t>(size / sizeof(intptr_t));
|
196
302
|
if ((*err)->arena_size + slots > (*err)->arena_capacity) {
|
@@ -200,9 +306,9 @@ static uint8_t get_placement(grpc_error** err, size_t size) {
|
|
200
306
|
return UINT8_MAX;
|
201
307
|
}
|
202
308
|
#ifndef NDEBUG
|
203
|
-
|
309
|
+
grpc_error_handle orig = *err;
|
204
310
|
#endif
|
205
|
-
*err = static_cast<
|
311
|
+
*err = static_cast<grpc_error_handle>(gpr_realloc(
|
206
312
|
*err, sizeof(grpc_error) + (*err)->arena_capacity * sizeof(intptr_t)));
|
207
313
|
#ifndef NDEBUG
|
208
314
|
if (grpc_trace_error_refcount.enabled()) {
|
@@ -217,7 +323,7 @@ static uint8_t get_placement(grpc_error** err, size_t size) {
|
|
217
323
|
return placement;
|
218
324
|
}
|
219
325
|
|
220
|
-
static void internal_set_int(
|
326
|
+
static void internal_set_int(grpc_error_handle* err, grpc_error_ints which,
|
221
327
|
intptr_t value) {
|
222
328
|
uint8_t slot = (*err)->ints[which];
|
223
329
|
if (slot == UINT8_MAX) {
|
@@ -232,7 +338,7 @@ static void internal_set_int(grpc_error** err, grpc_error_ints which,
|
|
232
338
|
(*err)->arena[slot] = value;
|
233
339
|
}
|
234
340
|
|
235
|
-
static void internal_set_str(
|
341
|
+
static void internal_set_str(grpc_error_handle* err, grpc_error_strs which,
|
236
342
|
const grpc_slice& value) {
|
237
343
|
uint8_t slot = (*err)->strs[which];
|
238
344
|
if (slot == UINT8_MAX) {
|
@@ -253,7 +359,7 @@ static void internal_set_str(grpc_error** err, grpc_error_strs which,
|
|
253
359
|
}
|
254
360
|
|
255
361
|
static char* fmt_time(gpr_timespec tm);
|
256
|
-
static void internal_set_time(
|
362
|
+
static void internal_set_time(grpc_error_handle* err, grpc_error_times which,
|
257
363
|
gpr_timespec value) {
|
258
364
|
uint8_t slot = (*err)->times[which];
|
259
365
|
if (slot == UINT8_MAX) {
|
@@ -270,7 +376,8 @@ static void internal_set_time(grpc_error** err, grpc_error_times which,
|
|
270
376
|
memcpy((*err)->arena + slot, &value, sizeof(value));
|
271
377
|
}
|
272
378
|
|
273
|
-
static void internal_add_error(
|
379
|
+
static void internal_add_error(grpc_error_handle* err,
|
380
|
+
grpc_error_handle new_err) {
|
274
381
|
grpc_linked_error new_last = {new_err, UINT8_MAX};
|
275
382
|
uint8_t slot = get_placement(err, sizeof(grpc_linked_error));
|
276
383
|
if (slot == UINT8_MAX) {
|
@@ -306,25 +413,16 @@ static void internal_add_error(grpc_error** err, grpc_error* new_err) {
|
|
306
413
|
// It is very common to include and extra int and string in an error
|
307
414
|
#define SURPLUS_CAPACITY (2 * SLOTS_PER_INT + SLOTS_PER_TIME)
|
308
415
|
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
}
|
314
|
-
|
315
|
-
void grpc_enable_error_creation() {
|
316
|
-
gpr_atm_no_barrier_store(&g_error_creation_allowed, true);
|
317
|
-
}
|
318
|
-
|
319
|
-
grpc_error* grpc_error_create(const char* file, int line,
|
320
|
-
const grpc_slice& desc, grpc_error** referencing,
|
321
|
-
size_t num_referencing) {
|
416
|
+
grpc_error_handle grpc_error_create(const char* file, int line,
|
417
|
+
const grpc_slice& desc,
|
418
|
+
grpc_error_handle* referencing,
|
419
|
+
size_t num_referencing) {
|
322
420
|
GPR_TIMER_SCOPE("grpc_error_create", 0);
|
323
421
|
uint8_t initial_arena_capacity = static_cast<uint8_t>(
|
324
422
|
DEFAULT_ERROR_CAPACITY +
|
325
423
|
static_cast<uint8_t>(num_referencing * SLOTS_PER_LINKED_ERROR) +
|
326
424
|
SURPLUS_CAPACITY);
|
327
|
-
|
425
|
+
grpc_error_handle err = static_cast<grpc_error_handle>(
|
328
426
|
gpr_malloc(sizeof(*err) + initial_arena_capacity * sizeof(intptr_t)));
|
329
427
|
if (err == nullptr) { // TODO(ctiller): make gpr_malloc return NULL
|
330
428
|
return GRPC_ERROR_OOM;
|
@@ -370,7 +468,7 @@ grpc_error* grpc_error_create(const char* file, int line,
|
|
370
468
|
return err;
|
371
469
|
}
|
372
470
|
|
373
|
-
static void ref_strs(
|
471
|
+
static void ref_strs(grpc_error_handle err) {
|
374
472
|
for (size_t i = 0; i < GRPC_ERROR_STR_MAX; ++i) {
|
375
473
|
uint8_t slot = err->strs[i];
|
376
474
|
if (slot != UINT8_MAX) {
|
@@ -380,7 +478,7 @@ static void ref_strs(grpc_error* err) {
|
|
380
478
|
}
|
381
479
|
}
|
382
480
|
|
383
|
-
static void ref_errs(
|
481
|
+
static void ref_errs(grpc_error_handle err) {
|
384
482
|
uint8_t slot = err->first_err;
|
385
483
|
while (slot != UINT8_MAX) {
|
386
484
|
grpc_linked_error* lerr =
|
@@ -390,9 +488,9 @@ static void ref_errs(grpc_error* err) {
|
|
390
488
|
}
|
391
489
|
}
|
392
490
|
|
393
|
-
static
|
491
|
+
static grpc_error_handle copy_error_and_unref(grpc_error_handle in) {
|
394
492
|
GPR_TIMER_SCOPE("copy_error_and_unref", 0);
|
395
|
-
|
493
|
+
grpc_error_handle out;
|
396
494
|
if (grpc_error_is_special(in)) {
|
397
495
|
out = GRPC_ERROR_CREATE_FROM_STATIC_STRING("unknown");
|
398
496
|
if (in == GRPC_ERROR_NONE) {
|
@@ -417,7 +515,7 @@ static grpc_error* copy_error_and_unref(grpc_error* in) {
|
|
417
515
|
static_cast<uint8_t> SLOTS_PER_STR) {
|
418
516
|
new_arena_capacity = static_cast<uint8_t>(3 * new_arena_capacity / 2);
|
419
517
|
}
|
420
|
-
out = static_cast<
|
518
|
+
out = static_cast<grpc_error_handle>(
|
421
519
|
gpr_malloc(sizeof(*in) + new_arena_capacity * sizeof(intptr_t)));
|
422
520
|
#ifndef NDEBUG
|
423
521
|
if (grpc_trace_error_refcount.enabled()) {
|
@@ -441,10 +539,10 @@ static grpc_error* copy_error_and_unref(grpc_error* in) {
|
|
441
539
|
return out;
|
442
540
|
}
|
443
541
|
|
444
|
-
|
445
|
-
|
542
|
+
grpc_error_handle grpc_error_set_int(grpc_error_handle src,
|
543
|
+
grpc_error_ints which, intptr_t value) {
|
446
544
|
GPR_TIMER_SCOPE("grpc_error_set_int", 0);
|
447
|
-
|
545
|
+
grpc_error_handle new_err = copy_error_and_unref(src);
|
448
546
|
internal_set_int(&new_err, which, value);
|
449
547
|
return new_err;
|
450
548
|
}
|
@@ -464,7 +562,8 @@ const special_error_status_map error_status_map[] = {
|
|
464
562
|
strlen("Cancelled")}, // GRPC_ERROR_CANCELLED
|
465
563
|
};
|
466
564
|
|
467
|
-
bool grpc_error_get_int(
|
565
|
+
bool grpc_error_get_int(grpc_error_handle err, grpc_error_ints which,
|
566
|
+
intptr_t* p) {
|
468
567
|
GPR_TIMER_SCOPE("grpc_error_get_int", 0);
|
469
568
|
if (grpc_error_is_special(err)) {
|
470
569
|
if (which != GRPC_ERROR_INT_GRPC_STATUS) return false;
|
@@ -479,15 +578,16 @@ bool grpc_error_get_int(grpc_error* err, grpc_error_ints which, intptr_t* p) {
|
|
479
578
|
return false;
|
480
579
|
}
|
481
580
|
|
482
|
-
|
483
|
-
|
581
|
+
grpc_error_handle grpc_error_set_str(grpc_error_handle src,
|
582
|
+
grpc_error_strs which,
|
583
|
+
const grpc_slice& str) {
|
484
584
|
GPR_TIMER_SCOPE("grpc_error_set_str", 0);
|
485
|
-
|
585
|
+
grpc_error_handle new_err = copy_error_and_unref(src);
|
486
586
|
internal_set_str(&new_err, which, str);
|
487
587
|
return new_err;
|
488
588
|
}
|
489
589
|
|
490
|
-
bool grpc_error_get_str(
|
590
|
+
bool grpc_error_get_str(grpc_error_handle err, grpc_error_strs which,
|
491
591
|
grpc_slice* str) {
|
492
592
|
if (grpc_error_is_special(err)) {
|
493
593
|
if (which != GRPC_ERROR_STR_GRPC_MESSAGE) return false;
|
@@ -508,14 +608,15 @@ bool grpc_error_get_str(grpc_error* err, grpc_error_strs which,
|
|
508
608
|
}
|
509
609
|
}
|
510
610
|
|
511
|
-
|
611
|
+
grpc_error_handle grpc_error_add_child(grpc_error_handle src,
|
612
|
+
grpc_error_handle child) {
|
512
613
|
GPR_TIMER_SCOPE("grpc_error_add_child", 0);
|
513
614
|
if (src != GRPC_ERROR_NONE) {
|
514
615
|
if (child == GRPC_ERROR_NONE) {
|
515
616
|
/* \a child is empty. Simply return the ref to \a src */
|
516
617
|
return src;
|
517
618
|
} else if (child != src) {
|
518
|
-
|
619
|
+
grpc_error_handle new_err = copy_error_and_unref(src);
|
519
620
|
internal_add_error(&new_err, child);
|
520
621
|
return new_err;
|
521
622
|
} else {
|
@@ -616,7 +717,7 @@ static char* fmt_int(intptr_t p) {
|
|
616
717
|
return s;
|
617
718
|
}
|
618
719
|
|
619
|
-
static void collect_ints_kvs(
|
720
|
+
static void collect_ints_kvs(grpc_error_handle err, kv_pairs* kvs) {
|
620
721
|
for (size_t which = 0; which < GRPC_ERROR_INT_MAX; ++which) {
|
621
722
|
uint8_t slot = err->ints[which];
|
622
723
|
if (slot != UINT8_MAX) {
|
@@ -640,7 +741,7 @@ static char* fmt_str(const grpc_slice& slice) {
|
|
640
741
|
return s;
|
641
742
|
}
|
642
743
|
|
643
|
-
static void collect_strs_kvs(
|
744
|
+
static void collect_strs_kvs(grpc_error_handle err, kv_pairs* kvs) {
|
644
745
|
for (size_t which = 0; which < GRPC_ERROR_STR_MAX; ++which) {
|
645
746
|
uint8_t slot = err->strs[which];
|
646
747
|
if (slot != UINT8_MAX) {
|
@@ -675,7 +776,7 @@ static char* fmt_time(gpr_timespec tm) {
|
|
675
776
|
return out;
|
676
777
|
}
|
677
778
|
|
678
|
-
static void collect_times_kvs(
|
779
|
+
static void collect_times_kvs(grpc_error_handle err, kv_pairs* kvs) {
|
679
780
|
for (size_t which = 0; which < GRPC_ERROR_TIME_MAX; ++which) {
|
680
781
|
uint8_t slot = err->times[which];
|
681
782
|
if (slot != UINT8_MAX) {
|
@@ -685,7 +786,7 @@ static void collect_times_kvs(grpc_error* err, kv_pairs* kvs) {
|
|
685
786
|
}
|
686
787
|
}
|
687
788
|
|
688
|
-
static void add_errs(
|
789
|
+
static void add_errs(grpc_error_handle err, char** s, size_t* sz, size_t* cap) {
|
689
790
|
uint8_t slot = err->first_err;
|
690
791
|
bool first = true;
|
691
792
|
while (slot != UINT8_MAX) {
|
@@ -701,7 +802,7 @@ static void add_errs(grpc_error* err, char** s, size_t* sz, size_t* cap) {
|
|
701
802
|
}
|
702
803
|
}
|
703
804
|
|
704
|
-
static char* errs_string(
|
805
|
+
static char* errs_string(grpc_error_handle err) {
|
705
806
|
char* s = nullptr;
|
706
807
|
size_t sz = 0;
|
707
808
|
size_t cap = 0;
|
@@ -740,7 +841,7 @@ static char* finish_kvs(kv_pairs* kvs) {
|
|
740
841
|
return s;
|
741
842
|
}
|
742
843
|
|
743
|
-
const char* grpc_error_string(
|
844
|
+
const char* grpc_error_string(grpc_error_handle err) {
|
744
845
|
GPR_TIMER_SCOPE("grpc_error_string", 0);
|
745
846
|
if (err == GRPC_ERROR_NONE) return no_error_string;
|
746
847
|
if (err == GRPC_ERROR_OOM) return oom_error_string;
|
@@ -775,8 +876,12 @@ const char* grpc_error_string(grpc_error* err) {
|
|
775
876
|
return out;
|
776
877
|
}
|
777
878
|
|
778
|
-
|
779
|
-
|
879
|
+
std::string grpc_error_std_string(grpc_error_handle error) {
|
880
|
+
return std::string(grpc_error_string(error));
|
881
|
+
}
|
882
|
+
|
883
|
+
grpc_error_handle grpc_os_error(const char* file, int line, int err,
|
884
|
+
const char* call_name) {
|
780
885
|
return grpc_error_set_str(
|
781
886
|
grpc_error_set_str(
|
782
887
|
grpc_error_set_int(
|
@@ -790,10 +895,10 @@ grpc_error* grpc_os_error(const char* file, int line, int err,
|
|
790
895
|
}
|
791
896
|
|
792
897
|
#ifdef GPR_WINDOWS
|
793
|
-
|
794
|
-
|
898
|
+
grpc_error_handle grpc_wsa_error(const char* file, int line, int err,
|
899
|
+
const char* call_name) {
|
795
900
|
char* utf8_message = gpr_format_message(err);
|
796
|
-
|
901
|
+
grpc_error_handle error = grpc_error_set_str(
|
797
902
|
grpc_error_set_str(
|
798
903
|
grpc_error_set_int(
|
799
904
|
grpc_error_create(file, line,
|
@@ -807,7 +912,7 @@ grpc_error* grpc_wsa_error(const char* file, int line, int err,
|
|
807
912
|
}
|
808
913
|
#endif
|
809
914
|
|
810
|
-
bool grpc_log_error(const char* what,
|
915
|
+
bool grpc_log_error(const char* what, grpc_error_handle error, const char* file,
|
811
916
|
int line) {
|
812
917
|
GPR_DEBUG_ASSERT(error != GRPC_ERROR_NONE);
|
813
918
|
const char* msg = grpc_error_string(error);
|
@@ -815,3 +920,5 @@ bool grpc_log_error(const char* what, grpc_error* error, const char* file,
|
|
815
920
|
GRPC_ERROR_UNREF(error);
|
816
921
|
return false;
|
817
922
|
}
|
923
|
+
|
924
|
+
#endif // GRPC_ERROR_IS_ABSEIL_STATUS
|