grpc 1.50.0-x86_64-linux → 1.51.0-x86_64-linux
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 +131 -42
- data/include/grpc/event_engine/event_engine.h +10 -3
- data/include/grpc/event_engine/slice_buffer.h +17 -0
- data/include/grpc/grpc.h +0 -10
- data/include/grpc/impl/codegen/grpc_types.h +1 -5
- data/include/grpc/impl/codegen/port_platform.h +0 -3
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +19 -13
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +1 -0
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +7 -5
- data/src/core/ext/filters/client_channel/client_channel.cc +120 -140
- data/src/core/ext/filters/client_channel/client_channel.h +3 -4
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +0 -2
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
- data/src/core/ext/filters/client_channel/client_channel_service_config.cc +153 -0
- data/src/core/ext/filters/client_channel/{resolver_result_parsing.h → client_channel_service_config.h} +26 -23
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +20 -47
- data/src/core/ext/filters/client_channel/dynamic_filters.h +7 -8
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +3 -4
- data/src/core/ext/filters/client_channel/http_proxy.cc +0 -1
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +3 -4
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +5 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +8 -7
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +35 -44
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +0 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +1 -3
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +3 -4
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +41 -29
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +9 -11
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +15 -12
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +8 -10
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +26 -27
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +7 -9
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +44 -26
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +17 -27
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc +42 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/{xds.h → xds_attributes.h} +15 -17
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +13 -7
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +48 -47
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +40 -126
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +364 -0
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +9 -9
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +23 -32
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +1 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +22 -23
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +50 -52
- 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/native/dns_resolver.cc +2 -4
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +1 -3
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +34 -26
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +3 -4
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +4 -7
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +63 -46
- data/src/core/ext/filters/client_channel/retry_filter.cc +80 -102
- data/src/core/ext/filters/client_channel/retry_service_config.cc +192 -234
- data/src/core/ext/filters/client_channel/retry_service_config.h +20 -23
- data/src/core/ext/filters/client_channel/retry_throttle.cc +8 -8
- data/src/core/ext/filters/client_channel/retry_throttle.h +8 -7
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +2 -2
- data/src/core/ext/filters/client_channel/subchannel.cc +21 -25
- data/src/core/ext/filters/client_channel/subchannel.h +2 -2
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +11 -12
- data/src/core/ext/filters/deadline/deadline_filter.cc +13 -14
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -1
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +0 -4
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +118 -0
- data/src/core/ext/filters/fault_injection/{service_config_parser.h → fault_injection_service_config_parser.h} +20 -12
- data/src/core/ext/filters/http/client/http_client_filter.cc +16 -16
- data/src/core/ext/filters/http/client_authority_filter.cc +1 -1
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +13 -13
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +34 -34
- data/src/core/ext/filters/http/server/http_server_filter.cc +26 -25
- data/src/core/ext/filters/message_size/message_size_filter.cc +86 -117
- data/src/core/ext/filters/message_size/message_size_filter.h +22 -15
- data/src/core/ext/filters/rbac/rbac_filter.cc +12 -12
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +728 -530
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +4 -3
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +1 -1
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +6 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +17 -21
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +57 -72
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +5 -5
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +212 -253
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +42 -11
- data/src/core/ext/transport/chttp2/transport/flow_control.h +4 -3
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +16 -15
- data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +13 -13
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +10 -7
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +15 -17
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +5 -4
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +2 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +31 -39
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +7 -6
- data/src/core/ext/transport/chttp2/transport/internal.h +24 -8
- data/src/core/ext/transport/chttp2/transport/parsing.cc +51 -52
- data/src/core/ext/transport/chttp2/transport/varint.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/varint.h +11 -8
- data/src/core/ext/transport/chttp2/transport/writing.cc +16 -16
- data/src/core/ext/transport/inproc/inproc_transport.cc +97 -115
- data/src/core/ext/xds/certificate_provider_store.cc +4 -4
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +4 -7
- data/src/core/ext/xds/xds_api.cc +15 -68
- data/src/core/ext/xds/xds_api.h +3 -7
- data/src/core/ext/xds/xds_bootstrap.h +0 -1
- data/src/core/ext/xds/xds_bootstrap_grpc.cc +3 -12
- data/src/core/ext/xds/xds_bootstrap_grpc.h +16 -1
- data/src/core/ext/xds/xds_certificate_provider.cc +22 -25
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +0 -1
- data/src/core/ext/xds/xds_client.cc +122 -90
- data/src/core/ext/xds/xds_client.h +7 -2
- data/src/core/ext/xds/xds_client_grpc.cc +5 -24
- data/src/core/ext/xds/xds_cluster.cc +291 -183
- data/src/core/ext/xds/xds_cluster.h +11 -15
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +32 -29
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +35 -16
- data/src/core/ext/xds/xds_common_types.cc +208 -141
- data/src/core/ext/xds/xds_common_types.h +19 -13
- data/src/core/ext/xds/xds_endpoint.cc +214 -129
- data/src/core/ext/xds/xds_endpoint.h +4 -7
- data/src/core/ext/xds/xds_http_fault_filter.cc +56 -43
- data/src/core/ext/xds/xds_http_fault_filter.h +13 -21
- data/src/core/ext/xds/xds_http_filters.cc +60 -73
- data/src/core/ext/xds/xds_http_filters.h +67 -19
- data/src/core/ext/xds/xds_http_rbac_filter.cc +152 -207
- data/src/core/ext/xds/xds_http_rbac_filter.h +12 -15
- data/src/core/ext/xds/xds_lb_policy_registry.cc +122 -169
- data/src/core/ext/xds/xds_lb_policy_registry.h +10 -11
- data/src/core/ext/xds/xds_listener.cc +459 -417
- data/src/core/ext/xds/xds_listener.h +43 -47
- data/src/core/ext/xds/xds_resource_type.h +3 -11
- data/src/core/ext/xds/xds_resource_type_impl.h +8 -13
- data/src/core/ext/xds/xds_route_config.cc +94 -80
- data/src/core/ext/xds/xds_route_config.h +10 -10
- data/src/core/ext/xds/xds_routing.cc +2 -1
- data/src/core/ext/xds/xds_routing.h +2 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +109 -94
- data/src/core/ext/xds/xds_transport_grpc.cc +4 -5
- data/src/core/lib/address_utils/parse_address.cc +11 -10
- data/src/core/lib/channel/channel_args.h +16 -1
- data/src/core/lib/channel/channel_stack.cc +23 -20
- data/src/core/lib/channel/channel_stack.h +17 -4
- data/src/core/lib/channel/channel_stack_builder.cc +4 -7
- data/src/core/lib/channel/channel_stack_builder.h +14 -6
- data/src/core/lib/channel/channel_stack_builder_impl.cc +25 -7
- data/src/core/lib/channel/channel_stack_builder_impl.h +2 -0
- data/src/core/lib/channel/channel_trace.cc +4 -5
- data/src/core/lib/channel/channelz.cc +1 -1
- data/src/core/lib/channel/connected_channel.cc +695 -35
- data/src/core/lib/channel/connected_channel.h +0 -4
- data/src/core/lib/channel/promise_based_filter.cc +1004 -140
- data/src/core/lib/channel/promise_based_filter.h +364 -87
- data/src/core/lib/compression/message_compress.cc +5 -5
- data/src/core/lib/debug/event_log.cc +88 -0
- data/src/core/lib/debug/event_log.h +81 -0
- data/src/core/lib/debug/histogram_view.cc +69 -0
- data/src/core/lib/{slice/slice_refcount.cc → debug/histogram_view.h} +15 -13
- data/src/core/lib/debug/stats.cc +22 -119
- data/src/core/lib/debug/stats.h +29 -35
- data/src/core/lib/debug/stats_data.cc +224 -73
- data/src/core/lib/debug/stats_data.h +263 -122
- data/src/core/lib/event_engine/common_closures.h +71 -0
- data/src/core/lib/event_engine/default_event_engine.cc +38 -15
- data/src/core/lib/event_engine/default_event_engine.h +15 -3
- data/src/core/lib/event_engine/default_event_engine_factory.cc +2 -4
- data/src/core/lib/event_engine/memory_allocator.cc +1 -1
- data/src/core/lib/event_engine/poller.h +10 -4
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +618 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +129 -0
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +901 -0
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +97 -0
- data/src/core/lib/event_engine/posix_engine/event_poller.h +111 -0
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +74 -0
- data/src/core/lib/event_engine/{executor/threaded_executor.cc → posix_engine/event_poller_posix_default.h} +13 -16
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +77 -0
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +179 -0
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +267 -0
- data/src/core/lib/event_engine/posix_engine/lockfree_event.h +73 -0
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +1270 -0
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +682 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +453 -18
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +148 -24
- data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +80 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +1081 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +361 -0
- data/src/core/lib/event_engine/posix_engine/timer.h +9 -8
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +57 -194
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +21 -49
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +301 -0
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +179 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +126 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +45 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +151 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +45 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +76 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +67 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +37 -0
- data/src/core/lib/event_engine/slice.cc +7 -6
- data/src/core/lib/event_engine/slice_buffer.cc +2 -2
- data/src/core/lib/event_engine/thread_pool.cc +106 -25
- data/src/core/lib/event_engine/thread_pool.h +32 -9
- data/src/core/lib/event_engine/windows/win_socket.cc +7 -7
- data/src/core/lib/event_engine/windows/windows_engine.cc +18 -12
- data/src/core/lib/event_engine/windows/windows_engine.h +8 -4
- data/src/core/lib/experiments/config.cc +1 -1
- data/src/core/lib/experiments/experiments.cc +13 -2
- data/src/core/lib/experiments/experiments.h +8 -1
- data/src/core/lib/gpr/cpu_linux.cc +6 -2
- data/src/core/lib/gpr/log_linux.cc +3 -4
- data/src/core/lib/gpr/string.h +1 -1
- data/src/core/lib/gpr/tmpfile_posix.cc +3 -2
- data/src/core/lib/gprpp/load_file.cc +75 -0
- data/src/core/lib/gprpp/load_file.h +33 -0
- data/src/core/lib/gprpp/per_cpu.h +46 -0
- data/src/core/lib/gprpp/stat_posix.cc +5 -4
- data/src/core/lib/gprpp/stat_windows.cc +3 -2
- data/src/core/lib/gprpp/status_helper.h +1 -3
- data/src/core/lib/gprpp/strerror.cc +41 -0
- data/src/core/{ext/xds/xds_resource_type.cc → lib/gprpp/strerror.h} +9 -13
- data/src/core/lib/gprpp/thd_windows.cc +1 -2
- data/src/core/lib/gprpp/time.cc +3 -4
- data/src/core/lib/gprpp/time.h +13 -2
- data/src/core/lib/gprpp/validation_errors.h +18 -1
- data/src/core/lib/http/httpcli.cc +40 -44
- data/src/core/lib/http/httpcli.h +6 -5
- data/src/core/lib/http/httpcli_security_connector.cc +4 -6
- data/src/core/lib/http/parser.cc +54 -65
- data/src/core/lib/iomgr/buffer_list.cc +105 -116
- data/src/core/lib/iomgr/buffer_list.h +60 -44
- data/src/core/lib/iomgr/call_combiner.cc +11 -10
- data/src/core/lib/iomgr/call_combiner.h +3 -4
- data/src/core/lib/iomgr/cfstream_handle.cc +13 -16
- data/src/core/lib/iomgr/closure.h +49 -5
- data/src/core/lib/iomgr/combiner.cc +2 -2
- data/src/core/lib/iomgr/endpoint.h +1 -1
- data/src/core/lib/iomgr/endpoint_cfstream.cc +26 -25
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -2
- data/src/core/lib/iomgr/error.cc +27 -42
- data/src/core/lib/iomgr/error.h +22 -152
- data/src/core/lib/iomgr/ev_apple.cc +4 -4
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +26 -25
- data/src/core/lib/iomgr/ev_poll_posix.cc +27 -31
- data/src/core/lib/iomgr/exec_ctx.cc +3 -4
- data/src/core/lib/iomgr/exec_ctx.h +2 -3
- data/src/core/lib/iomgr/executor.cc +1 -2
- data/src/core/lib/iomgr/internal_errqueue.cc +3 -1
- data/src/core/lib/iomgr/iocp_windows.cc +1 -0
- data/src/core/lib/iomgr/iomgr_posix.cc +2 -2
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -1
- data/src/core/lib/iomgr/iomgr_windows.cc +2 -1
- data/src/core/lib/iomgr/load_file.cc +5 -9
- data/src/core/lib/iomgr/lockfree_event.cc +10 -10
- data/src/core/lib/iomgr/pollset_windows.cc +4 -4
- data/src/core/lib/iomgr/python_util.h +2 -2
- data/src/core/lib/iomgr/resolve_address.cc +8 -3
- data/src/core/lib/iomgr/resolve_address.h +3 -4
- data/src/core/lib/iomgr/resolve_address_impl.h +1 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +14 -25
- data/src/core/lib/iomgr/resolve_address_posix.h +1 -2
- data/src/core/lib/iomgr/resolve_address_windows.cc +14 -17
- data/src/core/lib/iomgr/resolve_address_windows.h +1 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +30 -29
- data/src/core/lib/iomgr/socket_utils_posix.cc +1 -0
- data/src/core/lib/iomgr/socket_utils_posix.h +2 -2
- data/src/core/lib/iomgr/socket_windows.cc +2 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +6 -10
- data/src/core/lib/iomgr/tcp_client_posix.cc +31 -35
- data/src/core/lib/iomgr/tcp_client_windows.cc +8 -12
- data/src/core/lib/iomgr/tcp_posix.cc +92 -108
- data/src/core/lib/iomgr/tcp_server_posix.cc +34 -34
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +18 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +12 -13
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +1 -1
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -29
- data/src/core/lib/iomgr/tcp_windows.cc +27 -34
- data/src/core/lib/iomgr/timer.h +8 -8
- data/src/core/lib/iomgr/timer_generic.cc +9 -15
- data/src/core/lib/iomgr/unix_sockets_posix.cc +2 -4
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +4 -3
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +10 -8
- data/src/core/lib/json/json_channel_args.h +42 -0
- data/src/core/lib/json/json_object_loader.cc +7 -2
- data/src/core/lib/json/json_object_loader.h +22 -0
- data/src/core/lib/json/json_util.cc +5 -5
- data/src/core/lib/json/json_util.h +4 -4
- data/src/core/lib/load_balancing/lb_policy.cc +1 -1
- data/src/core/lib/load_balancing/lb_policy.h +4 -0
- data/src/core/lib/load_balancing/subchannel_interface.h +0 -7
- data/src/core/lib/matchers/matchers.cc +3 -4
- data/src/core/lib/promise/activity.cc +16 -2
- data/src/core/lib/promise/activity.h +38 -15
- data/src/core/lib/promise/arena_promise.h +80 -51
- data/src/core/lib/promise/context.h +13 -6
- data/src/core/lib/promise/detail/basic_seq.h +9 -28
- data/src/core/lib/promise/detail/promise_factory.h +58 -10
- data/src/core/lib/promise/detail/status.h +28 -0
- data/src/core/lib/promise/detail/switch.h +1455 -0
- data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +3 -1
- data/src/core/lib/promise/for_each.h +129 -0
- data/src/core/lib/promise/loop.h +7 -5
- data/src/core/lib/promise/map_pipe.h +87 -0
- data/src/core/lib/promise/pipe.cc +19 -0
- data/src/core/lib/promise/pipe.h +505 -0
- data/src/core/lib/promise/poll.h +13 -0
- data/src/core/lib/promise/seq.h +3 -5
- data/src/core/lib/promise/sleep.cc +5 -4
- data/src/core/lib/promise/sleep.h +1 -2
- data/src/core/lib/promise/try_concurrently.h +341 -0
- data/src/core/lib/promise/try_seq.h +10 -13
- data/src/core/lib/resolver/server_address.cc +1 -0
- data/src/core/lib/resolver/server_address.h +1 -3
- data/src/core/lib/resource_quota/api.cc +0 -1
- data/src/core/lib/resource_quota/arena.cc +19 -0
- data/src/core/lib/resource_quota/arena.h +89 -0
- data/src/core/lib/resource_quota/memory_quota.cc +1 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +1 -3
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +4 -2
- data/src/core/lib/security/authorization/matchers.cc +25 -22
- data/src/core/lib/security/authorization/rbac_policy.cc +2 -3
- data/src/core/lib/security/context/security_context.h +10 -0
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +3 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +1 -1
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +77 -55
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +4 -3
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +40 -51
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +17 -21
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +21 -25
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +1 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +27 -24
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +1 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +1 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +5 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +24 -30
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +3 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +19 -27
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +4 -11
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +29 -41
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +1 -1
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +6 -11
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +8 -15
- 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 +2 -6
- data/src/core/lib/security/security_connector/load_system_roots_supported.cc +1 -4
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +7 -11
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +9 -14
- data/src/core/lib/security/security_connector/ssl_utils.cc +5 -7
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +21 -27
- data/src/core/lib/security/transport/client_auth_filter.cc +1 -1
- data/src/core/lib/security/transport/secure_endpoint.cc +26 -28
- data/src/core/lib/security/transport/security_handshaker.cc +53 -53
- data/src/core/lib/security/transport/server_auth_filter.cc +21 -21
- data/src/core/lib/security/transport/tsi_error.cc +6 -3
- data/src/core/lib/security/util/json_util.cc +4 -5
- data/src/core/lib/service_config/service_config.h +1 -1
- data/src/core/lib/service_config/service_config_impl.cc +111 -158
- data/src/core/lib/service_config/service_config_impl.h +14 -17
- data/src/core/lib/service_config/service_config_parser.cc +14 -31
- data/src/core/lib/service_config/service_config_parser.h +14 -10
- data/src/core/lib/slice/b64.cc +2 -2
- data/src/core/lib/slice/slice.cc +7 -1
- data/src/core/lib/slice/slice.h +19 -6
- data/src/core/lib/slice/slice_buffer.cc +13 -14
- data/src/core/lib/slice/slice_internal.h +13 -21
- data/src/core/lib/slice/slice_refcount.h +34 -19
- data/src/core/lib/surface/byte_buffer.cc +3 -4
- data/src/core/lib/surface/byte_buffer_reader.cc +4 -4
- data/src/core/lib/surface/call.cc +1366 -239
- data/src/core/lib/surface/call.h +44 -0
- data/src/core/lib/surface/call_details.cc +3 -3
- data/src/core/lib/surface/call_trace.cc +113 -0
- data/src/core/lib/surface/call_trace.h +30 -0
- data/src/core/lib/surface/channel.cc +44 -49
- data/src/core/lib/surface/channel.h +9 -1
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/channel_stack_type.cc +4 -0
- data/src/core/lib/surface/channel_stack_type.h +2 -0
- data/src/core/lib/surface/completion_queue.cc +38 -52
- data/src/core/lib/surface/init.cc +8 -39
- data/src/core/lib/surface/init_internally.h +8 -0
- data/src/core/lib/surface/lame_client.cc +10 -8
- data/src/core/lib/surface/server.cc +48 -70
- data/src/core/lib/surface/server.h +3 -4
- data/src/core/lib/surface/validate_metadata.cc +11 -12
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/connectivity_state.cc +2 -2
- data/src/core/lib/transport/error_utils.cc +34 -28
- data/src/core/lib/transport/error_utils.h +3 -3
- data/src/core/lib/transport/handshaker.cc +14 -14
- data/src/core/lib/transport/handshaker.h +1 -1
- data/src/core/lib/transport/handshaker_factory.h +26 -0
- data/src/core/lib/transport/handshaker_registry.cc +8 -2
- data/src/core/lib/transport/handshaker_registry.h +3 -4
- data/src/core/lib/transport/http_connect_handshaker.cc +23 -24
- data/src/core/lib/transport/metadata_batch.h +17 -1
- data/src/core/lib/transport/parsed_metadata.cc +2 -6
- data/src/core/lib/transport/tcp_connect_handshaker.cc +15 -20
- data/src/core/lib/transport/transport.cc +63 -17
- data/src/core/lib/transport/transport.h +64 -68
- data/src/core/lib/transport/transport_impl.h +1 -1
- data/src/core/lib/transport/transport_op_string.cc +7 -6
- data/src/core/plugin_registry/grpc_plugin_registry.cc +6 -10
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -14
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +10 -10
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +8 -8
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +7 -7
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +7 -6
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +5 -5
- data/src/core/tsi/fake_transport_security.cc +3 -3
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +7 -3
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +6 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +0 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +0 -3
- data/src/ruby/lib/grpc/2.6/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/2.7/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/3.0/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/3.1/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/channel_spec.rb +0 -43
- data/src/ruby/spec/generic/active_call_spec.rb +12 -3
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +140 -0
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +100 -0
- data/third_party/zlib/compress.c +3 -3
- data/third_party/zlib/crc32.c +21 -12
- data/third_party/zlib/deflate.c +112 -106
- data/third_party/zlib/deflate.h +2 -2
- data/third_party/zlib/gzlib.c +1 -1
- data/third_party/zlib/gzread.c +3 -5
- data/third_party/zlib/gzwrite.c +1 -1
- data/third_party/zlib/infback.c +10 -7
- data/third_party/zlib/inflate.c +5 -2
- data/third_party/zlib/inftrees.c +2 -2
- data/third_party/zlib/inftrees.h +1 -1
- data/third_party/zlib/trees.c +61 -62
- data/third_party/zlib/uncompr.c +2 -2
- data/third_party/zlib/zconf.h +16 -3
- data/third_party/zlib/zlib.h +10 -10
- data/third_party/zlib/zutil.c +9 -7
- data/third_party/zlib/zutil.h +1 -0
- metadata +55 -18
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +0 -188
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +0 -187
- data/src/core/lib/event_engine/executor/threaded_executor.h +0 -44
- data/src/core/lib/gpr/murmur_hash.cc +0 -82
- data/src/core/lib/gpr/murmur_hash.h +0 -29
- data/src/core/lib/gpr/tls.h +0 -156
- data/src/core/lib/promise/call_push_pull.h +0 -148
- data/src/core/lib/slice/slice_api.cc +0 -39
- data/src/core/lib/slice/slice_buffer_api.cc +0 -35
- data/src/core/lib/slice/slice_refcount_base.h +0 -60
@@ -47,6 +47,7 @@
|
|
47
47
|
#include "src/core/lib/config/core_configuration.h"
|
48
48
|
#include "src/core/lib/gprpp/debug_location.h"
|
49
49
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
50
|
+
#include "src/core/lib/gprpp/status_helper.h"
|
50
51
|
#include "src/core/lib/gprpp/time.h"
|
51
52
|
#include "src/core/lib/iomgr/closure.h"
|
52
53
|
#include "src/core/lib/iomgr/endpoint.h"
|
@@ -203,9 +204,9 @@ struct inproc_stream {
|
|
203
204
|
cs->write_buffer_trailing_md.Clear();
|
204
205
|
cs->write_buffer_trailing_md_filled = false;
|
205
206
|
}
|
206
|
-
if (!
|
207
|
+
if (!cs->write_buffer_cancel_error.ok()) {
|
207
208
|
cancel_other_error = cs->write_buffer_cancel_error;
|
208
|
-
cs->write_buffer_cancel_error =
|
209
|
+
cs->write_buffer_cancel_error = absl::OkStatus();
|
209
210
|
maybe_process_ops_locked(this, cancel_other_error);
|
210
211
|
}
|
211
212
|
|
@@ -213,13 +214,7 @@ struct inproc_stream {
|
|
213
214
|
}
|
214
215
|
}
|
215
216
|
|
216
|
-
~inproc_stream() {
|
217
|
-
GRPC_ERROR_UNREF(write_buffer_cancel_error);
|
218
|
-
GRPC_ERROR_UNREF(cancel_self_error);
|
219
|
-
GRPC_ERROR_UNREF(cancel_other_error);
|
220
|
-
|
221
|
-
t->unref();
|
222
|
-
}
|
217
|
+
~inproc_stream() { t->unref(); }
|
223
218
|
|
224
219
|
#ifndef NDEBUG
|
225
220
|
#define STREAM_REF(refs, reason) grpc_stream_ref(refs, reason)
|
@@ -257,7 +252,7 @@ struct inproc_stream {
|
|
257
252
|
grpc_core::Timestamp::InfFuture();
|
258
253
|
grpc_metadata_batch write_buffer_trailing_md{arena};
|
259
254
|
bool write_buffer_trailing_md_filled = false;
|
260
|
-
grpc_error_handle write_buffer_cancel_error
|
255
|
+
grpc_error_handle write_buffer_cancel_error;
|
261
256
|
|
262
257
|
struct inproc_stream* other_side;
|
263
258
|
bool other_side_closed = false; // won't talk anymore
|
@@ -281,8 +276,8 @@ struct inproc_stream {
|
|
281
276
|
|
282
277
|
bool closed = false;
|
283
278
|
|
284
|
-
grpc_error_handle cancel_self_error
|
285
|
-
grpc_error_handle cancel_other_error
|
279
|
+
grpc_error_handle cancel_self_error;
|
280
|
+
grpc_error_handle cancel_other_error;
|
286
281
|
|
287
282
|
grpc_core::Timestamp deadline = grpc_core::Timestamp::InfFuture();
|
288
283
|
|
@@ -414,14 +409,13 @@ void complete_if_batch_end_locked(inproc_stream* s, grpc_error_handle error,
|
|
414
409
|
|
415
410
|
if ((is_sm + is_stm + is_rim + is_rm + is_rtm) == 1) {
|
416
411
|
INPROC_LOG(GPR_INFO, "%s %p %p %s", msg, s, op,
|
417
|
-
|
418
|
-
grpc_core::ExecCtx::Run(DEBUG_LOCATION, op->on_complete,
|
419
|
-
GRPC_ERROR_REF(error));
|
412
|
+
grpc_core::StatusToString(error).c_str());
|
413
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, op->on_complete, error);
|
420
414
|
}
|
421
415
|
}
|
422
416
|
|
423
417
|
void maybe_process_ops_locked(inproc_stream* s, grpc_error_handle error) {
|
424
|
-
if (s && (!
|
418
|
+
if (s && (!error.ok() || s->ops_needed)) {
|
425
419
|
s->ops_needed = false;
|
426
420
|
op_state_machine_locked(s, error);
|
427
421
|
}
|
@@ -445,12 +439,12 @@ void fail_helper_locked(inproc_stream* s, grpc_error_handle error) {
|
|
445
439
|
fill_in_metadata(s, &fake_md, dest, destfilled);
|
446
440
|
|
447
441
|
if (other != nullptr) {
|
448
|
-
if (
|
449
|
-
other->cancel_other_error =
|
442
|
+
if (other->cancel_other_error.ok()) {
|
443
|
+
other->cancel_other_error = error;
|
450
444
|
}
|
451
445
|
maybe_process_ops_locked(other, error);
|
452
|
-
} else if (
|
453
|
-
s->write_buffer_cancel_error =
|
446
|
+
} else if (s->write_buffer_cancel_error.ok()) {
|
447
|
+
s->write_buffer_cancel_error = error;
|
454
448
|
}
|
455
449
|
}
|
456
450
|
if (s->recv_initial_md_op) {
|
@@ -468,9 +462,9 @@ void fail_helper_locked(inproc_stream* s, grpc_error_handle error) {
|
|
468
462
|
s->recv_initial_md_op->payload->recv_initial_metadata
|
469
463
|
.recv_initial_metadata,
|
470
464
|
nullptr);
|
471
|
-
err =
|
465
|
+
err = absl::OkStatus();
|
472
466
|
} else {
|
473
|
-
err =
|
467
|
+
err = error;
|
474
468
|
}
|
475
469
|
if (s->recv_initial_md_op->payload->recv_initial_metadata
|
476
470
|
.trailing_metadata_available != nullptr) {
|
@@ -482,8 +476,8 @@ void fail_helper_locked(inproc_stream* s, grpc_error_handle error) {
|
|
482
476
|
}
|
483
477
|
INPROC_LOG(GPR_INFO,
|
484
478
|
"fail_helper %p scheduling initial-metadata-ready %s %s", s,
|
485
|
-
|
486
|
-
|
479
|
+
grpc_core::StatusToString(error).c_str(),
|
480
|
+
grpc_core::StatusToString(err).c_str());
|
487
481
|
grpc_core::ExecCtx::Run(
|
488
482
|
DEBUG_LOCATION,
|
489
483
|
s->recv_initial_md_op->payload->recv_initial_metadata
|
@@ -498,7 +492,7 @@ void fail_helper_locked(inproc_stream* s, grpc_error_handle error) {
|
|
498
492
|
}
|
499
493
|
if (s->recv_message_op) {
|
500
494
|
INPROC_LOG(GPR_INFO, "fail_helper %p scheduling message-ready %s", s,
|
501
|
-
|
495
|
+
grpc_core::StatusToString(error).c_str());
|
502
496
|
if (s->recv_message_op->payload->recv_message
|
503
497
|
.call_failed_before_recv_message != nullptr) {
|
504
498
|
*s->recv_message_op->payload->recv_message
|
@@ -506,8 +500,7 @@ void fail_helper_locked(inproc_stream* s, grpc_error_handle error) {
|
|
506
500
|
}
|
507
501
|
grpc_core::ExecCtx::Run(
|
508
502
|
DEBUG_LOCATION,
|
509
|
-
s->recv_message_op->payload->recv_message.recv_message_ready,
|
510
|
-
GRPC_ERROR_REF(error));
|
503
|
+
s->recv_message_op->payload->recv_message.recv_message_ready, error);
|
511
504
|
complete_if_batch_end_locked(
|
512
505
|
s, error, s->recv_message_op,
|
513
506
|
"fail_helper scheduling recv-message-on-complete");
|
@@ -528,14 +521,14 @@ void fail_helper_locked(inproc_stream* s, grpc_error_handle error) {
|
|
528
521
|
}
|
529
522
|
if (s->recv_trailing_md_op) {
|
530
523
|
INPROC_LOG(GPR_INFO, "fail_helper %p scheduling trailing-metadata-ready %s",
|
531
|
-
s,
|
524
|
+
s, grpc_core::StatusToString(error).c_str());
|
532
525
|
grpc_core::ExecCtx::Run(
|
533
526
|
DEBUG_LOCATION,
|
534
527
|
s->recv_trailing_md_op->payload->recv_trailing_metadata
|
535
528
|
.recv_trailing_metadata_ready,
|
536
|
-
|
529
|
+
error);
|
537
530
|
INPROC_LOG(GPR_INFO, "fail_helper %p scheduling trailing-md-on-complete %s",
|
538
|
-
s,
|
531
|
+
s, grpc_core::StatusToString(error).c_str());
|
539
532
|
complete_if_batch_end_locked(
|
540
533
|
s, error, s->recv_trailing_md_op,
|
541
534
|
"fail_helper scheduling recv-trailing-metadata-on-complete");
|
@@ -543,8 +536,6 @@ void fail_helper_locked(inproc_stream* s, grpc_error_handle error) {
|
|
543
536
|
}
|
544
537
|
close_other_side_locked(s, "fail_helper:other_side");
|
545
538
|
close_stream_locked(s);
|
546
|
-
|
547
|
-
GRPC_ERROR_UNREF(error);
|
548
539
|
}
|
549
540
|
|
550
541
|
// TODO(vjpai): It should not be necessary to drain the incoming byte
|
@@ -566,12 +557,12 @@ void message_transfer_locked(inproc_stream* sender, inproc_stream* receiver) {
|
|
566
557
|
grpc_core::ExecCtx::Run(
|
567
558
|
DEBUG_LOCATION,
|
568
559
|
receiver->recv_message_op->payload->recv_message.recv_message_ready,
|
569
|
-
|
560
|
+
absl::OkStatus());
|
570
561
|
complete_if_batch_end_locked(
|
571
|
-
sender,
|
562
|
+
sender, absl::OkStatus(), sender->send_message_op,
|
572
563
|
"message_transfer scheduling sender on_complete");
|
573
564
|
complete_if_batch_end_locked(
|
574
|
-
receiver,
|
565
|
+
receiver, absl::OkStatus(), receiver->recv_message_op,
|
575
566
|
"message_transfer scheduling receiver on_complete");
|
576
567
|
|
577
568
|
receiver->recv_message_op = nullptr;
|
@@ -584,7 +575,7 @@ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error) {
|
|
584
575
|
// Schedule our appropriate closures
|
585
576
|
// and then return to ops_needed state if still needed
|
586
577
|
|
587
|
-
grpc_error_handle new_err
|
578
|
+
grpc_error_handle new_err;
|
588
579
|
|
589
580
|
bool needs_close = false;
|
590
581
|
|
@@ -592,26 +583,26 @@ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error) {
|
|
592
583
|
// cancellation takes precedence
|
593
584
|
inproc_stream* other = s->other_side;
|
594
585
|
|
595
|
-
if (!
|
596
|
-
fail_helper_locked(s,
|
586
|
+
if (!s->cancel_self_error.ok()) {
|
587
|
+
fail_helper_locked(s, s->cancel_self_error);
|
597
588
|
goto done;
|
598
|
-
} else if (!
|
599
|
-
fail_helper_locked(s,
|
589
|
+
} else if (!s->cancel_other_error.ok()) {
|
590
|
+
fail_helper_locked(s, s->cancel_other_error);
|
600
591
|
goto done;
|
601
|
-
} else if (!
|
602
|
-
fail_helper_locked(s,
|
592
|
+
} else if (!error.ok()) {
|
593
|
+
fail_helper_locked(s, error);
|
603
594
|
goto done;
|
604
595
|
}
|
605
596
|
|
606
597
|
if (s->send_message_op && other) {
|
607
598
|
if (other->recv_message_op) {
|
608
599
|
message_transfer_locked(s, other);
|
609
|
-
maybe_process_ops_locked(other,
|
600
|
+
maybe_process_ops_locked(other, absl::OkStatus());
|
610
601
|
} else if (!s->t->is_client && s->trailing_md_sent) {
|
611
602
|
// A server send will never be matched if the server already sent status
|
612
603
|
ResetSendMessage(s->send_message_op);
|
613
604
|
complete_if_batch_end_locked(
|
614
|
-
s,
|
605
|
+
s, absl::OkStatus(), s->send_message_op,
|
615
606
|
"op_state_machine scheduling send-message-on-complete case 1");
|
616
607
|
s->send_message_op = nullptr;
|
617
608
|
}
|
@@ -636,8 +627,8 @@ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error) {
|
|
636
627
|
if (*destfilled || s->trailing_md_sent) {
|
637
628
|
// The buffer is already in use; that's an error!
|
638
629
|
INPROC_LOG(GPR_INFO, "Extra trailing metadata %p", s);
|
639
|
-
new_err =
|
640
|
-
fail_helper_locked(s,
|
630
|
+
new_err = GRPC_ERROR_CREATE("Extra trailing metadata");
|
631
|
+
fail_helper_locked(s, new_err);
|
641
632
|
goto done;
|
642
633
|
} else {
|
643
634
|
if (!other || !other->closed) {
|
@@ -657,32 +648,31 @@ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error) {
|
|
657
648
|
DEBUG_LOCATION,
|
658
649
|
s->recv_trailing_md_op->payload->recv_trailing_metadata
|
659
650
|
.recv_trailing_metadata_ready,
|
660
|
-
|
651
|
+
absl::OkStatus());
|
661
652
|
INPROC_LOG(GPR_INFO,
|
662
653
|
"op_state_machine %p scheduling trailing-md-on-complete", s);
|
663
654
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION,
|
664
655
|
s->recv_trailing_md_op->on_complete,
|
665
|
-
|
656
|
+
absl::OkStatus());
|
666
657
|
s->recv_trailing_md_op = nullptr;
|
667
658
|
needs_close = true;
|
668
659
|
}
|
669
660
|
}
|
670
|
-
maybe_process_ops_locked(other,
|
661
|
+
maybe_process_ops_locked(other, absl::OkStatus());
|
671
662
|
complete_if_batch_end_locked(
|
672
|
-
s,
|
663
|
+
s, absl::OkStatus(), s->send_trailing_md_op,
|
673
664
|
"op_state_machine scheduling send-trailing-metadata-on-complete");
|
674
665
|
s->send_trailing_md_op = nullptr;
|
675
666
|
}
|
676
667
|
if (s->recv_initial_md_op) {
|
677
668
|
if (s->initial_md_recvd) {
|
678
|
-
new_err =
|
679
|
-
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Already recvd initial md");
|
669
|
+
new_err = GRPC_ERROR_CREATE("Already recvd initial md");
|
680
670
|
INPROC_LOG(
|
681
671
|
GPR_INFO,
|
682
672
|
"op_state_machine %p scheduling on_complete errors for already "
|
683
673
|
"recvd initial md %s",
|
684
|
-
s,
|
685
|
-
fail_helper_locked(s,
|
674
|
+
s, grpc_core::StatusToString(new_err).c_str());
|
675
|
+
fail_helper_locked(s, new_err);
|
686
676
|
goto done;
|
687
677
|
}
|
688
678
|
|
@@ -709,9 +699,9 @@ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error) {
|
|
709
699
|
DEBUG_LOCATION,
|
710
700
|
s->recv_initial_md_op->payload->recv_initial_metadata
|
711
701
|
.recv_initial_metadata_ready,
|
712
|
-
|
702
|
+
absl::OkStatus());
|
713
703
|
complete_if_batch_end_locked(
|
714
|
-
s,
|
704
|
+
s, absl::OkStatus(), s->recv_initial_md_op,
|
715
705
|
"op_state_machine scheduling recv-initial-metadata-on-complete");
|
716
706
|
s->recv_initial_md_op = nullptr;
|
717
707
|
}
|
@@ -719,7 +709,7 @@ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error) {
|
|
719
709
|
if (s->recv_message_op) {
|
720
710
|
if (other && other->send_message_op) {
|
721
711
|
message_transfer_locked(other, s);
|
722
|
-
maybe_process_ops_locked(other,
|
712
|
+
maybe_process_ops_locked(other, absl::OkStatus());
|
723
713
|
}
|
724
714
|
}
|
725
715
|
if (s->to_read_trailing_md_filled) {
|
@@ -733,14 +723,13 @@ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error) {
|
|
733
723
|
s->to_read_trailing_md_filled = false;
|
734
724
|
s->trailing_md_recvd_implicit_only = false;
|
735
725
|
} else {
|
736
|
-
new_err =
|
737
|
-
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Already recvd trailing md");
|
726
|
+
new_err = GRPC_ERROR_CREATE("Already recvd trailing md");
|
738
727
|
INPROC_LOG(
|
739
728
|
GPR_INFO,
|
740
729
|
"op_state_machine %p scheduling on_complete errors for already "
|
741
730
|
"recvd trailing md %s",
|
742
|
-
s,
|
743
|
-
fail_helper_locked(s,
|
731
|
+
s, grpc_core::StatusToString(new_err).c_str());
|
732
|
+
fail_helper_locked(s, new_err);
|
744
733
|
goto done;
|
745
734
|
}
|
746
735
|
}
|
@@ -752,7 +741,7 @@ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error) {
|
|
752
741
|
grpc_core::ExecCtx::Run(
|
753
742
|
DEBUG_LOCATION,
|
754
743
|
s->recv_message_op->payload->recv_message.recv_message_ready,
|
755
|
-
|
744
|
+
absl::OkStatus());
|
756
745
|
complete_if_batch_end_locked(
|
757
746
|
s, new_err, s->recv_message_op,
|
758
747
|
"op_state_machine scheduling recv-message-on-complete");
|
@@ -789,10 +778,10 @@ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error) {
|
|
789
778
|
DEBUG_LOCATION,
|
790
779
|
s->recv_trailing_md_op->payload->recv_trailing_metadata
|
791
780
|
.recv_trailing_metadata_ready,
|
792
|
-
|
781
|
+
absl::OkStatus());
|
793
782
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION,
|
794
783
|
s->recv_trailing_md_op->on_complete,
|
795
|
-
|
784
|
+
absl::OkStatus());
|
796
785
|
s->recv_trailing_md_op = nullptr;
|
797
786
|
needs_close = s->trailing_md_sent;
|
798
787
|
}
|
@@ -808,12 +797,12 @@ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error) {
|
|
808
797
|
// because we have already sent status and the RPC is over as far as we
|
809
798
|
// are concerned.
|
810
799
|
INPROC_LOG(GPR_INFO, "op_state_machine %p scheduling trailing-md-ready %s",
|
811
|
-
s,
|
800
|
+
s, grpc_core::StatusToString(new_err).c_str());
|
812
801
|
grpc_core::ExecCtx::Run(
|
813
802
|
DEBUG_LOCATION,
|
814
803
|
s->recv_trailing_md_op->payload->recv_trailing_metadata
|
815
804
|
.recv_trailing_metadata_ready,
|
816
|
-
|
805
|
+
new_err);
|
817
806
|
complete_if_batch_end_locked(
|
818
807
|
s, new_err, s->recv_trailing_md_op,
|
819
808
|
"op_state_machine scheduling recv-trailing-md-on-complete");
|
@@ -831,7 +820,7 @@ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error) {
|
|
831
820
|
grpc_core::ExecCtx::Run(
|
832
821
|
DEBUG_LOCATION,
|
833
822
|
s->recv_message_op->payload->recv_message.recv_message_ready,
|
834
|
-
|
823
|
+
absl::OkStatus());
|
835
824
|
complete_if_batch_end_locked(
|
836
825
|
s, new_err, s->recv_message_op,
|
837
826
|
"op_state_machine scheduling recv-message-on-complete");
|
@@ -861,16 +850,15 @@ done:
|
|
861
850
|
close_other_side_locked(s, "op_state_machine");
|
862
851
|
close_stream_locked(s);
|
863
852
|
}
|
864
|
-
GRPC_ERROR_UNREF(new_err);
|
865
853
|
}
|
866
854
|
|
867
855
|
bool cancel_stream_locked(inproc_stream* s, grpc_error_handle error) {
|
868
856
|
bool ret = false; // was the cancel accepted
|
869
857
|
INPROC_LOG(GPR_INFO, "cancel_stream %p with %s", s,
|
870
|
-
|
871
|
-
if (
|
858
|
+
grpc_core::StatusToString(error).c_str());
|
859
|
+
if (s->cancel_self_error.ok()) {
|
872
860
|
ret = true;
|
873
|
-
s->cancel_self_error =
|
861
|
+
s->cancel_self_error = error;
|
874
862
|
// Catch current value of other before it gets closed off
|
875
863
|
inproc_stream* other = s->other_side;
|
876
864
|
maybe_process_ops_locked(s, s->cancel_self_error);
|
@@ -888,12 +876,12 @@ bool cancel_stream_locked(inproc_stream* s, grpc_error_handle error) {
|
|
888
876
|
fill_in_metadata(s, &cancel_md, dest, destfilled);
|
889
877
|
|
890
878
|
if (other != nullptr) {
|
891
|
-
if (
|
892
|
-
other->cancel_other_error =
|
879
|
+
if (other->cancel_other_error.ok()) {
|
880
|
+
other->cancel_other_error = s->cancel_self_error;
|
893
881
|
}
|
894
882
|
maybe_process_ops_locked(other, other->cancel_other_error);
|
895
|
-
} else if (
|
896
|
-
s->write_buffer_cancel_error =
|
883
|
+
} else if (s->write_buffer_cancel_error.ok()) {
|
884
|
+
s->write_buffer_cancel_error = s->cancel_self_error;
|
897
885
|
}
|
898
886
|
|
899
887
|
// if we are a server and already received trailing md but
|
@@ -904,7 +892,7 @@ bool cancel_stream_locked(inproc_stream* s, grpc_error_handle error) {
|
|
904
892
|
DEBUG_LOCATION,
|
905
893
|
s->recv_trailing_md_op->payload->recv_trailing_metadata
|
906
894
|
.recv_trailing_metadata_ready,
|
907
|
-
|
895
|
+
s->cancel_self_error);
|
908
896
|
complete_if_batch_end_locked(
|
909
897
|
s, s->cancel_self_error, s->recv_trailing_md_op,
|
910
898
|
"cancel_stream scheduling trailing-md-on-complete");
|
@@ -915,7 +903,6 @@ bool cancel_stream_locked(inproc_stream* s, grpc_error_handle error) {
|
|
915
903
|
close_other_side_locked(s, "cancel_stream:other_side");
|
916
904
|
close_stream_locked(s);
|
917
905
|
|
918
|
-
GRPC_ERROR_UNREF(error);
|
919
906
|
return ret;
|
920
907
|
}
|
921
908
|
|
@@ -938,7 +925,7 @@ void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
938
925
|
s->t->is_client, false);
|
939
926
|
}
|
940
927
|
}
|
941
|
-
grpc_error_handle error
|
928
|
+
grpc_error_handle error;
|
942
929
|
grpc_closure* on_complete = op->on_complete;
|
943
930
|
// TODO(roth): This is a hack needed because we use data inside of the
|
944
931
|
// closure itself to do the barrier calculation (i.e., to ensure that
|
@@ -955,9 +942,9 @@ void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
955
942
|
// this function is responsible to make sure that that field gets unref'ed
|
956
943
|
cancel_stream_locked(s, op->payload->cancel_stream.cancel_error);
|
957
944
|
// this op can complete without an error
|
958
|
-
} else if (!
|
945
|
+
} else if (!s->cancel_self_error.ok()) {
|
959
946
|
// already self-canceled so still give it an error
|
960
|
-
error =
|
947
|
+
error = s->cancel_self_error;
|
961
948
|
} else {
|
962
949
|
INPROC_LOG(GPR_INFO, "perform_stream_op %p %s%s%s%s%s%s%s", s,
|
963
950
|
s->t->is_client ? "client" : "server",
|
@@ -970,12 +957,11 @@ void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
970
957
|
}
|
971
958
|
|
972
959
|
inproc_stream* other = s->other_side;
|
973
|
-
if (
|
974
|
-
(op->send_initial_metadata || op->send_trailing_metadata)) {
|
960
|
+
if (error.ok() && (op->send_initial_metadata || op->send_trailing_metadata)) {
|
975
961
|
if (s->t->is_closed) {
|
976
|
-
error =
|
962
|
+
error = GRPC_ERROR_CREATE("Endpoint already shutdown");
|
977
963
|
}
|
978
|
-
if (
|
964
|
+
if (error.ok() && op->send_initial_metadata) {
|
979
965
|
grpc_metadata_batch* dest = (other == nullptr)
|
980
966
|
? &s->write_buffer_initial_md
|
981
967
|
: &other->to_read_initial_md;
|
@@ -984,7 +970,7 @@ void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
984
970
|
if (*destfilled || s->initial_md_sent) {
|
985
971
|
// The buffer is already in use; that's an error!
|
986
972
|
INPROC_LOG(GPR_INFO, "Extra initial metadata %p", s);
|
987
|
-
error =
|
973
|
+
error = GRPC_ERROR_CREATE("Extra initial metadata");
|
988
974
|
} else {
|
989
975
|
if (!s->other_side_closed) {
|
990
976
|
fill_in_metadata(
|
@@ -1005,10 +991,9 @@ void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
1005
991
|
}
|
1006
992
|
}
|
1007
993
|
|
1008
|
-
if (
|
1009
|
-
|
1010
|
-
|
1011
|
-
op->recv_trailing_metadata)) {
|
994
|
+
if (error.ok() && (op->send_message || op->send_trailing_metadata ||
|
995
|
+
op->recv_initial_metadata || op->recv_message ||
|
996
|
+
op->recv_trailing_metadata)) {
|
1012
997
|
// Mark ops that need to be processed by the state machine
|
1013
998
|
if (op->send_message) {
|
1014
999
|
s->send_message_op = op;
|
@@ -1045,7 +1030,7 @@ void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
1045
1030
|
s->ops_needed = true;
|
1046
1031
|
}
|
1047
1032
|
} else {
|
1048
|
-
if (!
|
1033
|
+
if (!error.ok()) {
|
1049
1034
|
// Consume any send message that was sent here but that we are not
|
1050
1035
|
// pushing to the other side
|
1051
1036
|
if (op->send_message) {
|
@@ -1065,42 +1050,41 @@ void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
1065
1050
|
INPROC_LOG(
|
1066
1051
|
GPR_INFO,
|
1067
1052
|
"perform_stream_op error %p scheduling initial-metadata-ready %s",
|
1068
|
-
s,
|
1053
|
+
s, grpc_core::StatusToString(error).c_str());
|
1069
1054
|
grpc_core::ExecCtx::Run(
|
1070
1055
|
DEBUG_LOCATION,
|
1071
1056
|
op->payload->recv_initial_metadata.recv_initial_metadata_ready,
|
1072
|
-
|
1057
|
+
error);
|
1073
1058
|
}
|
1074
1059
|
if (op->recv_message) {
|
1075
1060
|
INPROC_LOG(
|
1076
1061
|
GPR_INFO,
|
1077
1062
|
"perform_stream_op error %p scheduling recv message-ready %s", s,
|
1078
|
-
|
1063
|
+
grpc_core::StatusToString(error).c_str());
|
1079
1064
|
if (op->payload->recv_message.call_failed_before_recv_message !=
|
1080
1065
|
nullptr) {
|
1081
1066
|
*op->payload->recv_message.call_failed_before_recv_message = true;
|
1082
1067
|
}
|
1083
1068
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION,
|
1084
1069
|
op->payload->recv_message.recv_message_ready,
|
1085
|
-
|
1070
|
+
error);
|
1086
1071
|
}
|
1087
1072
|
if (op->recv_trailing_metadata) {
|
1088
1073
|
INPROC_LOG(GPR_INFO,
|
1089
1074
|
"perform_stream_op error %p scheduling "
|
1090
1075
|
"trailing-metadata-ready %s",
|
1091
|
-
s,
|
1076
|
+
s, grpc_core::StatusToString(error).c_str());
|
1092
1077
|
grpc_core::ExecCtx::Run(
|
1093
1078
|
DEBUG_LOCATION,
|
1094
1079
|
op->payload->recv_trailing_metadata.recv_trailing_metadata_ready,
|
1095
|
-
|
1080
|
+
error);
|
1096
1081
|
}
|
1097
1082
|
}
|
1098
1083
|
INPROC_LOG(GPR_INFO, "perform_stream_op %p scheduling on_complete %s", s,
|
1099
|
-
|
1100
|
-
grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_complete,
|
1084
|
+
grpc_core::StatusToString(error).c_str());
|
1085
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_complete, error);
|
1101
1086
|
}
|
1102
1087
|
gpr_mu_unlock(mu);
|
1103
|
-
GRPC_ERROR_UNREF(error);
|
1104
1088
|
}
|
1105
1089
|
|
1106
1090
|
void close_transport_locked(inproc_transport* t) {
|
@@ -1114,9 +1098,9 @@ void close_transport_locked(inproc_transport* t) {
|
|
1114
1098
|
// cancel_stream_locked also adjusts stream list
|
1115
1099
|
cancel_stream_locked(
|
1116
1100
|
t->stream_list,
|
1117
|
-
grpc_error_set_int(
|
1118
|
-
|
1119
|
-
|
1101
|
+
grpc_error_set_int(GRPC_ERROR_CREATE("Transport closed"),
|
1102
|
+
grpc_core::StatusIntProperty::kRpcStatus,
|
1103
|
+
GRPC_STATUS_UNAVAILABLE));
|
1120
1104
|
}
|
1121
1105
|
}
|
1122
1106
|
}
|
@@ -1137,17 +1121,15 @@ void perform_transport_op(grpc_transport* gt, grpc_transport_op* op) {
|
|
1137
1121
|
t->accept_stream_data = op->set_accept_stream_user_data;
|
1138
1122
|
}
|
1139
1123
|
if (op->on_consumed) {
|
1140
|
-
grpc_core::ExecCtx::Run(DEBUG_LOCATION, op->on_consumed,
|
1124
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, op->on_consumed, absl::OkStatus());
|
1141
1125
|
}
|
1142
1126
|
|
1143
1127
|
bool do_close = false;
|
1144
|
-
if (!
|
1128
|
+
if (!op->goaway_error.ok()) {
|
1145
1129
|
do_close = true;
|
1146
|
-
GRPC_ERROR_UNREF(op->goaway_error);
|
1147
1130
|
}
|
1148
|
-
if (!
|
1131
|
+
if (!op->disconnect_with_error.ok()) {
|
1149
1132
|
do_close = true;
|
1150
|
-
GRPC_ERROR_UNREF(op->disconnect_with_error);
|
1151
1133
|
}
|
1152
1134
|
|
1153
1135
|
if (do_close) {
|
@@ -1166,7 +1148,7 @@ void destroy_stream(grpc_transport* gt, grpc_stream* gs,
|
|
1166
1148
|
gpr_mu_unlock(&t->mu->mu);
|
1167
1149
|
s->~inproc_stream();
|
1168
1150
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, then_schedule_closure,
|
1169
|
-
|
1151
|
+
absl::OkStatus());
|
1170
1152
|
}
|
1171
1153
|
|
1172
1154
|
void destroy_transport(grpc_transport* gt) {
|
@@ -1251,19 +1233,19 @@ grpc_channel* grpc_inproc_channel_create(grpc_server* server,
|
|
1251
1233
|
grpc_error_handle error = core_server->SetupTransport(
|
1252
1234
|
server_transport, nullptr, server_args, nullptr);
|
1253
1235
|
grpc_channel* channel = nullptr;
|
1254
|
-
if (
|
1236
|
+
if (error.ok()) {
|
1255
1237
|
auto new_channel = grpc_core::Channel::Create(
|
1256
1238
|
"inproc", client_args, GRPC_CLIENT_DIRECT_CHANNEL, client_transport);
|
1257
1239
|
if (!new_channel.ok()) {
|
1258
1240
|
GPR_ASSERT(!channel);
|
1259
1241
|
gpr_log(GPR_ERROR, "Failed to create client channel: %s",
|
1260
|
-
|
1242
|
+
grpc_core::StatusToString(error).c_str());
|
1261
1243
|
intptr_t integer;
|
1262
1244
|
grpc_status_code status = GRPC_STATUS_INTERNAL;
|
1263
|
-
if (grpc_error_get_int(error,
|
1245
|
+
if (grpc_error_get_int(error, grpc_core::StatusIntProperty::kRpcStatus,
|
1246
|
+
&integer)) {
|
1264
1247
|
status = static_cast<grpc_status_code>(integer);
|
1265
1248
|
}
|
1266
|
-
GRPC_ERROR_UNREF(error);
|
1267
1249
|
// client_transport was destroyed when grpc_channel_create_internal saw an
|
1268
1250
|
// error.
|
1269
1251
|
grpc_transport_destroy(server_transport);
|
@@ -1275,13 +1257,13 @@ grpc_channel* grpc_inproc_channel_create(grpc_server* server,
|
|
1275
1257
|
} else {
|
1276
1258
|
GPR_ASSERT(!channel);
|
1277
1259
|
gpr_log(GPR_ERROR, "Failed to create server channel: %s",
|
1278
|
-
|
1260
|
+
grpc_core::StatusToString(error).c_str());
|
1279
1261
|
intptr_t integer;
|
1280
1262
|
grpc_status_code status = GRPC_STATUS_INTERNAL;
|
1281
|
-
if (grpc_error_get_int(error,
|
1263
|
+
if (grpc_error_get_int(error, grpc_core::StatusIntProperty::kRpcStatus,
|
1264
|
+
&integer)) {
|
1282
1265
|
status = static_cast<grpc_status_code>(integer);
|
1283
1266
|
}
|
1284
|
-
GRPC_ERROR_UNREF(error);
|
1285
1267
|
grpc_transport_destroy(client_transport);
|
1286
1268
|
grpc_transport_destroy(server_transport);
|
1287
1269
|
channel = grpc_lame_client_channel_create(
|
@@ -25,6 +25,7 @@
|
|
25
25
|
#include <grpc/support/log.h>
|
26
26
|
|
27
27
|
#include "src/core/lib/config/core_configuration.h"
|
28
|
+
#include "src/core/lib/gprpp/status_helper.h"
|
28
29
|
#include "src/core/lib/iomgr/error.h"
|
29
30
|
#include "src/core/lib/security/certificate_provider/certificate_provider_registry.h"
|
30
31
|
|
@@ -74,12 +75,11 @@ void CertificateProviderStore::PluginDefinition::JsonPostLoad(
|
|
74
75
|
}
|
75
76
|
if (factory == nullptr) return;
|
76
77
|
// Use plugin to validate and parse config.
|
77
|
-
grpc_error_handle parse_error
|
78
|
+
grpc_error_handle parse_error;
|
78
79
|
config =
|
79
80
|
factory->CreateCertificateProviderConfig(config_json, &parse_error);
|
80
|
-
if (!
|
81
|
-
errors->AddError(
|
82
|
-
GRPC_ERROR_UNREF(parse_error);
|
81
|
+
if (!parse_error.ok()) {
|
82
|
+
errors->AddError(StatusToString(parse_error));
|
83
83
|
}
|
84
84
|
}
|
85
85
|
}
|