You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Trustin Lee (JIRA)" <ji...@apache.org> on 2007/01/22 03:58:29 UTC

[jira] Closed: (DIRMINA-329) ProtocolEncoderOutputImpl and SSLHandler deadlocks

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

Trustin Lee closed DIRMINA-329.
-------------------------------

    Resolution: Duplicate
      Assignee: Trustin Lee

This issue is a duplicate of DIRMINA-241

> 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
>         Assigned To: Trustin Lee
>            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