Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

smscgateway fails to process smses to the same target address in parallel #38

Open
GoogleCodeExporter opened this issue Aug 19, 2015 · 0 comments

Comments

@GoogleCodeExporter
Copy link

What steps will reproduce the problem?

1. Send multiple sms (or chunked sms) to a user to make these chunks to be 
processed in parallel by TxSmmServerSbb.processSms(...).


What is the expected output? What do you see instead?

According to the code in TxSmmServerSbb.processSms(...) it looks like these 
sms'es has to be passed for further processing serially, by using the same 
ActivityContextInterface stored in ActivityContextNamingFacility.
However it doesn't happen or better say it doesn't happen all the time. 
Sometimes I see that 2+ threads lookup in the ActivityContextNamingFacility for 
the address, receive null and then bind new ActivityContextInterface and all of 
them succeed!!! no NameAlreadyBoundException is thrown.
When this happens I often see this exception in the log:
23:36:02,345 WARN  [ActivityContext] (pool-25-thread-1) failed to unbind name: 
<address> from ac:ACH=NULL>-4ca4a7a9:14dadd37660:-7ff4
javax.slee.facilities.NameNotBoundException: name not bound
    at org.mobicents.slee.runtime.facilities.ActivityContextNamingFacilityCacheData.unbindName(ActivityContextNamingFacilityCacheData.java:88)
    at org.mobicents.slee.runtime.facilities.ActivityContextNamingFacilityImpl.removeName(ActivityContextNamingFacilityImpl.java:154)
    at org.mobicents.slee.runtime.activity.ActivityContextImpl.removeNamingBindings(ActivityContextImpl.java:244)
    at org.mobicents.slee.runtime.activity.ActivityContextImpl.activityEnded(ActivityContextImpl.java:574)
    at org.mobicents.slee.runtime.event.ActivityEndEventUnreferencedCallback.eventUnreferenced(ActivityEndEventUnreferencedCallback.java:58)
    at org.mobicents.slee.container.event.EventContextImpl.eventUnreferenced(EventContextImpl.java:225)
    at org.mobicents.slee.container.event.EventReferencesHandlerImpl.remove(EventReferencesHandlerImpl.java:63)
    at org.mobicents.slee.container.event.EventContextImpl.routed(EventContextImpl.java:260)
    at org.mobicents.slee.runtime.eventrouter.routingtask.EventRoutingTaskImpl.routeQueuedEvent(EventRoutingTaskImpl.java:566)
    at org.mobicents.slee.runtime.eventrouter.routingtask.EventRoutingTaskImpl.run(EventRoutingTaskImpl.java:126)
    at org.mobicents.slee.runtime.eventrouter.EventRouterExecutorImpl$EventRoutingTaskStatsCollector.run(EventRouterExecutorImpl.java:73)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

Probably this exception is caused by the fact that one of the "bound" 
ActivityContextInterface unbind the name registration successfully, and the 
other ones, which supposed to fail on binding due to NameAlreadyBoundException, 
fail to unbind themselves.


What version of the product are you using? On what operating system?
1.0.0-ALPHA, Linux (Ubuntu), JDK 1.7


Please provide any additional information below.

Original issue reported on code.google.com by [email protected] on 1 Jun 2015 at 1:31

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant