Wondering if anyone out there might be able to point us in the
direction of where to look to determine where pbufs are getting lost in
our lwip.
Our lwip is a version between 1.1 and 1.1.1, we are
working on updating to the latest stable release, but for internal
reasons this is not something we can accomplish in the short term.
Our system makes heavy use of the stack, particularly TCP, to
a handful of other devices on the network. We have numerous installed
configurations (hundreds) that operate without an issue every day.
However, we have a few situations where we have difficulty.
The system will run for a random period of time (1/2 hour to 5
hours) before crashing after exhausting all available pbufs. We have
put some diagnostics in to monitor the pbuf statistics and have found
that pbufs usage is fairly low until some point in time when they begin
a steady ramp up until the eventual crash.
In some scenarios the pbuf leak appears to be in blocks of 30
- 40 pbufs at a time, this leak tends to happen over a much longer time
frame.
During the ramp period, the responsiveness of the stack
API calls (we are using the sockets API) become sluggish. An api call
that normally requires 2ms to execute will, on occasion, begin to
require between 10ms and 20ms.
Another symptom we tend to see is random disconnects of TCP sockets, these too are unexplained.
Are there known pbuf leak bugs that have been repaired that we should apply to our build?
Are there particular areas in the stack we should examine for the potential leaks?
Any pointers would be appreciated.
We have been through the
available information and have found some useful information, but
nothing that has solved our problem as of yet.