Sending unsubscribe can leave servicemix-wsn2005 threads hanging on sendSync()
------------------------------------------------------------------------------

                 Key: SMXCOMP-903
                 URL: https://issues.apache.org/jira/browse/SMXCOMP-903
             Project: ServiceMix Components
          Issue Type: Bug
          Components: servicemix-wsn2005
    Affects Versions: 2011.01
            Reporter: Gert Vanthienen
            Assignee: Gert Vanthienen
             Fix For: 2011.02


When unsubscribing from a servicemix-wsn2005 subscription, you may end up with 
threads blocked on the WSNEndpoint.process method's call to sendSync.  This 
happens if the subscription endpoint gets unregistered before the actual 
unsubscribe message exchange has been handled properly.  In ServiceMix 4, the 
exception will look like this:

{noformat}
org.apache.servicemix.nmr.core.ChannelClosedException
        at 
org.apache.servicemix.nmr.core.ChannelImpl.deliver(ChannelImpl.java:192)[81:org.apache.servicemix.nmr.core:1.4.0.fuse-00-00]
        at 
org.apache.servicemix.nmr.core.StraightThroughFlow.dispatch(StraightThroughFlow.java:55)[81:org.apache.servicemix.nmr.core:1.4.0.fuse-00-00]
        at 
org.apache.servicemix.nmr.core.FlowRegistryImpl.internalDispatch(FlowRegistryImpl.java:134)[81:org.apache.servicemix.nmr.core:1.4.0.fuse-00-00]
        at 
org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:117)[81:org.apache.servicemix.nmr.core:1.4.0.fuse-00-00]
        at 
org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)[81:org.apache.servicemix.nmr.core:1.4.0.fuse-00-00]
        at 
org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)[81:org.apache.servicemix.nmr.core:1.4.0.fuse-00-00]
        at 
org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)[91:org.apache.servicemix.jbi.runtime:1.4.0.fuse-00-00]
        at 
org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)[90:servicemix-common:2011.01.0.fuse-00-00]
        at 
org.apache.servicemix.common.endpoints.SimpleEndpoint.send(SimpleEndpoint.java:70)[90:servicemix-common:2011.01.0.fuse-00-00]
        at 
org.apache.servicemix.common.endpoints.SimpleEndpoint.done(SimpleEndpoint.java:85)[90:servicemix-common:2011.01.0.fuse-00-00]
        at 
org.apache.servicemix.http.endpoints.HttpConsumerEndpoint.process(HttpConsumerEndpoint.java:343)[157:servicemix-http:2011.01.0.fuse-00-00]
        at 
org.apache.servicemix.http.HttpBridgeServlet.service(HttpBridgeServlet.java:56)[157:servicemix-http:2011.01.0.fuse-00-00]
        at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:668)[136:org.apache.geronimo.specs.geronimo-servlet_3.0_spec:1.0]
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)[100:org.apache.servicemix.bundles.jetty:6.1.26.1-fuse]
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)[100:org.apache.servicemix.bundles.jetty:6.1.26.1-fuse]
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)[100:org.apache.servicemix.bundles.jetty:6.1.26.1-fuse]
        at 
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)[100:org.apache.servicemix.bundles.jetty:6.1.26.1-fuse]
        at 
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)[100:org.apache.servicemix.bundles.jetty:6.1.26.1-fuse]
        at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)[100:org.apache.servicemix.bundles.jetty:6.1.26.1-fuse]
        at 
org.mortbay.jetty.Server.handle(Server.java:326)[100:org.apache.servicemix.bundles.jetty:6.1.26.1-fuse]
        at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)[100:org.apache.servicemix.bundles.jetty:6.1.26.1-fuse]
        at 
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:398)[100:org.apache.servicemix.bundles.jetty:6.1.26.1-fuse]
        at 
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)[100:org.apache.servicemix.bundles.jetty:6.1.26.1-fuse]
        at 
org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation.run(SelectChannelConnector.java:525)[100:org.apache.servicemix.bundles.jetty:6.1.26.1-fuse]
        at 
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)[100:org.apache.servicemix.bundles.jetty:6.1.26.1-fuse]
{noformat}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to