You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
One thing I have noted is that unless Diameter activities are ended by their state machine (e.g. a CCR-T message is received) the activities never expire and there is no way for the SBB to remove them.
In the event of (non-Mobicents!) Diameter clients malfunctioning or rebooting this can cause a memory leak.
e.g.
Diameter Gx Client sends CCR-INIT for a certain IP address with session ID ABC
Diameter Gx Client malfunctions and sends CCR-INIT for the same IP address with session ID DEF
Gx Client never every terminate session ID ABC and it stays forever and is never free-ed.
The SBB application actually knows that session ID ABC needs to be removed when it receives a CCR-INIT for the same IP.
If you edit the Diameter GX RA by adding to GxServerSessionActivityImpl.java:
public void delayedEndActivity() {
this.setTerminateAfterProcessing(true);
super.baseListener.startActivityRemoveTimer(getActivityHandle());
}
And to GxServerSessionActivity.java
void delayedEndActivity();
The SBB can explicitly end an activity if it needs to by calling delayedEndActivity on the activity.
This could be applied to all session based Diameter RAs
@richardgood commented on Thu Apr 07 2016
One thing I have noted is that unless Diameter activities are ended by their state machine (e.g. a CCR-T message is received) the activities never expire and there is no way for the SBB to remove them.
In the event of (non-Mobicents!) Diameter clients malfunctioning or rebooting this can cause a memory leak.
e.g.
Diameter Gx Client sends CCR-INIT for a certain IP address with session ID ABC
Diameter Gx Client malfunctions and sends CCR-INIT for the same IP address with session ID DEF
Gx Client never every terminate session ID ABC and it stays forever and is never free-ed.
The SBB application actually knows that session ID ABC needs to be removed when it receives a CCR-INIT for the same IP.
If you edit the Diameter GX RA by adding to GxServerSessionActivityImpl.java:
public void delayedEndActivity() {
this.setTerminateAfterProcessing(true);
super.baseListener.startActivityRemoveTimer(getActivityHandle());
}
And to GxServerSessionActivity.java
void delayedEndActivity();
The SBB can explicitly end an activity if it needs to by calling delayedEndActivity on the activity.
This could be applied to all session based Diameter RAs
@chathsuom commented on Fri Apr 08 2016
I guess this issue should be list under the RA's ?
https://github.com/RestComm/jain-slee.diameter
On Thu, Apr 7, 2016 at 7:01 PM, Jean Deruelle [email protected]
wrote:
@deruelle commented on Tue Apr 12 2016
@chathsuom yes, indeed. Can you create an issue there linking to this one and fixing/udpating the RAs and do a pull request ?
@brainslog please review
@deruelle commented on Fri May 20 2016
@chathsuom any news here ?
@xphudin commented on Sun Nov 06 2016
@deruelle
Can I continue and PR ?
@deruelle commented on Mon Nov 07 2016
@xphudin yes please.
The text was updated successfully, but these errors were encountered: