grpc 1.41.1 → 1.42.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 +55 -43
- data/include/grpc/event_engine/event_engine.h +82 -42
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +98 -0
- data/include/grpc/event_engine/memory_allocator.h +210 -0
- data/include/grpc/grpc.h +4 -0
- data/include/grpc/grpc_security.h +18 -0
- data/include/grpc/grpc_security_constants.h +1 -0
- data/include/grpc/impl/codegen/port_platform.h +7 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +18 -19
- data/src/core/ext/filters/client_channel/backup_poller.cc +2 -1
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +71 -89
- data/src/core/ext/filters/client_channel/client_channel.cc +187 -252
- data/src/core/ext/filters/client_channel/client_channel.h +74 -27
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +1 -1
- data/src/core/ext/filters/client_channel/client_channel_factory.h +17 -19
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +8 -14
- data/src/core/ext/filters/client_channel/config_selector.cc +1 -1
- data/src/core/ext/filters/client_channel/config_selector.h +4 -5
- data/src/core/ext/filters/client_channel/connector.h +18 -18
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +1 -1
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +0 -1
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +12 -11
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +4 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -15
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +166 -82
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +4 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +2 -4
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +23 -7
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +15 -10
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +2 -3
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2502 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +6 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +7 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +6 -2
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +5 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +8 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +7 -16
- data/src/core/ext/filters/client_channel/lb_policy.h +11 -1
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -0
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +139 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +11 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +12 -39
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +21 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +6 -2
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +3 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +77 -68
- data/src/core/ext/filters/client_channel/resolver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver_factory.h +2 -0
- data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -8
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +1 -1
- data/src/core/ext/filters/client_channel/retry_filter.cc +48 -86
- data/src/core/ext/filters/client_channel/retry_service_config.h +1 -1
- data/src/core/ext/filters/client_channel/retry_throttle.cc +17 -48
- data/src/core/ext/filters/client_channel/server_address.h +1 -1
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +49 -36
- data/src/core/ext/filters/client_channel/subchannel.cc +85 -143
- data/src/core/ext/filters/client_channel/subchannel.h +29 -49
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +22 -7
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +11 -2
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +27 -210
- data/src/core/ext/filters/client_idle/idle_filter_state.cc +96 -0
- data/src/core/ext/filters/client_idle/idle_filter_state.h +66 -0
- data/src/core/ext/filters/deadline/deadline_filter.cc +23 -26
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -19
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +0 -1
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +41 -44
- data/src/core/ext/filters/http/client_authority_filter.cc +14 -15
- data/src/core/ext/filters/http/http_filters_plugin.cc +53 -71
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +17 -12
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +1 -1
- data/src/core/ext/filters/http/server/http_server_filter.cc +72 -69
- data/src/core/ext/filters/max_age/max_age_filter.cc +24 -26
- data/src/core/ext/filters/message_size/message_size_filter.cc +19 -16
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/{filters/client_channel → service_config}/service_config.cc +2 -2
- data/src/core/ext/{filters/client_channel → service_config}/service_config.h +4 -4
- data/src/core/ext/service_config/service_config_call_data.h +72 -0
- data/src/core/ext/{filters/client_channel → service_config}/service_config_parser.cc +3 -3
- data/src/core/ext/{filters/client_channel → service_config}/service_config_parser.h +8 -6
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +2 -5
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +19 -24
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +27 -50
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +14 -16
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +59 -58
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +19 -16
- data/src/core/ext/transport/chttp2/transport/flow_control.h +4 -4
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +41 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +8 -4
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +136 -98
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +27 -8
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +12 -25
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +37 -30
- data/src/core/ext/transport/chttp2/transport/internal.h +4 -3
- data/src/core/ext/transport/chttp2/transport/parsing.cc +30 -173
- data/src/core/ext/transport/chttp2/transport/popularity_count.h +1 -1
- data/src/core/ext/transport/chttp2/transport/writing.cc +29 -22
- data/src/core/ext/transport/inproc/inproc_transport.cc +105 -109
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +68 -34
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +139 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +16 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +53 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +15 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +13 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +23 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +14 -11
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +17 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +15 -12
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +49 -19
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +55 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +154 -0
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +0 -2
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +58 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +182 -0
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +58 -0
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +130 -0
- data/src/core/ext/upb-generated/{udpa/type/v1 → xds/type/v3}/typed_struct.upb.c +7 -7
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +83 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +310 -286
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +101 -88
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +59 -56
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +59 -46
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +78 -82
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +323 -316
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +5 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +19 -23
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +4 -3
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +5 -3
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +5 -4
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +75 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +13 -12
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +25 -24
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +16 -15
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +17 -16
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +33 -32
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +19 -18
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +35 -0
- data/src/core/ext/xds/xds_api.cc +325 -362
- data/src/core/ext/xds/xds_api.h +134 -82
- data/src/core/ext/xds/xds_bootstrap.h +10 -0
- data/src/core/ext/xds/xds_certificate_provider.cc +3 -3
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +113 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.h +52 -0
- data/src/core/ext/xds/xds_client.cc +527 -314
- data/src/core/ext/xds/xds_client.h +42 -37
- data/src/core/ext/xds/xds_client_stats.h +1 -1
- data/src/core/ext/xds/xds_server_config_fetcher.cc +5 -7
- data/src/core/lib/address_utils/parse_address.cc +2 -0
- data/src/core/lib/avl/avl.cc +5 -5
- data/src/core/lib/backoff/backoff.cc +1 -1
- data/src/core/lib/channel/channel_args.cc +24 -6
- data/src/core/lib/channel/channel_args.h +9 -0
- data/src/core/lib/channel/channel_stack_builder.cc +3 -3
- data/src/core/lib/channel/channel_trace.cc +1 -1
- data/src/core/lib/channel/channel_trace.h +1 -1
- data/src/core/lib/channel/channelz.cc +3 -3
- data/src/core/lib/channel/channelz.h +2 -2
- data/src/core/lib/channel/channelz_registry.cc +1 -1
- data/src/core/lib/channel/channelz_registry.h +1 -1
- data/src/core/lib/channel/connected_channel.cc +1 -3
- data/src/core/lib/channel/connected_channel.h +1 -2
- data/src/core/lib/compression/compression.cc +2 -2
- data/src/core/lib/compression/compression_args.cc +6 -4
- data/src/core/lib/compression/compression_internal.cc +2 -2
- data/src/core/lib/compression/compression_internal.h +1 -1
- data/src/core/lib/config/core_configuration.cc +44 -2
- data/src/core/lib/config/core_configuration.h +39 -1
- data/src/core/lib/debug/stats.cc +1 -1
- data/src/core/lib/debug/stats_data.cc +13 -13
- data/src/core/lib/gpr/atm.cc +1 -1
- data/src/core/lib/gpr/cpu_posix.cc +1 -1
- data/src/core/lib/gpr/string.cc +2 -2
- data/src/core/lib/gpr/tls.h +1 -1
- data/src/core/lib/gpr/useful.h +79 -32
- data/src/core/lib/gprpp/arena.h +10 -0
- data/src/core/lib/gprpp/bitset.h +38 -16
- data/src/core/lib/gprpp/chunked_vector.h +211 -0
- data/src/core/lib/gprpp/construct_destruct.h +1 -1
- data/src/core/lib/gprpp/match.h +1 -1
- data/src/core/lib/gprpp/memory.h +6 -0
- data/src/core/lib/gprpp/overload.h +1 -1
- data/src/core/lib/gprpp/status_helper.cc +23 -3
- data/src/core/lib/gprpp/status_helper.h +12 -1
- data/src/core/lib/gprpp/table.h +411 -0
- data/src/core/lib/http/httpcli.cc +200 -182
- data/src/core/lib/http/parser.cc +2 -2
- data/src/core/lib/iomgr/call_combiner.cc +28 -10
- data/src/core/lib/iomgr/combiner.cc +6 -21
- data/src/core/lib/iomgr/endpoint_cfstream.cc +7 -6
- data/src/core/lib/iomgr/error.cc +113 -52
- data/src/core/lib/iomgr/error.h +50 -9
- data/src/core/lib/iomgr/error_cfstream.cc +5 -0
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +3 -2
- data/src/core/lib/iomgr/ev_epollex_linux.cc +7 -7
- data/src/core/lib/iomgr/ev_poll_posix.cc +29 -20
- data/src/core/lib/iomgr/event_engine/closure.cc +41 -18
- data/src/core/lib/iomgr/event_engine/closure.h +10 -1
- data/src/core/lib/iomgr/event_engine/endpoint.cc +3 -3
- data/src/core/lib/iomgr/event_engine/iomgr.cc +1 -1
- data/src/core/lib/iomgr/event_engine/pollset.cc +5 -4
- data/src/core/lib/iomgr/event_engine/resolver.cc +10 -7
- data/src/core/lib/iomgr/event_engine/tcp.cc +9 -8
- data/src/core/lib/iomgr/event_engine/timer.cc +7 -2
- data/src/core/lib/iomgr/exec_ctx.cc +1 -9
- data/src/core/lib/iomgr/executor/mpmcqueue.cc +5 -7
- data/src/core/lib/iomgr/executor/mpmcqueue.h +3 -8
- data/src/core/lib/iomgr/executor.cc +6 -20
- data/src/core/lib/iomgr/iomgr.cc +3 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +4 -9
- data/src/core/lib/iomgr/iomgr_internal.h +3 -2
- data/src/core/lib/iomgr/load_file.cc +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +18 -0
- data/src/core/lib/iomgr/pollset_custom.cc +1 -1
- data/src/core/lib/iomgr/pollset_custom.h +1 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +5 -7
- data/src/core/lib/iomgr/resource_quota.cc +13 -11
- data/src/core/lib/iomgr/socket_factory_posix.cc +2 -2
- data/src/core/lib/iomgr/socket_mutator.cc +2 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +5 -3
- data/src/core/lib/iomgr/tcp_client_custom.cc +1 -1
- data/src/core/lib/iomgr/tcp_client_posix.cc +9 -18
- data/src/core/lib/iomgr/tcp_client_windows.cc +2 -3
- data/src/core/lib/iomgr/tcp_posix.cc +4 -5
- data/src/core/lib/iomgr/tcp_server_custom.cc +2 -1
- data/src/core/lib/iomgr/tcp_server_posix.cc +3 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +4 -5
- data/src/core/lib/iomgr/tcp_windows.cc +2 -2
- data/src/core/lib/iomgr/timer_generic.cc +13 -13
- data/src/core/lib/iomgr/timer_heap.cc +1 -1
- data/src/core/lib/json/json_util.cc +68 -0
- data/src/core/lib/json/json_util.h +57 -99
- data/src/core/lib/json/json_writer.cc +0 -3
- data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
- data/src/core/lib/security/authorization/evaluate_args.cc +14 -12
- data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +13 -1
- data/src/core/lib/security/context/security_context.cc +4 -2
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +1 -1
- data/src/core/lib/security/credentials/credentials.cc +4 -2
- data/src/core/lib/security/credentials/credentials.h +6 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +47 -11
- data/src/core/lib/security/credentials/external/external_account_credentials.h +1 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +5 -9
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +2 -2
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/security_connector.cc +9 -4
- data/src/core/lib/security/security_connector/security_connector.h +1 -1
- data/src/core/lib/security/security_connector/ssl_utils.cc +1 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +1 -0
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +0 -2
- data/src/core/lib/security/transport/client_auth_filter.cc +5 -5
- data/src/core/lib/security/transport/security_handshaker.cc +73 -43
- data/src/core/lib/security/transport/server_auth_filter.cc +3 -5
- data/src/core/lib/security/transport/tsi_error.cc +3 -5
- data/src/core/lib/slice/slice.cc +0 -16
- data/src/core/lib/slice/slice_api.cc +39 -0
- data/src/core/lib/slice/slice_buffer.cc +5 -5
- data/src/core/lib/slice/slice_intern.cc +8 -13
- data/src/core/lib/slice/slice_internal.h +1 -244
- data/src/core/lib/slice/slice_refcount.cc +17 -0
- data/src/core/lib/slice/slice_refcount.h +121 -0
- data/src/core/lib/slice/slice_refcount_base.h +173 -0
- data/src/core/lib/slice/slice_split.cc +100 -0
- data/src/core/lib/slice/slice_split.h +40 -0
- data/src/core/lib/slice/slice_string_helpers.cc +0 -83
- data/src/core/lib/slice/slice_string_helpers.h +0 -11
- data/src/core/lib/slice/static_slice.cc +529 -0
- data/src/core/lib/slice/static_slice.h +331 -0
- data/src/core/lib/surface/builtins.cc +49 -0
- data/src/core/{ext/filters/workarounds/workaround_cronet_compression_filter.h → lib/surface/builtins.h} +8 -9
- data/src/core/lib/surface/call.cc +103 -120
- data/src/core/lib/surface/call.h +0 -6
- data/src/core/lib/surface/channel.cc +19 -32
- data/src/core/lib/surface/channel.h +0 -9
- data/src/core/lib/surface/channel_init.cc +23 -76
- data/src/core/lib/surface/channel_init.h +52 -44
- data/src/core/lib/surface/completion_queue.cc +6 -5
- data/src/core/lib/surface/init.cc +0 -39
- data/src/core/lib/surface/init_secure.cc +17 -14
- data/src/core/lib/surface/lame_client.cc +18 -11
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +25 -17
- data/src/core/lib/surface/server.h +17 -10
- data/src/core/lib/surface/validate_metadata.cc +5 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +42 -17
- data/src/core/lib/transport/error_utils.h +1 -1
- data/src/core/lib/transport/metadata.cc +31 -10
- data/src/core/lib/transport/metadata.h +2 -1
- data/src/core/lib/transport/metadata_batch.cc +35 -371
- data/src/core/lib/transport/metadata_batch.h +905 -71
- data/src/core/lib/transport/parsed_metadata.h +263 -0
- data/src/core/lib/transport/pid_controller.cc +4 -4
- data/src/core/lib/transport/static_metadata.cc +714 -846
- data/src/core/lib/transport/static_metadata.h +115 -379
- data/src/core/lib/transport/status_metadata.cc +1 -0
- data/src/core/lib/transport/transport.cc +4 -5
- data/src/core/lib/transport/transport_op_string.cc +40 -20
- data/src/core/plugin_registry/grpc_plugin_registry.cc +64 -43
- data/src/core/tsi/alts/crypt/aes_gcm.cc +3 -1
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +13 -12
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +10 -11
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +12 -2
- 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 +2 -2
- data/src/core/tsi/fake_transport_security.cc +15 -7
- data/src/core/tsi/local_transport_security.cc +36 -73
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +16 -50
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -3
- data/src/core/tsi/ssl_transport_security.cc +10 -2
- data/src/core/tsi/transport_security.cc +12 -0
- data/src/core/tsi/transport_security.h +16 -1
- data/src/core/tsi/transport_security_interface.h +26 -0
- data/src/ruby/ext/grpc/extconf.rb +12 -9
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +2 -2
- data/src/ruby/spec/client_server_spec.rb +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +4 -4
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +11 -6
- data/third_party/address_sorting/address_sorting_posix.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +20 -21
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +104 -114
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +13 -0
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +4 -6
- data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +38 -47
- data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +32 -34
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +5 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c +10 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +3 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +4 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +35 -35
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +11 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +10 -37
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +0 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +72 -45
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +5 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +479 -15
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +16 -564
- data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +0 -1
- data/third_party/re2/re2/compile.cc +91 -109
- data/third_party/re2/re2/dfa.cc +27 -39
- data/third_party/re2/re2/filtered_re2.cc +18 -2
- data/third_party/re2/re2/filtered_re2.h +10 -5
- data/third_party/re2/re2/nfa.cc +1 -1
- data/third_party/re2/re2/parse.cc +42 -23
- data/third_party/re2/re2/perl_groups.cc +34 -34
- data/third_party/re2/re2/prefilter.cc +3 -2
- data/third_party/re2/re2/prog.cc +182 -4
- data/third_party/re2/re2/prog.h +28 -9
- data/third_party/re2/re2/re2.cc +87 -118
- data/third_party/re2/re2/re2.h +156 -141
- data/third_party/re2/re2/regexp.cc +12 -5
- data/third_party/re2/re2/regexp.h +8 -2
- data/third_party/re2/re2/set.cc +31 -9
- data/third_party/re2/re2/set.h +9 -4
- data/third_party/re2/re2/simplify.cc +11 -3
- data/third_party/re2/re2/tostring.cc +1 -1
- data/third_party/re2/re2/walker-inl.h +1 -1
- data/third_party/re2/util/mutex.h +2 -2
- data/third_party/re2/util/pcre.h +3 -3
- metadata +78 -66
- data/include/grpc/event_engine/slice_allocator.h +0 -71
- data/src/core/ext/filters/client_channel/service_config_call_data.h +0 -126
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +0 -211
- data/src/core/ext/filters/workarounds/workaround_utils.cc +0 -53
- data/src/core/ext/filters/workarounds/workaround_utils.h +0 -39
- data/src/core/ext/transport/chttp2/client/authority.cc +0 -42
- data/src/core/ext/transport/chttp2/client/authority.h +0 -36
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +0 -67
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +0 -74
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +0 -66
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +0 -58
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +0 -58
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +0 -130
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +0 -83
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +0 -44
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +0 -35
- data/src/core/lib/iomgr/udp_server.cc +0 -747
- data/src/core/lib/iomgr/udp_server.h +0 -103
- data/src/core/lib/transport/authority_override.cc +0 -40
- data/src/core/lib/transport/authority_override.h +0 -37
@@ -32,7 +32,6 @@
|
|
32
32
|
#include "src/core/lib/slice/slice_internal.h"
|
33
33
|
#include "src/core/lib/surface/api_trace.h"
|
34
34
|
#include "src/core/lib/surface/channel.h"
|
35
|
-
#include "src/core/lib/surface/channel_stack_type.h"
|
36
35
|
#include "src/core/lib/surface/server.h"
|
37
36
|
#include "src/core/lib/transport/connectivity_state.h"
|
38
37
|
#include "src/core/lib/transport/error_utils.h"
|
@@ -58,10 +57,9 @@ void maybe_process_ops_locked(inproc_stream* s, grpc_error_handle error);
|
|
58
57
|
void op_state_machine_locked(inproc_stream* s, grpc_error_handle error);
|
59
58
|
void log_metadata(const grpc_metadata_batch* md_batch, bool is_client,
|
60
59
|
bool is_initial);
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
uint32_t* outflags, bool* markfilled);
|
60
|
+
void fill_in_metadata(inproc_stream* s, const grpc_metadata_batch* metadata,
|
61
|
+
uint32_t flags, grpc_metadata_batch* out_md,
|
62
|
+
uint32_t* outflags, bool* markfilled);
|
65
63
|
|
66
64
|
struct shared_mu {
|
67
65
|
shared_mu() {
|
@@ -132,11 +130,6 @@ struct inproc_stream {
|
|
132
130
|
ref("inproc_init_stream:init");
|
133
131
|
ref("inproc_init_stream:list");
|
134
132
|
|
135
|
-
grpc_metadata_batch_init(&to_read_initial_md);
|
136
|
-
grpc_metadata_batch_init(&to_read_trailing_md);
|
137
|
-
grpc_metadata_batch_init(&write_buffer_initial_md);
|
138
|
-
grpc_metadata_batch_init(&write_buffer_trailing_md);
|
139
|
-
|
140
133
|
stream_list_prev = nullptr;
|
141
134
|
gpr_mu_lock(&t->mu->mu);
|
142
135
|
stream_list_next = t->stream_list;
|
@@ -172,18 +165,19 @@ struct inproc_stream {
|
|
172
165
|
// Now transfer from the other side's write_buffer if any to the to_read
|
173
166
|
// buffer
|
174
167
|
if (cs->write_buffer_initial_md_filled) {
|
175
|
-
fill_in_metadata(this, &cs->write_buffer_initial_md,
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
168
|
+
(void)fill_in_metadata(this, &cs->write_buffer_initial_md,
|
169
|
+
cs->write_buffer_initial_md_flags,
|
170
|
+
&to_read_initial_md, &to_read_initial_md_flags,
|
171
|
+
&to_read_initial_md_filled);
|
172
|
+
deadline = std::min(deadline, cs->write_buffer_deadline);
|
173
|
+
cs->write_buffer_initial_md.Clear();
|
180
174
|
cs->write_buffer_initial_md_filled = false;
|
181
175
|
}
|
182
176
|
if (cs->write_buffer_trailing_md_filled) {
|
183
|
-
fill_in_metadata(this, &cs->write_buffer_trailing_md, 0,
|
184
|
-
|
185
|
-
|
186
|
-
|
177
|
+
(void)fill_in_metadata(this, &cs->write_buffer_trailing_md, 0,
|
178
|
+
&to_read_trailing_md, nullptr,
|
179
|
+
&to_read_trailing_md_filled);
|
180
|
+
cs->write_buffer_trailing_md.Clear();
|
187
181
|
cs->write_buffer_trailing_md_filled = false;
|
188
182
|
}
|
189
183
|
if (cs->write_buffer_cancel_error != GRPC_ERROR_NONE) {
|
@@ -228,28 +222,28 @@ struct inproc_stream {
|
|
228
222
|
#undef STREAM_UNREF
|
229
223
|
|
230
224
|
inproc_transport* t;
|
231
|
-
|
225
|
+
grpc_stream_refcount* refs;
|
226
|
+
grpc_core::Arena* arena;
|
227
|
+
|
228
|
+
grpc_metadata_batch to_read_initial_md{arena};
|
232
229
|
uint32_t to_read_initial_md_flags = 0;
|
233
230
|
bool to_read_initial_md_filled = false;
|
234
|
-
grpc_metadata_batch to_read_trailing_md;
|
231
|
+
grpc_metadata_batch to_read_trailing_md{arena};
|
235
232
|
bool to_read_trailing_md_filled = false;
|
236
233
|
bool ops_needed = false;
|
237
234
|
// Write buffer used only during gap at init time when client-side
|
238
235
|
// stream is set up but server side stream is not yet set up
|
239
|
-
grpc_metadata_batch write_buffer_initial_md;
|
236
|
+
grpc_metadata_batch write_buffer_initial_md{arena};
|
240
237
|
bool write_buffer_initial_md_filled = false;
|
241
238
|
uint32_t write_buffer_initial_md_flags = 0;
|
242
239
|
grpc_millis write_buffer_deadline = GRPC_MILLIS_INF_FUTURE;
|
243
|
-
grpc_metadata_batch write_buffer_trailing_md;
|
240
|
+
grpc_metadata_batch write_buffer_trailing_md{arena};
|
244
241
|
bool write_buffer_trailing_md_filled = false;
|
245
242
|
grpc_error_handle write_buffer_cancel_error = GRPC_ERROR_NONE;
|
246
243
|
|
247
244
|
struct inproc_stream* other_side;
|
248
245
|
bool other_side_closed = false; // won't talk anymore
|
249
246
|
bool write_buffer_other_side_closed = false; // on hold
|
250
|
-
grpc_stream_refcount* refs;
|
251
|
-
|
252
|
-
grpc_core::Arena* arena;
|
253
247
|
|
254
248
|
grpc_transport_stream_op_batch* send_message_op = nullptr;
|
255
249
|
grpc_transport_stream_op_batch* send_trailing_md_op = nullptr;
|
@@ -285,21 +279,51 @@ struct inproc_stream {
|
|
285
279
|
|
286
280
|
void log_metadata(const grpc_metadata_batch* md_batch, bool is_client,
|
287
281
|
bool is_initial) {
|
288
|
-
|
289
|
-
|
290
|
-
char*
|
291
|
-
char* value = grpc_slice_to_c_string(GRPC_MDVALUE(md->md));
|
282
|
+
md_batch->ForEach([=](grpc_mdelem md) {
|
283
|
+
char* key = grpc_slice_to_c_string(GRPC_MDKEY(md));
|
284
|
+
char* value = grpc_slice_to_c_string(GRPC_MDVALUE(md));
|
292
285
|
gpr_log(GPR_INFO, "INPROC:%s:%s: %s: %s", is_initial ? "HDR" : "TRL",
|
293
286
|
is_client ? "CLI" : "SVR", key, value);
|
294
287
|
gpr_free(key);
|
295
288
|
gpr_free(value);
|
296
|
-
}
|
289
|
+
});
|
297
290
|
}
|
298
291
|
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
292
|
+
namespace {
|
293
|
+
|
294
|
+
class CopySink {
|
295
|
+
public:
|
296
|
+
explicit CopySink(grpc_metadata_batch* dst) : dst_(dst) {}
|
297
|
+
|
298
|
+
void Encode(grpc_mdelem md) {
|
299
|
+
// Differently to grpc_metadata_batch_copy, we always copy slices here so
|
300
|
+
// that we don't need to deal with the plethora of edge cases in that world.
|
301
|
+
// TODO(ctiller): revisit this when deleting mdelem.
|
302
|
+
md = grpc_mdelem_from_slices(grpc_slice_intern(GRPC_MDKEY(md)),
|
303
|
+
grpc_slice_copy(GRPC_MDVALUE(md)));
|
304
|
+
// Error unused in non-debug builds.
|
305
|
+
grpc_error_handle GRPC_UNUSED error = dst_->Append(md);
|
306
|
+
// The only way that Append() can fail is if
|
307
|
+
// there's a duplicate entry for a callout. However, that can't be
|
308
|
+
// the case here, because we would not have been allowed to create
|
309
|
+
// a source batch that had that kind of conflict.
|
310
|
+
GPR_DEBUG_ASSERT(error == GRPC_ERROR_NONE);
|
311
|
+
}
|
312
|
+
|
313
|
+
template <class T, class V>
|
314
|
+
void Encode(T trait, V value) {
|
315
|
+
dst_->Set(trait, value);
|
316
|
+
}
|
317
|
+
|
318
|
+
private:
|
319
|
+
grpc_metadata_batch* dst_;
|
320
|
+
};
|
321
|
+
|
322
|
+
} // namespace
|
323
|
+
|
324
|
+
void fill_in_metadata(inproc_stream* s, const grpc_metadata_batch* metadata,
|
325
|
+
uint32_t flags, grpc_metadata_batch* out_md,
|
326
|
+
uint32_t* outflags, bool* markfilled) {
|
303
327
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_inproc_trace)) {
|
304
328
|
log_metadata(metadata, s->t->is_client, outflags != nullptr);
|
305
329
|
}
|
@@ -310,18 +334,13 @@ grpc_error_handle fill_in_metadata(inproc_stream* s,
|
|
310
334
|
if (markfilled != nullptr) {
|
311
335
|
*markfilled = true;
|
312
336
|
}
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
grpc_slice_intern(GRPC_MDVALUE(elem->md)));
|
321
|
-
|
322
|
-
error = grpc_metadata_batch_link_tail(out_md, nelem);
|
323
|
-
}
|
324
|
-
return error;
|
337
|
+
|
338
|
+
// TODO(ctiller): copy the metadata batch, don't rely on a bespoke copy
|
339
|
+
// function. Can only do this once mdelems are out of the way though, too many
|
340
|
+
// edge cases otherwise.
|
341
|
+
out_md->Clear();
|
342
|
+
CopySink sink(out_md);
|
343
|
+
metadata->Encode(&sink);
|
325
344
|
}
|
326
345
|
|
327
346
|
int init_stream(grpc_transport* gt, grpc_stream* gs,
|
@@ -336,8 +355,8 @@ int init_stream(grpc_transport* gt, grpc_stream* gs,
|
|
336
355
|
void close_stream_locked(inproc_stream* s) {
|
337
356
|
if (!s->closed) {
|
338
357
|
// Release the metadata that we would have written out
|
339
|
-
|
340
|
-
|
358
|
+
s->write_buffer_initial_md.Clear();
|
359
|
+
s->write_buffer_trailing_md.Clear();
|
341
360
|
|
342
361
|
if (s->listed) {
|
343
362
|
inproc_stream* p = s->stream_list_prev;
|
@@ -362,8 +381,8 @@ void close_stream_locked(inproc_stream* s) {
|
|
362
381
|
void close_other_side_locked(inproc_stream* s, const char* reason) {
|
363
382
|
if (s->other_side != nullptr) {
|
364
383
|
// First release the metadata that came from the other side's arena
|
365
|
-
|
366
|
-
|
384
|
+
s->to_read_initial_md.Clear();
|
385
|
+
s->to_read_trailing_md.Clear();
|
367
386
|
|
368
387
|
s->other_side->unref(reason);
|
369
388
|
s->other_side_closed = true;
|
@@ -413,17 +432,14 @@ void fail_helper_locked(inproc_stream* s, grpc_error_handle error) {
|
|
413
432
|
// Send trailing md to the other side indicating cancellation
|
414
433
|
s->trailing_md_sent = true;
|
415
434
|
|
416
|
-
grpc_metadata_batch fake_md;
|
417
|
-
grpc_metadata_batch_init(&fake_md);
|
418
|
-
|
435
|
+
grpc_metadata_batch fake_md(s->arena);
|
419
436
|
inproc_stream* other = s->other_side;
|
420
437
|
grpc_metadata_batch* dest = (other == nullptr)
|
421
438
|
? &s->write_buffer_trailing_md
|
422
439
|
: &other->to_read_trailing_md;
|
423
440
|
bool* destfilled = (other == nullptr) ? &s->write_buffer_trailing_md_filled
|
424
441
|
: &other->to_read_trailing_md_filled;
|
425
|
-
fill_in_metadata(s, &fake_md, 0, dest, nullptr, destfilled);
|
426
|
-
grpc_metadata_batch_destroy(&fake_md);
|
442
|
+
(void)fill_in_metadata(s, &fake_md, 0, dest, nullptr, destfilled);
|
427
443
|
|
428
444
|
if (other != nullptr) {
|
429
445
|
if (other->cancel_other_error == GRPC_ERROR_NONE) {
|
@@ -439,26 +455,22 @@ void fail_helper_locked(inproc_stream* s, grpc_error_handle error) {
|
|
439
455
|
if (!s->t->is_client) {
|
440
456
|
// If this is a server, provide initial metadata with a path and authority
|
441
457
|
// since it expects that as well as no error yet
|
442
|
-
grpc_metadata_batch fake_md;
|
443
|
-
grpc_metadata_batch_init(&fake_md);
|
458
|
+
grpc_metadata_batch fake_md(s->arena);
|
444
459
|
grpc_linked_mdelem* path_md =
|
445
460
|
static_cast<grpc_linked_mdelem*>(s->arena->Alloc(sizeof(*path_md)));
|
446
461
|
path_md->md = grpc_mdelem_from_slices(g_fake_path_key, g_fake_path_value);
|
447
|
-
GPR_ASSERT(
|
448
|
-
GRPC_ERROR_NONE);
|
462
|
+
GPR_ASSERT(fake_md.LinkTail(path_md) == GRPC_ERROR_NONE);
|
449
463
|
grpc_linked_mdelem* auth_md =
|
450
464
|
static_cast<grpc_linked_mdelem*>(s->arena->Alloc(sizeof(*auth_md)));
|
451
465
|
auth_md->md = grpc_mdelem_from_slices(g_fake_auth_key, g_fake_auth_value);
|
452
|
-
GPR_ASSERT(
|
453
|
-
GRPC_ERROR_NONE);
|
466
|
+
GPR_ASSERT(fake_md.LinkTail(auth_md) == GRPC_ERROR_NONE);
|
454
467
|
|
455
|
-
fill_in_metadata(
|
468
|
+
(void)fill_in_metadata(
|
456
469
|
s, &fake_md, 0,
|
457
470
|
s->recv_initial_md_op->payload->recv_initial_metadata
|
458
471
|
.recv_initial_metadata,
|
459
472
|
s->recv_initial_md_op->payload->recv_initial_metadata.recv_flags,
|
460
473
|
nullptr);
|
461
|
-
grpc_metadata_batch_destroy(&fake_md);
|
462
474
|
err = GRPC_ERROR_NONE;
|
463
475
|
} else {
|
464
476
|
err = GRPC_ERROR_REF(error);
|
@@ -656,10 +668,11 @@ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error) {
|
|
656
668
|
goto done;
|
657
669
|
} else {
|
658
670
|
if (!other || !other->closed) {
|
659
|
-
fill_in_metadata(
|
660
|
-
|
661
|
-
|
662
|
-
|
671
|
+
(void)fill_in_metadata(
|
672
|
+
s,
|
673
|
+
s->send_trailing_md_op->payload->send_trailing_metadata
|
674
|
+
.send_trailing_metadata,
|
675
|
+
0, dest, nullptr, destfilled);
|
663
676
|
}
|
664
677
|
s->trailing_md_sent = true;
|
665
678
|
if (s->send_trailing_md_op->payload->send_trailing_metadata.sent) {
|
@@ -703,42 +716,34 @@ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error) {
|
|
703
716
|
|
704
717
|
if (s->to_read_initial_md_filled) {
|
705
718
|
s->initial_md_recvd = true;
|
706
|
-
|
719
|
+
fill_in_metadata(
|
707
720
|
s, &s->to_read_initial_md, s->to_read_initial_md_flags,
|
708
721
|
s->recv_initial_md_op->payload->recv_initial_metadata
|
709
722
|
.recv_initial_metadata,
|
710
723
|
s->recv_initial_md_op->payload->recv_initial_metadata.recv_flags,
|
711
724
|
nullptr);
|
712
|
-
s->
|
713
|
-
|
725
|
+
if (s->deadline != GRPC_MILLIS_INF_FUTURE) {
|
726
|
+
s->recv_initial_md_op->payload->recv_initial_metadata
|
727
|
+
.recv_initial_metadata->Set(grpc_core::GrpcTimeoutMetadata(),
|
728
|
+
s->deadline);
|
729
|
+
}
|
714
730
|
if (s->recv_initial_md_op->payload->recv_initial_metadata
|
715
731
|
.trailing_metadata_available != nullptr) {
|
716
732
|
*s->recv_initial_md_op->payload->recv_initial_metadata
|
717
733
|
.trailing_metadata_available =
|
718
734
|
(other != nullptr && other->send_trailing_md_op != nullptr);
|
719
735
|
}
|
720
|
-
|
736
|
+
s->to_read_initial_md.Clear();
|
721
737
|
s->to_read_initial_md_filled = false;
|
722
|
-
INPROC_LOG(GPR_INFO,
|
723
|
-
"op_state_machine %p scheduling initial-metadata-ready %s", s,
|
724
|
-
grpc_error_std_string(new_err).c_str());
|
725
738
|
grpc_core::ExecCtx::Run(
|
726
739
|
DEBUG_LOCATION,
|
727
740
|
s->recv_initial_md_op->payload->recv_initial_metadata
|
728
741
|
.recv_initial_metadata_ready,
|
729
|
-
|
742
|
+
GRPC_ERROR_NONE);
|
730
743
|
complete_if_batch_end_locked(
|
731
|
-
s,
|
744
|
+
s, GRPC_ERROR_NONE, s->recv_initial_md_op,
|
732
745
|
"op_state_machine scheduling recv-initial-metadata-on-complete");
|
733
746
|
s->recv_initial_md_op = nullptr;
|
734
|
-
|
735
|
-
if (new_err != GRPC_ERROR_NONE) {
|
736
|
-
INPROC_LOG(GPR_INFO,
|
737
|
-
"op_state_machine %p scheduling on_complete errors2 %s", s,
|
738
|
-
grpc_error_std_string(new_err).c_str());
|
739
|
-
fail_helper_locked(s, GRPC_ERROR_REF(new_err));
|
740
|
-
goto done;
|
741
|
-
}
|
742
747
|
}
|
743
748
|
}
|
744
749
|
if (s->recv_message_op) {
|
@@ -754,7 +759,7 @@ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error) {
|
|
754
759
|
"op_state_machine %p already implicitly received trailing "
|
755
760
|
"metadata, so ignoring new trailing metadata from client",
|
756
761
|
s);
|
757
|
-
|
762
|
+
s->to_read_trailing_md.Clear();
|
758
763
|
s->to_read_trailing_md_filled = false;
|
759
764
|
s->trailing_md_recvd_implicit_only = false;
|
760
765
|
} else {
|
@@ -796,12 +801,11 @@ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error) {
|
|
796
801
|
if (s->recv_trailing_md_op != nullptr) {
|
797
802
|
// We wanted trailing metadata and we got it
|
798
803
|
s->trailing_md_recvd = true;
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
grpc_metadata_batch_clear(&s->to_read_trailing_md);
|
804
|
+
fill_in_metadata(s, &s->to_read_trailing_md, 0,
|
805
|
+
s->recv_trailing_md_op->payload->recv_trailing_metadata
|
806
|
+
.recv_trailing_metadata,
|
807
|
+
nullptr, nullptr);
|
808
|
+
s->to_read_trailing_md.Clear();
|
805
809
|
s->to_read_trailing_md_filled = false;
|
806
810
|
|
807
811
|
// We should schedule the recv_trailing_md_op completion if
|
@@ -810,24 +814,16 @@ void op_state_machine_locked(inproc_stream* s, grpc_error_handle error) {
|
|
810
814
|
// (If the server hasn't already sent its trailing md, it doesn't have
|
811
815
|
// a final status, so don't mark this op complete)
|
812
816
|
if (s->t->is_client || s->trailing_md_sent) {
|
813
|
-
INPROC_LOG(GPR_INFO,
|
814
|
-
"op_state_machine %p scheduling trailing-md-on-complete %s",
|
815
|
-
s, grpc_error_std_string(new_err).c_str());
|
816
817
|
grpc_core::ExecCtx::Run(
|
817
818
|
DEBUG_LOCATION,
|
818
819
|
s->recv_trailing_md_op->payload->recv_trailing_metadata
|
819
820
|
.recv_trailing_metadata_ready,
|
820
|
-
|
821
|
+
GRPC_ERROR_NONE);
|
821
822
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION,
|
822
823
|
s->recv_trailing_md_op->on_complete,
|
823
|
-
|
824
|
+
GRPC_ERROR_NONE);
|
824
825
|
s->recv_trailing_md_op = nullptr;
|
825
826
|
needs_close = s->trailing_md_sent;
|
826
|
-
} else {
|
827
|
-
INPROC_LOG(GPR_INFO,
|
828
|
-
"op_state_machine %p server needs to delay handling "
|
829
|
-
"trailing-md-on-complete %s",
|
830
|
-
s, grpc_error_std_string(new_err).c_str());
|
831
827
|
}
|
832
828
|
} else if (!s->trailing_md_recvd) {
|
833
829
|
INPROC_LOG(
|
@@ -911,16 +907,14 @@ bool cancel_stream_locked(inproc_stream* s, grpc_error_handle error) {
|
|
911
907
|
// already have
|
912
908
|
s->trailing_md_sent = true;
|
913
909
|
|
914
|
-
grpc_metadata_batch cancel_md;
|
915
|
-
grpc_metadata_batch_init(&cancel_md);
|
910
|
+
grpc_metadata_batch cancel_md(s->arena);
|
916
911
|
|
917
912
|
grpc_metadata_batch* dest = (other == nullptr)
|
918
913
|
? &s->write_buffer_trailing_md
|
919
914
|
: &other->to_read_trailing_md;
|
920
915
|
bool* destfilled = (other == nullptr) ? &s->write_buffer_trailing_md_filled
|
921
916
|
: &other->to_read_trailing_md_filled;
|
922
|
-
fill_in_metadata(s, &cancel_md, 0, dest, nullptr, destfilled);
|
923
|
-
grpc_metadata_batch_destroy(&cancel_md);
|
917
|
+
(void)fill_in_metadata(s, &cancel_md, 0, dest, nullptr, destfilled);
|
924
918
|
|
925
919
|
if (other != nullptr) {
|
926
920
|
if (other->cancel_other_error == GRPC_ERROR_NONE) {
|
@@ -1025,7 +1019,7 @@ void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
1025
1019
|
error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Extra initial metadata");
|
1026
1020
|
} else {
|
1027
1021
|
if (!s->other_side_closed) {
|
1028
|
-
fill_in_metadata(
|
1022
|
+
(void)fill_in_metadata(
|
1029
1023
|
s, op->payload->send_initial_metadata.send_initial_metadata,
|
1030
1024
|
op->payload->send_initial_metadata.send_initial_metadata_flags,
|
1031
1025
|
dest, destflags, destfilled);
|
@@ -1033,8 +1027,10 @@ void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
1033
1027
|
if (s->t->is_client) {
|
1034
1028
|
grpc_millis* dl =
|
1035
1029
|
(other == nullptr) ? &s->write_buffer_deadline : &other->deadline;
|
1036
|
-
*dl =
|
1037
|
-
|
1030
|
+
*dl = std::min(
|
1031
|
+
*dl, op->payload->send_initial_metadata.send_initial_metadata
|
1032
|
+
->get(grpc_core::GrpcTimeoutMetadata())
|
1033
|
+
.value_or(GRPC_MILLIS_INF_FUTURE));
|
1038
1034
|
s->initial_md_sent = true;
|
1039
1035
|
}
|
1040
1036
|
}
|
@@ -49,7 +49,7 @@ const upb_msglayout envoy_config_cluster_v3_ClusterCollection_msginit = {
|
|
49
49
|
UPB_SIZE(8, 16), 1, false, 1, 255,
|
50
50
|
};
|
51
51
|
|
52
|
-
static const upb_msglayout *const envoy_config_cluster_v3_Cluster_submsgs[
|
52
|
+
static const upb_msglayout *const envoy_config_cluster_v3_Cluster_submsgs[35] = {
|
53
53
|
&envoy_config_cluster_v3_CircuitBreakers_msginit,
|
54
54
|
&envoy_config_cluster_v3_Cluster_CommonLbConfig_msginit,
|
55
55
|
&envoy_config_cluster_v3_Cluster_CustomClusterType_msginit,
|
@@ -61,6 +61,7 @@ static const upb_msglayout *const envoy_config_cluster_v3_Cluster_submsgs[34] =
|
|
61
61
|
&envoy_config_cluster_v3_Cluster_PreconnectPolicy_msginit,
|
62
62
|
&envoy_config_cluster_v3_Cluster_RefreshRate_msginit,
|
63
63
|
&envoy_config_cluster_v3_Cluster_RingHashLbConfig_msginit,
|
64
|
+
&envoy_config_cluster_v3_Cluster_RoundRobinLbConfig_msginit,
|
64
65
|
&envoy_config_cluster_v3_Cluster_TransportSocketMatch_msginit,
|
65
66
|
&envoy_config_cluster_v3_Cluster_TypedExtensionProtocolOptionsEntry_msginit,
|
66
67
|
&envoy_config_cluster_v3_Filter_msginit,
|
@@ -86,63 +87,64 @@ static const upb_msglayout *const envoy_config_cluster_v3_Cluster_submsgs[34] =
|
|
86
87
|
&google_protobuf_UInt32Value_msginit,
|
87
88
|
};
|
88
89
|
|
89
|
-
static const upb_msglayout_field envoy_config_cluster_v3_Cluster__fields[
|
90
|
+
static const upb_msglayout_field envoy_config_cluster_v3_Cluster__fields[51] = {
|
90
91
|
{1, UPB_SIZE(24, 24), 0, 0, 9, _UPB_MODE_SCALAR},
|
91
92
|
{2, UPB_SIZE(172, 320), UPB_SIZE(-177, -329), 0, 14, _UPB_MODE_SCALAR},
|
92
93
|
{3, UPB_SIZE(40, 56), 1, 3, 11, _UPB_MODE_SCALAR},
|
93
|
-
{4, UPB_SIZE(44, 64), 2,
|
94
|
-
{5, UPB_SIZE(48, 72), 3,
|
94
|
+
{4, UPB_SIZE(44, 64), 2, 33, 11, _UPB_MODE_SCALAR},
|
95
|
+
{5, UPB_SIZE(48, 72), 3, 34, 11, _UPB_MODE_SCALAR},
|
95
96
|
{6, UPB_SIZE(4, 4), 0, 0, 14, _UPB_MODE_SCALAR},
|
96
|
-
{8, UPB_SIZE(152, 280), 0,
|
97
|
-
{9, UPB_SIZE(52, 80), 4,
|
97
|
+
{8, UPB_SIZE(152, 280), 0, 23, 11, _UPB_MODE_ARRAY},
|
98
|
+
{9, UPB_SIZE(52, 80), 4, 34, 11, _UPB_MODE_SCALAR},
|
98
99
|
{10, UPB_SIZE(56, 88), 5, 0, 11, _UPB_MODE_SCALAR},
|
99
|
-
{13, UPB_SIZE(60, 96), 6,
|
100
|
-
{14, UPB_SIZE(64, 104), 7,
|
101
|
-
{16, UPB_SIZE(68, 112), 8,
|
100
|
+
{13, UPB_SIZE(60, 96), 6, 24, 11, _UPB_MODE_SCALAR},
|
101
|
+
{14, UPB_SIZE(64, 104), 7, 25, 11, _UPB_MODE_SCALAR},
|
102
|
+
{16, UPB_SIZE(68, 112), 8, 33, 11, _UPB_MODE_SCALAR},
|
102
103
|
{17, UPB_SIZE(8, 8), 0, 0, 14, _UPB_MODE_SCALAR},
|
103
|
-
{18, UPB_SIZE(156, 288), 0,
|
104
|
-
{19, UPB_SIZE(72, 120), 9,
|
105
|
-
{20, UPB_SIZE(76, 128), 10,
|
106
|
-
{21, UPB_SIZE(80, 136), 11,
|
104
|
+
{18, UPB_SIZE(156, 288), 0, 19, 11, _UPB_MODE_ARRAY},
|
105
|
+
{19, UPB_SIZE(72, 120), 9, 16, 11, _UPB_MODE_SCALAR},
|
106
|
+
{20, UPB_SIZE(76, 128), 10, 33, 11, _UPB_MODE_SCALAR},
|
107
|
+
{21, UPB_SIZE(80, 136), 11, 20, 11, _UPB_MODE_SCALAR},
|
107
108
|
{22, UPB_SIZE(84, 144), 12, 4, 11, _UPB_MODE_SCALAR},
|
108
109
|
{23, UPB_SIZE(180, 336), UPB_SIZE(-185, -345), 10, 11, _UPB_MODE_SCALAR},
|
109
|
-
{24, UPB_SIZE(88, 152), 13,
|
110
|
-
{25, UPB_SIZE(92, 160), 14,
|
110
|
+
{24, UPB_SIZE(88, 152), 13, 28, 11, _UPB_MODE_SCALAR},
|
111
|
+
{25, UPB_SIZE(92, 160), 14, 27, 11, _UPB_MODE_SCALAR},
|
111
112
|
{26, UPB_SIZE(12, 12), 0, 0, 14, _UPB_MODE_SCALAR},
|
112
113
|
{27, UPB_SIZE(96, 168), 15, 1, 11, _UPB_MODE_SCALAR},
|
113
114
|
{28, UPB_SIZE(32, 40), 0, 0, 9, _UPB_MODE_SCALAR},
|
114
|
-
{29, UPB_SIZE(100, 176), 16,
|
115
|
-
{30, UPB_SIZE(104, 184), 17,
|
115
|
+
{29, UPB_SIZE(100, 176), 16, 26, 11, _UPB_MODE_SCALAR},
|
116
|
+
{30, UPB_SIZE(104, 184), 17, 18, 11, _UPB_MODE_SCALAR},
|
116
117
|
{31, UPB_SIZE(16, 16), 0, 0, 8, _UPB_MODE_SCALAR},
|
117
118
|
{32, UPB_SIZE(17, 17), 0, 0, 8, _UPB_MODE_SCALAR},
|
118
|
-
{33, UPB_SIZE(108, 192), 18,
|
119
|
+
{33, UPB_SIZE(108, 192), 18, 31, 11, _UPB_MODE_SCALAR},
|
119
120
|
{34, UPB_SIZE(180, 336), UPB_SIZE(-185, -345), 7, 11, _UPB_MODE_SCALAR},
|
120
|
-
{36, UPB_SIZE(160, 296), 0,
|
121
|
+
{36, UPB_SIZE(160, 296), 0, 13, 11, _UPB_MODE_MAP},
|
121
122
|
{37, UPB_SIZE(180, 336), UPB_SIZE(-185, -345), 5, 11, _UPB_MODE_SCALAR},
|
122
123
|
{38, UPB_SIZE(172, 320), UPB_SIZE(-177, -329), 2, 11, _UPB_MODE_SCALAR},
|
123
124
|
{39, UPB_SIZE(18, 18), 0, 0, 8, _UPB_MODE_SCALAR},
|
124
|
-
{40, UPB_SIZE(164, 304), 0,
|
125
|
-
{41, UPB_SIZE(112, 200), 19,
|
126
|
-
{42, UPB_SIZE(116, 208), 20,
|
127
|
-
{43, UPB_SIZE(168, 312), 0,
|
125
|
+
{40, UPB_SIZE(164, 304), 0, 14, 11, _UPB_MODE_ARRAY},
|
126
|
+
{41, UPB_SIZE(112, 200), 19, 15, 11, _UPB_MODE_SCALAR},
|
127
|
+
{42, UPB_SIZE(116, 208), 20, 21, 11, _UPB_MODE_SCALAR},
|
128
|
+
{43, UPB_SIZE(168, 312), 0, 12, 11, _UPB_MODE_ARRAY},
|
128
129
|
{44, UPB_SIZE(120, 216), 21, 9, 11, _UPB_MODE_SCALAR},
|
129
130
|
{45, UPB_SIZE(19, 19), 0, 0, 8, _UPB_MODE_SCALAR},
|
130
|
-
{46, UPB_SIZE(124, 224), 22,
|
131
|
+
{46, UPB_SIZE(124, 224), 22, 30, 11, _UPB_MODE_SCALAR},
|
131
132
|
{47, UPB_SIZE(20, 20), 0, 0, 8, _UPB_MODE_SCALAR},
|
132
|
-
{48, UPB_SIZE(128, 232), 23,
|
133
|
-
{49, UPB_SIZE(132, 240), 24,
|
133
|
+
{48, UPB_SIZE(128, 232), 23, 29, 11, _UPB_MODE_SCALAR},
|
134
|
+
{49, UPB_SIZE(132, 240), 24, 17, 11, _UPB_MODE_SCALAR},
|
134
135
|
{50, UPB_SIZE(136, 248), 25, 8, 11, _UPB_MODE_SCALAR},
|
135
136
|
{51, UPB_SIZE(21, 21), 0, 0, 8, _UPB_MODE_SCALAR},
|
136
137
|
{52, UPB_SIZE(180, 336), UPB_SIZE(-185, -345), 6, 11, _UPB_MODE_SCALAR},
|
137
|
-
{53, UPB_SIZE(140, 256), 26,
|
138
|
-
{54, UPB_SIZE(144, 264), 27,
|
139
|
-
{55, UPB_SIZE(148, 272), 28,
|
138
|
+
{53, UPB_SIZE(140, 256), 26, 22, 11, _UPB_MODE_SCALAR},
|
139
|
+
{54, UPB_SIZE(144, 264), 27, 32, 11, _UPB_MODE_SCALAR},
|
140
|
+
{55, UPB_SIZE(148, 272), 28, 29, 11, _UPB_MODE_SCALAR},
|
141
|
+
{56, UPB_SIZE(180, 336), UPB_SIZE(-185, -345), 11, 11, _UPB_MODE_SCALAR},
|
140
142
|
};
|
141
143
|
|
142
144
|
const upb_msglayout envoy_config_cluster_v3_Cluster_msginit = {
|
143
145
|
&envoy_config_cluster_v3_Cluster_submsgs[0],
|
144
146
|
&envoy_config_cluster_v3_Cluster__fields[0],
|
145
|
-
UPB_SIZE(192, 352),
|
147
|
+
UPB_SIZE(192, 352), 51, false, 6, 255,
|
146
148
|
};
|
147
149
|
|
148
150
|
static const upb_msglayout *const envoy_config_cluster_v3_Cluster_TransportSocketMatch_submsgs[2] = {
|
@@ -226,20 +228,52 @@ const upb_msglayout envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelec
|
|
226
228
|
UPB_SIZE(16, 24), 4, false, 4, 255,
|
227
229
|
};
|
228
230
|
|
229
|
-
static const upb_msglayout *const
|
231
|
+
static const upb_msglayout *const envoy_config_cluster_v3_Cluster_SlowStartConfig_submsgs[2] = {
|
230
232
|
&envoy_config_core_v3_RuntimeDouble_msginit,
|
231
|
-
&
|
233
|
+
&google_protobuf_Duration_msginit,
|
232
234
|
};
|
233
235
|
|
234
|
-
static const upb_msglayout_field
|
236
|
+
static const upb_msglayout_field envoy_config_cluster_v3_Cluster_SlowStartConfig__fields[2] = {
|
235
237
|
{1, UPB_SIZE(4, 8), 1, 1, 11, _UPB_MODE_SCALAR},
|
236
238
|
{2, UPB_SIZE(8, 16), 2, 0, 11, _UPB_MODE_SCALAR},
|
237
239
|
};
|
238
240
|
|
241
|
+
const upb_msglayout envoy_config_cluster_v3_Cluster_SlowStartConfig_msginit = {
|
242
|
+
&envoy_config_cluster_v3_Cluster_SlowStartConfig_submsgs[0],
|
243
|
+
&envoy_config_cluster_v3_Cluster_SlowStartConfig__fields[0],
|
244
|
+
UPB_SIZE(16, 24), 2, false, 2, 255,
|
245
|
+
};
|
246
|
+
|
247
|
+
static const upb_msglayout *const envoy_config_cluster_v3_Cluster_RoundRobinLbConfig_submsgs[1] = {
|
248
|
+
&envoy_config_cluster_v3_Cluster_SlowStartConfig_msginit,
|
249
|
+
};
|
250
|
+
|
251
|
+
static const upb_msglayout_field envoy_config_cluster_v3_Cluster_RoundRobinLbConfig__fields[1] = {
|
252
|
+
{1, UPB_SIZE(4, 8), 1, 0, 11, _UPB_MODE_SCALAR},
|
253
|
+
};
|
254
|
+
|
255
|
+
const upb_msglayout envoy_config_cluster_v3_Cluster_RoundRobinLbConfig_msginit = {
|
256
|
+
&envoy_config_cluster_v3_Cluster_RoundRobinLbConfig_submsgs[0],
|
257
|
+
&envoy_config_cluster_v3_Cluster_RoundRobinLbConfig__fields[0],
|
258
|
+
UPB_SIZE(8, 16), 1, false, 1, 255,
|
259
|
+
};
|
260
|
+
|
261
|
+
static const upb_msglayout *const envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_submsgs[3] = {
|
262
|
+
&envoy_config_cluster_v3_Cluster_SlowStartConfig_msginit,
|
263
|
+
&envoy_config_core_v3_RuntimeDouble_msginit,
|
264
|
+
&google_protobuf_UInt32Value_msginit,
|
265
|
+
};
|
266
|
+
|
267
|
+
static const upb_msglayout_field envoy_config_cluster_v3_Cluster_LeastRequestLbConfig__fields[3] = {
|
268
|
+
{1, UPB_SIZE(4, 8), 1, 2, 11, _UPB_MODE_SCALAR},
|
269
|
+
{2, UPB_SIZE(8, 16), 2, 1, 11, _UPB_MODE_SCALAR},
|
270
|
+
{3, UPB_SIZE(12, 24), 3, 0, 11, _UPB_MODE_SCALAR},
|
271
|
+
};
|
272
|
+
|
239
273
|
const upb_msglayout envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_msginit = {
|
240
274
|
&envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_submsgs[0],
|
241
275
|
&envoy_config_cluster_v3_Cluster_LeastRequestLbConfig__fields[0],
|
242
|
-
UPB_SIZE(16,
|
276
|
+
UPB_SIZE(16, 32), 3, false, 3, 255,
|
243
277
|
};
|
244
278
|
|
245
279
|
static const upb_msglayout *const envoy_config_cluster_v3_Cluster_RingHashLbConfig_submsgs[1] = {
|