activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yossi Shmulevitch (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AMQ-2147) deleteTempDestination hangs when MemoryUsage.waitForSpace () is blocked
Date Thu, 05 Mar 2009 13:14:00 GMT

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

Yossi Shmulevitch commented on AMQ-2147:
----------------------------------------

This a good point.

I have 2 Qs:

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?

2. what will happen if setting producerFlowControl="false" and what  is different from setting
 <systemUsage sendFailIfNoSpace="true">.

In both scenarios the message sending will fail if memory space is full. won't it?


> 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