https://bz.apache.org/bugzilla/show_bug.cgi?id=66659

            Bug ID: 66659
           Summary: Tomcat does not send FIN message upon request by
                    client to close TCP connection
           Product: Tomcat 10
           Version: 10.1.8
          Hardware: PC
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Connectors
          Assignee: dev@tomcat.apache.org
          Reporter: aritzbast...@gmail.com
  Target Milestone: ------

We are using Tomcat 10 + Spring Boot 3.1.0 to implement a notification
mechanism, based on SSE (Server-Sent Events).

However, when the client agent (browser) tries to close the connection sending
a TCP FIN message, the server (Tomcat) answers just an ACK, instead of ACK+FIN. 

As a result, the server application (REST controller) does not even notice that
the socket is being closed on the client side, and it will be able to send
subsequent notifications (PSH messages).

If client and server are directly connected, the client will respond with a RST
upon next notification, and the server socket will finally be closed. 

But, if a proxy (such as F5 or HA Proxy) lies between the two, the proxy will
silently discard PSH messages and the backend application will "think" that the
notification was successfully delivered to the client. On client side, the
connection will remain in FIN_WAIT_2 state for hours.

For demonstration purposes, I can attach a minimal Spring Boot application
showing this behavior.

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to