Memory Issue In Kernel Sctp Implementation

Home » CentOS » Memory Issue In Kernel Sctp Implementation
CentOS No Comments

Dear all,

I’m running into a possible memory issue with the SCTP implementation in CentOS 6, using lksctp-tools. So far I’ve not seen the problem with other distributions yet.

The problem is that whenever a SCTP client connection is initiated to a second host and port at which no SCTP server application is listening

The scenario is simple:
– call socket() to create a socket.
– call sctp_connectx() to establish a connection.

The last call is repeated periodically to retry to establish a connection.

When looking on the wire using wireshark it shows that an SCTP INIT
packet is sent to the second host, which replies with an SCTP ABORT.

This is exactly according to the SCTP specification. However it appears ABORT isn’t propagated into to application layer that calls sctp_connectx().

Furthermore, because reconnect attempts are made, a steady memory increasement occurs. Looking at /proc/meminfo, the increasement occurs in SUnreclaim, the kernel slab cache.

Can you advice if this can be an issue with the SCTP implementation in the kernel? Maybe an issue solved upstream, but not (yet) backported into CentOS 6?

It applies to the following package versions (also to older kernels):

– kernel-2.6.32-504.8.1.el6.x86_64
– lksctp-tools-1.0.10-7.el6.x86_64

Regards,

Danny Smit