tcp_connect() does : tp->retrans_stamp = tcp_time_stamp(tp);
When 3WHS completes, we need to clear retrans_stamp otherwise various things can break. This bug became more visible after commit b701a99e431d ("tcp: Add tcp_clamp_rto_to_user_timeout() helper to improve accuracy"), but predates git history. Signed-off-by: Eric Dumazet <eduma...@google.com> Acked-by: Soheil Hassas Yeganeh <soh...@google.com> --- net/ipv4/tcp_input.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index a9d9555a973fed4e3562a57d1a2cdadfef40dae4..6c1c79a34ea0b694d0259b3f39ac1481b81dac5a 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -5680,6 +5680,7 @@ void tcp_finish_connect(struct sock *sk, struct sk_buff *skb) * packet. */ tp->lsndtime = tcp_jiffies32; + tp->retrans_stamp = 0; if (sock_flag(sk, SOCK_KEEPOPEN)) inet_csk_reset_keepalive_timer(sk, keepalive_time_when(tp)); -- 2.20.0.405.gbc1bbc6f85-goog