[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] [bug #23726] pbuf pool exhaustion on slow recv()

From: Thomas Taranowski
Subject: [lwip-devel] [bug #23726] pbuf pool exhaustion on slow recv()
Date: Fri, 27 Jun 2008 11:50:28 +0000
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: Gecko/20080404 Firefox/


                 Summary: pbuf pool exhaustion on slow recv()
                 Project: lwIP - A Lightweight TCP/IP stack
            Submitted by: taranowski
            Submitted on: Friday 06/27/2008 at 11:50
                Category: sockets
                Severity: 3 - Normal
              Item Group: Feature Request
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
         Planned Release: 1.3+
            lwIP version: 1.2.0



Using a late 1.2 based CVS head

When a user binds a socket, the stack will enqueue incoming data into that
socket's port.  If the recv() is never called to empty that socket, the port's
queue will grow until it consumes all available pbufs, thereby essentially
latching up the stack.  There are several fixes:

*Implement SO_RCVBUF (still leaves stack open to failure)

*Implement a handler that will be called when there are no PBUF_POOL
available.  This handler will walk through the open port's, and clear each
port's queue, freeing PBUF_POOLs.  This would allow the stack to recover from
such a condition.

*Implement a mechanism to limit the depth of each port's queue.  Similar to
SO_RCVBUF, but would be a stack-enforced limit.  If the stack attempts to
enqueue an incoming payload, but there are already MAX PBUF_POOLs already in
the port, discard the incoming message.


Reply to this item at:


  Message sent via/by Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]