activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Tully (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AMQ-2147) deleteTempDestination hangs when MemoryUsage.waitForSpace () is blocked
Date Wed, 25 Mar 2009 12:59:44 GMT

    [ https://issues.apache.org/activemq/browse/AMQ-2147?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=50794#action_50794
] 

Gary Tully commented on AMQ-2147:
---------------------------------

{quote}1. why the delete temporary topic is blocked ?
As far as I can see , it's an internal communication inside the broker which should release
resources and therefore should not be blocked.
Does the flow control feature blocks an internal messages also?
{quote}
Yes.

{quote}2. what will happen if setting producerFlowControl="false" and what is different from
setting <systemUsage sendFailIfNoSpace="true">.{quote}
With flow controll false, a send on the broker will block waiting for space to become availalbe,
the client will experience a hang. All other users of the connection will also be locked out
awaiting a response from the broker.

with sendFail..., if there is no space, the broker will respond with an exception that will
be propagated back to the client so the client will see an exception rather than a hang.

> deleteTempDestination hangs when MemoryUsage.waitForSpace () is blocked
> -----------------------------------------------------------------------
>
>                 Key: AMQ-2147
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2147
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.1.0
>         Environment: ActiveMQ 5.1embedded in Apache Tomcat 6.0.18 environment, Java(TM)
2 Runtime Environment, Standard Edition (build 1.5.0_16-b02)
> , CentOS4.4
>            Reporter: Yossi Shmulevitch
>             Fix For: 5.3.0
>
>
> Delete temporary queue hangs:
> "pool-5-thread-2" prio=1 tid=0x65be6cc8 nid=0x73f5 waiting on condition [0x5a6fe000..0x5a6ff130]
>         at sun.misc.Unsafe.park(Native Method)
>         at java.util.concurrent.locks.LockSupport.park(Unknown Source)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown
Source)
>         at java.util.concurrent.ArrayBlockingQueue.take(Unknown Source)
>         at org.apache.activemq.transport.FutureResponse.getResult(FutureResponse.java:40)
>         at org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:80)
>         at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1195)
>         at org.apache.activemq.ActiveMQConnection.deleteTempDestination(ActiveMQConnection.java:1791)
>         at org.apache.activemq.command.ActiveMQTempDestination.delete(ActiveMQTempDestination.java:51)
>         ....
> and createTemporaryTopic fails:
> "http-443-6" daemon prio=1 tid=0x098a2e88 nid=0x35ca waiting on condition [0x5dfcd000..0x5dfcdf30]
>         at sun.misc.Unsafe.park(Native Method)
>         at java.util.concurrent.locks.LockSupport.park(Unknown Source)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown
Source)
>         at java.util.concurrent.ArrayBlockingQueue.take(Unknown Source)
>         at org.apache.activemq.transport.FutureResponse.getResult(FutureResponse.java:40)
>         at org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:80)
>         at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1195)
>         at org.apache.activemq.ActiveMQConnection.createTempDestination(ActiveMQConnection.java:1762)
>         at org.apache.activemq.ActiveMQSession.createTemporaryTopic(ActiveMQSession.java:1232)
> When Memory Usage is blocked (100%):
> ActiveMQ Transport: ssl:///127.0.0.1:33469" daemon prio=1 tid=0x0ac5f5d0 nid=0x3470 in
Object.wait() [0x5e33d000..0x5e33e1b0]
>         at java.lang.Object.wait(Native Method)
>         at org.apache.activemq.usage.MemoryUsage.waitForSpace(MemoryUsage.java:85)
>         - locked <0x7269f500> (a java.lang.Object)
>         at org.apache.activemq.usage.MemoryUsage.waitForSpace(MemoryUsage.java:79)
>         at org.apache.activemq.broker.region.Topic.send(Topic.java:341)
>         at org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:345)
>         at org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:445)
>         at org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:224)
>         at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:125)
>         at org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:95)
>         at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:125)
>         at org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:132)
>         at org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:437)
>         at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:624)
>         at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292)
>         at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:180)
>         at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
>         at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:143)
>         at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:206)
>         - locked <0x7378cf58> (a org.apache.activemq.transport.InactivityMonitor$1)
>         at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
>         at org.apache.activemq.transport.tcp.SslTransport.doConsume(SslTransport.java:104)
>         at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:196)
>         at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:183)
>         at java.lang.Thread.run(Unknown Source)
> These stack traces were taken from our web application

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message