Migration from QUIC_BUG to QUIC_BUG_V2(bug_id).
Per go/gfe-bug-improvements GFE_BUGs are getting stable IDs to allow for monitoring and alerting. Existing QUIC_BUG instances are changed to have quic_bug_n_m ID, where n is unique for each file, and m is a counter within each file, so we get QUIC_BUG_V2(quic_bug_123_2)
PiperOrigin-RevId: 362083283
Change-Id: Ice330337265cec3dc4b81fa4ff50d58fb52f3d34
diff --git a/quic/core/legacy_quic_stream_id_manager.cc b/quic/core/legacy_quic_stream_id_manager.cc
index 07403f8..7a5cbc4 100644
--- a/quic/core/legacy_quic_stream_id_manager.cc
+++ b/quic/core/legacy_quic_stream_id_manager.cc
@@ -107,11 +107,11 @@
void LegacyQuicStreamIdManager::OnStreamClosed(bool is_incoming) {
if (is_incoming) {
- QUIC_BUG_IF(num_open_incoming_streams_ == 0);
+ QUIC_BUG_IF_V2(quic_bug_12720_1, num_open_incoming_streams_ == 0);
--num_open_incoming_streams_;
return;
}
- QUIC_BUG_IF(num_open_outgoing_streams_ == 0);
+ QUIC_BUG_IF_V2(quic_bug_12720_2, num_open_outgoing_streams_ == 0);
--num_open_outgoing_streams_;
}
diff --git a/quic/core/quic_buffered_packet_store.cc b/quic/core/quic_buffered_packet_store.cc
index 8fa53b0..3ba988b 100644
--- a/quic/core/quic_buffered_packet_store.cc
+++ b/quic/core/quic_buffered_packet_store.cc
@@ -88,13 +88,16 @@
bool is_chlo,
const std::vector<std::string>& alpns,
const ParsedQuicVersion& version) {
- QUIC_BUG_IF(!GetQuicFlag(FLAGS_quic_allow_chlo_buffering))
+ QUIC_BUG_IF_V2(quic_bug_12410_1,
+ !GetQuicFlag(FLAGS_quic_allow_chlo_buffering))
<< "Shouldn't buffer packets if disabled via flag.";
- QUIC_BUG_IF(is_chlo && QuicContainsKey(connections_with_chlo_, connection_id))
+ QUIC_BUG_IF_V2(
+ quic_bug_12410_2,
+ is_chlo && QuicContainsKey(connections_with_chlo_, connection_id))
<< "Shouldn't buffer duplicated CHLO on connection " << connection_id;
- QUIC_BUG_IF(!is_chlo && !alpns.empty())
+ QUIC_BUG_IF_V2(quic_bug_12410_3, !is_chlo && !alpns.empty())
<< "Shouldn't have an ALPN defined for a non-CHLO packet.";
- QUIC_BUG_IF(is_chlo && !version.IsKnown())
+ QUIC_BUG_IF_V2(quic_bug_12410_4, is_chlo && !version.IsKnown())
<< "Should have version for CHLO packet.";
const bool is_first_packet =
@@ -153,7 +156,8 @@
queue.tls_chlo_extractor.IngestPacket(version, packet);
// Since this is the first packet and it's not a CHLO, the
// TlsChloExtractor should not have the entire CHLO.
- QUIC_BUG_IF(queue.tls_chlo_extractor.HasParsedFullChlo())
+ QUIC_BUG_IF_V2(quic_bug_12410_5,
+ queue.tls_chlo_extractor.HasParsedFullChlo())
<< "First packet in list should not contain full CHLO";
}
// TODO(b/154857081) Reorder CHLO packets ahead of other ones.
diff --git a/quic/core/quic_config.cc b/quic/core/quic_config.cc
index 76145c0..44e2ded 100644
--- a/quic/core/quic_config.cc
+++ b/quic/core/quic_config.cc
@@ -72,7 +72,7 @@
}
uint32_t QuicFixedUint32::GetSendValue() const {
- QUIC_BUG_IF(!has_send_value_)
+ QUIC_BUG_IF_V2(quic_bug_12743_1, !has_send_value_)
<< "No send value to get for tag:" << QuicTagToString(tag_);
return send_value_;
}
@@ -87,7 +87,7 @@
}
uint32_t QuicFixedUint32::GetReceivedValue() const {
- QUIC_BUG_IF(!has_receive_value_)
+ QUIC_BUG_IF_V2(quic_bug_12743_2, !has_receive_value_)
<< "No receive value to get for tag:" << QuicTagToString(tag_);
return receive_value_;
}
@@ -99,7 +99,7 @@
void QuicFixedUint32::ToHandshakeMessage(CryptoHandshakeMessage* out) const {
if (tag_ == 0) {
- QUIC_BUG
+ QUIC_BUG_V2(quic_bug_12743_3)
<< "This parameter does not support writing to CryptoHandshakeMessage";
return;
}
@@ -236,7 +236,7 @@
}
QuicUint128 QuicFixedUint128::GetSendValue() const {
- QUIC_BUG_IF(!has_send_value_)
+ QUIC_BUG_IF_V2(quic_bug_12743_4, !has_send_value_)
<< "No send value to get for tag:" << QuicTagToString(tag_);
return send_value_;
}
@@ -251,7 +251,7 @@
}
QuicUint128 QuicFixedUint128::GetReceivedValue() const {
- QUIC_BUG_IF(!has_receive_value_)
+ QUIC_BUG_IF_V2(quic_bug_12743_5, !has_receive_value_)
<< "No receive value to get for tag:" << QuicTagToString(tag_);
return receive_value_;
}
@@ -306,7 +306,7 @@
}
const QuicTagVector& QuicFixedTagVector::GetSendValues() const {
- QUIC_BUG_IF(!has_send_values_)
+ QUIC_BUG_IF_V2(quic_bug_12743_6, !has_send_values_)
<< "No send values to get for tag:" << QuicTagToString(tag_);
return send_values_;
}
@@ -321,7 +321,7 @@
}
const QuicTagVector& QuicFixedTagVector::GetReceivedValues() const {
- QUIC_BUG_IF(!has_receive_values_)
+ QUIC_BUG_IF_V2(quic_bug_12743_7, !has_receive_values_)
<< "No receive value to get for tag:" << QuicTagToString(tag_);
return receive_values_;
}
@@ -377,7 +377,7 @@
}
const QuicSocketAddress& QuicFixedSocketAddress::GetSendValue() const {
- QUIC_BUG_IF(!has_send_value_)
+ QUIC_BUG_IF_V2(quic_bug_12743_8, !has_send_value_)
<< "No send value to get for tag:" << QuicTagToString(tag_);
return send_value_;
}
@@ -392,7 +392,7 @@
}
const QuicSocketAddress& QuicFixedSocketAddress::GetReceivedValue() const {
- QUIC_BUG_IF(!has_receive_value_)
+ QUIC_BUG_IF_V2(quic_bug_12743_9, !has_receive_value_)
<< "No receive value to get for tag:" << QuicTagToString(tag_);
return receive_value_;
}
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index 271576a..fe7ac45 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -377,7 +377,8 @@
count_bytes_on_alternative_path_separately_ &&
update_packet_content_returns_connected_ &&
GetQuicReloadableFlag(quic_server_reverse_validate_new_path)) {
- QUIC_BUG_IF(!start_peer_migration_earlier_ && send_path_response_);
+ QUIC_BUG_IF_V2(quic_bug_12714_1,
+ !start_peer_migration_earlier_ && send_path_response_);
QUICHE_DCHECK(perspective_ == Perspective::IS_CLIENT ||
default_path_.self_address.IsInitialized());
@@ -399,8 +400,9 @@
<< server_connection_id
<< " and version: " << ParsedQuicVersionToString(version());
- QUIC_BUG_IF(!QuicUtils::IsConnectionIdValidForVersion(server_connection_id,
- transport_version()))
+ QUIC_BUG_IF_V2(quic_bug_12714_2,
+ !QuicUtils::IsConnectionIdValidForVersion(server_connection_id,
+ transport_version()))
<< "QuicConnection: attempted to use server connection ID "
<< server_connection_id << " which is invalid with version " << version();
framer_.set_visitor(this);
@@ -1300,7 +1302,7 @@
}
bool QuicConnection::OnStreamFrame(const QuicStreamFrame& frame) {
- QUIC_BUG_IF(!connected_)
+ QUIC_BUG_IF_V2(quic_bug_12714_3, !connected_)
<< "Processing STREAM frame when connection is closed. Last frame: "
<< most_recent_frame_type_;
@@ -1340,7 +1342,7 @@
}
bool QuicConnection::OnCryptoFrame(const QuicCryptoFrame& frame) {
- QUIC_BUG_IF(!connected_)
+ QUIC_BUG_IF_V2(quic_bug_12714_4, !connected_)
<< "Processing CRYPTO frame when connection is closed. Last frame: "
<< most_recent_frame_type_;
@@ -1360,7 +1362,7 @@
bool QuicConnection::OnAckFrameStart(QuicPacketNumber largest_acked,
QuicTime::Delta ack_delay_time) {
- QUIC_BUG_IF(!connected_)
+ QUIC_BUG_IF_V2(quic_bug_12714_5, !connected_)
<< "Processing ACK frame start when connection is closed. Last frame: "
<< most_recent_frame_type_;
@@ -1408,7 +1410,7 @@
}
bool QuicConnection::OnAckRange(QuicPacketNumber start, QuicPacketNumber end) {
- QUIC_BUG_IF(!connected_)
+ QUIC_BUG_IF_V2(quic_bug_12714_6, !connected_)
<< "Processing ACK frame range when connection is closed. Last frame: "
<< most_recent_frame_type_;
QUIC_DVLOG(1) << ENDPOINT << "OnAckRange: [" << start << ", " << end << ")";
@@ -1443,7 +1445,7 @@
}
bool QuicConnection::OnAckFrameEnd(QuicPacketNumber start) {
- QUIC_BUG_IF(!connected_)
+ QUIC_BUG_IF_V2(quic_bug_12714_7, !connected_)
<< "Processing ACK frame end when connection is closed. Last frame: "
<< most_recent_frame_type_;
QUIC_DVLOG(1) << ENDPOINT << "OnAckFrameEnd, start: " << start;
@@ -1504,7 +1506,7 @@
}
bool QuicConnection::OnStopWaitingFrame(const QuicStopWaitingFrame& frame) {
- QUIC_BUG_IF(!connected_)
+ QUIC_BUG_IF_V2(quic_bug_12714_8, !connected_)
<< "Processing STOP_WAITING frame when connection is closed. Last frame: "
<< most_recent_frame_type_;
@@ -1542,7 +1544,7 @@
}
bool QuicConnection::OnPaddingFrame(const QuicPaddingFrame& frame) {
- QUIC_BUG_IF(!connected_)
+ QUIC_BUG_IF_V2(quic_bug_12714_9, !connected_)
<< "Processing PADDING frame when connection is closed. Last frame: "
<< most_recent_frame_type_;
if (!UpdatePacketContent(PADDING_FRAME)) {
@@ -1556,7 +1558,7 @@
}
bool QuicConnection::OnPingFrame(const QuicPingFrame& frame) {
- QUIC_BUG_IF(!connected_)
+ QUIC_BUG_IF_V2(quic_bug_12714_10, !connected_)
<< "Processing PING frame when connection is closed. Last frame: "
<< most_recent_frame_type_;
if (!UpdatePacketContent(PING_FRAME)) {
@@ -1600,7 +1602,7 @@
}
bool QuicConnection::OnRstStreamFrame(const QuicRstStreamFrame& frame) {
- QUIC_BUG_IF(!connected_)
+ QUIC_BUG_IF_V2(quic_bug_12714_11, !connected_)
<< "Processing RST_STREAM frame when connection is closed. Last frame: "
<< most_recent_frame_type_;
@@ -1623,7 +1625,7 @@
}
bool QuicConnection::OnStopSendingFrame(const QuicStopSendingFrame& frame) {
- QUIC_BUG_IF(!connected_)
+ QUIC_BUG_IF_V2(quic_bug_12714_12, !connected_)
<< "Processing STOP_SENDING frame when connection is closed. Last frame: "
<< most_recent_frame_type_;
@@ -1809,7 +1811,7 @@
}
bool QuicConnection::OnMaxStreamsFrame(const QuicMaxStreamsFrame& frame) {
- QUIC_BUG_IF(!connected_)
+ QUIC_BUG_IF_V2(quic_bug_12714_13, !connected_)
<< "Processing MAX_STREAMS frame when connection is closed. Last frame: "
<< most_recent_frame_type_;
if (!UpdatePacketContent(MAX_STREAMS_FRAME)) {
@@ -1839,7 +1841,7 @@
}
bool QuicConnection::OnGoAwayFrame(const QuicGoAwayFrame& frame) {
- QUIC_BUG_IF(!connected_)
+ QUIC_BUG_IF_V2(quic_bug_12714_14, !connected_)
<< "Processing GOAWAY frame when connection is closed. Last frame: "
<< most_recent_frame_type_;
@@ -1960,7 +1962,7 @@
}
bool QuicConnection::OnNewTokenFrame(const QuicNewTokenFrame& frame) {
- QUIC_BUG_IF(!connected_)
+ QUIC_BUG_IF_V2(quic_bug_12714_15, !connected_)
<< "Processing NEW_TOKEN frame when connection is closed. Last frame: "
<< most_recent_frame_type_;
if (!UpdatePacketContent(NEW_TOKEN_FRAME)) {
@@ -1985,7 +1987,7 @@
}
bool QuicConnection::OnMessageFrame(const QuicMessageFrame& frame) {
- QUIC_BUG_IF(!connected_)
+ QUIC_BUG_IF_V2(quic_bug_12714_16, !connected_)
<< "Processing MESSAGE frame when connection is closed. Last frame: "
<< most_recent_frame_type_;
@@ -2067,7 +2069,7 @@
}
bool QuicConnection::OnBlockedFrame(const QuicBlockedFrame& frame) {
- QUIC_BUG_IF(!connected_)
+ QUIC_BUG_IF_V2(quic_bug_12714_17, !connected_)
<< "Processing BLOCKED frame when connection is closed. Last frame was "
<< most_recent_frame_type_;
@@ -2211,7 +2213,7 @@
// This packet is received on a probing path. Do not close connection.
if (IsAlternativePath(last_packet_destination_address_,
GetEffectivePeerAddressFromCurrentPacket())) {
- QUIC_BUG_IF(alternative_path_.validated)
+ QUIC_BUG_IF_V2(quic_bug_12714_18, alternative_path_.validated)
<< "STATELESS_RESET received on alternate path after it's "
"validated.";
path_validator_.CancelPathValidation();
@@ -2360,9 +2362,9 @@
return;
}
QUICHE_DCHECK(!legacy_version_encapsulation_in_progress_);
- QUIC_BUG_IF(!packet_creator_.CanSetMaxPacketLength())
+ QUIC_BUG_IF_V2(quic_bug_12714_19, !packet_creator_.CanSetMaxPacketLength())
<< "Cannot activate Legacy Version Encapsulation mid-packet";
- QUIC_BUG_IF(coalesced_packet_.length() != 0u)
+ QUIC_BUG_IF_V2(quic_bug_12714_20, coalesced_packet_.length() != 0u)
<< "Cannot activate Legacy Version Encapsulation mid-coalesced-packet";
legacy_version_encapsulation_in_progress_ = true;
MaybeUpdatePacketCreatorMaxPacketLengthAndPadding();
@@ -2645,7 +2647,7 @@
<< " bytes:" << std::endl
<< quiche::QuicheTextUtils::HexDump(
absl::string_view(packet.data(), packet.length()));
- QUIC_BUG_IF(current_packet_data_ != nullptr)
+ QUIC_BUG_IF_V2(quic_bug_12714_21, current_packet_data_ != nullptr)
<< "ProcessUdpPacket must not be called while processing a packet.";
if (debug_visitor_ != nullptr) {
debug_visitor_->OnPacketReceived(self_address, peer_address, packet);
@@ -2839,8 +2841,9 @@
peer_issued_cid_manager_ = nullptr;
} else {
if (peer_issued_cid_manager_ != nullptr) {
- QUIC_BUG_IF(!peer_issued_cid_manager_->IsConnectionIdActive(
- server_connection_id_))
+ QUIC_BUG_IF_V2(quic_bug_12714_22,
+ !peer_issued_cid_manager_->IsConnectionIdActive(
+ server_connection_id_))
<< "Connection ID replaced header is no longer active. old id: "
<< server_connection_id_ << " new_id: " << new_server_connection_id;
peer_issued_cid_manager_->ReplaceConnectionId(server_connection_id_,
@@ -3071,7 +3074,8 @@
QUIC_DVLOG(1) << ENDPOINT << "Bundle an ACK opportunistically";
QuicFrame updated_ack_frame = GetUpdatedAckFrame();
- QUIC_BUG_IF(updated_ack_frame.ack_frame->packets.Empty())
+ QUIC_BUG_IF_V2(quic_bug_12714_23,
+ updated_ack_frame.ack_frame->packets.Empty())
<< ENDPOINT << "Attempted to opportunistically bundle an empty "
<< encryption_level_ << " ACK, " << (has_pending_ack ? "" : "!")
<< "has_pending_ack, stop_waiting_count_ " << stop_waiting_count_;
@@ -3241,7 +3245,8 @@
++stats_.packets_discarded;
return true;
case COALESCE:
- QUIC_BUG_IF(!version().CanSendCoalescedPackets() || coalescing_done_);
+ QUIC_BUG_IF_V2(quic_bug_12714_24,
+ !version().CanSendCoalescedPackets() || coalescing_done_);
if (!coalesced_packet_.MaybeCoalescePacket(
*packet, self_address(), send_to_address,
helper_->GetStreamSendBufferAllocator(),
@@ -3463,9 +3468,10 @@
const bool in_flight = sent_packet_manager_.OnPacketSent(
packet, packet_send_time, packet->transmission_type,
IsRetransmittable(*packet), /*measure_rtt=*/send_on_current_path);
- QUIC_BUG_IF(default_enable_5rto_blackhole_detection_ &&
- blackhole_detector_.IsDetectionInProgress() &&
- !sent_packet_manager_.HasInFlightPackets())
+ QUIC_BUG_IF_V2(quic_bug_12714_25,
+ default_enable_5rto_blackhole_detection_ &&
+ blackhole_detector_.IsDetectionInProgress() &&
+ !sent_packet_manager_.HasInFlightPackets())
<< ENDPOINT
<< "Trying to start blackhole detection without no bytes in flight";
@@ -3529,7 +3535,7 @@
}
if (packet.encryption_level != ENCRYPTION_FORWARD_SECURE) {
- QUIC_BUG
+ QUIC_BUG_V2(quic_bug_12714_26)
<< "MaybeHandleAeadConfidentialityLimits called on non 1-RTT packet";
return false;
}
@@ -4001,10 +4007,11 @@
// When timer fires in TLP/RTO/PTO mode, ensure 1) at least one packet is
// created, or there is data to send and available credit (such that
// packets will be sent eventually).
- QUIC_BUG_IF(packet_creator_.packet_number() ==
- previous_created_packet_number &&
- (!visitor_->WillingAndAbleToWrite() ||
- sent_packet_manager_.pending_timer_transmission_count() == 0u))
+ QUIC_BUG_IF_V2(
+ quic_bug_12714_27,
+ packet_creator_.packet_number() == previous_created_packet_number &&
+ (!visitor_->WillingAndAbleToWrite() ||
+ sent_packet_manager_.pending_timer_transmission_count() == 0u))
<< "retransmission_mode: " << retransmission_mode
<< ", packet_number: " << packet_creator_.packet_number()
<< ", session has data to write: " << visitor_->WillingAndAbleToWrite()
@@ -4048,7 +4055,8 @@
}
encryption_level_ = level;
packet_creator_.set_encryption_level(level);
- QUIC_BUG_IF(!framer_.HasEncrypterOfEncryptionLevel(level))
+ QUIC_BUG_IF_V2(quic_bug_12714_28,
+ !framer_.HasEncrypterOfEncryptionLevel(level))
<< ENDPOINT << "Trying to set encryption level to "
<< EncryptionLevelToString(level) << " while the key is missing";
@@ -4465,7 +4473,7 @@
void QuicConnection::SetNetworkTimeouts(QuicTime::Delta handshake_timeout,
QuicTime::Delta idle_timeout) {
- QUIC_BUG_IF(idle_timeout > handshake_timeout)
+ QUIC_BUG_IF_V2(quic_bug_12714_29, idle_timeout > handshake_timeout)
<< "idle_timeout:" << idle_timeout.ToMilliseconds()
<< " handshake_timeout:" << handshake_timeout.ToMilliseconds();
// Adjust the idle timeout on client and server to prevent clients from
@@ -5295,7 +5303,8 @@
// be overridden.
QUIC_DVLOG(1) << "The connection hasn't finished handshake or is "
"validating a recent peer address change.";
- QUIC_BUG_IF(IsHandshakeConfirmed() && !alternative_path_.validated)
+ QUIC_BUG_IF_V2(quic_bug_12714_30,
+ IsHandshakeConfirmed() && !alternative_path_.validated)
<< "No validated peer address to send after handshake comfirmed.";
} else if (!IsReceivedPeerAddressValidated()) {
// Only override alternative path state upon receiving a PATH_CHALLENGE
@@ -5531,7 +5540,8 @@
}
if (IsHandshakeComplete()) {
// A forward secure packet has been received.
- QUIC_BUG_IF(encryption_level_ != ENCRYPTION_FORWARD_SECURE)
+ QUIC_BUG_IF_V2(quic_bug_12714_31,
+ encryption_level_ != ENCRYPTION_FORWARD_SECURE)
<< ENDPOINT << "Unexpected connection close encryption level "
<< encryption_level_;
return ENCRYPTION_FORWARD_SECURE;
@@ -5592,7 +5602,7 @@
ack_alarm_->Cancel();
QuicTime earliest_ack_timeout =
uber_received_packet_manager_.GetEarliestAckTimeout();
- QUIC_BUG_IF(!earliest_ack_timeout.IsInitialized());
+ QUIC_BUG_IF_V2(quic_bug_12714_32, !earliest_ack_timeout.IsInitialized());
MaybeBundleCryptoDataWithAcks();
earliest_ack_timeout = uber_received_packet_manager_.GetEarliestAckTimeout();
if (!earliest_ack_timeout.IsInitialized()) {
@@ -5633,7 +5643,8 @@
const bool flushed = packet_creator_.FlushAckFrame(frames);
if (!flushed) {
// Connection is write blocked.
- QUIC_BUG_IF(!writer_->IsWriteBlocked() && !LimitedByAmplificationFactor())
+ QUIC_BUG_IF_V2(quic_bug_12714_33, !writer_->IsWriteBlocked() &&
+ !LimitedByAmplificationFactor())
<< "Writer not blocked and not throttled by amplification factor, "
"but ACK not flushed for packet space:"
<< i;
@@ -5721,7 +5732,7 @@
return false;
}
if (!version().CanSendCoalescedPackets()) {
- QUIC_BUG_IF(coalesced_packet_.length() > 0);
+ QUIC_BUG_IF_V2(quic_bug_12714_34, coalesced_packet_.length() > 0);
return true;
}
if (coalesced_packet_.ContainsPacketOfEncryptionLevel(ENCRYPTION_INITIAL) &&
@@ -5849,9 +5860,10 @@
// Stop detections in quiecense.
blackhole_detector_.StopDetection();
}
- QUIC_BUG_IF(default_enable_5rto_blackhole_detection_ &&
- blackhole_detector_.IsDetectionInProgress() &&
- !sent_packet_manager_.HasInFlightPackets())
+ QUIC_BUG_IF_V2(quic_bug_12714_35,
+ default_enable_5rto_blackhole_detection_ &&
+ blackhole_detector_.IsDetectionInProgress() &&
+ !sent_packet_manager_.HasInFlightPackets())
<< ENDPOINT
<< "Trying to start blackhole detection without no bytes in flight";
}
@@ -5949,7 +5961,7 @@
void QuicConnection::set_client_connection_id(
QuicConnectionId client_connection_id) {
if (!version().SupportsClientConnectionIds()) {
- QUIC_BUG_IF(!client_connection_id.IsEmpty())
+ QUIC_BUG_IF_V2(quic_bug_12714_36, !client_connection_id.IsEmpty())
<< ENDPOINT << "Attempted to use client connection ID "
<< client_connection_id << " with unsupported version " << version();
return;
diff --git a/quic/core/quic_connection_id_manager.cc b/quic/core/quic_connection_id_manager.cc
index adf8eba..4aa3c05 100644
--- a/quic/core/quic_connection_id_manager.cc
+++ b/quic/core/quic_connection_id_manager.cc
@@ -357,7 +357,7 @@
void QuicSelfIssuedConnectionIdManager::RetireConnectionId() {
if (to_be_retired_connection_ids_.empty()) {
- QUIC_BUG
+ QUIC_BUG_V2(quic_bug_12420_1)
<< "retire_connection_id_alarm fired but there is no connection ID "
"to be retired.";
return;
diff --git a/quic/core/quic_control_frame_manager.cc b/quic/core/quic_control_frame_manager.cc
index aedd365..086efa5 100644
--- a/quic/core/quic_control_frame_manager.cc
+++ b/quic/core/quic_control_frame_manager.cc
@@ -161,7 +161,7 @@
void QuicControlFrameManager::OnControlFrameSent(const QuicFrame& frame) {
QuicControlFrameId id = GetControlFrameId(frame);
if (id == kInvalidControlFrameId) {
- QUIC_BUG
+ QUIC_BUG_V2(quic_bug_12727_1)
<< "Send or retransmit a control frame with invalid control frame id";
return;
}
@@ -225,7 +225,8 @@
}
if (!QuicContainsKey(pending_retransmissions_, id)) {
pending_retransmissions_[id] = true;
- QUIC_BUG_IF(pending_retransmissions_.size() > control_frames_.size())
+ QUIC_BUG_IF_V2(quic_bug_12727_2,
+ pending_retransmissions_.size() > control_frames_.size())
<< "least_unacked_: " << least_unacked_
<< ", least_unsent_: " << least_unsent_;
}
@@ -253,7 +254,7 @@
}
QuicFrame QuicControlFrameManager::NextPendingRetransmission() const {
- QUIC_BUG_IF(pending_retransmissions_.empty())
+ QUIC_BUG_IF_V2(quic_bug_12727_3, pending_retransmissions_.empty())
<< "Unexpected call to NextPendingRetransmission() with empty pending "
<< "retransmission list.";
QuicControlFrameId id = pending_retransmissions_.begin()->first;
diff --git a/quic/core/quic_crypto_client_handshaker.cc b/quic/core/quic_crypto_client_handshaker.cc
index 29a4367..a6ddcca 100644
--- a/quic/core/quic_crypto_client_handshaker.cc
+++ b/quic/core/quic_crypto_client_handshaker.cc
@@ -117,14 +117,14 @@
}
bool QuicCryptoClientHandshaker::IsResumption() const {
- QUIC_BUG_IF(!one_rtt_keys_available_);
+ QUIC_BUG_IF_V2(quic_bug_12522_1, !one_rtt_keys_available_);
// While 0-RTT handshakes could be considered to be like resumption, QUIC
// Crypto doesn't have the same notion of a resumption like TLS does.
return false;
}
bool QuicCryptoClientHandshaker::EarlyDataAccepted() const {
- QUIC_BUG_IF(!one_rtt_keys_available_);
+ QUIC_BUG_IF_V2(quic_bug_12522_2, !one_rtt_keys_available_);
return num_client_hellos_ == 1;
}
@@ -133,7 +133,7 @@
}
bool QuicCryptoClientHandshaker::ReceivedInchoateReject() const {
- QUIC_BUG_IF(!one_rtt_keys_available_);
+ QUIC_BUG_IF_V2(quic_bug_12522_3, !one_rtt_keys_available_);
return num_client_hellos_ >= 3;
}
diff --git a/quic/core/quic_crypto_stream.cc b/quic/core/quic_crypto_stream.cc
index ad5ad11..93e4ca4 100644
--- a/quic/core/quic_crypto_stream.cc
+++ b/quic/core/quic_crypto_stream.cc
@@ -71,7 +71,8 @@
}
void QuicCryptoStream::OnCryptoFrame(const QuicCryptoFrame& frame) {
- QUIC_BUG_IF(!QuicVersionUsesCryptoFrames(session()->transport_version()))
+ QUIC_BUG_IF_V2(quic_bug_12573_1,
+ !QuicVersionUsesCryptoFrames(session()->transport_version()))
<< "Versions less than 47 shouldn't receive CRYPTO frames";
EncryptionLevel level = session()->connection()->last_decrypted_level();
substreams_[level].sequencer.OnCryptoFrame(frame);
@@ -85,7 +86,7 @@
void QuicCryptoStream::OnStreamFrame(const QuicStreamFrame& frame) {
if (QuicVersionUsesCryptoFrames(session()->transport_version())) {
- QUIC_PEER_BUG
+ QUIC_PEER_BUG_V2(quic_peer_bug_12573_2)
<< "Crypto data received in stream frame instead of crypto frame";
OnUnrecoverableError(QUIC_INVALID_STREAM_DATA, "Unexpected stream frame");
}
@@ -264,7 +265,8 @@
}
void QuicCryptoStream::WritePendingCryptoRetransmission() {
- QUIC_BUG_IF(!QuicVersionUsesCryptoFrames(session()->transport_version()))
+ QUIC_BUG_IF_V2(quic_bug_12573_3,
+ !QuicVersionUsesCryptoFrames(session()->transport_version()))
<< "Versions less than 47 don't write CRYPTO frames";
for (EncryptionLevel level : AllEncryptionLevels()) {
QuicStreamSendBuffer* send_buffer = &substreams_[level].send_buffer;
@@ -382,14 +384,16 @@
QuicStreamOffset offset,
QuicByteCount data_length,
QuicDataWriter* writer) {
- QUIC_BUG_IF(!QuicVersionUsesCryptoFrames(session()->transport_version()))
+ QUIC_BUG_IF_V2(quic_bug_12573_4,
+ !QuicVersionUsesCryptoFrames(session()->transport_version()))
<< "Versions less than 47 don't write CRYPTO frames (2)";
return substreams_[level].send_buffer.WriteStreamData(offset, data_length,
writer);
}
void QuicCryptoStream::OnCryptoFrameLost(QuicCryptoFrame* crypto_frame) {
- QUIC_BUG_IF(!QuicVersionUsesCryptoFrames(session()->transport_version()))
+ QUIC_BUG_IF_V2(quic_bug_12573_5,
+ !QuicVersionUsesCryptoFrames(session()->transport_version()))
<< "Versions less than 47 don't lose CRYPTO frames";
substreams_[crypto_frame->level].send_buffer.OnStreamDataLost(
crypto_frame->offset, crypto_frame->data_length);
@@ -397,7 +401,8 @@
void QuicCryptoStream::RetransmitData(QuicCryptoFrame* crypto_frame,
TransmissionType type) {
- QUIC_BUG_IF(!QuicVersionUsesCryptoFrames(session()->transport_version()))
+ QUIC_BUG_IF_V2(quic_bug_12573_6,
+ !QuicVersionUsesCryptoFrames(session()->transport_version()))
<< "Versions less than 47 don't retransmit CRYPTO frames";
QuicIntervalSet<QuicStreamOffset> retransmission(
crypto_frame->offset, crypto_frame->offset + crypto_frame->data_length);
@@ -422,7 +427,8 @@
}
void QuicCryptoStream::WriteBufferedCryptoFrames() {
- QUIC_BUG_IF(!QuicVersionUsesCryptoFrames(session()->transport_version()))
+ QUIC_BUG_IF_V2(quic_bug_12573_7,
+ !QuicVersionUsesCryptoFrames(session()->transport_version()))
<< "Versions less than 47 don't use CRYPTO frames";
for (EncryptionLevel level : AllEncryptionLevels()) {
QuicStreamSendBuffer* send_buffer = &substreams_[level].send_buffer;
@@ -444,7 +450,8 @@
}
bool QuicCryptoStream::HasBufferedCryptoFrames() const {
- QUIC_BUG_IF(!QuicVersionUsesCryptoFrames(session()->transport_version()))
+ QUIC_BUG_IF_V2(quic_bug_12573_8,
+ !QuicVersionUsesCryptoFrames(session()->transport_version()))
<< "Versions less than 47 don't use CRYPTO frames";
for (EncryptionLevel level : AllEncryptionLevels()) {
const QuicStreamSendBuffer& send_buffer = substreams_[level].send_buffer;
diff --git a/quic/core/quic_dispatcher.cc b/quic/core/quic_dispatcher.cc
index 8f37b92..ed2b8eb 100644
--- a/quic/core/quic_dispatcher.cc
+++ b/quic/core/quic_dispatcher.cc
@@ -328,7 +328,7 @@
if (use_reference_counted_session_map_) {
QUIC_RESTART_FLAG_COUNT(quic_use_reference_counted_sesssion_map);
}
- QUIC_BUG_IF(GetSupportedVersions().empty())
+ QUIC_BUG_IF_V2(quic_bug_12724_1, GetSupportedVersions().empty())
<< "Trying to create dispatcher without any supported versions";
QUIC_DLOG(INFO) << "Created QuicDispatcher with versions: "
<< ParsedQuicVersionVectorToString(GetSupportedVersions());
@@ -916,7 +916,7 @@
if (!write_blocked_list_.empty()) {
for (const auto& session : closed_ref_counted_session_list_) {
if (write_blocked_list_.erase(session->connection()) != 0) {
- QUIC_BUG
+ QUIC_BUG_V2(quic_bug_12724_2)
<< "QuicConnection was in WriteBlockedList before destruction "
<< session->connection()->connection_id();
}
@@ -927,7 +927,7 @@
if (!write_blocked_list_.empty()) {
for (const std::unique_ptr<QuicSession>& session : closed_session_list_) {
if (write_blocked_list_.erase(session->connection()) != 0) {
- QUIC_BUG
+ QUIC_BUG_V2(quic_bug_12724_3)
<< "QuicConnection was in WriteBlockedList before destruction "
<< session->connection()->connection_id();
}
@@ -1074,7 +1074,7 @@
if (!blocked_writer->IsWriterBlocked()) {
// It is a programming error if this ever happens. When we are sure it is
// not happening, replace it with a QUICHE_DCHECK.
- QUIC_BUG
+ QUIC_BUG_V2(quic_bug_12724_4)
<< "Tried to add writer into blocked list when it shouldn't be added";
// Return without adding the connection to the blocked list, to avoid
// infinite loops in OnCanWrite.
@@ -1226,7 +1226,7 @@
std::make_pair(server_connection_id,
std::shared_ptr<QuicSession>(std::move(session))));
if (!insertion_result.second) {
- QUIC_BUG
+ QUIC_BUG_V2(quic_bug_12724_5)
<< "Tried to add a session to session_map with existing connection "
"id: "
<< server_connection_id;
@@ -1237,7 +1237,7 @@
} else {
auto insertion_result = session_map_.insert(
std::make_pair(server_connection_id, std::move(session)));
- QUIC_BUG_IF(!insertion_result.second)
+ QUIC_BUG_IF_V2(quic_bug_12724_6, !insertion_result.second)
<< "Tried to add a session to session_map with existing connection "
"id: "
<< server_connection_id;
@@ -1302,8 +1302,9 @@
if (GetQuicFlag(FLAGS_quic_allow_chlo_buffering) &&
new_sessions_allowed_per_event_loop_ <= 0) {
// Can't create new session any more. Wait till next event loop.
- QUIC_BUG_IF(buffered_packets_.HasChloForConnection(
- packet_info->destination_connection_id));
+ QUIC_BUG_IF_V2(quic_bug_12724_7,
+ buffered_packets_.HasChloForConnection(
+ packet_info->destination_connection_id));
EnqueuePacketResult rs = buffered_packets_.EnqueuePacket(
packet_info->destination_connection_id,
packet_info->form != GOOGLE_QUIC_PACKET, packet_info->packet,
@@ -1357,7 +1358,7 @@
} else {
auto insertion_result = session_map_.insert(std::make_pair(
packet_info->destination_connection_id, std::move(session)));
- QUIC_BUG_IF(!insertion_result.second)
+ QUIC_BUG_IF_V2(quic_bug_12724_8, !insertion_result.second)
<< "Tried to add a session to session_map with existing connection id: "
<< packet_info->destination_connection_id;
session_ptr = insertion_result.first->second.get();
diff --git a/quic/core/quic_framer.cc b/quic/core/quic_framer.cc
index 78008d1..cead639 100644
--- a/quic/core/quic_framer.cc
+++ b/quic/core/quic_framer.cc
@@ -472,7 +472,7 @@
size_t QuicFramer::GetMessageFrameSize(QuicTransportVersion version,
bool last_frame_in_packet,
QuicByteCount length) {
- QUIC_BUG_IF(!VersionSupportsMessageFrames(version))
+ QUIC_BUG_IF_V2(quic_bug_12975_1, !VersionSupportsMessageFrames(version))
<< "Try to serialize MESSAGE frame in " << version;
return kQuicFrameTypeSize +
(last_frame_in_packet ? 0 : QuicDataWriter::GetVarInt62Len(length)) +
@@ -895,8 +895,9 @@
char* buffer,
size_t packet_length,
EncryptionLevel level) {
- QUIC_BUG_IF(header.version_flag && version().HasIetfInvariantHeader() &&
- header.long_packet_type == RETRY && !frames.empty())
+ QUIC_BUG_IF_V2(quic_bug_12975_2,
+ header.version_flag && version().HasIetfInvariantHeader() &&
+ header.long_packet_type == RETRY && !frames.empty())
<< "IETF RETRY packets cannot contain frames " << header;
QuicDataWriter writer(packet_length, buffer);
size_t length_field_offset = 0;
@@ -2079,8 +2080,8 @@
bool QuicFramer::IsIetfStatelessResetPacket(
const QuicPacketHeader& header) const {
- QUIC_BUG_IF(header.has_possible_stateless_reset_token &&
- perspective_ != Perspective::IS_CLIENT)
+ QUIC_BUG_IF_V2(quic_bug_12975_3, header.has_possible_stateless_reset_token &&
+ perspective_ != Perspective::IS_CLIENT)
<< "has_possible_stateless_reset_token can only be true at client side.";
return header.form == IETF_QUIC_SHORT_HEADER_PACKET &&
header.has_possible_stateless_reset_token &&
@@ -2116,7 +2117,7 @@
EncryptionLevel QuicFramer::GetEncryptionLevelToSendApplicationData() const {
if (!HasAnEncrypterForSpace(APPLICATION_DATA)) {
- QUIC_BUG
+ QUIC_BUG_V2(quic_bug_12975_4)
<< "Tried to get encryption level to send application data with no "
"encrypter available.";
return NUM_ENCRYPTION_LEVELS;
@@ -2168,8 +2169,9 @@
}
break;
case CONNECTION_ID_PRESENT:
- QUIC_BUG_IF(!QuicUtils::IsConnectionIdValidForVersion(
- server_connection_id, transport_version()))
+ QUIC_BUG_IF_V2(quic_bug_12975_5,
+ !QuicUtils::IsConnectionIdValidForVersion(
+ server_connection_id, transport_version()))
<< "AppendPacketHeader: attempted to use connection ID "
<< server_connection_id << " which is invalid with version "
<< version();
@@ -2232,8 +2234,9 @@
QUIC_DVLOG(1) << ENDPOINT << "Appending IETF header: " << header;
QuicConnectionId server_connection_id =
GetServerConnectionIdAsSender(header, perspective_);
- QUIC_BUG_IF(!QuicUtils::IsConnectionIdValidForVersion(server_connection_id,
- transport_version()))
+ QUIC_BUG_IF_V2(quic_bug_12975_6,
+ !QuicUtils::IsConnectionIdValidForVersion(server_connection_id,
+ transport_version()))
<< "AppendIetfPacketHeader: attempted to use connection ID "
<< server_connection_id << " which is invalid with version " << version();
if (!AppendIetfHeaderTypeByte(header, writer)) {
@@ -2273,7 +2276,8 @@
}
// TODO(b/141924462) Remove this QUIC_BUG once we do support sending RETRY.
- QUIC_BUG_IF(header.version_flag && header.long_packet_type == RETRY)
+ QUIC_BUG_IF_V2(quic_bug_12975_7,
+ header.version_flag && header.long_packet_type == RETRY)
<< "Sending IETF RETRY packets is not currently supported " << header;
if (QuicVersionHasLongHeaderLengths(transport_version()) &&
@@ -4507,7 +4511,7 @@
}
if (encrypter_[level] == nullptr) {
- QUIC_BUG
+ QUIC_BUG_V2(quic_bug_12975_8)
<< ENDPOINT
<< "Attempted to apply header protection without encrypter at level "
<< level << " using " << version_;
@@ -5959,7 +5963,7 @@
return false;
}
if (frame.num_padding_bytes < 0) {
- QUIC_BUG_IF(frame.num_padding_bytes != -1);
+ QUIC_BUG_IF_V2(quic_bug_12975_9, frame.num_padding_bytes != -1);
writer->WritePadding();
return true;
}