Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion src/proxy/http2/Http2Stream.cc
Original file line number Diff line number Diff line change
Expand Up @@ -975,7 +975,6 @@ void
Http2Stream::send_body(bool /* call_update ATS_UNUSED */)
{
Http2ConnectionState &connection_state = this->get_connection_state();
_timeout.update_inactivity();

reentrancy_count++;
Comment on lines 975 to 979
Copy link

Copilot AI Apr 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change alters how HTTP/2 stream inactivity is tracked under flow-control / write-blocked conditions (e.g., NO_WINDOW). I couldn't find existing gold tests that exercise the NO_WINDOW path (no references in tests/), so it would be good to add a regression test that stalls an HTTP/2 stream via flow control and asserts transaction_no_activity_timeout_in fires (and also that real outbound DATA resets the timer).

Copilot uses AI. Check for mistakes.
Comment on lines 975 to 979
Copy link

Copilot AI Apr 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removing _timeout.update_inactivity() here means the stream may no longer bump its inactivity timer after successful DATA frame sends in cases where no signal_write_event() is emitted (e.g., Http2ConnectionState::send_data_frames() can send one or more DATA frames, then stop on NO_WINDOW while more_data is still true, and it does not call signal_write_event() in that path). That can lead to premature transaction_no_activity_timeout_in even though bytes were just sent. Consider updating inactivity only when a frame is actually enqueued/sent (e.g., alongside update_sent_count() / after xmit()), rather than at the start of send_body() or on every send attempt.

Copilot uses AI. Check for mistakes.

Expand Down