Improve debug logging and test display
gfe-relnote: n/a, debug logging and test only
PiperOrigin-RevId: 273905489
Change-Id: Iebd08a5a599fb5ff14b16f11dacdd26e0c287a64
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index f4e70d0..495d670 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -499,16 +499,16 @@
previous_bytes_written == stream->stream_bytes_written() &&
previous_fin_sent == stream->fin_sent()) {
stream->set_busy_counter(stream->busy_counter() + 1);
- QUIC_DVLOG(1) << "Suspected busy loop on stream id " << stream->id()
- << " stream_bytes_written " << stream->stream_bytes_written()
- << " fin " << stream->fin_sent() << " count "
- << stream->busy_counter();
+ QUIC_DVLOG(1) << ENDPOINT << "Suspected busy loop on stream id "
+ << stream->id() << " stream_bytes_written "
+ << stream->stream_bytes_written() << " fin "
+ << stream->fin_sent() << " count " << stream->busy_counter();
// Wait a few iterations before firing, the exact count is
// arbitrary, more than a few to cover a few test-only false
// positives.
if (stream->busy_counter() > 20) {
- QUIC_LOG(ERROR) << "Detected busy loop on stream id " << stream->id()
- << " stream_bytes_written "
+ QUIC_LOG(ERROR) << ENDPOINT << "Detected busy loop on stream id "
+ << stream->id() << " stream_bytes_written "
<< stream->stream_bytes_written() << " fin "
<< stream->fin_sent();
return false;
@@ -523,8 +523,8 @@
if (!stream->write_side_closed() && stream->HasBufferedData() &&
!stream->flow_controller()->IsBlocked() &&
!write_blocked_streams_.IsStreamBlocked(stream->id())) {
- QUIC_DLOG(ERROR) << "stream " << stream->id() << " has buffered "
- << stream->BufferedDataBytes()
+ QUIC_DLOG(ERROR) << ENDPOINT << "stream " << stream->id()
+ << " has buffered " << stream->BufferedDataBytes()
<< " bytes, and is not flow control blocked, "
"but it is not in the write block list.";
return false;
@@ -588,14 +588,17 @@
return;
}
currently_writing_stream_id_ = write_blocked_streams_.PopFront();
+ QUIC_DVLOG(1) << ENDPOINT << "Removing stream "
+ << currently_writing_stream_id_ << " from write-blocked list";
QuicStream* stream = GetOrCreateStream(currently_writing_stream_id_);
if (stream != nullptr && !stream->flow_controller()->IsBlocked()) {
// If the stream can't write all bytes it'll re-add itself to the blocked
// list.
uint64_t previous_bytes_written = stream->stream_bytes_written();
bool previous_fin_sent = stream->fin_sent();
- QUIC_DVLOG(1) << "stream " << stream->id() << " bytes_written "
- << previous_bytes_written << " fin " << previous_fin_sent;
+ QUIC_DVLOG(1) << ENDPOINT << "stream " << stream->id()
+ << " bytes_written " << previous_bytes_written << " fin "
+ << previous_fin_sent;
stream->OnCanWrite();
DCHECK(CheckStreamWriteBlocked(stream));
DCHECK(CheckStreamNotBusyLooping(stream, previous_bytes_written,
@@ -943,6 +946,7 @@
}
void QuicSession::OnConfigNegotiated() {
+ QUIC_DVLOG(1) << ENDPOINT << "OnConfigNegotiated";
connection_->SetFromConfig(config_);
if (VersionHasIetfQuicFrames(transport_version())) {
@@ -950,7 +954,8 @@
if (config_.HasReceivedMaxIncomingBidirectionalStreams()) {
max_streams = config_.ReceivedMaxIncomingBidirectionalStreams();
}
- QUIC_DVLOG(1) << "Setting Bidirectional outgoing_max_streams_ to "
+ QUIC_DVLOG(1) << ENDPOINT
+ << "Setting Bidirectional outgoing_max_streams_ to "
<< max_streams;
v99_streamid_manager_.SetMaxOpenOutgoingBidirectionalStreams(max_streams);
@@ -958,7 +963,8 @@
if (config_.HasReceivedMaxIncomingUnidirectionalStreams()) {
max_streams = config_.ReceivedMaxIncomingUnidirectionalStreams();
}
- QUIC_DVLOG(1) << "Setting Unidirectional outgoing_max_streams_ to "
+ QUIC_DVLOG(1) << ENDPOINT
+ << "Setting Unidirectional outgoing_max_streams_ to "
<< max_streams;
v99_streamid_manager_.SetMaxOpenOutgoingUnidirectionalStreams(max_streams);
} else {
@@ -966,7 +972,8 @@
if (config_.HasReceivedMaxIncomingBidirectionalStreams()) {
max_streams = config_.ReceivedMaxIncomingBidirectionalStreams();
}
- QUIC_DVLOG(1) << "Setting max_open_outgoing_streams_ to " << max_streams;
+ QUIC_DVLOG(1) << ENDPOINT << "Setting max_open_outgoing_streams_ to "
+ << max_streams;
stream_id_manager_.set_max_open_outgoing_streams(max_streams);
}
@@ -1135,6 +1142,7 @@
}
void QuicSession::OnNewStreamFlowControlWindow(QuicStreamOffset new_window) {
+ QUIC_DVLOG(1) << ENDPOINT << "OnNewStreamFlowControlWindow " << new_window;
if (new_window < kMinimumFlowControlSendWindow &&
!connection_->version().AllowsLowFlowControlLimits()) {
QUIC_LOG_FIRST_N(ERROR, 1)
@@ -1148,9 +1156,15 @@
// Inform all existing streams about the new window.
for (auto const& kv : stream_map_) {
+ QUIC_DVLOG(1) << ENDPOINT << "Informing stream " << kv.first
+ << " of new stream flow control window " << new_window;
kv.second->UpdateSendWindowOffset(new_window);
}
if (!QuicVersionUsesCryptoFrames(transport_version())) {
+ QUIC_DVLOG(1)
+ << ENDPOINT
+ << "Informing crypto stream of new stream flow control window "
+ << new_window;
GetMutableCryptoStream()->UpdateSendWindowOffset(new_window);
}
}
@@ -1218,6 +1232,7 @@
}
void QuicSession::OnNewSessionFlowControlWindow(QuicStreamOffset new_window) {
+ QUIC_DVLOG(1) << ENDPOINT << "OnNewSessionFlowControlWindow " << new_window;
if (new_window < kMinimumFlowControlSendWindow &&
!connection_->version().AllowsLowFlowControlLimits()) {
QUIC_LOG_FIRST_N(ERROR, 1)
@@ -1522,6 +1537,9 @@
QUIC_LOG_FIRST_N(ERROR, 2) << QuicStackTrace();
}
+ QUIC_DVLOG(1) << ENDPOINT << "Adding stream " << id
+ << " to write-blocked list";
+
write_blocked_streams_.AddStream(id);
}