gfe-relnote: Add more logging when write blocked stream is missing. Debugging only, no functional change expected, not protected.
PiperOrigin-RevId: 294265505
Change-Id: I7d1b9c7c19fa51df35c22d644a4998c492c881ed
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index f956e5e..aea4663 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -640,11 +640,21 @@
return;
}
}
+ std::vector<QuicStreamId> last_writing_stream_ids;
for (size_t i = 0; i < num_writes; ++i) {
if (!(write_blocked_streams_.HasWriteBlockedSpecialStream() ||
write_blocked_streams_.HasWriteBlockedDataStreams())) {
// Writing one stream removed another!? Something's broken.
- QUIC_BUG << "WriteBlockedStream is missing";
+ QUIC_BUG << "WriteBlockedStream is missing, num_writes: " << num_writes
+ << ", finished_writes: " << i
+ << ", connected: " << connection_->connected()
+ << ", connection level flow control blocked: "
+ << flow_controller_.IsBlocked() << ", scheduler type: "
+ << spdy::WriteSchedulerTypeToString(
+ write_blocked_streams_.scheduler_type());
+ for (QuicStreamId id : last_writing_stream_ids) {
+ QUIC_LOG(WARNING) << "last_writing_stream_id: " << id;
+ }
connection_->CloseConnection(QUIC_INTERNAL_ERROR,
"WriteBlockedStream is missing",
ConnectionCloseBehavior::SILENT_CLOSE);
@@ -654,6 +664,7 @@
return;
}
currently_writing_stream_id_ = write_blocked_streams_.PopFront();
+ last_writing_stream_ids.push_back(currently_writing_stream_id_);
QUIC_DVLOG(1) << ENDPOINT << "Removing stream "
<< currently_writing_stream_id_ << " from write-blocked list";
QuicStream* stream = GetOrCreateStream(currently_writing_stream_id_);