I'm using RestComm library on Centos 7 and lk-sctp to initiate one to many associations on the same host port (3868). The Java class is [SctpMultiChannel]
The way this works, you send a message(Diameter) using the SctpMultiChannel.send method to the intended receiver while the association is down. The association is established automatically by sending INIT and continuing the handshake.
You receive a notification that the association is up on the registered NotificationHandler.
my code handles connection failure and tries to re-establish the association setup each time the association is down.
At some point my app receives an abort(max_retrans exceeded), after that we try to reconnect, and send the initial message again (association is down). This initial message doesn't leave the application[no exception, no error, no trace on wireshark]
In some cases my app receives a SendFailedNotification on NotificationHandler, and the association stays in this disconnected stays, and my app stays forever trying to reconnect.
I'm suspecting that lk-sctp has an issue when it receives an abort. Are there any configurations that might help me?
Note: the multi channel is configured as non blocking.
flow is here
//send the initial message
msgInfo = MessageInfo.createOutgoing(dest, 0);
msgInfo.payloadProtocolID(0);
msgInfo.complete(true);
msgInfo.unordered(true);
ByteBuffer arg0 = firstMsg.getMsg();
int sentBytes = this.socketChannelSctp.send(arg0, msgInfo);
//checks for notifications
MessageInfo messageInfo = this.socketChannelSctp.receive(rxBuffer, this, this.associationHandler);
// always returns null