We are using MQX for KSDK 1.1.0 on a MK64FN1M0. We have two HTTP servers running (one will eventually be used for SSL) and a Telnet server running. The issue we are seeing is occasionally the K64 will quit responding to ethernet, but we know it is still running because we still have serial (debug) output and are receiving data over SPI from another processor. This issue seems to happen more or less randomly, and does not seem to be related to the number of clients connected. The K64 does not recover until a reset, so I do not believe it is a timeout issue.
When we connect via JTAG to the K64 after the problem occurs, the TCP/IP task has code "PART: Out of Blocks" and has been dequeued (which explains why it never recovers). Note that we have increased the socket partition size as follows, but the problem still occurs:
#define RTCSCFG_SOCKET_PART_INIT 32
#define RTCSCFG_SOCKET_PART_GROW 1
#define RTCSCFG_SOCKET_PART_MAX RTCSCFG_SOCKET_PART_INIT
Is this the expected method of failure for an out of blocks error? It seems that a more graceful mode of failure would be to drop connections/packets instead of take down the whole TCP/IP task. It is still unclear to us if we are actually running out of blocks, or if blocks are not getting released properly (or if the partition getting corrupted). Any ideas?