grpc 1.51.0 → 1.52.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +91 -23
- data/include/grpc/byte_buffer.h +76 -1
- data/include/grpc/byte_buffer_reader.h +19 -1
- data/include/grpc/compression.h +2 -2
- data/include/grpc/event_engine/event_engine.h +17 -3
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +1 -1
- data/include/grpc/event_engine/internal/slice_cast.h +67 -0
- data/include/grpc/event_engine/memory_allocator.h +1 -1
- data/include/grpc/event_engine/slice.h +24 -4
- data/include/grpc/event_engine/slice_buffer.h +14 -2
- data/include/grpc/fork.h +25 -1
- data/include/grpc/grpc.h +3 -3
- data/include/grpc/grpc_posix.h +1 -1
- data/include/grpc/impl/codegen/atm.h +3 -71
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +3 -58
- data/include/grpc/impl/codegen/atm_gcc_sync.h +3 -59
- data/include/grpc/impl/codegen/atm_windows.h +3 -106
- data/include/grpc/impl/codegen/byte_buffer.h +4 -78
- data/include/grpc/impl/codegen/byte_buffer_reader.h +4 -19
- data/include/grpc/impl/codegen/compression_types.h +3 -82
- data/include/grpc/impl/codegen/connectivity_state.h +3 -20
- data/include/grpc/impl/codegen/fork.h +4 -25
- data/include/grpc/impl/codegen/gpr_types.h +2 -34
- data/include/grpc/impl/codegen/grpc_types.h +3 -787
- data/include/grpc/impl/codegen/log.h +3 -86
- data/include/grpc/impl/codegen/port_platform.h +3 -755
- data/include/grpc/impl/codegen/propagation_bits.h +3 -28
- data/include/grpc/impl/codegen/slice.h +3 -106
- data/include/grpc/impl/codegen/status.h +4 -131
- data/include/grpc/impl/codegen/sync.h +3 -42
- data/include/grpc/impl/codegen/sync_abseil.h +3 -12
- data/include/grpc/impl/codegen/sync_custom.h +3 -14
- data/include/grpc/impl/codegen/sync_generic.h +3 -25
- data/include/grpc/impl/codegen/sync_posix.h +3 -28
- data/include/grpc/impl/codegen/sync_windows.h +3 -16
- data/include/grpc/impl/compression_types.h +109 -0
- data/include/grpc/impl/connectivity_state.h +47 -0
- data/include/grpc/impl/grpc_types.h +824 -0
- data/include/grpc/impl/propagation_bits.h +54 -0
- data/include/grpc/impl/slice_type.h +112 -0
- data/include/grpc/load_reporting.h +1 -1
- data/include/grpc/module.modulemap +5 -1
- data/include/grpc/slice.h +1 -1
- data/include/grpc/status.h +131 -1
- data/include/grpc/support/atm.h +70 -1
- data/include/grpc/support/atm_gcc_atomic.h +59 -1
- data/include/grpc/support/atm_gcc_sync.h +58 -1
- data/include/grpc/support/atm_windows.h +105 -1
- data/include/grpc/support/log.h +87 -1
- data/include/grpc/support/log_windows.h +1 -1
- data/include/grpc/support/port_platform.h +767 -1
- data/include/grpc/support/string_util.h +1 -1
- data/include/grpc/support/sync.h +35 -2
- data/include/grpc/support/sync_abseil.h +11 -1
- data/include/grpc/support/sync_custom.h +13 -1
- data/include/grpc/support/sync_generic.h +24 -1
- data/include/grpc/support/sync_posix.h +27 -1
- data/include/grpc/support/sync_windows.h +15 -1
- data/include/grpc/support/time.h +25 -2
- data/src/core/ext/filters/census/grpc_context.cc +17 -18
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +9 -9
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +1 -1
- data/src/core/ext/filters/channel_idle/idle_filter_state.h +1 -1
- data/src/core/ext/filters/client_channel/backend_metric.cc +2 -0
- data/src/core/ext/filters/client_channel/backup_poller.cc +21 -21
- data/src/core/ext/filters/client_channel/backup_poller.h +21 -21
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +45 -24
- data/src/core/ext/filters/client_channel/client_channel.cc +40 -31
- data/src/core/ext/filters/client_channel/client_channel.h +7 -6
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +17 -17
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +19 -19
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +17 -17
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +17 -17
- data/src/core/ext/filters/client_channel/config_selector.h +16 -20
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +8 -8
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +18 -18
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +1 -1
- data/src/core/ext/filters/client_channel/http_proxy.cc +39 -39
- data/src/core/ext/filters/client_channel/http_proxy.h +18 -18
- data/src/core/ext/filters/client_channel/lb_call_state_internal.h +39 -0
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +17 -17
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +58 -130
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +37 -21
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +102 -116
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +24 -25
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +2 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +17 -17
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +18 -19
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +18 -19
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +18 -19
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +5 -5
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +173 -196
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +10 -19
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +66 -97
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +14 -13
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +98 -84
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +10 -8
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +30 -16
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +21 -35
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +45 -39
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +11 -23
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +16 -49
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +31 -21
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +651 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.h +60 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +4 -4
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +18 -18
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +0 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +40 -41
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +21 -21
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +60 -59
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +67 -66
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +50 -51
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +18 -18
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +18 -18
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +18 -19
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +0 -1
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +44 -33
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +8 -10
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +59 -73
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +1 -1
- data/src/core/ext/filters/client_channel/retry_filter.cc +1 -1
- data/src/core/ext/filters/client_channel/retry_service_config.cc +1 -1
- data/src/core/ext/filters/client_channel/retry_throttle.cc +19 -21
- data/src/core/ext/filters/client_channel/retry_throttle.h +18 -18
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +1 -1
- data/src/core/ext/filters/client_channel/subchannel.cc +139 -155
- data/src/core/ext/filters/client_channel/subchannel.h +15 -38
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +18 -18
- data/src/core/ext/filters/deadline/deadline_filter.cc +21 -3
- data/src/core/ext/filters/deadline/deadline_filter.h +1 -1
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +2 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +20 -21
- data/src/core/ext/filters/http/client/http_client_filter.h +17 -17
- data/src/core/ext/filters/http/client_authority_filter.cc +18 -18
- data/src/core/ext/filters/http/client_authority_filter.h +18 -18
- data/src/core/ext/filters/http/http_filters_plugin.cc +35 -51
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +315 -0
- data/src/core/ext/filters/http/message_compress/compression_filter.h +132 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +18 -18
- data/src/core/ext/filters/http/server/http_server_filter.h +18 -18
- data/src/core/ext/filters/message_size/message_size_filter.cc +6 -6
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +6 -8
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +3 -4
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +229 -0
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +66 -0
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +82 -0
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +93 -0
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +18 -18
- data/src/core/ext/transport/chttp2/alpn/alpn.h +22 -22
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +54 -44
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +28 -22
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +24 -25
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +18 -18
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +17 -17
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +30 -30
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +29 -29
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +27 -27
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +66 -35
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +18 -19
- data/src/core/ext/transport/chttp2/transport/context_list.cc +19 -19
- data/src/core/ext/transport/chttp2/transport/context_list.h +25 -25
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +0 -36
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +35 -82
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +75 -38
- data/src/core/ext/transport/chttp2/transport/flow_control.h +56 -31
- data/src/core/ext/transport/chttp2/transport/frame.h +19 -19
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +17 -17
- data/src/core/ext/transport/chttp2/transport/frame_data.h +22 -22
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +23 -23
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +18 -18
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +21 -21
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +19 -19
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +18 -18
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +18 -18
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -19
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +20 -20
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +17 -17
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +18 -18
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +129 -176
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +39 -58
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +69 -111
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +20 -20
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +19 -20
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +18 -18
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +21 -19
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +36 -34
- data/src/core/ext/transport/chttp2/transport/http_trace.cc +19 -0
- data/src/core/ext/transport/chttp2/transport/http_trace.h +24 -0
- data/src/core/ext/transport/chttp2/transport/huffsyms.cc +20 -20
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +19 -19
- data/src/core/ext/transport/chttp2/transport/internal.h +170 -163
- data/src/core/ext/transport/chttp2/transport/parsing.cc +96 -28
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +19 -19
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +23 -23
- data/src/core/ext/transport/chttp2/transport/stream_map.h +31 -31
- data/src/core/ext/transport/chttp2/transport/varint.cc +17 -17
- data/src/core/ext/transport/chttp2/transport/varint.h +24 -24
- data/src/core/ext/transport/chttp2/transport/writing.cc +45 -41
- data/src/core/ext/transport/inproc/inproc_plugin.cc +17 -17
- data/src/core/ext/transport/inproc/inproc_transport.cc +25 -25
- data/src/core/ext/transport/inproc/inproc_transport.h +19 -19
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +179 -0
- data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +98 -0
- data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +47 -0
- data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +107 -0
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +3 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +9 -0
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +0 -1
- data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +46 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +98 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +62 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +174 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +36 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +74 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +65 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +191 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +127 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +474 -0
- data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +67 -0
- data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +214 -0
- data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +64 -0
- data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +208 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +0 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c +36 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c +55 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +9 -9
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h +60 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c +36 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +4 -7
- data/src/core/ext/xds/xds_api.cc +5 -27
- data/src/core/ext/xds/xds_api.h +2 -1
- data/src/core/ext/xds/xds_certificate_provider.h +1 -1
- data/src/core/ext/xds/xds_channel_args.h +1 -1
- data/src/core/ext/xds/xds_channel_stack_modifier.h +2 -2
- data/src/core/ext/xds/xds_client.cc +14 -6
- data/src/core/ext/xds/xds_client.h +6 -3
- data/src/core/ext/xds/xds_client_grpc.cc +26 -0
- data/src/core/ext/xds/xds_client_grpc.h +1 -1
- data/src/core/ext/xds/xds_client_stats.cc +17 -17
- data/src/core/ext/xds/xds_client_stats.h +18 -18
- data/src/core/ext/xds/xds_cluster.cc +94 -46
- data/src/core/ext/xds/xds_cluster.h +44 -23
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +30 -50
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +14 -9
- data/src/core/ext/xds/xds_common_types.cc +4 -3
- data/src/core/ext/xds/xds_endpoint.cc +8 -2
- data/src/core/ext/xds/xds_health_status.cc +80 -0
- data/src/core/ext/xds/xds_health_status.h +82 -0
- data/src/core/ext/xds/xds_http_fault_filter.cc +7 -6
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
- data/src/core/ext/xds/xds_http_filters.cc +11 -6
- data/src/core/ext/xds/xds_http_filters.h +5 -5
- data/src/core/ext/xds/xds_http_rbac_filter.cc +7 -6
- data/src/core/ext/xds/xds_http_rbac_filter.h +3 -3
- data/src/core/ext/xds/xds_http_stateful_session_filter.cc +218 -0
- data/src/core/ext/xds/xds_http_stateful_session_filter.h +58 -0
- data/src/core/ext/xds/xds_lb_policy_registry.cc +0 -4
- data/src/core/ext/xds/xds_listener.cc +14 -28
- data/src/core/ext/xds/xds_listener.h +2 -0
- data/src/core/ext/xds/xds_resource_type_impl.h +8 -6
- data/src/core/ext/xds/xds_route_config.cc +501 -529
- data/src/core/ext/xds/xds_route_config.h +29 -18
- data/src/core/ext/xds/xds_server_config_fetcher.cc +12 -24
- data/src/core/ext/xds/xds_transport_grpc.cc +2 -2
- data/src/core/ext/xds/xds_transport_grpc.h +1 -1
- data/src/core/lib/address_utils/parse_address.cc +19 -19
- data/src/core/lib/address_utils/parse_address.h +32 -32
- data/src/core/lib/address_utils/sockaddr_utils.cc +29 -28
- data/src/core/lib/address_utils/sockaddr_utils.h +33 -33
- data/src/core/lib/avl/avl.h +4 -4
- data/src/core/lib/backoff/backoff.cc +17 -17
- data/src/core/lib/backoff/backoff.h +18 -18
- data/src/core/lib/channel/call_tracer.h +10 -1
- data/src/core/lib/channel/channel_args.cc +19 -20
- data/src/core/lib/channel/channel_args.h +43 -42
- data/src/core/lib/channel/channel_args_preconditioning.h +1 -1
- data/src/core/lib/channel/channel_stack.cc +39 -38
- data/src/core/lib/channel/channel_stack.h +127 -127
- data/src/core/lib/channel/channel_stack_builder.cc +17 -17
- data/src/core/lib/channel/channel_stack_builder_impl.cc +18 -18
- data/src/core/lib/channel/channel_trace.cc +17 -17
- data/src/core/lib/channel/channel_trace.h +19 -19
- data/src/core/lib/channel/channelz.cc +17 -18
- data/src/core/lib/channel/channelz.h +26 -26
- data/src/core/lib/channel/channelz_registry.cc +17 -17
- data/src/core/lib/channel/channelz_registry.h +18 -18
- data/src/core/lib/channel/connected_channel.cc +43 -34
- data/src/core/lib/channel/connected_channel.h +18 -18
- data/src/core/lib/channel/context.h +18 -18
- data/src/core/lib/channel/promise_based_filter.cc +191 -68
- data/src/core/lib/channel/promise_based_filter.h +10 -1
- data/src/core/lib/channel/status_util.cc +35 -17
- data/src/core/lib/channel/status_util.h +26 -19
- data/src/core/lib/compression/compression.cc +19 -19
- data/src/core/lib/compression/compression_internal.cc +41 -48
- data/src/core/lib/compression/compression_internal.h +22 -22
- data/src/core/lib/compression/message_compress.cc +21 -21
- data/src/core/lib/compression/message_compress.h +25 -25
- data/src/core/lib/config/core_configuration.h +1 -1
- data/src/core/lib/debug/stats.cc +17 -17
- data/src/core/lib/debug/stats.h +17 -17
- data/src/core/lib/debug/trace.cc +18 -18
- data/src/core/lib/debug/trace.h +19 -19
- data/src/core/lib/event_engine/executor/executor.h +1 -1
- data/src/core/lib/event_engine/forkable.h +1 -1
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +27 -31
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +2 -2
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +36 -37
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +3 -3
- data/src/core/lib/event_engine/posix_engine/event_poller.h +3 -3
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +2 -2
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +2 -2
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +2 -2
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +46 -46
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +10 -12
- data/src/core/lib/event_engine/posix_engine/lockfree_event.h +2 -2
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +79 -41
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +11 -9
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +33 -40
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +14 -14
- data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +2 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +236 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +228 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +380 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +91 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +55 -283
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +4 -49
- data/src/core/lib/event_engine/posix_engine/timer.cc +49 -49
- data/src/core/lib/event_engine/posix_engine/timer.h +87 -87
- data/src/core/lib/event_engine/posix_engine/timer_heap.cc +27 -27
- data/src/core/lib/event_engine/posix_engine/timer_heap.h +21 -21
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +19 -20
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +20 -20
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +39 -8
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +46 -40
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +8 -7
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +2 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +6 -7
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +2 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +28 -28
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +4 -4
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +3 -3
- data/src/core/lib/event_engine/socket_notifier.h +1 -1
- data/src/core/lib/event_engine/tcp_socket_utils.cc +373 -0
- data/src/core/lib/event_engine/tcp_socket_utils.h +85 -0
- data/src/core/lib/event_engine/thread_pool.cc +19 -18
- data/src/core/lib/event_engine/thread_pool.h +17 -17
- data/src/core/lib/event_engine/time_util.h +1 -1
- data/src/core/lib/event_engine/windows/iocp.cc +13 -12
- data/src/core/lib/event_engine/windows/iocp.h +1 -1
- data/src/core/lib/event_engine/windows/win_socket.cc +2 -2
- data/src/core/lib/event_engine/windows/windows_engine.cc +8 -8
- data/src/core/lib/event_engine/windows/windows_engine.h +1 -1
- data/src/core/lib/experiments/experiments.cc +5 -16
- data/src/core/lib/experiments/experiments.h +7 -12
- data/src/core/lib/gpr/alloc.cc +19 -17
- data/src/core/lib/gpr/alloc.h +18 -18
- data/src/core/lib/gpr/atm.cc +17 -17
- data/src/core/lib/gpr/cpu_iphone.cc +24 -24
- data/src/core/lib/gpr/cpu_linux.cc +22 -21
- data/src/core/lib/gpr/cpu_posix.cc +23 -22
- data/src/core/lib/gpr/cpu_windows.cc +20 -18
- data/src/core/lib/gpr/log.cc +27 -19
- data/src/core/lib/gpr/log_android.cc +22 -20
- data/src/core/lib/gpr/log_linux.cc +21 -20
- data/src/core/lib/gpr/log_posix.cc +20 -19
- data/src/core/lib/gpr/log_windows.cc +25 -24
- data/src/core/lib/gpr/spinlock.h +18 -18
- data/src/core/lib/gpr/string.cc +25 -24
- data/src/core/lib/gpr/string.h +57 -57
- data/src/core/lib/gpr/string_posix.cc +24 -24
- data/src/core/lib/gpr/string_util_windows.cc +22 -22
- data/src/core/lib/gpr/string_windows.cc +24 -24
- data/src/core/lib/gpr/sync.cc +25 -25
- data/src/core/lib/gpr/sync_abseil.cc +22 -20
- data/src/core/lib/gpr/sync_posix.cc +23 -21
- data/src/core/lib/gpr/sync_windows.cc +29 -27
- data/src/core/lib/gpr/time.cc +23 -21
- data/src/core/lib/gpr/time_posix.cc +35 -30
- data/src/core/lib/gpr/time_precise.cc +22 -22
- data/src/core/lib/gpr/time_precise.h +18 -19
- data/src/core/lib/gpr/time_windows.cc +25 -22
- data/src/core/lib/gpr/tmpfile.h +22 -22
- data/src/core/lib/gpr/tmpfile_msys.cc +21 -20
- data/src/core/lib/gpr/tmpfile_posix.cc +19 -18
- data/src/core/lib/gpr/tmpfile_windows.cc +23 -22
- data/src/core/lib/gpr/useful.h +40 -27
- data/src/core/lib/gpr/wrap_memcpy.cc +23 -23
- data/src/core/lib/gprpp/atomic_utils.h +18 -18
- data/src/core/lib/gprpp/bitset.h +24 -0
- data/src/core/{ext/filters/http/message_compress/message_decompress_filter.h → lib/gprpp/crash.cc} +15 -14
- data/src/core/lib/gprpp/crash.h +34 -0
- data/src/core/lib/gprpp/debug_location.h +18 -18
- data/src/core/lib/gprpp/dual_ref_counted.h +1 -1
- data/src/core/lib/gprpp/env.h +20 -20
- data/src/core/lib/gprpp/env_linux.cc +21 -21
- data/src/core/lib/gprpp/env_posix.cc +18 -18
- data/src/core/lib/gprpp/env_windows.cc +18 -18
- data/src/core/lib/gprpp/examine_stack.cc +17 -17
- data/src/core/lib/gprpp/examine_stack.h +18 -18
- data/src/core/lib/gprpp/fork.cc +21 -22
- data/src/core/lib/gprpp/fork.h +22 -22
- data/src/core/lib/gprpp/global_config.h +18 -18
- data/src/core/lib/gprpp/global_config_custom.h +18 -18
- data/src/core/lib/gprpp/global_config_env.cc +17 -17
- data/src/core/lib/gprpp/global_config_env.h +23 -23
- data/src/core/lib/gprpp/global_config_generic.h +18 -18
- data/src/core/lib/gprpp/host_port.cc +26 -26
- data/src/core/lib/gprpp/host_port.h +29 -28
- data/src/core/lib/gprpp/manual_constructor.h +18 -17
- data/src/core/lib/gprpp/memory.h +18 -18
- data/src/core/lib/gprpp/mpscq.cc +17 -17
- data/src/core/lib/gprpp/mpscq.h +18 -18
- data/src/core/lib/gprpp/no_destruct.h +1 -0
- data/src/core/lib/gprpp/orphanable.h +18 -18
- data/src/core/lib/gprpp/ref_counted.h +18 -18
- data/src/core/lib/gprpp/ref_counted_ptr.h +19 -18
- data/src/core/lib/gprpp/stat_windows.cc +1 -0
- data/src/core/lib/gprpp/status_helper.cc +4 -3
- data/src/core/lib/gprpp/sync.h +20 -20
- data/src/core/lib/gprpp/table.h +1 -0
- data/src/core/lib/gprpp/thd.h +19 -19
- data/src/core/lib/gprpp/thd_posix.cc +30 -31
- data/src/core/lib/gprpp/thd_windows.cc +25 -24
- data/src/core/lib/gprpp/time.cc +13 -7
- data/src/core/lib/gprpp/time.h +0 -1
- data/src/core/lib/gprpp/time_averaged_stats.cc +20 -20
- data/src/core/lib/gprpp/time_averaged_stats.h +48 -48
- data/src/core/lib/gprpp/time_util.h +1 -1
- data/src/core/lib/gprpp/unique_type_name.h +18 -18
- data/src/core/lib/handshaker/proxy_mapper.h +18 -18
- data/src/core/lib/handshaker/proxy_mapper_registry.cc +17 -17
- data/src/core/lib/handshaker/proxy_mapper_registry.h +18 -18
- data/src/core/lib/http/format_request.cc +18 -18
- data/src/core/lib/http/format_request.h +18 -18
- data/src/core/lib/http/httpcli.cc +17 -17
- data/src/core/lib/http/httpcli.h +20 -21
- data/src/core/lib/http/httpcli_security_connector.cc +18 -19
- data/src/core/lib/http/parser.cc +22 -22
- data/src/core/lib/http/parser.h +32 -32
- data/src/core/lib/iomgr/block_annotate.h +21 -21
- data/src/core/lib/iomgr/buffer_list.cc +52 -21
- data/src/core/lib/iomgr/buffer_list.h +63 -57
- data/src/core/lib/iomgr/call_combiner.cc +18 -17
- data/src/core/lib/iomgr/call_combiner.h +18 -18
- data/src/core/lib/iomgr/cfstream_handle.cc +20 -20
- data/src/core/lib/iomgr/cfstream_handle.h +22 -22
- data/src/core/lib/iomgr/closure.h +42 -41
- data/src/core/lib/iomgr/combiner.cc +18 -17
- data/src/core/lib/iomgr/combiner.h +18 -18
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +21 -21
- data/src/core/lib/iomgr/dynamic_annotations.h +20 -20
- data/src/core/lib/iomgr/endpoint.cc +17 -17
- data/src/core/lib/iomgr/endpoint.h +46 -46
- data/src/core/lib/iomgr/endpoint_cfstream.cc +18 -18
- data/src/core/lib/iomgr/endpoint_cfstream.h +27 -27
- data/src/core/lib/iomgr/endpoint_pair.h +18 -18
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +18 -17
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +18 -17
- data/src/core/lib/iomgr/error.cc +22 -19
- data/src/core/lib/iomgr/error.h +20 -21
- data/src/core/lib/iomgr/error_cfstream.cc +18 -18
- data/src/core/lib/iomgr/error_cfstream.h +19 -19
- data/src/core/lib/iomgr/ev_apple.cc +17 -17
- data/src/core/lib/iomgr/ev_apple.h +17 -17
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +182 -170
- data/src/core/lib/iomgr/ev_epoll1_linux.h +18 -18
- data/src/core/lib/iomgr/ev_poll_posix.cc +185 -174
- data/src/core/lib/iomgr/ev_poll_posix.h +18 -18
- data/src/core/lib/iomgr/ev_posix.cc +36 -28
- data/src/core/lib/iomgr/ev_posix.h +85 -81
- data/src/core/lib/iomgr/ev_windows.cc +18 -18
- data/src/core/lib/iomgr/exec_ctx.cc +31 -30
- data/src/core/lib/iomgr/exec_ctx.h +139 -138
- data/src/core/lib/iomgr/executor.cc +20 -19
- data/src/core/lib/iomgr/executor.h +24 -24
- data/src/core/lib/iomgr/fork_posix.cc +24 -22
- data/src/core/lib/iomgr/fork_windows.cc +21 -21
- data/src/core/lib/iomgr/gethostname.h +18 -18
- data/src/core/lib/iomgr/gethostname_fallback.cc +17 -17
- data/src/core/lib/iomgr/gethostname_host_name_max.cc +17 -17
- data/src/core/lib/iomgr/gethostname_sysconf.cc +17 -17
- data/src/core/lib/iomgr/grpc_if_nametoindex.h +20 -20
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +20 -19
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +20 -19
- data/src/core/lib/iomgr/internal_errqueue.cc +1 -1
- data/src/core/lib/iomgr/internal_errqueue.h +80 -80
- data/src/core/lib/iomgr/iocp_windows.cc +21 -21
- data/src/core/lib/iomgr/iocp_windows.h +18 -18
- data/src/core/lib/iomgr/iomgr.cc +19 -18
- data/src/core/lib/iomgr/iomgr.h +32 -32
- data/src/core/lib/iomgr/iomgr_internal.cc +17 -17
- data/src/core/lib/iomgr/iomgr_internal.h +25 -25
- data/src/core/lib/iomgr/iomgr_posix.cc +18 -18
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +18 -18
- data/src/core/lib/iomgr/iomgr_windows.cc +22 -21
- data/src/core/lib/iomgr/load_file.cc +19 -18
- data/src/core/lib/iomgr/load_file.h +20 -20
- data/src/core/lib/iomgr/lockfree_event.cc +104 -104
- data/src/core/lib/iomgr/lockfree_event.h +19 -19
- data/src/core/lib/iomgr/nameser.h +84 -84
- data/src/core/lib/iomgr/polling_entity.cc +25 -21
- data/src/core/lib/iomgr/polling_entity.h +27 -27
- data/src/core/lib/iomgr/pollset.cc +17 -17
- data/src/core/lib/iomgr/pollset.h +51 -51
- data/src/core/lib/iomgr/pollset_set.cc +17 -17
- data/src/core/lib/iomgr/pollset_set.h +22 -22
- data/src/core/lib/iomgr/pollset_set_windows.cc +18 -18
- data/src/core/lib/iomgr/pollset_set_windows.h +18 -18
- data/src/core/lib/iomgr/pollset_windows.cc +26 -25
- data/src/core/lib/iomgr/pollset_windows.h +22 -22
- data/src/core/lib/iomgr/port.h +29 -29
- data/src/core/lib/iomgr/python_util.h +18 -18
- data/src/core/lib/iomgr/resolve_address.cc +18 -17
- data/src/core/lib/iomgr/resolve_address.h +18 -18
- data/src/core/lib/iomgr/resolve_address_impl.h +1 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +21 -20
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -3
- data/src/core/lib/iomgr/resolved_address.h +1 -1
- data/src/core/lib/iomgr/sockaddr.h +21 -21
- data/src/core/lib/iomgr/sockaddr_posix.h +18 -18
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +18 -17
- data/src/core/lib/iomgr/sockaddr_windows.h +18 -18
- data/src/core/lib/iomgr/socket_factory_posix.cc +18 -18
- data/src/core/lib/iomgr/socket_factory_posix.h +30 -30
- data/src/core/lib/iomgr/socket_mutator.cc +19 -18
- data/src/core/lib/iomgr/socket_mutator.h +37 -37
- data/src/core/lib/iomgr/socket_utils.h +24 -24
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +38 -37
- data/src/core/lib/iomgr/socket_utils_linux.cc +18 -17
- data/src/core/lib/iomgr/socket_utils_posix.cc +21 -20
- data/src/core/lib/iomgr/socket_utils_posix.h +76 -76
- data/src/core/lib/iomgr/socket_utils_windows.cc +20 -19
- data/src/core/lib/iomgr/socket_windows.cc +35 -34
- data/src/core/lib/iomgr/socket_windows.h +56 -56
- data/src/core/lib/iomgr/systemd_utils.cc +116 -0
- data/src/core/lib/iomgr/systemd_utils.h +33 -0
- data/src/core/lib/iomgr/tcp_client.cc +17 -17
- data/src/core/lib/iomgr/tcp_client.h +26 -26
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +19 -18
- data/src/core/lib/iomgr/tcp_client_posix.cc +39 -38
- data/src/core/lib/iomgr/tcp_client_posix.h +43 -43
- data/src/core/lib/iomgr/tcp_client_windows.cc +28 -27
- data/src/core/lib/iomgr/tcp_posix.cc +136 -134
- data/src/core/lib/iomgr/tcp_posix.h +27 -27
- data/src/core/lib/iomgr/tcp_server.cc +30 -22
- data/src/core/lib/iomgr/tcp_server.h +68 -62
- data/src/core/lib/iomgr/tcp_server_posix.cc +91 -61
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +54 -51
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +72 -34
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +28 -27
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +18 -18
- data/src/core/lib/iomgr/tcp_server_windows.cc +71 -75
- data/src/core/lib/iomgr/tcp_windows.cc +83 -60
- data/src/core/lib/iomgr/tcp_windows.h +29 -29
- data/src/core/lib/iomgr/timer.cc +17 -17
- data/src/core/lib/iomgr/timer.h +65 -65
- data/src/core/lib/iomgr/timer_generic.cc +106 -107
- data/src/core/lib/iomgr/timer_generic.h +19 -19
- data/src/core/lib/iomgr/timer_heap.cc +25 -25
- data/src/core/lib/iomgr/timer_heap.h +19 -19
- data/src/core/lib/iomgr/timer_manager.cc +30 -29
- data/src/core/lib/iomgr/timer_manager.h +25 -25
- data/src/core/lib/iomgr/unix_sockets_posix.cc +18 -17
- data/src/core/lib/iomgr/unix_sockets_posix.h +18 -18
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +19 -17
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +19 -18
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +23 -23
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +19 -18
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +18 -18
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +18 -18
- data/src/core/lib/iomgr/wakeup_fd_posix.h +50 -50
- data/src/core/lib/json/json_object_loader.cc +10 -0
- data/src/core/lib/json/json_object_loader.h +15 -1
- data/src/core/lib/json/json_reader.cc +28 -28
- data/src/core/lib/json/json_writer.cc +56 -56
- data/src/core/lib/load_balancing/lb_policy.cc +17 -17
- data/src/core/lib/load_balancing/lb_policy.h +3 -4
- data/src/core/lib/load_balancing/subchannel_interface.h +1 -1
- data/src/core/lib/matchers/matchers.cc +3 -1
- data/src/core/lib/matchers/matchers.h +1 -1
- data/src/core/lib/promise/activity.h +20 -12
- data/src/core/lib/promise/arena_promise.h +2 -1
- data/src/core/lib/promise/context.h +1 -0
- data/src/core/lib/promise/detail/promise_factory.h +1 -0
- data/src/core/lib/promise/detail/switch.h +18 -18
- data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +18 -12
- data/src/core/lib/promise/for_each.h +68 -42
- data/src/core/lib/promise/latch.h +13 -19
- data/src/core/lib/promise/map.h +1 -0
- data/src/core/lib/promise/map_pipe.h +1 -0
- data/src/core/lib/promise/poll.h +6 -0
- data/src/core/lib/promise/seq.h +1 -0
- data/src/core/lib/promise/try_concurrently.h +1 -0
- data/src/core/lib/promise/try_seq.h +1 -0
- data/src/core/lib/resolver/resolver.cc +17 -17
- data/src/core/lib/resolver/server_address.cc +17 -17
- data/src/core/lib/resolver/server_address.h +18 -18
- data/src/core/lib/resource_quota/api.h +1 -1
- data/src/core/lib/resource_quota/arena.cc +17 -17
- data/src/core/lib/resource_quota/arena.h +18 -18
- data/src/core/lib/resource_quota/memory_quota.cc +139 -43
- data/src/core/lib/resource_quota/memory_quota.h +85 -23
- data/src/core/lib/resource_quota/resource_quota.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +0 -1
- data/src/core/lib/security/authorization/rbac_policy.h +1 -1
- data/src/core/lib/security/context/security_context.cc +22 -23
- data/src/core/lib/security/context/security_context.h +30 -30
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +17 -17
- data/src/core/lib/security/credentials/alts/alts_credentials.h +50 -50
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +19 -19
- data/src/core/lib/security/credentials/alts/check_gcp_environment.h +41 -41
- data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +17 -17
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +18 -17
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +18 -17
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +19 -19
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +18 -18
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +36 -37
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +18 -18
- data/src/core/lib/security/credentials/call_creds_util.h +1 -1
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +21 -21
- data/src/core/lib/security/credentials/composite/composite_credentials.h +20 -21
- data/src/core/lib/security/credentials/credentials.cc +19 -18
- data/src/core/lib/security/credentials/credentials.h +34 -33
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +19 -19
- data/src/core/lib/security/credentials/fake/fake_credentials.h +34 -35
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +17 -17
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +48 -49
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +18 -19
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +17 -17
- data/src/core/lib/security/credentials/iam/iam_credentials.h +18 -18
- data/src/core/lib/security/credentials/jwt/json_token.cc +23 -23
- data/src/core/lib/security/credentials/jwt/json_token.h +32 -32
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +17 -17
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +18 -19
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +70 -70
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +43 -43
- data/src/core/lib/security/credentials/local/local_credentials.cc +17 -17
- data/src/core/lib/security/credentials/local/local_credentials.h +20 -20
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +28 -29
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +19 -19
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +18 -18
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +19 -19
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +19 -20
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +18 -18
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +1 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +18 -18
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +18 -19
- data/src/core/lib/security/credentials/tls/tls_credentials.h +18 -18
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +1 -2
- data/src/core/lib/security/credentials/xds/xds_credentials.h +1 -1
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +26 -27
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +41 -42
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +24 -26
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +20 -21
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +1 -2
- data/src/core/lib/security/security_connector/load_system_roots.h +18 -18
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +18 -18
- data/src/core/lib/security/security_connector/load_system_roots_supported.cc +18 -18
- data/src/core/lib/security/security_connector/load_system_roots_supported.h +19 -20
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +23 -23
- data/src/core/lib/security/security_connector/local/local_security_connector.h +40 -41
- data/src/core/lib/security/security_connector/security_connector.cc +17 -17
- data/src/core/lib/security/security_connector/security_connector.h +32 -33
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +25 -25
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +38 -39
- data/src/core/lib/security/security_connector/ssl_utils.cc +32 -32
- data/src/core/lib/security/security_connector/ssl_utils.h +31 -31
- data/src/core/lib/security/security_connector/ssl_utils_config.cc +22 -22
- data/src/core/lib/security/security_connector/ssl_utils_config.h +18 -19
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +21 -21
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +17 -17
- data/src/core/lib/security/transport/auth_filters.h +18 -18
- data/src/core/lib/security/transport/client_auth_filter.cc +20 -20
- data/src/core/lib/security/transport/secure_endpoint.cc +28 -28
- data/src/core/lib/security/transport/secure_endpoint.h +22 -22
- data/src/core/lib/security/transport/security_handshaker.cc +17 -17
- data/src/core/lib/security/transport/security_handshaker.h +19 -19
- data/src/core/lib/security/transport/server_auth_filter.cc +22 -23
- data/src/core/lib/security/transport/tsi_error.cc +17 -17
- data/src/core/lib/security/transport/tsi_error.h +18 -18
- data/src/core/lib/security/util/json_util.cc +17 -17
- data/src/core/lib/security/util/json_util.h +18 -18
- data/src/core/lib/service_config/service_config.h +1 -1
- data/src/core/lib/service_config/service_config_call_data.h +7 -1
- data/src/core/lib/slice/b64.cc +24 -24
- data/src/core/lib/slice/b64.h +29 -29
- data/src/core/lib/slice/percent_encoding.cc +17 -17
- data/src/core/lib/slice/percent_encoding.h +24 -24
- data/src/core/lib/slice/slice.cc +37 -37
- data/src/core/lib/slice/slice.h +38 -5
- data/src/core/lib/slice/slice_buffer.cc +50 -45
- data/src/core/lib/slice/slice_buffer.h +27 -2
- data/src/core/lib/slice/slice_internal.h +18 -18
- data/src/core/lib/slice/slice_string_helpers.cc +17 -17
- data/src/core/lib/slice/slice_string_helpers.h +19 -19
- data/src/core/lib/surface/api_trace.cc +17 -17
- data/src/core/lib/surface/api_trace.h +22 -22
- data/src/core/lib/surface/byte_buffer.cc +19 -19
- data/src/core/lib/surface/byte_buffer_reader.cc +19 -19
- data/src/core/lib/surface/call.cc +163 -104
- data/src/core/lib/surface/call.h +42 -39
- data/src/core/lib/surface/call_details.cc +17 -18
- data/src/core/lib/surface/call_log_batch.cc +18 -18
- data/src/core/lib/surface/call_test_only.h +30 -30
- data/src/core/lib/surface/call_trace.cc +5 -5
- data/src/core/lib/surface/channel.cc +18 -18
- data/src/core/lib/surface/channel.h +31 -31
- data/src/core/lib/surface/channel_init.cc +17 -17
- data/src/core/lib/surface/channel_init.h +18 -18
- data/src/core/lib/surface/channel_ping.cc +18 -18
- data/src/core/lib/surface/channel_stack_type.cc +17 -17
- data/src/core/lib/surface/channel_stack_type.h +18 -18
- data/src/core/lib/surface/completion_queue.cc +136 -140
- data/src/core/lib/surface/completion_queue.h +32 -32
- data/src/core/lib/surface/completion_queue_factory.cc +28 -28
- data/src/core/lib/surface/completion_queue_factory.h +20 -20
- data/src/core/lib/surface/event_string.cc +17 -17
- data/src/core/lib/surface/event_string.h +20 -20
- data/src/core/lib/surface/init.cc +21 -19
- data/src/core/lib/surface/init.h +18 -18
- data/src/core/lib/surface/init_internally.cc +1 -0
- data/src/core/lib/surface/init_internally.h +1 -0
- data/src/core/lib/surface/lame_client.cc +18 -18
- data/src/core/lib/surface/lame_client.h +19 -19
- data/src/core/lib/surface/metadata_array.cc +17 -18
- data/src/core/lib/surface/server.cc +15 -15
- data/src/core/lib/surface/server.h +2 -3
- data/src/core/lib/surface/validate_metadata.cc +17 -17
- data/src/core/lib/surface/validate_metadata.h +18 -18
- data/src/core/lib/surface/version.cc +21 -21
- data/src/core/lib/transport/bdp_estimator.cc +17 -17
- data/src/core/lib/transport/bdp_estimator.h +18 -19
- data/src/core/lib/transport/connectivity_state.cc +17 -17
- data/src/core/lib/transport/connectivity_state.h +19 -19
- data/src/core/lib/transport/error_utils.cc +17 -17
- data/src/core/lib/transport/error_utils.h +18 -18
- data/src/core/lib/transport/handshaker.cc +37 -34
- data/src/core/lib/transport/handshaker.h +42 -37
- data/src/core/lib/transport/handshaker_factory.h +18 -18
- data/src/core/lib/transport/handshaker_registry.cc +17 -17
- data/src/core/lib/transport/handshaker_registry.h +18 -18
- data/src/core/lib/transport/http2_errors.h +20 -20
- data/src/core/lib/transport/http_connect_handshaker.cc +17 -17
- data/src/core/lib/transport/http_connect_handshaker.h +18 -18
- data/src/core/lib/transport/metadata_batch.cc +4 -1
- data/src/core/lib/transport/metadata_batch.h +30 -20
- data/src/core/lib/transport/parsed_metadata.h +1 -0
- data/src/core/lib/transport/pid_controller.cc +20 -20
- data/src/core/lib/transport/pid_controller.h +24 -24
- data/src/core/lib/transport/status_conversion.cc +22 -22
- data/src/core/lib/transport/status_conversion.h +20 -20
- data/src/core/lib/transport/tcp_connect_handshaker.h +1 -1
- data/src/core/lib/transport/timeout_encoding.cc +22 -22
- data/src/core/lib/transport/timeout_encoding.h +18 -18
- data/src/core/lib/transport/transport.cc +25 -24
- data/src/core/lib/transport/transport.h +134 -132
- data/src/core/lib/transport/transport_impl.h +41 -41
- data/src/core/lib/transport/transport_op_string.cc +19 -19
- data/src/core/plugin_registry/grpc_plugin_registry.cc +21 -19
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +5 -0
- data/src/core/tsi/alts/crypt/aes_gcm.cc +20 -20
- data/src/core/tsi/alts/crypt/gsec.cc +26 -26
- data/src/core/tsi/alts/crypt/gsec.h +334 -334
- data/src/core/tsi/alts/frame_protector/alts_counter.cc +23 -23
- data/src/core/tsi/alts/frame_protector/alts_counter.h +66 -66
- data/src/core/tsi/alts/frame_protector/alts_crypter.cc +19 -19
- data/src/core/tsi/alts/frame_protector/alts_crypter.h +206 -206
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +72 -71
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +38 -38
- data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +18 -18
- data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +80 -81
- data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +22 -22
- data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +22 -22
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +26 -25
- data/src/core/tsi/alts/frame_protector/frame_handler.h +166 -166
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +68 -67
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +99 -99
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +18 -17
- data/src/core/tsi/alts/handshaker/alts_shared_resource.h +41 -42
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +29 -28
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +58 -58
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +20 -20
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +19 -19
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +36 -36
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +19 -19
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +102 -101
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +38 -37
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +38 -39
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +31 -30
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +33 -34
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +65 -66
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +31 -30
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +53 -54
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +54 -53
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +138 -139
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +53 -52
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +41 -42
- data/src/core/tsi/fake_transport_security.cc +77 -76
- data/src/core/tsi/fake_transport_security.h +30 -30
- data/src/core/tsi/local_transport_security.cc +34 -33
- data/src/core/tsi/local_transport_security.h +31 -31
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +1 -0
- data/src/core/tsi/ssl/session_cache/ssl_session.h +18 -18
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +18 -18
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +18 -17
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +19 -19
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +19 -18
- data/src/core/tsi/ssl_transport_security.cc +139 -323
- data/src/core/tsi/ssl_transport_security.h +201 -200
- data/src/core/tsi/ssl_transport_security_utils.cc +250 -0
- data/src/core/tsi/ssl_transport_security_utils.h +147 -0
- data/src/core/tsi/ssl_types.h +25 -25
- data/src/core/tsi/transport_security.cc +26 -26
- data/src/core/tsi/transport_security.h +45 -45
- data/src/core/tsi/transport_security_grpc.cc +20 -20
- data/src/core/tsi/transport_security_grpc.h +39 -39
- data/src/core/tsi/transport_security_interface.h +330 -330
- data/src/ruby/ext/grpc/{ext-export-truffleruby.clang → ext-export-truffleruby-with-ruby-abi-version.clang} +0 -0
- data/src/ruby/ext/grpc/{ext-export-truffleruby.gcc → ext-export-truffleruby-with-ruby-abi-version.gcc} +0 -0
- data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.clang +2 -0
- data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.gcc +7 -0
- data/src/ruby/ext/grpc/ext-export.clang +0 -1
- data/src/ruby/ext/grpc/ext-export.gcc +1 -2
- data/src/ruby/ext/grpc/extconf.rb +47 -2
- data/src/ruby/ext/grpc/rb_call.c +1 -0
- data/src/ruby/ext/grpc/rb_channel.c +1 -0
- data/src/ruby/ext/grpc/rb_channel_args.c +1 -0
- data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +1 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +38 -36
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +59 -56
- data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/client_server_spec.rb +20 -8
- data/third_party/re2/re2/bitstate.cc +3 -3
- data/third_party/re2/re2/dfa.cc +13 -13
- data/third_party/re2/re2/nfa.cc +4 -4
- data/third_party/re2/re2/onepass.cc +2 -2
- data/third_party/re2/re2/prefilter_tree.cc +27 -59
- data/third_party/re2/re2/prefilter_tree.h +3 -2
- data/third_party/re2/re2/prog.cc +11 -2
- data/third_party/re2/re2/prog.h +17 -5
- data/third_party/re2/re2/re2.cc +6 -11
- data/third_party/re2/re2/re2.h +1 -1
- data/third_party/re2/re2/regexp.cc +1 -2
- data/third_party/re2/re2/stringpiece.h +10 -7
- data/third_party/re2/re2/unicode_casefold.cc +25 -11
- data/third_party/re2/re2/unicode_groups.cc +319 -151
- data/third_party/re2/re2/walker-inl.h +3 -2
- data/third_party/re2/util/mutex.h +4 -4
- metadata +93 -24
- data/include/grpc/impl/codegen/gpr_slice.h +0 -71
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +0 -332
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -52
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +0 -322
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +0 -62
@@ -24,6 +24,7 @@
|
|
24
24
|
#include "absl/base/attributes.h"
|
25
25
|
#include "absl/functional/function_ref.h"
|
26
26
|
#include "absl/strings/str_cat.h"
|
27
|
+
#include "absl/strings/str_format.h"
|
27
28
|
#include "absl/strings/str_join.h"
|
28
29
|
#include "absl/types/variant.h"
|
29
30
|
|
@@ -31,6 +32,7 @@
|
|
31
32
|
|
32
33
|
#include "src/core/lib/channel/channel_stack.h"
|
33
34
|
#include "src/core/lib/debug/trace.h"
|
35
|
+
#include "src/core/lib/gprpp/crash.h"
|
34
36
|
#include "src/core/lib/gprpp/manual_constructor.h"
|
35
37
|
#include "src/core/lib/gprpp/status_helper.h"
|
36
38
|
#include "src/core/lib/iomgr/error.h"
|
@@ -246,7 +248,7 @@ BaseCallData::Flusher::~Flusher() {
|
|
246
248
|
BaseCallData* call =
|
247
249
|
static_cast<BaseCallData*>(batch->handler_private.extra_arg);
|
248
250
|
if (grpc_trace_channel.enabled()) {
|
249
|
-
gpr_log(
|
251
|
+
gpr_log(GPR_INFO, "FLUSHER:forward batch via closure: %s",
|
250
252
|
grpc_transport_stream_op_batch_string(batch).c_str());
|
251
253
|
}
|
252
254
|
grpc_call_next_op(call->elem(), batch);
|
@@ -255,7 +257,7 @@ BaseCallData::Flusher::~Flusher() {
|
|
255
257
|
for (size_t i = 1; i < release_.size(); i++) {
|
256
258
|
auto* batch = release_[i];
|
257
259
|
if (grpc_trace_channel.enabled()) {
|
258
|
-
gpr_log(
|
260
|
+
gpr_log(GPR_INFO, "FLUSHER:queue batch to forward in closure: %s",
|
259
261
|
grpc_transport_stream_op_batch_string(release_[i]).c_str());
|
260
262
|
}
|
261
263
|
batch->handler_private.extra_arg = call_;
|
@@ -267,7 +269,7 @@ BaseCallData::Flusher::~Flusher() {
|
|
267
269
|
}
|
268
270
|
call_closures_.RunClosuresWithoutYielding(call_->call_combiner());
|
269
271
|
if (grpc_trace_channel.enabled()) {
|
270
|
-
gpr_log(
|
272
|
+
gpr_log(GPR_INFO, "FLUSHER:forward batch: %s",
|
271
273
|
grpc_transport_stream_op_batch_string(release_[0]).c_str());
|
272
274
|
}
|
273
275
|
grpc_call_next_op(call_->elem(), release_[0]);
|
@@ -295,13 +297,15 @@ const char* BaseCallData::SendMessage::StateString(State state) {
|
|
295
297
|
return "BATCH_COMPLETED";
|
296
298
|
case State::kCancelled:
|
297
299
|
return "CANCELLED";
|
300
|
+
case State::kCancelledButNotYetPolled:
|
301
|
+
return "CANCELLED_BUT_NOT_YET_POLLED";
|
298
302
|
}
|
299
303
|
return "UNKNOWN";
|
300
304
|
}
|
301
305
|
|
302
306
|
void BaseCallData::SendMessage::StartOp(CapturedBatch batch) {
|
303
307
|
if (grpc_trace_channel.enabled()) {
|
304
|
-
gpr_log(
|
308
|
+
gpr_log(GPR_INFO, "%s SendMessage.StartOp st=%s", base_->LogTag().c_str(),
|
305
309
|
StateString(state_));
|
306
310
|
}
|
307
311
|
switch (state_) {
|
@@ -316,8 +320,9 @@ void BaseCallData::SendMessage::StartOp(CapturedBatch batch) {
|
|
316
320
|
case State::kForwardedBatch:
|
317
321
|
case State::kBatchCompleted:
|
318
322
|
case State::kPushedToPipe:
|
319
|
-
|
323
|
+
Crash(absl::StrFormat("ILLEGAL STATE: %s", StateString(state_)));
|
320
324
|
case State::kCancelled:
|
325
|
+
case State::kCancelledButNotYetPolled:
|
321
326
|
return;
|
322
327
|
}
|
323
328
|
batch_ = batch;
|
@@ -326,7 +331,7 @@ void BaseCallData::SendMessage::StartOp(CapturedBatch batch) {
|
|
326
331
|
|
327
332
|
void BaseCallData::SendMessage::GotPipe(PipeReceiver<MessageHandle>* receiver) {
|
328
333
|
if (grpc_trace_channel.enabled()) {
|
329
|
-
gpr_log(
|
334
|
+
gpr_log(GPR_INFO, "%s SendMessage.GotPipe st=%s", base_->LogTag().c_str(),
|
330
335
|
StateString(state_));
|
331
336
|
}
|
332
337
|
GPR_ASSERT(receiver != nullptr);
|
@@ -344,8 +349,9 @@ void BaseCallData::SendMessage::GotPipe(PipeReceiver<MessageHandle>* receiver) {
|
|
344
349
|
case State::kForwardedBatch:
|
345
350
|
case State::kBatchCompleted:
|
346
351
|
case State::kPushedToPipe:
|
347
|
-
|
352
|
+
Crash(absl::StrFormat("ILLEGAL STATE: %s", StateString(state_)));
|
348
353
|
case State::kCancelled:
|
354
|
+
case State::kCancelledButNotYetPolled:
|
349
355
|
return;
|
350
356
|
}
|
351
357
|
receiver_ = receiver;
|
@@ -357,6 +363,7 @@ bool BaseCallData::SendMessage::IsIdle() const {
|
|
357
363
|
case State::kIdle:
|
358
364
|
case State::kForwardedBatch:
|
359
365
|
case State::kCancelled:
|
366
|
+
case State::kCancelledButNotYetPolled:
|
360
367
|
return true;
|
361
368
|
case State::kGotBatchNoPipe:
|
362
369
|
case State::kGotBatch:
|
@@ -370,7 +377,7 @@ bool BaseCallData::SendMessage::IsIdle() const {
|
|
370
377
|
void BaseCallData::SendMessage::OnComplete(absl::Status status) {
|
371
378
|
Flusher flusher(base_);
|
372
379
|
if (grpc_trace_channel.enabled()) {
|
373
|
-
gpr_log(
|
380
|
+
gpr_log(GPR_INFO, "%s SendMessage.OnComplete st=%s status=%s",
|
374
381
|
base_->LogTag().c_str(), StateString(state_),
|
375
382
|
status.ToString().c_str());
|
376
383
|
}
|
@@ -381,9 +388,10 @@ void BaseCallData::SendMessage::OnComplete(absl::Status status) {
|
|
381
388
|
case State::kPushedToPipe:
|
382
389
|
case State::kGotBatch:
|
383
390
|
case State::kBatchCompleted:
|
384
|
-
|
391
|
+
Crash(absl::StrFormat("ILLEGAL STATE: %s", StateString(state_)));
|
385
392
|
break;
|
386
393
|
case State::kCancelled:
|
394
|
+
case State::kCancelledButNotYetPolled:
|
387
395
|
flusher.AddClosure(intercepted_on_complete_, status,
|
388
396
|
"forward after cancel");
|
389
397
|
break;
|
@@ -397,34 +405,35 @@ void BaseCallData::SendMessage::OnComplete(absl::Status status) {
|
|
397
405
|
|
398
406
|
void BaseCallData::SendMessage::Done(const ServerMetadata& metadata) {
|
399
407
|
if (grpc_trace_channel.enabled()) {
|
400
|
-
gpr_log(
|
408
|
+
gpr_log(GPR_INFO, "%s SendMessage.Done st=%s md=%s",
|
401
409
|
base_->LogTag().c_str(), StateString(state_),
|
402
410
|
metadata.DebugString().c_str());
|
403
411
|
}
|
404
412
|
switch (state_) {
|
405
413
|
case State::kCancelled:
|
414
|
+
case State::kCancelledButNotYetPolled:
|
406
415
|
break;
|
407
416
|
case State::kInitial:
|
408
417
|
case State::kIdle:
|
409
418
|
case State::kForwardedBatch:
|
410
|
-
state_ = State::
|
419
|
+
state_ = State::kCancelledButNotYetPolled;
|
411
420
|
break;
|
412
421
|
case State::kGotBatchNoPipe:
|
413
422
|
case State::kGotBatch:
|
414
423
|
case State::kBatchCompleted:
|
415
|
-
|
424
|
+
Crash(absl::StrFormat("ILLEGAL STATE: %s", StateString(state_)));
|
416
425
|
break;
|
417
426
|
case State::kPushedToPipe:
|
418
427
|
push_.reset();
|
419
428
|
next_.reset();
|
420
|
-
state_ = State::
|
429
|
+
state_ = State::kCancelledButNotYetPolled;
|
421
430
|
break;
|
422
431
|
}
|
423
432
|
}
|
424
433
|
|
425
434
|
void BaseCallData::SendMessage::WakeInsideCombiner(Flusher* flusher) {
|
426
435
|
if (grpc_trace_channel.enabled()) {
|
427
|
-
gpr_log(
|
436
|
+
gpr_log(GPR_INFO, "%s SendMessage.WakeInsideCombiner st=%s%s",
|
428
437
|
base_->LogTag().c_str(), StateString(state_),
|
429
438
|
state_ == State::kBatchCompleted
|
430
439
|
? absl::StrCat(" status=", completed_status_.ToString()).c_str()
|
@@ -437,6 +446,10 @@ void BaseCallData::SendMessage::WakeInsideCombiner(Flusher* flusher) {
|
|
437
446
|
case State::kForwardedBatch:
|
438
447
|
case State::kCancelled:
|
439
448
|
break;
|
449
|
+
case State::kCancelledButNotYetPolled:
|
450
|
+
pipe_.sender.Close();
|
451
|
+
state_ = State::kCancelled;
|
452
|
+
break;
|
440
453
|
case State::kGotBatch: {
|
441
454
|
state_ = State::kPushedToPipe;
|
442
455
|
auto message = GetContext<Arena>()->MakePooled<Message>();
|
@@ -451,7 +464,7 @@ void BaseCallData::SendMessage::WakeInsideCombiner(Flusher* flusher) {
|
|
451
464
|
auto r_push = (*push_)();
|
452
465
|
if (auto* p = absl::get_if<bool>(&r_push)) {
|
453
466
|
if (grpc_trace_channel.enabled()) {
|
454
|
-
gpr_log(
|
467
|
+
gpr_log(GPR_INFO,
|
455
468
|
"%s SendMessage.WakeInsideCombiner push complete, result=%s",
|
456
469
|
base_->LogTag().c_str(), *p ? "true" : "false");
|
457
470
|
}
|
@@ -465,7 +478,7 @@ void BaseCallData::SendMessage::WakeInsideCombiner(Flusher* flusher) {
|
|
465
478
|
auto r_next = (*next_)();
|
466
479
|
if (auto* p = absl::get_if<NextResult<MessageHandle>>(&r_next)) {
|
467
480
|
if (grpc_trace_channel.enabled()) {
|
468
|
-
gpr_log(
|
481
|
+
gpr_log(GPR_INFO,
|
469
482
|
"%s SendMessage.WakeInsideCombiner next complete, "
|
470
483
|
"result.has_value=%s",
|
471
484
|
base_->LogTag().c_str(), p->has_value() ? "true" : "false");
|
@@ -527,13 +540,19 @@ const char* BaseCallData::ReceiveMessage::StateString(State state) {
|
|
527
540
|
return "CANCELLED_WHILST_FORWARDING";
|
528
541
|
case State::kBatchCompletedButCancelled:
|
529
542
|
return "BATCH_COMPLETED_BUT_CANCELLED";
|
543
|
+
case State::kCancelledWhilstIdle:
|
544
|
+
return "CANCELLED_WHILST_IDLE";
|
545
|
+
case State::kCompletedWhilePulledFromPipe:
|
546
|
+
return "COMPLETED_WHILE_PULLED_FROM_PIPE";
|
547
|
+
case State::kCompletedWhilePushedToPipe:
|
548
|
+
return "COMPLETED_WHILE_PUSHED_TO_PIPE";
|
530
549
|
}
|
531
550
|
return "UNKNOWN";
|
532
551
|
}
|
533
552
|
|
534
553
|
void BaseCallData::ReceiveMessage::StartOp(CapturedBatch& batch) {
|
535
554
|
if (grpc_trace_channel.enabled()) {
|
536
|
-
gpr_log(
|
555
|
+
gpr_log(GPR_INFO, "%s ReceiveMessage.StartOp st=%s",
|
537
556
|
base_->LogTag().c_str(), StateString(state_));
|
538
557
|
}
|
539
558
|
switch (state_) {
|
@@ -551,7 +570,10 @@ void BaseCallData::ReceiveMessage::StartOp(CapturedBatch& batch) {
|
|
551
570
|
case State::kBatchCompletedNoPipe:
|
552
571
|
case State::kPushedToPipe:
|
553
572
|
case State::kPulledFromPipe:
|
554
|
-
|
573
|
+
case State::kCompletedWhilePulledFromPipe:
|
574
|
+
case State::kCompletedWhilePushedToPipe:
|
575
|
+
Crash(absl::StrFormat("ILLEGAL STATE: %s", StateString(state_)));
|
576
|
+
case State::kCancelledWhilstIdle:
|
555
577
|
case State::kCancelled:
|
556
578
|
return;
|
557
579
|
}
|
@@ -567,7 +589,7 @@ void BaseCallData::ReceiveMessage::StartOp(CapturedBatch& batch) {
|
|
567
589
|
|
568
590
|
void BaseCallData::ReceiveMessage::GotPipe(PipeSender<MessageHandle>* sender) {
|
569
591
|
if (grpc_trace_channel.enabled()) {
|
570
|
-
gpr_log(
|
592
|
+
gpr_log(GPR_INFO, "%s ReceiveMessage.GotPipe st=%s",
|
571
593
|
base_->LogTag().c_str(), StateString(state_));
|
572
594
|
}
|
573
595
|
switch (state_) {
|
@@ -586,9 +608,12 @@ void BaseCallData::ReceiveMessage::GotPipe(PipeSender<MessageHandle>* sender) {
|
|
586
608
|
case State::kBatchCompleted:
|
587
609
|
case State::kPushedToPipe:
|
588
610
|
case State::kPulledFromPipe:
|
611
|
+
case State::kCompletedWhilePulledFromPipe:
|
612
|
+
case State::kCompletedWhilePushedToPipe:
|
589
613
|
case State::kCancelledWhilstForwarding:
|
614
|
+
case State::kCancelledWhilstIdle:
|
590
615
|
case State::kBatchCompletedButCancelled:
|
591
|
-
|
616
|
+
Crash(absl::StrFormat("ILLEGAL STATE: %s", StateString(state_)));
|
592
617
|
case State::kCancelled:
|
593
618
|
return;
|
594
619
|
}
|
@@ -597,7 +622,7 @@ void BaseCallData::ReceiveMessage::GotPipe(PipeSender<MessageHandle>* sender) {
|
|
597
622
|
|
598
623
|
void BaseCallData::ReceiveMessage::OnComplete(absl::Status status) {
|
599
624
|
if (grpc_trace_channel.enabled()) {
|
600
|
-
gpr_log(
|
625
|
+
gpr_log(GPR_INFO, "%s ReceiveMessage.OnComplete st=%s status=%s",
|
601
626
|
base_->LogTag().c_str(), StateString(state_),
|
602
627
|
status.ToString().c_str());
|
603
628
|
}
|
@@ -610,7 +635,10 @@ void BaseCallData::ReceiveMessage::OnComplete(absl::Status status) {
|
|
610
635
|
case State::kBatchCompletedNoPipe:
|
611
636
|
case State::kCancelled:
|
612
637
|
case State::kBatchCompletedButCancelled:
|
613
|
-
|
638
|
+
case State::kCancelledWhilstIdle:
|
639
|
+
case State::kCompletedWhilePulledFromPipe:
|
640
|
+
case State::kCompletedWhilePushedToPipe:
|
641
|
+
Crash(absl::StrFormat("ILLEGAL STATE: %s", StateString(state_)));
|
614
642
|
case State::kForwardedBatchNoPipe:
|
615
643
|
state_ = State::kBatchCompletedNoPipe;
|
616
644
|
return;
|
@@ -630,34 +658,47 @@ void BaseCallData::ReceiveMessage::OnComplete(absl::Status status) {
|
|
630
658
|
void BaseCallData::ReceiveMessage::Done(const ServerMetadata& metadata,
|
631
659
|
Flusher* flusher) {
|
632
660
|
if (grpc_trace_channel.enabled()) {
|
633
|
-
gpr_log(
|
661
|
+
gpr_log(GPR_INFO, "%s ReceiveMessage.Done st=%s md=%s",
|
634
662
|
base_->LogTag().c_str(), StateString(state_),
|
635
663
|
metadata.DebugString().c_str());
|
636
664
|
}
|
637
665
|
switch (state_) {
|
638
666
|
case State::kInitial:
|
639
|
-
case State::kIdle:
|
640
667
|
state_ = State::kCancelled;
|
641
668
|
break;
|
669
|
+
case State::kIdle:
|
670
|
+
state_ = State::kCancelledWhilstIdle;
|
671
|
+
break;
|
642
672
|
case State::kForwardedBatch:
|
643
673
|
case State::kForwardedBatchNoPipe:
|
644
674
|
state_ = State::kCancelledWhilstForwarding;
|
645
675
|
break;
|
676
|
+
case State::kCompletedWhilePulledFromPipe:
|
677
|
+
case State::kCompletedWhilePushedToPipe:
|
646
678
|
case State::kPulledFromPipe:
|
647
679
|
case State::kPushedToPipe: {
|
648
680
|
auto status_code =
|
649
|
-
metadata.get(GrpcStatusMetadata()).value_or(
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
681
|
+
metadata.get(GrpcStatusMetadata()).value_or(GRPC_STATUS_UNKNOWN);
|
682
|
+
if (status_code == GRPC_STATUS_OK) {
|
683
|
+
if (state_ == State::kCompletedWhilePulledFromPipe ||
|
684
|
+
state_ == State::kPulledFromPipe) {
|
685
|
+
state_ = State::kCompletedWhilePulledFromPipe;
|
686
|
+
} else {
|
687
|
+
state_ = State::kCompletedWhilePushedToPipe;
|
688
|
+
}
|
689
|
+
} else {
|
690
|
+
push_.reset();
|
691
|
+
next_.reset();
|
692
|
+
flusher->AddClosure(intercepted_on_complete_,
|
693
|
+
StatusFromMetadata(metadata), "recv_message_done");
|
694
|
+
state_ = State::kCancelled;
|
695
|
+
}
|
656
696
|
} break;
|
657
697
|
case State::kBatchCompleted:
|
658
698
|
case State::kBatchCompletedNoPipe:
|
659
699
|
case State::kBatchCompletedButCancelled:
|
660
|
-
|
700
|
+
Crash(absl::StrFormat("ILLEGAL STATE: %s", StateString(state_)));
|
701
|
+
case State::kCancelledWhilstIdle:
|
661
702
|
case State::kCancelledWhilstForwarding:
|
662
703
|
case State::kCancelled:
|
663
704
|
break;
|
@@ -666,8 +707,10 @@ void BaseCallData::ReceiveMessage::Done(const ServerMetadata& metadata,
|
|
666
707
|
|
667
708
|
void BaseCallData::ReceiveMessage::WakeInsideCombiner(Flusher* flusher) {
|
668
709
|
if (grpc_trace_channel.enabled()) {
|
669
|
-
gpr_log(
|
670
|
-
|
710
|
+
gpr_log(GPR_INFO,
|
711
|
+
"%s ReceiveMessage.WakeInsideCombiner st=%s push?=%s next?=%s",
|
712
|
+
base_->LogTag().c_str(), StateString(state_),
|
713
|
+
push_.has_value() ? "yes" : "no", next_.has_value() ? "yes" : "no");
|
671
714
|
}
|
672
715
|
switch (state_) {
|
673
716
|
case State::kInitial:
|
@@ -678,6 +721,10 @@ void BaseCallData::ReceiveMessage::WakeInsideCombiner(Flusher* flusher) {
|
|
678
721
|
case State::kCancelledWhilstForwarding:
|
679
722
|
case State::kBatchCompletedNoPipe:
|
680
723
|
break;
|
724
|
+
case State::kCancelledWhilstIdle:
|
725
|
+
sender_->Close();
|
726
|
+
state_ = State::kCancelled;
|
727
|
+
break;
|
681
728
|
case State::kBatchCompletedButCancelled:
|
682
729
|
sender_->Close();
|
683
730
|
state_ = State::kCancelled;
|
@@ -701,10 +748,16 @@ void BaseCallData::ReceiveMessage::WakeInsideCombiner(Flusher* flusher) {
|
|
701
748
|
}
|
702
749
|
GPR_ASSERT(state_ == State::kPushedToPipe);
|
703
750
|
ABSL_FALLTHROUGH_INTENDED;
|
751
|
+
case State::kCompletedWhilePushedToPipe:
|
704
752
|
case State::kPushedToPipe: {
|
705
753
|
GPR_ASSERT(push_.has_value());
|
706
754
|
auto r_push = (*push_)();
|
707
755
|
if (auto* p = absl::get_if<bool>(&r_push)) {
|
756
|
+
if (grpc_trace_channel.enabled()) {
|
757
|
+
gpr_log(GPR_INFO,
|
758
|
+
"%s ReceiveMessage.WakeInsideCombiner push complete: %s",
|
759
|
+
base_->LogTag().c_str(), *p ? "true" : "false");
|
760
|
+
}
|
708
761
|
// We haven't pulled through yet, so this certainly shouldn't succeed.
|
709
762
|
GPR_ASSERT(!*p);
|
710
763
|
state_ = State::kCancelled;
|
@@ -713,11 +766,21 @@ void BaseCallData::ReceiveMessage::WakeInsideCombiner(Flusher* flusher) {
|
|
713
766
|
GPR_ASSERT(next_.has_value());
|
714
767
|
auto r_next = (*next_)();
|
715
768
|
if (auto* p = absl::get_if<NextResult<MessageHandle>>(&r_next)) {
|
769
|
+
if (grpc_trace_channel.enabled()) {
|
770
|
+
gpr_log(GPR_INFO,
|
771
|
+
"%s ReceiveMessage.WakeInsideCombiner next complete: %s",
|
772
|
+
base_->LogTag().c_str(),
|
773
|
+
p->has_value() ? "got message" : "end of stream");
|
774
|
+
}
|
716
775
|
next_.reset();
|
717
776
|
if (p->has_value()) {
|
718
777
|
*intercepted_slice_buffer_ = std::move(*(**p)->payload());
|
719
778
|
*intercepted_flags_ = (**p)->flags();
|
720
|
-
state_
|
779
|
+
if (state_ == State::kCompletedWhilePushedToPipe) {
|
780
|
+
state_ = State::kCompletedWhilePulledFromPipe;
|
781
|
+
} else {
|
782
|
+
state_ = State::kPulledFromPipe;
|
783
|
+
}
|
721
784
|
} else {
|
722
785
|
*intercepted_slice_buffer_ = absl::nullopt;
|
723
786
|
*intercepted_flags_ = 0;
|
@@ -725,12 +788,26 @@ void BaseCallData::ReceiveMessage::WakeInsideCombiner(Flusher* flusher) {
|
|
725
788
|
}
|
726
789
|
}
|
727
790
|
}
|
728
|
-
if (state_ != State::kPulledFromPipe
|
791
|
+
if (state_ != State::kPulledFromPipe &&
|
792
|
+
state_ != State::kCompletedWhilePulledFromPipe) {
|
793
|
+
break;
|
794
|
+
}
|
729
795
|
ABSL_FALLTHROUGH_INTENDED;
|
796
|
+
case State::kCompletedWhilePulledFromPipe:
|
730
797
|
case State::kPulledFromPipe: {
|
731
798
|
GPR_ASSERT(push_.has_value());
|
732
799
|
if (!absl::holds_alternative<Pending>((*push_)())) {
|
733
|
-
|
800
|
+
if (grpc_trace_channel.enabled()) {
|
801
|
+
gpr_log(GPR_INFO,
|
802
|
+
"%s ReceiveMessage.WakeInsideCombiner push complete",
|
803
|
+
base_->LogTag().c_str());
|
804
|
+
}
|
805
|
+
if (state_ == State::kCompletedWhilePulledFromPipe) {
|
806
|
+
sender_->Close();
|
807
|
+
state_ = State::kCancelled;
|
808
|
+
} else {
|
809
|
+
state_ = State::kIdle;
|
810
|
+
}
|
734
811
|
push_.reset();
|
735
812
|
flusher->AddClosure(std::exchange(intercepted_on_complete_, nullptr),
|
736
813
|
absl::OkStatus(), "recv_message");
|
@@ -816,7 +893,7 @@ class ClientCallData::PollContext {
|
|
816
893
|
|
817
894
|
void Run() {
|
818
895
|
if (grpc_trace_channel.enabled()) {
|
819
|
-
gpr_log(
|
896
|
+
gpr_log(GPR_INFO, "%s ClientCallData.PollContext.Run %s",
|
820
897
|
self_->LogTag().c_str(), self_->DebugString().c_str());
|
821
898
|
}
|
822
899
|
GPR_ASSERT(have_scoped_activity_);
|
@@ -878,7 +955,7 @@ class ClientCallData::PollContext {
|
|
878
955
|
// Poll the promise once since we're waiting for it.
|
879
956
|
Poll<ServerMetadataHandle> poll = self_->promise_();
|
880
957
|
if (grpc_trace_channel.enabled()) {
|
881
|
-
gpr_log(
|
958
|
+
gpr_log(GPR_INFO, "%s ClientCallData.PollContext.Run: poll=%s",
|
882
959
|
self_->LogTag().c_str(),
|
883
960
|
PollToString(poll, [](const ServerMetadataHandle& h) {
|
884
961
|
return h->DebugString();
|
@@ -911,7 +988,10 @@ class ClientCallData::PollContext {
|
|
911
988
|
case RecvInitialMetadata::
|
912
989
|
kRespondedToTrailingMetadataPriorToHook:
|
913
990
|
case RecvInitialMetadata::kRespondedButNeedToSetLatch:
|
914
|
-
|
991
|
+
Crash(absl::StrFormat("ILLEGAL STATE: %s",
|
992
|
+
RecvInitialMetadata::StateString(
|
993
|
+
self_->recv_initial_metadata_
|
994
|
+
->state))); // not reachable
|
915
995
|
break;
|
916
996
|
case RecvInitialMetadata::kHookedWaitingForLatch:
|
917
997
|
case RecvInitialMetadata::kHookedAndGotLatch:
|
@@ -947,7 +1027,10 @@ class ClientCallData::PollContext {
|
|
947
1027
|
case RecvInitialMetadata::
|
948
1028
|
kRespondedToTrailingMetadataPriorToHook:
|
949
1029
|
case RecvInitialMetadata::kRespondedButNeedToSetLatch:
|
950
|
-
|
1030
|
+
Crash(absl::StrFormat("ILLEGAL STATE: %s",
|
1031
|
+
RecvInitialMetadata::StateString(
|
1032
|
+
self_->recv_initial_metadata_
|
1033
|
+
->state))); // not reachable
|
951
1034
|
break;
|
952
1035
|
case RecvInitialMetadata::kCompleteWaitingForLatch:
|
953
1036
|
case RecvInitialMetadata::kCompleteAndGotLatch:
|
@@ -1132,7 +1215,7 @@ void ClientCallData::StartBatch(grpc_transport_stream_op_batch* b) {
|
|
1132
1215
|
Flusher flusher(this);
|
1133
1216
|
|
1134
1217
|
if (grpc_trace_channel.enabled()) {
|
1135
|
-
gpr_log(
|
1218
|
+
gpr_log(GPR_INFO, "%s StartBatch %s", LogTag().c_str(),
|
1136
1219
|
DebugString().c_str());
|
1137
1220
|
}
|
1138
1221
|
|
@@ -1174,7 +1257,10 @@ void ClientCallData::StartBatch(grpc_transport_stream_op_batch* b) {
|
|
1174
1257
|
case RecvInitialMetadata::kCompleteAndSetLatch:
|
1175
1258
|
case RecvInitialMetadata::kResponded:
|
1176
1259
|
case RecvInitialMetadata::kRespondedButNeedToSetLatch:
|
1177
|
-
|
1260
|
+
Crash(absl::StrFormat(
|
1261
|
+
"ILLEGAL STATE: %s",
|
1262
|
+
RecvInitialMetadata::StateString(
|
1263
|
+
recv_initial_metadata_->state))); // unreachable
|
1178
1264
|
}
|
1179
1265
|
if (hook) {
|
1180
1266
|
auto cb = [](void* ptr, grpc_error_handle error) {
|
@@ -1254,7 +1340,7 @@ void ClientCallData::StartBatch(grpc_transport_stream_op_batch* b) {
|
|
1254
1340
|
// Handle cancellation.
|
1255
1341
|
void ClientCallData::Cancel(grpc_error_handle error, Flusher* flusher) {
|
1256
1342
|
if (grpc_trace_channel.enabled()) {
|
1257
|
-
gpr_log(
|
1343
|
+
gpr_log(GPR_INFO, "%s Cancel error=%s", LogTag().c_str(),
|
1258
1344
|
error.ToString().c_str());
|
1259
1345
|
}
|
1260
1346
|
// Track the latest reason for cancellation.
|
@@ -1291,7 +1377,9 @@ void ClientCallData::Cancel(grpc_error_handle error, Flusher* flusher) {
|
|
1291
1377
|
case RecvInitialMetadata::kResponded:
|
1292
1378
|
break;
|
1293
1379
|
case RecvInitialMetadata::kRespondedButNeedToSetLatch:
|
1294
|
-
|
1380
|
+
Crash(absl::StrFormat(
|
1381
|
+
"ILLEGAL STATE: %s",
|
1382
|
+
RecvInitialMetadata::StateString(recv_initial_metadata_->state)));
|
1295
1383
|
break;
|
1296
1384
|
}
|
1297
1385
|
}
|
@@ -1324,7 +1412,7 @@ void ClientCallData::StartPromise(Flusher* flusher) {
|
|
1324
1412
|
|
1325
1413
|
void ClientCallData::RecvInitialMetadataReady(grpc_error_handle error) {
|
1326
1414
|
if (grpc_trace_channel.enabled()) {
|
1327
|
-
gpr_log(
|
1415
|
+
gpr_log(GPR_INFO, "%s ClientCallData.RecvInitialMetadataReady %s",
|
1328
1416
|
LogTag().c_str(), DebugString().c_str());
|
1329
1417
|
}
|
1330
1418
|
ScopedContext context(this);
|
@@ -1346,7 +1434,10 @@ void ClientCallData::RecvInitialMetadataReady(grpc_error_handle error) {
|
|
1346
1434
|
case RecvInitialMetadata::kResponded:
|
1347
1435
|
case RecvInitialMetadata::kRespondedToTrailingMetadataPriorToHook:
|
1348
1436
|
case RecvInitialMetadata::kRespondedButNeedToSetLatch:
|
1349
|
-
|
1437
|
+
Crash(absl::StrFormat(
|
1438
|
+
"ILLEGAL STATE: %s",
|
1439
|
+
RecvInitialMetadata::StateString(
|
1440
|
+
recv_initial_metadata_->state))); // unreachable
|
1350
1441
|
}
|
1351
1442
|
flusher.AddClosure(
|
1352
1443
|
std::exchange(recv_initial_metadata_->original_on_ready, nullptr),
|
@@ -1375,7 +1466,10 @@ void ClientCallData::RecvInitialMetadataReady(grpc_error_handle error) {
|
|
1375
1466
|
case RecvInitialMetadata::kResponded:
|
1376
1467
|
case RecvInitialMetadata::kRespondedToTrailingMetadataPriorToHook:
|
1377
1468
|
case RecvInitialMetadata::kRespondedButNeedToSetLatch:
|
1378
|
-
|
1469
|
+
Crash(absl::StrFormat(
|
1470
|
+
"ILLEGAL STATE: %s",
|
1471
|
+
RecvInitialMetadata::StateString(
|
1472
|
+
recv_initial_metadata_->state))); // unreachable
|
1379
1473
|
}
|
1380
1474
|
}
|
1381
1475
|
WakeInsideCombiner(&flusher);
|
@@ -1400,7 +1494,7 @@ void ClientCallData::HookRecvTrailingMetadata(CapturedBatch batch) {
|
|
1400
1494
|
ArenaPromise<ServerMetadataHandle> ClientCallData::MakeNextPromise(
|
1401
1495
|
CallArgs call_args) {
|
1402
1496
|
if (grpc_trace_channel.enabled()) {
|
1403
|
-
gpr_log(
|
1497
|
+
gpr_log(GPR_INFO, "%s ClientCallData.MakeNextPromise %s", LogTag().c_str(),
|
1404
1498
|
DebugString().c_str());
|
1405
1499
|
}
|
1406
1500
|
GPR_ASSERT(poll_ctx_ != nullptr);
|
@@ -1436,7 +1530,10 @@ ArenaPromise<ServerMetadataHandle> ClientCallData::MakeNextPromise(
|
|
1436
1530
|
case RecvInitialMetadata::kResponded:
|
1437
1531
|
case RecvInitialMetadata::kRespondedToTrailingMetadataPriorToHook:
|
1438
1532
|
case RecvInitialMetadata::kRespondedButNeedToSetLatch:
|
1439
|
-
|
1533
|
+
Crash(absl::StrFormat(
|
1534
|
+
"ILLEGAL STATE: %s",
|
1535
|
+
RecvInitialMetadata::StateString(
|
1536
|
+
recv_initial_metadata_->state))); // unreachable
|
1440
1537
|
}
|
1441
1538
|
} else {
|
1442
1539
|
GPR_ASSERT(call_args.server_initial_metadata == nullptr);
|
@@ -1461,7 +1558,7 @@ ArenaPromise<ServerMetadataHandle> ClientCallData::MakeNextPromise(
|
|
1461
1558
|
// application.
|
1462
1559
|
Poll<ServerMetadataHandle> ClientCallData::PollTrailingMetadata() {
|
1463
1560
|
if (grpc_trace_channel.enabled()) {
|
1464
|
-
gpr_log(
|
1561
|
+
gpr_log(GPR_INFO, "%s ClientCallData.PollTrailingMetadata %s",
|
1465
1562
|
LogTag().c_str(), DebugString().c_str());
|
1466
1563
|
}
|
1467
1564
|
GPR_ASSERT(poll_ctx_ != nullptr);
|
@@ -1498,7 +1595,8 @@ Poll<ServerMetadataHandle> ClientCallData::PollTrailingMetadata() {
|
|
1498
1595
|
case RecvTrailingState::kResponded:
|
1499
1596
|
// We've already responded to the caller: we can't do anything and we
|
1500
1597
|
// should never reach here.
|
1501
|
-
|
1598
|
+
Crash(absl::StrFormat("ILLEGAL STATE: %s",
|
1599
|
+
StateString(recv_trailing_state_)));
|
1502
1600
|
}
|
1503
1601
|
GPR_UNREACHABLE_CODE(return Pending{});
|
1504
1602
|
}
|
@@ -1511,9 +1609,11 @@ void ClientCallData::RecvTrailingMetadataReadyCallback(
|
|
1511
1609
|
void ClientCallData::RecvTrailingMetadataReady(grpc_error_handle error) {
|
1512
1610
|
Flusher flusher(this);
|
1513
1611
|
if (grpc_trace_channel.enabled()) {
|
1514
|
-
gpr_log(
|
1515
|
-
"%s ClientCallData.RecvTrailingMetadataReady
|
1516
|
-
|
1612
|
+
gpr_log(GPR_INFO,
|
1613
|
+
"%s ClientCallData.RecvTrailingMetadataReady "
|
1614
|
+
"recv_trailing_state=%s error=%s md=%s",
|
1615
|
+
LogTag().c_str(), StateString(recv_trailing_state_),
|
1616
|
+
error.ToString().c_str(),
|
1517
1617
|
recv_trailing_metadata_->DebugString().c_str());
|
1518
1618
|
}
|
1519
1619
|
// If we were cancelled prior to receiving this callback, we should simply
|
@@ -1536,6 +1636,12 @@ void ClientCallData::RecvTrailingMetadataReady(grpc_error_handle error) {
|
|
1536
1636
|
// Record that we've got the callback.
|
1537
1637
|
GPR_ASSERT(recv_trailing_state_ == RecvTrailingState::kForwarded);
|
1538
1638
|
recv_trailing_state_ = RecvTrailingState::kComplete;
|
1639
|
+
if (receive_message() != nullptr) {
|
1640
|
+
receive_message()->Done(*recv_trailing_metadata_, &flusher);
|
1641
|
+
}
|
1642
|
+
if (send_message() != nullptr) {
|
1643
|
+
send_message()->Done(*recv_trailing_metadata_);
|
1644
|
+
}
|
1539
1645
|
// Repoll the promise.
|
1540
1646
|
ScopedContext context(this);
|
1541
1647
|
WakeInsideCombiner(&flusher);
|
@@ -1700,7 +1806,7 @@ ServerCallData::ServerCallData(grpc_call_element* elem,
|
|
1700
1806
|
|
1701
1807
|
ServerCallData::~ServerCallData() {
|
1702
1808
|
if (grpc_trace_channel.enabled()) {
|
1703
|
-
gpr_log(
|
1809
|
+
gpr_log(GPR_INFO, "%s ~ServerCallData %s", LogTag().c_str(),
|
1704
1810
|
DebugString().c_str());
|
1705
1811
|
}
|
1706
1812
|
GPR_ASSERT(poll_ctx_ == nullptr);
|
@@ -1721,7 +1827,7 @@ void ServerCallData::StartBatch(grpc_transport_stream_op_batch* b) {
|
|
1721
1827
|
bool wake = false;
|
1722
1828
|
|
1723
1829
|
if (grpc_trace_channel.enabled()) {
|
1724
|
-
gpr_log(
|
1830
|
+
gpr_log(GPR_INFO, "%s StartBatch: %s", LogTag().c_str(),
|
1725
1831
|
DebugString().c_str());
|
1726
1832
|
}
|
1727
1833
|
|
@@ -1789,17 +1895,21 @@ void ServerCallData::StartBatch(grpc_transport_stream_op_batch* b) {
|
|
1789
1895
|
case SendInitialMetadata::kQueuedWaitingForLatch:
|
1790
1896
|
case SendInitialMetadata::kQueuedAndSetLatch:
|
1791
1897
|
case SendInitialMetadata::kForwarded:
|
1792
|
-
|
1898
|
+
Crash(absl::StrFormat(
|
1899
|
+
"ILLEGAL STATE: %s",
|
1900
|
+
SendInitialMetadata::StateString(
|
1901
|
+
send_initial_metadata_->state))); // not reachable
|
1793
1902
|
}
|
1794
1903
|
send_initial_metadata_->batch = batch;
|
1795
1904
|
wake = true;
|
1796
1905
|
}
|
1797
1906
|
|
1798
|
-
if (send_message() != nullptr && batch->send_message) {
|
1907
|
+
if (send_message() != nullptr && batch.is_captured() && batch->send_message) {
|
1799
1908
|
send_message()->StartOp(batch);
|
1800
1909
|
wake = true;
|
1801
1910
|
}
|
1802
|
-
if (receive_message() != nullptr && batch
|
1911
|
+
if (receive_message() != nullptr && batch.is_captured() &&
|
1912
|
+
batch->recv_message) {
|
1803
1913
|
receive_message()->StartOp(batch);
|
1804
1914
|
wake = true;
|
1805
1915
|
}
|
@@ -1809,6 +1919,11 @@ void ServerCallData::StartBatch(grpc_transport_stream_op_batch* b) {
|
|
1809
1919
|
switch (send_trailing_state_) {
|
1810
1920
|
case SendTrailingState::kInitial:
|
1811
1921
|
send_trailing_metadata_batch_ = batch;
|
1922
|
+
if (receive_message() != nullptr) {
|
1923
|
+
receive_message()->Done(
|
1924
|
+
*batch->payload->send_trailing_metadata.send_trailing_metadata,
|
1925
|
+
&flusher);
|
1926
|
+
}
|
1812
1927
|
if (send_message() != nullptr && !send_message()->IsIdle()) {
|
1813
1928
|
send_trailing_state_ = SendTrailingState::kQueuedBehindSendMessage;
|
1814
1929
|
} else {
|
@@ -1819,7 +1934,9 @@ void ServerCallData::StartBatch(grpc_transport_stream_op_batch* b) {
|
|
1819
1934
|
case SendTrailingState::kQueued:
|
1820
1935
|
case SendTrailingState::kQueuedBehindSendMessage:
|
1821
1936
|
case SendTrailingState::kForwarded:
|
1822
|
-
|
1937
|
+
Crash(
|
1938
|
+
absl::StrFormat("ILLEGAL STATE: %s",
|
1939
|
+
StateString(send_trailing_state_))); // unreachable
|
1823
1940
|
break;
|
1824
1941
|
case SendTrailingState::kCancelled:
|
1825
1942
|
batch.CancelWith(
|
@@ -1897,7 +2014,10 @@ ArenaPromise<ServerMetadataHandle> ServerCallData::MakeNextPromise(
|
|
1897
2014
|
case SendInitialMetadata::kQueuedAndGotLatch:
|
1898
2015
|
case SendInitialMetadata::kQueuedAndSetLatch:
|
1899
2016
|
case SendInitialMetadata::kForwarded:
|
1900
|
-
|
2017
|
+
Crash(absl::StrFormat(
|
2018
|
+
"ILLEGAL STATE: %s",
|
2019
|
+
SendInitialMetadata::StateString(
|
2020
|
+
send_initial_metadata_->state))); // not reachable
|
1901
2021
|
break;
|
1902
2022
|
case SendInitialMetadata::kQueuedWaitingForLatch:
|
1903
2023
|
send_initial_metadata_->state = SendInitialMetadata::kQueuedAndGotLatch;
|
@@ -1934,7 +2054,8 @@ Poll<ServerMetadataHandle> ServerCallData::PollTrailingMetadata() {
|
|
1934
2054
|
return WrapMetadata(send_trailing_metadata_batch_->payload
|
1935
2055
|
->send_trailing_metadata.send_trailing_metadata);
|
1936
2056
|
case SendTrailingState::kForwarded:
|
1937
|
-
|
2057
|
+
Crash(absl::StrFormat("ILLEGAL STATE: %s",
|
2058
|
+
StateString(send_trailing_state_))); // unreachable
|
1938
2059
|
case SendTrailingState::kCancelled:
|
1939
2060
|
// We could translate cancelled_error to metadata and return it... BUT
|
1940
2061
|
// we're not gonna be running much longer and the results going to be
|
@@ -1952,7 +2073,7 @@ void ServerCallData::RecvTrailingMetadataReadyCallback(
|
|
1952
2073
|
|
1953
2074
|
void ServerCallData::RecvTrailingMetadataReady(grpc_error_handle error) {
|
1954
2075
|
if (grpc_trace_channel.enabled()) {
|
1955
|
-
gpr_log(
|
2076
|
+
gpr_log(GPR_INFO, "%s: RecvTrailingMetadataReady error=%s md=%s",
|
1956
2077
|
LogTag().c_str(), error.ToString().c_str(),
|
1957
2078
|
recv_trailing_metadata_->DebugString().c_str());
|
1958
2079
|
}
|
@@ -1971,7 +2092,7 @@ void ServerCallData::RecvInitialMetadataReadyCallback(void* arg,
|
|
1971
2092
|
void ServerCallData::RecvInitialMetadataReady(grpc_error_handle error) {
|
1972
2093
|
Flusher flusher(this);
|
1973
2094
|
if (grpc_trace_channel.enabled()) {
|
1974
|
-
gpr_log(
|
2095
|
+
gpr_log(GPR_INFO, "%s: RecvInitialMetadataReady %s", LogTag().c_str(),
|
1975
2096
|
error.ToString().c_str());
|
1976
2097
|
}
|
1977
2098
|
GPR_ASSERT(recv_initial_state_ == RecvInitialState::kForwarded);
|
@@ -2033,7 +2154,7 @@ std::string ServerCallData::DebugString() const {
|
|
2033
2154
|
void ServerCallData::WakeInsideCombiner(Flusher* flusher) {
|
2034
2155
|
PollContext poll_ctx(this, flusher);
|
2035
2156
|
if (grpc_trace_channel.enabled()) {
|
2036
|
-
gpr_log(
|
2157
|
+
gpr_log(GPR_INFO, "%s: WakeInsideCombiner %s", LogTag().c_str(),
|
2037
2158
|
DebugString().c_str());
|
2038
2159
|
}
|
2039
2160
|
if (send_initial_metadata_ != nullptr &&
|
@@ -2059,7 +2180,7 @@ void ServerCallData::WakeInsideCombiner(Flusher* flusher) {
|
|
2059
2180
|
Poll<ServerMetadataHandle> poll;
|
2060
2181
|
poll = promise_();
|
2061
2182
|
if (grpc_trace_channel.enabled()) {
|
2062
|
-
gpr_log(
|
2183
|
+
gpr_log(GPR_INFO, "%s: WakeInsideCombiner poll=%s", LogTag().c_str(),
|
2063
2184
|
PollToString(poll, [](const ServerMetadataHandle& h) {
|
2064
2185
|
return h->DebugString();
|
2065
2186
|
}).c_str());
|
@@ -2103,7 +2224,9 @@ void ServerCallData::WakeInsideCombiner(Flusher* flusher) {
|
|
2103
2224
|
send_trailing_state_ = SendTrailingState::kForwarded;
|
2104
2225
|
} break;
|
2105
2226
|
case SendTrailingState::kForwarded:
|
2106
|
-
|
2227
|
+
Crash(absl::StrFormat(
|
2228
|
+
"ILLEGAL STATE: %s",
|
2229
|
+
StateString(send_trailing_state_))); // unreachable
|
2107
2230
|
break;
|
2108
2231
|
case SendTrailingState::kInitial: {
|
2109
2232
|
GPR_ASSERT(*md->get_pointer(GrpcStatusMetadata()) != GRPC_STATUS_OK);
|