mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "janardhanan vembunarayanan (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (DIRMINA-329) ProtocolEncoderOutputImpl and SSLHandler deadlocks
Date Sun, 07 Jan 2007 06:24:28 GMT

     [ https://issues.apache.org/jira/browse/DIRMINA-329?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

janardhanan vembunarayanan resolved DIRMINA-329.
------------------------------------------------

    Resolution: Fixed

I am able to workaround this issue. Hence closing it.

> ProtocolEncoderOutputImpl and SSLHandler deadlocks
> --------------------------------------------------
>
>                 Key: DIRMINA-329
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-329
>             Project: MINA
>          Issue Type: Bug
>    Affects Versions: 0.9.4
>         Environment: Windows 2000, Java 5.0 and Eclipse IDE
>            Reporter: janardhanan vembunarayanan
>            Priority: Blocker
>
> I am using MINA in my project for developing a routing server. The server accepts TCP
+ SSL connection from 1 client. The data sent by the client will be parsed by the server and
does the following
> 1. The Acceptor handler receives the message from the client and sends the data to a
webserivice using a Socket connector 
> 2. The response from the web service will be received by the ConnectHandler which will
send the response to the client that is connected to server
> 3. If the data sent by the client has some errors then the Acceptor handler sends an
error response to the client.
> Client  <------------------> MINA Server   <-----------------------> Web
Service
>             aysnchronous                                 synchronous
>              (1 connection)                                 (for each command there will
be one connection)
> When the 2 different handlers tries to write to the client they dead lock with each other.
The dead lock message is given below.
> Is there a fix for this available already?
> Name: MOPClientAcceptor
> State: BLOCKED on org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolEncoderOutputImpl@1afa486
owned by: ServiceConnector:pp_mops at 
> Total blocked: 20  Total waited: 12
> Stack trace: 
> org.apache.mina.filter.codec.support.SimpleProtocolEncoderOutput.write(SimpleProtocolEncoderOutput.java:32)
> com.test.trinity.servicegateway.codec.mop.MOPResponseEncoder.writeData(MOPResponseEncoder.java:109)
> com.test.trinity.servicegateway.codec.mop.MOPResponseEncoder.encode(MOPResponseEncoder.java:89)
> org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:226)
> org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:583)
> org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:51)
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(AbstractIoFilterChain.java:799)
> org.apache.mina.common.IoFilterAdapter.filterWrite(IoFilterAdapter.java:92)
> org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:583)
> org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:51)
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(AbstractIoFilterChain.java:799)
> org.apache.mina.common.support.AbstractIoFilterChain$2.filterWrite(AbstractIoFilterChain.java:212)
> org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:583)
> org.apache.mina.common.support.AbstractIoFilterChain.filterWrite(AbstractIoFilterChain.java:574)
> org.apache.mina.transport.socket.nio.SocketSessionImpl.write0(SocketSessionImpl.java:176)
> org.apache.mina.common.support.BaseIoSession.write(BaseIoSession.java:136)
> com.test.trinity.servicegateway.router.mop.MOPClientRequestHandler.replyErrorToClient(MOPClientRequestHandler.java:373)
> com.test.trinity.servicegateway.router.mop.MOPClientRequestHandler.messageReceived(MOPClientRequestHandler.java:106)
> org.apache.mina.common.support.AbstractIoFilterChain$2.messageReceived(AbstractIoFilterChain.java:188)
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:501)
> org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:51)
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:787)
> com.test.trinity.servicegateway.router.mop.MOPHeartBeatFilter.messageReceived(MOPHeartBeatFilter.java:30)
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:501)
> org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:51)
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:787)
> org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:187)
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:501)
> org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:51)
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:787)
> com.test.trinity.servicegateway.router.mop.MOPStateManagerFilter.messageReceived(MOPStateManagerFilter.java:54)
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:501)
> org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:51)
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:787)
> org.apache.mina.filter.SSLFilter.handleAppDataRead(SSLFilter.java:623)
> org.apache.mina.filter.SSLFilter.handleSSLData(SSLFilter.java:601)
> org.apache.mina.filter.SSLFilter.messageReceived(SSLFilter.java:392)
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:501)
> org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:51)
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:787)
> com.test.trinity.servicegateway.common.ReadThrottleFilter$Release.messageReceived(ReadThrottleFilter.java:186)
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:501)
> org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:51)
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:787)
> org.apache.mina.filter.ThreadPoolFilter.processEvent(ThreadPoolFilter.java:718)
> org.apache.mina.filter.ThreadPoolFilter$Worker.processEvents(ThreadPoolFilter.java:474)
> org.apache.mina.filter.ThreadPoolFilter$Worker.run(ThreadPoolFilter.java:429)
> Name: ServiceConnector:pp_mops 
> State: BLOCKED on org.apache.mina.filter.support.SSLHandler@5c18ff owned by: MOPClientAcceptord-sjc-
> Total blocked: 6  Total waited: 9
> Stack trace: 
> org.apache.mina.filter.SSLFilter.filterWrite(SSLFilter.java:452)
> org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:583)
> org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:51)
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(AbstractIoFilterChain.java:799)
> org.apache.mina.common.IoFilterAdapter.filterWrite(IoFilterAdapter.java:92)
> org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:583)
> org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:51)
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(AbstractIoFilterChain.java:799)
> org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolEncoderOutputImpl.doFlush(ProtocolCodecFilter.java:377)
> org.apache.mina.filter.codec.support.SimpleProtocolEncoderOutput.flush(SimpleProtocolEncoderOutput.java:94)
> org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:251)
> org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:583)
> org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:51)
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(AbstractIoFilterChain.java:799)
> org.apache.mina.common.IoFilterAdapter.filterWrite(IoFilterAdapter.java:92)
> org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:583)
> org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:51)
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(AbstractIoFilterChain.java:799)
> org.apache.mina.common.support.AbstractIoFilterChain$2.filterWrite(AbstractIoFilterChain.java:212)
> org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:583)
> org.apache.mina.common.support.AbstractIoFilterChain.filterWrite(AbstractIoFilterChain.java:574)
> org.apache.mina.transport.socket.nio.SocketSessionImpl.write0(SocketSessionImpl.java:176)
> org.apache.mina.common.support.BaseIoSession.write(BaseIoSession.java:136)
> com.test.trinity.servicegateway.service.ServiceHandler.messageReceived(ServiceHandler.java:172)
> org.apache.mina.common.support.AbstractIoFilterChain$2.messageReceived(AbstractIoFilterChain.java:188)
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:501)
> org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:51)
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:787)
> com.test.trinity.servicegateway.service.RemoveServiceSessionHook.messageReceived(RemoveServiceSessionHook.java:25)
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:501)
> org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:51)
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:787)
> com.test.trinity.servicegateway.service.ServiceCounterMonitorFilter.messageReceived(ServiceCounterMonitorFilter.java:156)
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:501)
> org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:51)
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:787)
> org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:187)
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:501)
> org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:51)
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:787)
> org.apache.mina.filter.ThreadPoolFilter.processEvent(ThreadPoolFilter.java:718)
> org.apache.mina.filter.ThreadPoolFilter$Worker.processEvents(ThreadPoolFilter.java:474)
> org.apache.mina.filter.ThreadPoolFilter$Worker.run(ThreadPoolFilter.java:429)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message