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
Priority:  5 - Normal Item Group:  None
Status:  None Privacy:  Public
Assigned to:  None Open/Closed:  Open
Planned Release:  None lwIP version:  git head

Discussion

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.non ... -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

 

Attached Files

This item currently has no attached files.

 

Dependencies

This item does not depend on any other items.

No items depend on this one.

 

Mail Notification Carbon-Copy List

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)
  •  

    Votes

    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.

     

    History

    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.16-ed84.
    Corresponding source code