[Bug 254159] Keepalive not working/tcp rst tolerance

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Mar 9 14:36:08 UTC 2021


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=254159

            Bug ID: 254159
           Summary: Keepalive not working/tcp rst tolerance
           Product: Base System
           Version: 12.2-STABLE
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs at FreeBSD.org
          Reporter: ant_mail at inbox.ru

OS: 12.2-STABLE r368657 GENERIC  amd64

I've ecnountered reproduceable problem with keepalive connection probes which
tolerate TCP RST response.

There is a connection between user application (client) and database (RDBMS) on
FreeBSD server. After killing user application the connection is still alive
(observed by netstat -x) on server.

The keepalive timer for the connection (initially set to net.inet.tcp.keepidle
value) is counting down. When it comes to zero, server send a keepalive probe.
Client response with TCP RST packet. Then connection on server is still alive
but keepalive timer resetted to net.inet.tcp.keepintvl value. After expiration
of this interval server do not send any packet but reset keepalive timer of
connection back to the net.inet.tcp.keepidle value. Then the things loop
forever.

P.S.
There is no firewall. 
It is proofed that server recieves TCP RST from client (visible with tcp dump).
RDBMS is  running in jail.

TCPdump from client:

193.017688000   192.168.0.3     192.168.0.2     TCP     66      3050→3583 [ACK]
Seq=1 Ack=1 Win=1026 Len=0
193.017816000   192.168.0.2     192.168.0.3     TCP     54      3583→3050 [RST]
Seq=1 Win=0 Len=0
1093.033029000  192.168.0.3     192.168.0.2     TCP     66      [TCP Dup ACK
5#1] 3050→3583 [ACK] Seq=1 Ack=1 
1093.033154000  192.168.0.2     192.168.0.3     TCP     54      3583→3050 [RST]
Seq=1 Win=0 Len=0
1993.113115000  192.168.0.3     192.168.0.2     TCP     66      [TCP Dup ACK
5#2] 3050→3583 [ACK] Seq=1 Ack=1 
1993.113245000  192.168.0.2     192.168.0.3     TCP     54      3583→3050 [RST]
Seq=1 Win=0 Len=0
...

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list