[
https://issues.apache.org/activemq/browse/AMQ-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=57991#action_57991
]
Gary Tully commented on AMQ-2618:
---------------------------------
To make this not hang, the blocking on usage needs an overhaul such that it can
be aware of the connection context or the shutdown needs to interrupt waiting
threads.
One issue is that the pendingmessage cursors use the temp store and these are
per subscription or durable topic subscription. The messages are present in the
store so it is too late for sendFailIfNoSpace to kick in and throw an
exception.
Gating each send on available usage up front may be the simplest approach but
that will have lots of side effects like not being aware of flushing to disk
when a cache is exhausted. Not sure how to proceed with this at the moment.
Needs more thought.
> systemUsage tempUsage limit causes broker to lock up when using permanent
> queue with persistent messages
> --------------------------------------------------------------------------------------------------------
>
> Key: AMQ-2618
> URL: https://issues.apache.org/activemq/browse/AMQ-2618
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.3.0
> Reporter: Mats Henrikson
> Assignee: Gary Tully
> Attachments: UnlimitedEnqueueTest.java
>
>
> It is possible to hang the broker when setting a systemUsage tempUsage limit
> with permanent queues and persistent messages.
> I have attached a test class that demonstrates the problem. I got the test
> case from AMQ-2610 and have essentially only added the line:
> {code}
> brokerService.getSystemUsage().getTempUsage().setLimit(10 * 1024 * 1024);
> {code}
> When that line is in the code the test case hangs after 995 messages, when
> the line is commented out it runs probably until it runs out of disk space.
> When the broker hangs a ctrl+C is not enough to shut it down, when connecting
> over JMX with JConsole the queue being used in the test will not render its
> attributes, you can't connect with another consumer or producer etc.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.