wing2ofsky wing2ofsky - 2 months ago 20
Linux Question

Trouble on state FIN_WAIT_1

recently i've got some port holding on FIN_WAIT_1 state till two days later. The target port is used by one server process ever and client connect to the server process through this port.

The situation is we stopped the server process, and obviously some client is still connecting with the server at that moment. From my understanding, the server process sends a FIN package to client and waiting for the ACK package back. Unfortunately, that ACK package seems not like coming to server side till two days later.

my question is there any config like timeout to FIN_WAIT_1 status. i walked through the internet searching but found nothing there. Please help tell me if you have any experience with this.

BTW, the server process has already gone while the FIN_WAIT_1 happening to the port.

Thanks in advance

EJP EJP
Answer

The FIN_WAIT_1 state is waiting for the peer to ACK the FIN that this end has just sent. That outgoing FIN is subject to all the normal TCP retry and timeout processing, so if the other end has completely disappeared and never responds, TCP should time out the connection and reset it as a matter of course. That's why you couldn't find a specific FIN_WAIT_1 timeout: there isn't one, just the normal TCP write timers.

All that should have happened within ten minutes or so.

If the state persists and it causes other problems I don't think you don't have much option but to reboot.

Comments