Skip to main content

UDP errors and ServerTransaction limits in SIP Stack

8 replies [Last post]
robertofrancesc...
Offline
Joined: 2008-08-28

Hello everyone, I was testing my B2BUA implementation when I found these errors raised by the SIP RA and the SIP stack. How can I dodge them and why do I have these coming up?

1st error:

2008-09-19 18:04:31,809 ERROR [org.mobicents.slee.resource.sip.SipResourceAdaptor] ===> CT is NULL - RTR ? CALLID[bd703f14204213cffe29f8c4889b518c@192.168.1.183] BRANCH[z9hG4bK993b3ad6008e78adbaa9c2f3483489f8] METHOD[INVITE] CODE[200

2nd error:

Error while processing incoming UDP packet
NullPointerException

3rd error:

I'm getting 503 - Service Unavailable responses to INVITE because I exceed the limit of currently opened ServerTransactions in the SIP Stack. How can I change the limit? I was testing the B2B with 25cps and a duration of 210s for each call. The limit is hardcoded in jain-sip and is 5000 ST.

Regards,
Roberto Francescangeli.

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
eduardomartins
Offline
Joined: 2005-10-10

Are you using the default log configuration? That will for sure limit your performance to a very low cps number!

See http://groups.google.com/group/mobicents-public/web/mobicents-load-testing on a log config appropriate to performance tests

macche
Offline
Joined: 2008-03-05

hi eduardo,

we are already using a modified log config (similar to mobicents-load-test file).
We are using also other optimizations like jvm heap size tuning, kernel optimization and others.

eduardomartins
Offline
Joined: 2005-10-10

Are you able to share the code?

robertofrancesc...
Offline
Joined: 2008-08-28

Actually I have to ask for code sharing, in the meanwhile can I ask you how to configure JProfiler or another similar one to check the number of active Server Transaction during the test?

Do you have any suggestions?

Regards

eduardomartins
Offline
Joined: 2005-10-10

You won't be able to profile at 25 cps, the profiler has a huge impact on performance.

Anyway, I was looking at the code of JAIN SIP and I don't find a way to get that number (only for client txs) so your best shot, without considering doing your own build of the stack with a custom gov.nist.javax.sip.stack.SIPTransactionStack to provide that info in a log or something, is to set gov.nist.javax.sip.MAX_SERVER_TRANSACTIONS to a number such as max INT and see if that changes the picture...

deruelle_jean
Offline
Joined: 2003-06-24

1st : it seems to mean that the response is a retransmission, I think it can be discarded. Someone maintaining the SIP RA may confirm

2nd : Can you give the full stack trace ?

3rd : You can define your own size in setting the following property gov.nist.javax.sip.MAX_SERVER_TRANSACTIONS=integer in sipra.properties (see http://is2.antd.nist.gov/proj/iptel/jain-sip-1.2/javadoc/gov/nist/javax/...)

BR
Jean

robertofrancesc...
Offline
Joined: 2008-08-28

> 1st : it seems to mean that the response is a
> retransmission, I think it can be discarded. Someone
> maintaining the SIP RA may confirm

OK but how can I avoid them?

> 2nd : Can you give the full stack trace ?

Unfortunately it seems that in the UDPMessageChannel class there's only specified to print the exception and not the stacktrace. I can recompile it differently and see what happens.

> 3rd : You can define your own size in setting the
> following property
> gov.nist.javax.sip.MAX_SERVER_TRANSACTIONS=integer
> in sipra.properties (see
> http://is2.antd.nist.gov/proj/iptel/jain-sip-1.2/java
> oc/gov/nist/javax/sip/SipStackImpl.html)

I found the file but this property is missing, do I have to simply add it?
However, the real question is: why do I have this behaviour? I was only testing @ 25 cps and the limit cannot be overtaken. I mean it's only 25 transactions per second how can I have more than 4000 STs?

> BR
> Jean

Thank you!

deruelle_jean
Offline
Joined: 2003-06-24

1st : use the new SIP RA
2nd : strange indeed, maybe look at which incoming message produced the error if you can
3rd : yes you need to add it to the list of properties in the sipra.properties file and that is weird indeed, the other case where this can happen is that the stack cannot get the lock on the ServerTransaction after trying during 1 sec, which would mean that the RA would take more than 1 sec to process the request which seems unlikely but maybe if you're in debug mode this can happens, not sure... a SIP RA expert could help here