Status: New
Owner: ----
Labels: Type-Defect Priority-Medium Component-SS7 Roadmap-Fix

New issue 231 by [email protected]: Both sides Dialog Release leads to a deadlock
http://code.google.com/p/jss7/issues/detail?id=231

What steps will reproduce the problem?
1. Create a service which calls Dialog.release
2. Create a client which sends Dialog.release
3. Try to execute them in parallel

What is the expected output? What do you see instead?
The Dialog should be released


What version of the product are you using? On what operating system?
2.0.0.BETA4

Please provide any additional information below.
One thread waits here:
owns: DialogImpl  (id=487)      
waiting for: CAPDialogCircuitSwitchedCallImpl  (id=486) 
CAPProviderImpl.onDialogReleased(Dialog) line: 690      
TCAPProviderImpl.doRelease(DialogImpl) line: 385        
TCAPProviderImpl.release(DialogImpl) line: 378  
DialogImpl.setState(TRPseudoState) line: 1887   
DialogImpl.release() line: 273  
DialogImpl.processEnd(TCEndMessage, SccpAddress, SccpAddress) line: 1537        
TCAPProviderImpl.onMessage(SccpDataMessage) line: 673   
SccpRoutingControl.route(SccpAddressedMessageImpl) line: 506    
SccpRoutingControl.translationFunction(SccpAddressedMessageImpl) line: 411      
SccpRoutingControl.routeMssgFromMtp(SccpAddressedMessageImpl) line: 149 
SccpStackImpl.onMtp3TransferMessage(Mtp3TransferPrimitive) line: 760    
Mtp3UserPartBaseImpl$MsgTransferDeliveryHandler.run() line: 248 
ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110      
ThreadPoolExecutor$Worker.run() line: 603 [local variables unavailable] 
Thread.run() line: 722  

The other thread waits here:
Thread [pool-32-thread-1] (Suspended)   
        owns: CAPDialogCircuitSwitchedCallImpl  (id=486)        
                waited by: Thread [pool-37-thread-1] (Suspended)        
        Unsafe.park(boolean, long) line: not available [native method]  
        LockSupport.park(Object) line: 186      
ReentrantLock$NonfairSync(AbstractQueuedSynchronizer).parkAndCheckInterrupt() line: 834 [local variables unavailable] ReentrantLock$NonfairSync(AbstractQueuedSynchronizer).acquireQueued(AbstractQueuedSynchronizer$Node, int) line: 867 ReentrantLock$NonfairSync(AbstractQueuedSynchronizer).acquire(int) line: 1197
        ReentrantLock$NonfairSync.lock() line: 214 [local variables 
unavailable]        
        ReentrantLock.lock() line: 290 [local variables unavailable]    
        DialogImpl.send(TCEndRequest) line: 667 
CAPProviderImpl.fireTCEnd(Dialog, boolean, ApplicationContextName, CAPGprsReferenceNumber, boolean) line: 1153
        CAPDialogCircuitSwitchedCallImpl(CAPDialogImpl).close(boolean) line: 
302        
CAPDialogCircuitSwitchedCallWrapper(CAPDialogWrapper<T>).close(boolean) line: 149
        Camel1INScpSbbImpl(CamelINScpSbb).capCloseDialog() line: 207    
        Camel1INScpSbbImpl(Camel1INScpSbb).terminateSession(boolean) line: 577  
        Camel1INScpSbbImpl(Camel1INScpSbb).terminateSession() line: 558 
Camel1INScpSbbImpl(Camel1INScpSbb).eventCAPDisconnect(EventReportBCSMRequest, ActivityContextInterface) line: 446 Camel1INScpSbbImpl(Camel1INScpSbb).onEventReportBCSMRequest(EventReportBCSMRequest, ActivityContextInterface) line: 214 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
        NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57      
        DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43  
        Method.invoke(Object, Object...) line: 601      
SbbEntityImpl.invokeEventHandler(EventContext, ActivityContext, EventContext) line: 481
        EventRoutingTaskImpl.routeQueuedEvent() line: 379       
        EventRoutingTaskImpl.run() line: 126    
        EventRouterExecutorImpl$EventRoutingTaskStatsCollector.run() line: 73   
        ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110      
        ThreadPoolExecutor$Worker.run() line: 603       
        Thread.run() line: 722  



--



Reply via email to