Status: New
Owner: ----
Labels: Type-Defect Priority-Medium
New issue 64 by [email protected]: IllegalStateException thrown
when there are retransmissions in cluster mode
http://code.google.com/p/jdiameter/issues/detail?id=64
When load testing jDiameter we hit the following scenario:
When a Diameter client sends a Gx CCR-T to a Diameter server under load,
the processing can take so long that the Diameter client times out and
retransmits the CCR-T.
The Gx CCR-T's are eventually processed and while processing any subsequent
CCR-T ServerGxSessionImpl:handleEvent
final ServerGxSessionState state =
this.sessionData.getServerGxSessionState();
throws an IllegalStateException.
This is caught but the message is still passed to any listening SBBs where
processing eventually should fail and an error code returned.
As each retransmit is fully processed the load and hence processing delay
grows, resulting in more retransmits and hence more delay.....
To avoid this cycle - a simple fix is when an illegalStateException is
thrown we know the message doesn't need to be passed to listening SBBs for
further processing (incurring further delay and causing more load).
Instead we immediately respond to the message with
ResultCode.UNKNOWN_SESSION_ID.
This will prevent further retransmits from exacerbating the problem.
Attached are patches for Cxdx, Gx, Gy, S6a. I guess this patch should be
applied to RAs if accepted.
Attachments:
jdiameter_illegalstateexception_patch 9.8 KB
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
---
You received this message because you are subscribed to the Google Groups "mobicents-all-issues-changes" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.