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: 362122938
Change-Id: I70302c8b7fa7a97d58854348195c6e534d7f65ce
diff --git a/quic/core/quic_network_blackhole_detector.cc b/quic/core/quic_network_blackhole_detector.cc
index e65013f..66e60a9 100644
--- a/quic/core/quic_network_blackhole_detector.cc
+++ b/quic/core/quic_network_blackhole_detector.cc
@@ -80,8 +80,8 @@
blackhole_deadline_ = blackhole_deadline;
path_mtu_reduction_deadline_ = path_mtu_reduction_deadline;
- QUIC_BUG_IF(blackhole_deadline_.IsInitialized() &&
- blackhole_deadline_ != GetLastDeadline())
+ QUIC_BUG_IF_V2(quic_bug_12708_1, blackhole_deadline_.IsInitialized() &&
+ blackhole_deadline_ != GetLastDeadline())
<< "Blackhole detection deadline should be the last deadline.";
UpdateAlarm();
diff --git a/quic/core/quic_packet_creator.cc b/quic/core/quic_packet_creator.cc
index b374077..8b8bfce 100644
--- a/quic/core/quic_packet_creator.cc
+++ b/quic/core/quic_packet_creator.cc
@@ -46,7 +46,7 @@
case ENCRYPTION_ZERO_RTT:
return ZERO_RTT_PROTECTED;
case ENCRYPTION_FORWARD_SECURE:
- QUIC_BUG
+ QUIC_BUG_V2(quic_bug_12398_1)
<< "Try to derive long header type for packet with encryption level: "
<< level;
return INVALID_PACKET_TYPE;
@@ -171,8 +171,9 @@
max_packet_length_ = length;
max_plaintext_size_ = framer_->GetMaxPlaintextSize(max_packet_length_);
- QUIC_BUG_IF(max_plaintext_size_ - PacketHeaderSize() <
- MinPlaintextPacketSize(framer_->version()))
+ QUIC_BUG_IF_V2(quic_bug_12398_2,
+ max_plaintext_size_ - PacketHeaderSize() <
+ MinPlaintextPacketSize(framer_->version()))
<< "Attempted to set max packet length too small";
}
@@ -424,13 +425,14 @@
GetRetryTokenLengthLength(), GetLengthLength(), offset) ||
latched_hard_max_packet_length_ > 0);
- QUIC_BUG_IF(!HasRoomForStreamFrame(id, offset, data_size))
+ QUIC_BUG_IF_V2(quic_bug_12398_3,
+ !HasRoomForStreamFrame(id, offset, data_size))
<< "No room for Stream frame, BytesFree: " << BytesFree()
<< " MinStreamFrameSize: "
<< QuicFramer::GetMinStreamFrameSize(framer_->transport_version(), id,
offset, true, data_size);
- QUIC_BUG_IF(data_size == 0 && !fin)
+ QUIC_BUG_IF_V2(quic_bug_12398_4, data_size == 0 && !fin)
<< "Creating a stream frame for stream ID:" << id
<< " with no data or fin.";
size_t min_frame_size = QuicFramer::GetMinStreamFrameSize(
@@ -480,7 +482,7 @@
}
void QuicPacketCreator::OnSerializedPacket() {
- QUIC_BUG_IF(packet_.encrypted_buffer == nullptr);
+ QUIC_BUG_IF_V2(quic_bug_12398_5, packet_.encrypted_buffer == nullptr);
SerializedPacket packet(std::move(packet_));
ClearPacket();
@@ -498,7 +500,7 @@
packet_.has_ack_frequency = false;
packet_.has_message = false;
packet_.fate = SEND_TO_WRITER;
- QUIC_BUG_IF(packet_.release_encrypted_buffer != nullptr)
+ QUIC_BUG_IF_V2(quic_bug_12398_6, packet_.release_encrypted_buffer != nullptr)
<< "packet_.release_encrypted_buffer should be empty";
packet_.release_encrypted_buffer = nullptr;
QUICHE_DCHECK(packet_.retransmittable_frames.empty());
@@ -512,9 +514,10 @@
size_t padding_size,
char* buffer,
size_t buffer_len) {
- QUIC_BUG_IF(packet.encryption_level != ENCRYPTION_INITIAL);
- QUIC_BUG_IF(packet.nonretransmittable_frames.empty() &&
- packet.retransmittable_frames.empty())
+ QUIC_BUG_IF_V2(quic_bug_12398_7,
+ packet.encryption_level != ENCRYPTION_INITIAL);
+ QUIC_BUG_IF_V2(quic_bug_12398_8, packet.nonretransmittable_frames.empty() &&
+ packet.retransmittable_frames.empty())
<< "Attempt to serialize empty ENCRYPTION_INITIAL packet in coalesced "
"packet";
ScopedPacketContextSwitcher switcher(
@@ -595,7 +598,7 @@
}
// Create a Stream frame with the remaining space.
- QUIC_BUG_IF(iov_offset == write_length && !fin)
+ QUIC_BUG_IF_V2(quic_bug_12398_9, iov_offset == write_length && !fin)
<< "Creating a stream frame with no data or fin.";
const size_t remaining_data_size = write_length - iov_offset;
size_t min_frame_size = QuicFramer::GetMinStreamFrameSize(
@@ -756,7 +759,8 @@
ScopedSerializationFailureHandler handler(this);
QUICHE_DCHECK_LT(0u, encrypted_buffer_len);
- QUIC_BUG_IF(queued_frames_.empty() && pending_padding_bytes_ == 0)
+ QUIC_BUG_IF_V2(quic_bug_12398_10,
+ queued_frames_.empty() && pending_padding_bytes_ == 0)
<< "Attempt to serialize empty packet";
QuicPacketHeader header;
// FillPacketHeader increments packet_number_.
@@ -840,7 +844,8 @@
std::unique_ptr<SerializedPacket>
QuicPacketCreator::SerializeConnectivityProbingPacket() {
- QUIC_BUG_IF(VersionHasIetfQuicFrames(framer_->transport_version()))
+ QUIC_BUG_IF_V2(quic_bug_12398_11,
+ VersionHasIetfQuicFrames(framer_->transport_version()))
<< "Must not be version 99 to serialize padded ping connectivity probe";
RemoveSoftMaxPacketLength();
QuicPacketHeader header;
@@ -878,7 +883,8 @@
std::unique_ptr<SerializedPacket>
QuicPacketCreator::SerializePathChallengeConnectivityProbingPacket(
const QuicPathFrameBuffer& payload) {
- QUIC_BUG_IF(!VersionHasIetfQuicFrames(framer_->transport_version()))
+ QUIC_BUG_IF_V2(quic_bug_12398_12,
+ !VersionHasIetfQuicFrames(framer_->transport_version()))
<< "Must be version 99 to serialize path challenge connectivity probe, "
"is version "
<< framer_->transport_version();
@@ -920,7 +926,8 @@
QuicPacketCreator::SerializePathResponseConnectivityProbingPacket(
const QuicCircularDeque<QuicPathFrameBuffer>& payloads,
const bool is_padded) {
- QUIC_BUG_IF(!VersionHasIetfQuicFrames(framer_->transport_version()))
+ QUIC_BUG_IF_V2(quic_bug_12398_13,
+ !VersionHasIetfQuicFrames(framer_->transport_version()))
<< "Must be version 99 to serialize path response connectivity probe, is "
"version "
<< framer_->transport_version();
@@ -991,7 +998,7 @@
const bool is_padded,
EncryptionLevel level) {
if (payloads.empty()) {
- QUIC_BUG
+ QUIC_BUG_V2(quic_bug_12398_14)
<< "Attempt to generate connectivity response with no request payloads";
return 0;
}
@@ -1052,7 +1059,7 @@
return 0;
}
RemoveSoftMaxPacketLength();
- QUIC_BUG_IF(coalesced.length() == 0)
+ QUIC_BUG_IF_V2(quic_bug_12398_15, coalesced.length() == 0)
<< "Attempt to serialize empty coalesced packet";
size_t packet_length = 0;
if (coalesced.initial_packet() != nullptr) {
@@ -1194,8 +1201,9 @@
bool QuicPacketCreator::ConsumeRetransmittableControlFrame(
const QuicFrame& frame) {
- QUIC_BUG_IF(IsControlFrame(frame.type) && !GetControlFrameId(frame) &&
- frame.type != PING_FRAME)
+ QUIC_BUG_IF_V2(quic_bug_12398_16, IsControlFrame(frame.type) &&
+ !GetControlFrameId(frame) &&
+ frame.type != PING_FRAME)
<< "Adding a control frame with no control frame id: " << frame;
QUICHE_DCHECK(QuicUtils::IsRetransmittableFrame(frame.type)) << frame;
MaybeBundleAckOpportunistically();
@@ -1229,7 +1237,7 @@
bool has_handshake = QuicUtils::IsCryptoStreamId(transport_version(), id);
MaybeBundleAckOpportunistically();
bool fin = state != NO_FIN;
- QUIC_BUG_IF(has_handshake && fin)
+ QUIC_BUG_IF_V2(quic_bug_12398_17, has_handshake && fin)
<< "Handshake packets should never send a fin";
// To make reasoning about crypto frames easier, we don't combine them with
// other retransmittable frames in a single packet.
@@ -1441,8 +1449,9 @@
"generator tries to send ACK frame.";
// MaybeBundleAckOpportunistically could be called nestedly when sending a
// control frame causing another control frame to be sent.
- QUIC_BUG_IF(GetQuicReloadableFlag(quic_single_ack_in_packet2) &&
- !frames.empty() && has_ack())
+ QUIC_BUG_IF_V2(quic_bug_12398_18,
+ GetQuicReloadableFlag(quic_single_ack_in_packet2) &&
+ !frames.empty() && has_ack())
<< "Trying to flush " << frames << " when there is ACK queued";
for (const auto& frame : frames) {
QUICHE_DCHECK(frame.type == ACK_FRAME || frame.type == STOP_WAITING_FRAME);
@@ -2005,7 +2014,8 @@
QuicPacketCreator* creator,
QuicSocketAddress address)
: creator_(creator), old_peer_address_(creator_->packet_.peer_address) {
- QUIC_BUG_IF(!creator_->packet_.peer_address.IsInitialized())
+ QUIC_BUG_IF_V2(quic_bug_12398_19,
+ !creator_->packet_.peer_address.IsInitialized())
<< "Context is used before seralized packet's peer address is "
"initialized.";
creator_->SetDefaultPeerAddress(address);
@@ -2089,7 +2099,7 @@
return false;
}
bool success = AddPaddedSavedFrame(frame, NOT_RETRANSMISSION);
- QUIC_BUG_IF(!success);
+ QUIC_BUG_IF_V2(quic_bug_12398_20, !success);
return true;
}
diff --git a/quic/core/quic_path_validator.cc b/quic/core/quic_path_validator.cc
index ec2c902..8ba3e3d 100644
--- a/quic/core/quic_path_validator.cc
+++ b/quic/core/quic_path_validator.cc
@@ -47,7 +47,8 @@
}
QUIC_DVLOG(1) << "Match PATH_RESPONSE received on " << self_address;
- QUIC_BUG_IF(!path_context_->self_address().IsInitialized())
+ QUIC_BUG_IF_V2(quic_bug_12402_1,
+ !path_context_->self_address().IsInitialized())
<< "Self address should have been known by now";
if (self_address != path_context_->self_address()) {
QUIC_DVLOG(1) << "Expect the response to be received on "
diff --git a/quic/core/quic_sent_packet_manager.cc b/quic/core/quic_sent_packet_manager.cc
index b1970c8..1b81ef6 100644
--- a/quic/core/quic_sent_packet_manager.cc
+++ b/quic/core/quic_sent_packet_manager.cc
@@ -179,7 +179,7 @@
if (config.HasClientSentConnectionOption(kPTOS, perspective)) {
if (!pto_enabled_) {
- QUIC_PEER_BUG
+ QUIC_PEER_BUG_V2(quic_peer_bug_12552_1)
<< "PTO is not enabled when receiving PTOS connection option.";
pto_enabled_ = true;
max_probe_packets_per_pto_ = 1;
@@ -639,9 +639,11 @@
unacked_packets_.GetMutableTransmissionInfo(packet_number);
// A previous RTO retransmission may cause connection close; packets without
// retransmittable frames can be marked for loss retransmissions.
- QUIC_BUG_IF(transmission_type != LOSS_RETRANSMISSION &&
- transmission_type != RTO_RETRANSMISSION &&
- !unacked_packets_.HasRetransmittableFrames(*transmission_info))
+ QUIC_BUG_IF_V2(
+ quic_bug_12552_2,
+ transmission_type != LOSS_RETRANSMISSION &&
+ transmission_type != RTO_RETRANSMISSION &&
+ !unacked_packets_.HasRetransmittableFrames(*transmission_info))
<< "packet number " << packet_number
<< " transmission_type: " << transmission_type << " transmission_info "
<< transmission_info->DebugString();
@@ -971,7 +973,7 @@
void QuicSentPacketManager::RetransmitRtoPackets() {
QUICHE_DCHECK(!pto_enabled_);
- QUIC_BUG_IF(pending_timer_transmission_count_ > 0)
+ QUIC_BUG_IF_V2(quic_bug_12552_3, pending_timer_transmission_count_ > 0)
<< "Retransmissions already queued:" << pending_timer_transmission_count_;
// Mark two packets for retransmission.
std::vector<QuicPacketNumber> retransmissions;
@@ -1001,7 +1003,7 @@
MarkForRetransmission(retransmission, RTO_RETRANSMISSION);
}
if (retransmissions.empty()) {
- QUIC_BUG_IF(pending_timer_transmission_count_ != 0);
+ QUIC_BUG_IF_V2(quic_bug_12552_4, pending_timer_transmission_count_ != 0);
// No packets to be RTO retransmitted, raise up a credit to allow
// connection to send.
QUIC_CODE_COUNT(no_packets_to_be_rto_retransmitted);
@@ -1018,7 +1020,8 @@
// Find out the packet number space to send probe packets.
if (!GetEarliestPacketSentTimeForPto(&packet_number_space)
.IsInitialized()) {
- QUIC_BUG_IF(unacked_packets_.perspective() == Perspective::IS_SERVER)
+ QUIC_BUG_IF_V2(quic_bug_12552_5,
+ unacked_packets_.perspective() == Perspective::IS_SERVER)
<< "earlist_sent_time not initialized when trying to send PTO "
"retransmissions";
return;
@@ -1419,7 +1422,7 @@
QUICHE_DCHECK(pto_enabled_);
if (rtt_stats_.smoothed_rtt().IsZero()) {
// Respect kMinHandshakeTimeoutMs to avoid a potential amplification attack.
- QUIC_BUG_IF(rtt_stats_.initial_rtt().IsZero());
+ QUIC_BUG_IF_V2(quic_bug_12552_6, rtt_stats_.initial_rtt().IsZero());
return std::max(
pto_multiplier_without_rtt_samples_ * rtt_stats_.initial_rtt(),
QuicTime::Delta::FromMilliseconds(kMinHandshakeTimeoutMs)) *
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index 5296162..065baaf 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -364,7 +364,7 @@
}
void QuicSession::OnGoAway(const QuicGoAwayFrame& /*frame*/) {
- QUIC_BUG_IF(version().UsesHttp3())
+ QUIC_BUG_IF_V2(quic_bug_12435_1, version().UsesHttp3())
<< "gQUIC GOAWAY received on version " << version();
transport_goaway_received_ = true;
@@ -423,7 +423,7 @@
stream->OnConnectionClosed(frame.quic_error_code, source);
auto it = stream_map_.find(id);
if (it != stream_map_.end()) {
- QUIC_BUG_IF(!it->second->IsZombie())
+ QUIC_BUG_IF_V2(quic_bug_12435_2, !it->second->IsZombie())
<< ENDPOINT << "Non-zombie stream " << id
<< " failed to close under OnConnectionClosed";
}
@@ -757,7 +757,7 @@
if (was_zero_rtt_rejected_ && !OneRttKeysAvailable()) {
QUICHE_DCHECK(version().UsesTls() &&
perspective() == Perspective::IS_CLIENT);
- QUIC_BUG_IF(type == NOT_RETRANSMISSION)
+ QUIC_BUG_IF_V2(quic_bug_12435_3, type == NOT_RETRANSMISSION)
<< ENDPOINT << "Try to send new data on stream " << id
<< "before 1-RTT keys are available while 0-RTT is rejected.";
} else {
@@ -1011,10 +1011,10 @@
QUIC_DVLOG_IF(1, stream_was_draining)
<< ENDPOINT << "Stream " << stream_id << " was draining";
if (stream_was_draining) {
- QUIC_BUG_IF(num_draining_streams_ == 0);
+ QUIC_BUG_IF_V2(quic_bug_12435_4, num_draining_streams_ == 0);
--num_draining_streams_;
if (!IsIncomingStream(stream_id)) {
- QUIC_BUG_IF(num_outgoing_draining_streams_ == 0);
+ QUIC_BUG_IF_V2(quic_bug_12435_5, num_outgoing_draining_streams_ == 0);
--num_outgoing_draining_streams_;
}
// Stream Id manager has been informed with draining streams.
@@ -1105,7 +1105,7 @@
// In the second config setting, 1-RTT keys are guaranteed to be available.
if (version().UsesTls() && is_configured_ &&
connection_->encryption_level() != ENCRYPTION_FORWARD_SECURE) {
- QUIC_BUG
+ QUIC_BUG_V2(quic_bug_12435_6)
<< ENDPOINT
<< "1-RTT keys missing when config is negotiated for the second time.";
connection_->CloseConnection(
@@ -1584,9 +1584,10 @@
if (reset_encryption_level) {
connection()->SetDefaultEncryptionLevel(ENCRYPTION_ZERO_RTT);
}
- QUIC_BUG_IF(IsEncryptionEstablished() &&
- (connection()->encryption_level() == ENCRYPTION_INITIAL ||
- connection()->encryption_level() == ENCRYPTION_HANDSHAKE))
+ QUIC_BUG_IF_V2(quic_bug_12435_7,
+ IsEncryptionEstablished() &&
+ (connection()->encryption_level() == ENCRYPTION_INITIAL ||
+ connection()->encryption_level() == ENCRYPTION_HANDSHAKE))
<< "Encryption is established, but the encryption level " << level
<< " does not support sending stream data";
}
@@ -1612,7 +1613,7 @@
case ENCRYPTION_HANDSHAKE:
break;
case ENCRYPTION_FORWARD_SECURE:
- QUIC_BUG_IF(!config_.negotiated())
+ QUIC_BUG_IF_V2(quic_bug_12435_8, !config_.negotiated())
<< ENDPOINT << "Handshake confirmed without parameter negotiation.";
connection()->mutable_stats().handshake_completion_time =
connection()->clock()->ApproximateNow();
@@ -1624,9 +1625,10 @@
void QuicSession::OnTlsHandshakeComplete() {
QUICHE_DCHECK_EQ(PROTOCOL_TLS1_3, connection_->version().handshake_protocol);
- QUIC_BUG_IF(!GetCryptoStream()->crypto_negotiated_params().cipher_suite)
+ QUIC_BUG_IF_V2(quic_bug_12435_9,
+ !GetCryptoStream()->crypto_negotiated_params().cipher_suite)
<< ENDPOINT << "Handshake completes without cipher suite negotiation.";
- QUIC_BUG_IF(!config_.negotiated())
+ QUIC_BUG_IF_V2(quic_bug_12435_10, !config_.negotiated())
<< ENDPOINT << "Handshake completes without parameter negotiation.";
connection()->mutable_stats().handshake_completion_time =
connection()->clock()->ApproximateNow();
diff --git a/quic/core/quic_stream.cc b/quic/core/quic_stream.cc
index 50e0776..3a4b113 100644
--- a/quic/core/quic_stream.cc
+++ b/quic/core/quic_stream.cc
@@ -176,7 +176,7 @@
(kMaxStreamLength - frame.offset < frame.data_length);
if (is_stream_too_long) {
// Close connection if stream becomes too long.
- QUIC_PEER_BUG
+ QUIC_PEER_BUG_V2(quic_peer_bug_12570_1)
<< "Receive stream frame reaches max stream length. frame offset "
<< frame.offset << " length " << frame.data_length;
OnUnrecoverableError(QUIC_STREAM_LENGTH_OVERFLOW,
@@ -474,7 +474,7 @@
MaybeIncreaseHighestReceivedOffset(frame.offset + frame_payload_size)) {
// As the highest received offset has changed, check to see if this is a
// violation of flow control.
- QUIC_BUG_IF(!flow_controller_.has_value())
+ QUIC_BUG_IF_V2(quic_bug_12570_2, !flow_controller_.has_value())
<< ENDPOINT << "OnStreamFrame called on stream without flow control";
if ((flow_controller_.has_value() &&
flow_controller_->FlowControlViolation()) ||
@@ -542,7 +542,7 @@
}
MaybeIncreaseHighestReceivedOffset(frame.byte_offset);
- QUIC_BUG_IF(!flow_controller_.has_value())
+ QUIC_BUG_IF_V2(quic_bug_12570_3, !flow_controller_.has_value())
<< ENDPOINT << "OnStreamReset called on stream without flow control";
if ((flow_controller_.has_value() &&
flow_controller_->FlowControlViolation()) ||
@@ -631,7 +631,8 @@
bool fin,
QuicReferenceCountedPointer<QuicAckListenerInterface> ack_listener) {
if (session()->use_write_or_buffer_data_at_level()) {
- QUIC_BUG_IF(QuicUtils::IsCryptoStreamId(transport_version(), id_))
+ QUIC_BUG_IF_V2(quic_bug_12570_4,
+ QuicUtils::IsCryptoStreamId(transport_version(), id_))
<< ENDPOINT
<< "WriteOrBufferData is used to send application data, use "
"WriteOrBufferDataAtLevel to send crypto data.";
@@ -880,7 +881,7 @@
}
if (!session()->version().UsesHttp3()) {
- QUIC_BUG_IF(error == QUIC_STREAM_NO_ERROR);
+ QUIC_BUG_IF_V2(quic_bug_12570_5, error == QUIC_STREAM_NO_ERROR);
stop_sending_sent_ = true;
CloseReadSide();
}
@@ -915,8 +916,8 @@
QUICHE_DCHECK(read_side_closed_ && write_side_closed_);
if (!fin_sent_ && !rst_sent_) {
- QUIC_BUG_IF(session()->connection()->connected() &&
- session()->version().UsesHttp3())
+ QUIC_BUG_IF_V2(quic_bug_12570_6, session()->connection()->connected() &&
+ session()->version().UsesHttp3())
<< "The stream should've already sent RST in response to "
"STOP_SENDING";
// For flow control accounting, tell the peer how many bytes have been
@@ -1008,7 +1009,7 @@
return;
}
if (!flow_controller_.has_value()) {
- QUIC_BUG
+ QUIC_BUG_V2(quic_bug_12570_7)
<< ENDPOINT
<< "AddBytesConsumed called on non-crypto stream without flow control";
return;
@@ -1038,7 +1039,7 @@
if (was_zero_rtt_rejected && new_offset < flow_controller_->bytes_sent()) {
// The client is given flow control window lower than what's written in
// 0-RTT. This QUIC implementation is unable to retransmit them.
- QUIC_BUG_IF(perspective_ == Perspective::IS_SERVER)
+ QUIC_BUG_IF_V2(quic_bug_12570_8, perspective_ == Perspective::IS_SERVER)
<< "Server streams' flow control should never be configured twice.";
OnUnrecoverableError(
QUIC_ZERO_RTT_UNRETRANSMITTABLE,
@@ -1051,7 +1052,7 @@
// In IETF QUIC, if the client receives flow control limit lower than what
// was resumed from 0-RTT, depending on 0-RTT status, it's either the
// peer's fault or our implementation's fault.
- QUIC_BUG_IF(perspective_ == Perspective::IS_SERVER)
+ QUIC_BUG_IF_V2(quic_bug_12570_9, perspective_ == Perspective::IS_SERVER)
<< "Server streams' flow control should never be configured twice.";
OnUnrecoverableError(
was_zero_rtt_rejected ? QUIC_ZERO_RTT_REJECTION_LIMIT_REDUCED
diff --git a/quic/core/quic_stream_id_manager.cc b/quic/core/quic_stream_id_manager.cc
index 397eb71..11763ca 100644
--- a/quic/core/quic_stream_id_manager.cc
+++ b/quic/core/quic_stream_id_manager.cc
@@ -86,7 +86,7 @@
void QuicStreamIdManager::SetMaxOpenIncomingStreams(
QuicStreamCount max_open_streams) {
- QUIC_BUG_IF(incoming_stream_count_ > 0)
+ QUIC_BUG_IF_V2(quic_bug_12413_1, incoming_stream_count_ > 0)
<< "non-zero incoming stream count " << incoming_stream_count_
<< " when setting max incoming stream to " << max_open_streams;
QUIC_DLOG_IF(WARNING, incoming_initial_max_open_streams_ != max_open_streams)
@@ -113,7 +113,8 @@
}
void QuicStreamIdManager::SendMaxStreamsFrame() {
- QUIC_BUG_IF(incoming_advertised_max_streams_ >= incoming_actual_max_streams_);
+ QUIC_BUG_IF_V2(quic_bug_12413_2, incoming_advertised_max_streams_ >=
+ incoming_actual_max_streams_);
incoming_advertised_max_streams_ = incoming_actual_max_streams_;
delegate_->SendMaxStreams(incoming_advertised_max_streams_, unidirectional_);
}
@@ -138,7 +139,8 @@
}
QuicStreamId QuicStreamIdManager::GetNextOutgoingStreamId() {
- QUIC_BUG_IF(outgoing_stream_count_ >= outgoing_max_streams_)
+ QUIC_BUG_IF_V2(quic_bug_12413_3,
+ outgoing_stream_count_ >= outgoing_max_streams_)
<< "Attempt to allocate a new outgoing stream that would exceed the "
"limit ("
<< outgoing_max_streams_ << ")";
diff --git a/quic/core/quic_stream_send_buffer.cc b/quic/core/quic_stream_send_buffer.cc
index 01a43fb..e2aff30 100644
--- a/quic/core/quic_stream_send_buffer.cc
+++ b/quic/core/quic_stream_send_buffer.cc
@@ -105,7 +105,7 @@
bool QuicStreamSendBuffer::WriteStreamData(QuicStreamOffset offset,
QuicByteCount data_length,
QuicDataWriter* writer) {
- QUIC_BUG_IF(current_end_offset_ < offset)
+ QUIC_BUG_IF_V2(quic_bug_12823_1, current_end_offset_ < offset)
<< "Tried to write data out of sequence. last_offset_end:"
<< current_end_offset_ << ", offset:" << offset;
// The iterator returned from |interval_deque_| will automatically advance
@@ -264,7 +264,8 @@
void QuicStreamSendBuffer::CleanUpBufferedSlices() {
while (!interval_deque_.Empty() &&
interval_deque_.DataBegin()->slice.empty()) {
- QUIC_BUG_IF(interval_deque_.DataBegin()->offset > current_end_offset_)
+ QUIC_BUG_IF_V2(quic_bug_12823_2,
+ interval_deque_.DataBegin()->offset > current_end_offset_)
<< "Fail to pop front from interval_deque_. Front element contained "
"a slice whose data has not all be written. Front offset "
<< interval_deque_.DataBegin()->offset << " length "
diff --git a/quic/core/quic_trace_visitor.cc b/quic/core/quic_trace_visitor.cc
index cd5ea7f..5a9cfb7 100644
--- a/quic/core/quic_trace_visitor.cc
+++ b/quic/core/quic_trace_visitor.cc
@@ -77,7 +77,7 @@
case MTU_DISCOVERY_FRAME:
case STOP_WAITING_FRAME:
case ACK_FRAME:
- QUIC_BUG
+ QUIC_BUG_V2(quic_bug_12732_1)
<< "Frames of type are not retransmittable and are not supposed "
"to be in retransmittable_frames";
break;
diff --git a/quic/core/quic_unacked_packet_map.cc b/quic/core/quic_unacked_packet_map.cc
index be355ba..4e74839 100644
--- a/quic/core/quic_unacked_packet_map.cc
+++ b/quic/core/quic_unacked_packet_map.cc
@@ -140,8 +140,8 @@
const SerializedPacket& packet = *mutable_packet;
QuicPacketNumber packet_number = packet.packet_number;
QuicPacketLength bytes_sent = packet.encrypted_length;
- QUIC_BUG_IF(largest_sent_packet_.IsInitialized() &&
- largest_sent_packet_ >= packet_number)
+ QUIC_BUG_IF_V2(quic_bug_12645_1, largest_sent_packet_.IsInitialized() &&
+ largest_sent_packet_ >= packet_number)
<< "largest_sent_packet_: " << largest_sent_packet_
<< ", packet_number: " << packet_number;
QUICHE_DCHECK_GE(packet_number, least_unacked_ + unacked_packets_.size());
@@ -158,7 +158,7 @@
largest_sent_largest_acked_.UpdateMax(packet.largest_acked);
if (!measure_rtt) {
- QUIC_BUG_IF(set_in_flight);
+ QUIC_BUG_IF_V2(quic_bug_12645_2, set_in_flight);
info.state = NOT_CONTRIBUTING_RTT;
}
@@ -289,8 +289,8 @@
void QuicUnackedPacketMap::RemoveFromInFlight(QuicTransmissionInfo* info) {
if (info->in_flight) {
- QUIC_BUG_IF(bytes_in_flight_ < info->bytes_sent);
- QUIC_BUG_IF(packets_in_flight_ == 0);
+ QUIC_BUG_IF_V2(quic_bug_12645_3, bytes_in_flight_ < info->bytes_sent);
+ QUIC_BUG_IF_V2(quic_bug_12645_4, packets_in_flight_ == 0);
bytes_in_flight_ -= info->bytes_sent;
--packets_in_flight_;