Re: Memory issue with kernel sctp_connectx

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

 



On Fri, Mar 06, 2015 at 04:42:57PM +0100, ext Danny Smit wrote:
> On Fri, Mar 6, 2015 at 12:13 PM, Adam Endrodi wrote:
> > On Fri, Mar 06, 2015 at 11:52:05AM +0100, ext Danny Smit wrote:
> >>
> >> 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().
> > [...]
> >> Note that the API is used in non-blocking mode.
> >
> > This case sctp_connectx() doesn't wait until the connection is established.
> > You need to use sctp_recvmsg() to get the notification.
> 
> I tried to apply this as suggested, the scenario now is as follows:
> 
> First call sctp_connectx() on a socket in non blocking mode, which
> results in the error code EINPROGRESS.
> 
> Next call sctp_recvmsg(), which results in the error code ENOTCONN
> instead of getting any notifications.
> 
> This actually feels right because there is no connection established
> yet. It also doesn't seem to make a difference for the memory
> consumption. Am I missing something?

How about something like:

for (;;)
{
	sctp_connectx(sfd);
	poll([sfd], -1);
	sctp_recvmsg(sfd);
}

-- 
adam
--
To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Networking Development]     [Linux OMAP]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux