Skip to content

{bp-19589} net/tcp/tcp_send: Remove work_available check when updating retransmit timer - #19696

Merged
xiaoxiang781216 merged 1 commit into
apache:releases/13.0from
jerpelea:bp-19589
Aug 5, 2026
Merged

{bp-19589} net/tcp/tcp_send: Remove work_available check when updating retransmit timer#19696
xiaoxiang781216 merged 1 commit into
apache:releases/13.0from
jerpelea:bp-19589

Conversation

@jerpelea

@jerpelea jerpelea commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

The condition work_available(&conn->work) && tx_unacked != 0 prevented tcp_update_retrantimer from being called when the work queue was still busy, leaving conn->timer stale or zero on subsequent sends. This caused the RTT estimation to compute a false RTT (m = rto - 0 = rto), creating a positive feedback loop that inflated the RTO to extreme values (e.g., 232 half-seconds = ~116 seconds).

Fix: remove the work_available check so that tcp_update_retrantimer is always called when there is unacknowledged data. The decision to re-queue the work is handled internally by tcp_update_timer.

Impact

RELEASE

Testing

CI

…t timer

The condition work_available(&conn->work) && tx_unacked != 0
prevented tcp_update_retrantimer from being called when the work
queue was still busy, leaving conn->timer stale or zero on
subsequent sends. This caused the RTT estimation to compute a
false RTT (m = rto - 0 = rto), creating a positive feedback loop
that inflated the RTO to extreme values (e.g., 232 half-seconds
= ~116 seconds).

Fix: remove the work_available check so that tcp_update_retrantimer
is always called when there is unacknowledged data. The decision to
re-queue the work is handled internally by tcp_update_timer.

Signed-off-by: zhekunren <zhekunren@qq.com>
@github-actions github-actions Bot added Area: Networking Effects networking subsystem Size: XS The size of the change in this PR is very small labels Aug 5, 2026
@xiaoxiang781216
xiaoxiang781216 merged commit c96ed01 into apache:releases/13.0 Aug 5, 2026
15 of 41 checks passed
@jerpelea
jerpelea deleted the bp-19589 branch August 5, 2026 13:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: Networking Effects networking subsystem Size: XS The size of the change in this PR is very small

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants