buglwIP - A Lightweight TCP/IP stack - Bugs: bug #54076, tcp: timeout required in...

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #54076: tcp: timeout required in FIN_WAIT_2 if pcb has been closed

Submitter:  Simon Goldschmidt <goldsimon>
Submitted:  Wed 06 Jun 2018 08:10:06 PM UTC
   
 
Category:  None Severity:  3 - Normal
Item Group:  None Status:  None
Privacy:  Public Assigned to:  None
Open/Closed:  Open Planned Release:  None
lwIP version:  git head

Fri 31 Aug 2018 04:16:22 PM UTC, comment #3: 

I think this already exists in tcp_slowtmr.

    /* Check if this PCB has stayed too long in FIN-WAIT-2 */
    if (pcb->state == FIN_WAIT_2) {
      /* If this PCB is in FIN_WAIT_2 because of SHUT_WR don't let it time out. */
      if (pcb->flags & TF_RXCLOSED) {
        /* PCB was fully closed (either through close() or SHUT_RDWR):
           normal FIN-WAIT timeout handling. */
        if ((u32_t)(tcp_ticks - pcb->tmr) >
            TCP_FIN_WAIT_TIMEOUT / TCP_SLOW_INTERVAL) {
          ++pcb_remove;
          LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: removing pcb stuck in FIN-WAIT-2\n"));
        }
      }
    }


Billy Bednar <bb1>
Thu 07 Jun 2018 07:03:20 AM UTC, comment #2: 


> lwIP should consider this half-closed connection to be a normal connection that is still working fine.


It does. That's why we don't have this timeout, yet.

Simon Goldschmidt <goldsimon>
Group administrator
Thu 07 Jun 2018 07:00:58 AM UTC, comment #1: 

The mailing list discussion with more information starts here:

https://lists.nongnu.org/archive/html/lwip-users/2018-06/msg00015.html

I just wanted to clarify the comment above about half-closed connections: Say a raw lwIP client connects with tcp_connect() and then shutdowns the Tx side of the connection, because the client expects data to automatically flow upon connection only from the server to the client. lwIP should consider this half-closed connection to be a normal connection that is still working fine.

R. Diez <rdiez>
Wed 06 Jun 2018 08:10:06 PM UTC, original submission:  

Since tcp_alloc() does not kill same-priority pcbs any more (only lower priorities), we need a timeout in FIN_WAIT_2.

However, this timeout must not trigger if the connection has deliberately half-closed (i.e. shutdown was called, not close).

Simon Goldschmidt <goldsimon>
Group administrator

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by bb1 (Posted a comment)
  • -email is unavailable- added by bb1
  • -email is unavailable- added by rdiez (Posted a comment)
  • -email is unavailable- added by goldsimon (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

     

    Follows 1 latest change.

    Date Changed by Updated Field Previous Value => Replaced by
    2018-08-31 bb1 Carbon-Copy- Added bb1

    Back to the top

    Powered by Savane 3.13-f8d8.
    Corresponding source code