Do not delete QuicConfig in YperfSession. Tested with blaze test //vr/c9/playability/yperf:yperf_channel_v2_test --config=tsan --test_arg='--gfe2_invert_all_feature_flags_for_test=true' PiperOrigin-RevId: 867828783
diff --git a/quiche/quic/core/quic_session.cc b/quiche/quic/core/quic_session.cc index 483e800..bfb3e54 100644 --- a/quiche/quic/core/quic_session.cc +++ b/quiche/quic/core/quic_session.cc
@@ -39,6 +39,7 @@ #include "quiche/quic/platform/api/quic_flags.h" #include "quiche/quic/platform/api/quic_logging.h" #include "quiche/quic/platform/api/quic_server_stats.h" +#include "quiche/common/platform/api/quiche_flag_utils.h" #include "quiche/common/platform/api/quiche_logging.h" #include "quiche/common/quiche_callbacks.h" #include "quiche/common/quiche_text_utils.h" @@ -150,6 +151,7 @@ received_max_bidirectional_streams_ = config_->ReceivedMaxBidirectionalStreams(); idle_network_timeout_ = config_->IdleNetworkTimeout(); + QUICHE_RELOADABLE_FLAG_COUNT(quic_delete_config); config_.reset(); }
diff --git a/quiche/quic/core/quic_session.h b/quiche/quic/core/quic_session.h index 850d741..f205c64 100644 --- a/quiche/quic/core/quic_session.h +++ b/quiche/quic/core/quic_session.h
@@ -240,11 +240,15 @@ return config_->IdleNetworkTimeout(); } + void set_delete_config(bool delete_config) { + delete_config_ = delete_config; + } + private: std::unique_ptr<QuicConfig> config_; // TODO(b/461482627): Delete this when retiring the flag. bool config_deleted_ = false; - const bool delete_config_ = GetQuicReloadableFlag(quic_delete_config); + bool delete_config_ = GetQuicReloadableFlag(quic_delete_config); bool has_received_initial_stream_flow_control_window_bytes_ = false; bool has_received_initial_max_stream_data_bytes_unidirectional_ = false; @@ -1061,6 +1065,10 @@ bool enforce_immediate_goaway() const { return enforce_immediate_goaway_; } + void set_delete_config(bool delete_config) { + saved_config_.set_delete_config(delete_config); + } + private: friend class test::QuicSessionPeer;