Log more detailed error when GFE_BUG triggered in QuicSession::MarkConnectionLevelWriteBlocked. PiperOrigin-RevId: 715901300
diff --git a/quiche/quic/core/quic_session.cc b/quiche/quic/core/quic_session.cc index a804c47..ec01c2c 100644 --- a/quiche/quic/core/quic_session.cc +++ b/quiche/quic/core/quic_session.cc
@@ -2333,17 +2333,19 @@ num_zombie_streams_; } -void QuicSession::MarkConnectionLevelWriteBlocked(QuicStreamId id) { +bool QuicSession::MarkConnectionLevelWriteBlocked(QuicStreamId id) { + bool ok = true; if (GetOrCreateStream(id) == nullptr) { + ok = false; QUIC_BUG(quic_bug_10866_11) << "Marking unknown stream " << id << " blocked."; - QUIC_LOG_FIRST_N(ERROR, 2) << QuicStackTrace(); } QUIC_DVLOG(1) << ENDPOINT << "Adding stream " << id << " to write-blocked list"; write_blocked_streams_->AddStream(id); + return ok; } bool QuicSession::HasDataToWrite() const {
diff --git a/quiche/quic/core/quic_session.h b/quiche/quic/core/quic_session.h index 23537f0..e50e185 100644 --- a/quiche/quic/core/quic_session.h +++ b/quiche/quic/core/quic_session.h
@@ -410,7 +410,9 @@ // connection-level flow control but not by its own stream-level flow control. // The stream will be given a chance to write when a connection-level // WINDOW_UPDATE arrives. - virtual void MarkConnectionLevelWriteBlocked(QuicStreamId id); + // TODO(b/235204908) Remove the return value. + // Returns false if an error occurred. + bool MarkConnectionLevelWriteBlocked(QuicStreamId id); // Called to close zombie stream |id|. void MaybeCloseZombieStream(QuicStreamId id);