This repository has been archived by the owner on Apr 18, 2024. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
mptcp: Avoid ever-increasing count of orphan sockets
We have observed an ever-increasing count of orphan sockets on busy servers. These are MPTCP-connections that ran out of MPTCP subflows. What happens then is that when we try to retransmit the DATA_FIN, we fail in mptcp_retransmit_skb. In that case, retrans_stamp won't be set and remains 0. If that happens, the check in retransmits_timed_out() may always return false, depending on whether tcp_time_stamp(tcp_sk(sk)) is > 2^31 or not. Meaning, we never call tcp_write_err() on that MPTCP-socket and thus it will hang around forever. tcp_retransmit_skb handles that by always setting retrans_stamp - regardless of whether the retransmission succeeded or not. We should do the same. Fixes: Zero-day bug Signed-off-by: Christoph Paasch <cpaasch@apple.com> Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net> (cherry picked from commit 3a4382f) Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net> (cherry picked from commit 95803d8) Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
- Loading branch information