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