You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Gert Vanthienen (JIRA)" <ji...@apache.org> on 2011/09/14 17:04:09 UTC

[jira] [Resolved] (SMXCOMP-903) Sending unsubscribe can leave servicemix-wsn2005 threads hanging on sendSync()

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

Gert Vanthienen resolved SMXCOMP-903.
-------------------------------------

    Resolution: Fixed

Fixed an issue in AsyncBaseLifeCycle's prepareShutdown method (cfr. http://svn.apache.org/viewvc?view=revision&revision=1170661) and afterwards reused that logic to ensure all pending exchanges are done before unregistering the subscription endpoint (cfr. http://svn.apache.org/viewvc?view=revision&revision=1170662)

> 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

        

Re: [jira] [Resolved] (SMXCOMP-903) Sending unsubscribe can leave servicemix-wsn2005 threads hanging on sendSync()

Posted by Gert Vanthienen <ge...@gmail.com>.
L.S.,


If it is the same exception, I'd definitely give it a go with the latest
version ( JBI assembly on
http://servicemix.apache.org/downloads/servicemix-4.4.0.html ) -   not only
this bug got fixed, but we also fixed a few more issues with both the
wsn2005 and http components as well as some issues with the NMR to work
properly with the wsn component.


Regards,

Gert Vanthienen
------------------------
FuseSource
Web: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/


On Thu, Jan 12, 2012 at 8:45 AM, Bhavana <bh...@yahoo.com> wrote:

> Gert Vanthienen (JIRA <ji...@...> writes:
>
> >
> >
> >      [
> > https://issues.apache.org/jira/browse/SMXCOMP-903?
> page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
> >
> > Gert Vanthienen resolved SMXCOMP-903.
> > -------------------------------------
> >
> >     Resolution: Fixed
> >
> > Fixed an issue in AsyncBaseLifeCycle's prepareShutdown method (cfr.
> > http://svn.apache.org/viewvc?view=revision&revision=1170661) and
> afterwards
> reused that logic
> > to ensure all pending exchanges are done before unregistering the
> subscription endpoint (cfr. http://svn.apache.org/viewvc?
> view=revision&revision=1170662)
> >
> > > 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
> >
> >
>
>
> Hi,
> We are facing same issue with servicemix 4.3.0 while trying to unsubscribe.
> To our client applications only /Broker/ and /CreatePullPoint/ endpoints
> are
> available as external endpoints.
>
> We tried sending Unsubscribe request to both of these end points giving
> subscriptionId in soap body header but we are getting failure and
> servicemix
> logs contain same exceptions as given in below mail.
>
> Can you pls help us resolve this issue? Do we need to upgrade to
> servicemix? In
> which servicemix release this issue is fixed?
>
> Regards,
> Bhavana
>
>
>
>

Re: [jira] [Resolved] (SMXCOMP-903) Sending unsubscribe can leave servicemix-wsn2005 threads hanging on sendSync()

Posted by Bhavana <bh...@yahoo.com>.
Gert Vanthienen (JIRA <ji...@...> writes:

> 
> 
>      [
> https://issues.apache.org/jira/browse/SMXCOMP-903?
page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
> 
> Gert Vanthienen resolved SMXCOMP-903.
> -------------------------------------
> 
>     Resolution: Fixed
> 
> Fixed an issue in AsyncBaseLifeCycle's prepareShutdown method (cfr.
> http://svn.apache.org/viewvc?view=revision&revision=1170661) and afterwards 
reused that logic
> to ensure all pending exchanges are done before unregistering the 
subscription endpoint (cfr. http://svn.apache.org/viewvc?
view=revision&revision=1170662)
> 
> > 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
> 
> 


Hi,
We are facing same issue with servicemix 4.3.0 while trying to unsubscribe.
To our client applications only /Broker/ and /CreatePullPoint/ endpoints are 
available as external endpoints.

We tried sending Unsubscribe request to both of these end points giving 
subscriptionId in soap body header but we are getting failure and servicemix 
logs contain same exceptions as given in below mail.

Can you pls help us resolve this issue? Do we need to upgrade to servicemix? In 
which servicemix release this issue is fixed?

Regards,
Bhavana