Broker parameter systemExitOnShutdown="true" not being honored when persistence
adapter file system is unavailable
------------------------------------------------------------------------------------------------------------------
Key: AMQ-2038
URL: https://issues.apache.org/activemq/browse/AMQ-2038
Project: ActiveMQ
Issue Type: Bug
Components: Broker
Affects Versions: 5.0.0
Environment: Windows XP x86
Reporter: Wilson Freitas
The broker parameter systemExitOnShutdown="true" is not being honored when
persistence adapter file system is unavailable.
To reproduce the problem:
- Use journaling persistence pointing to an USB drive diretory.
- Make sure the broker is configured with systemExitOnShutdown="true":
<amq:broker id="broker" depends-on="jmxServer" useShutdownHook="false"
systemExitOnShutdown="true"> ...
- After the broker is running send some messages to a queue.
- Unplug the USB drive.
- Try to send more messages. The broker will reject the messages and report
the following exception:
javax.jms.JMSException: The volume for a file has been externally altered so
that the opened file is no longer valid
at
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
at
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1203)
at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1648)
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:227)
at
org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:241)
at
org.apache.servicemix.jms.multiplexing.MultiplexingProviderProcessor.process(MultiplexingProviderProcessor.java:114)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:540)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:492)
at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:621)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.io.IOException: The volume for a file has been externally
altered so that the opened file is no longer valid
at sun.nio.ch.FileChannelImpl.force0(Native Method)
at sun.nio.ch.FileChannelImpl.force(FileChannelImpl.java:359)
at org.apache.activeio.journal.active.LogFile.force(LogFile.java:102)
at
org.apache.activeio.journal.active.LogFileManager.append(LogFileManager.java:308)
at
org.apache.activeio.journal.active.JournalImpl.queuedWrite(JournalImpl.java:256)
at
org.apache.activeio.journal.active.JournalImpl.access$000(JournalImpl.java:62)
at
org.apache.activeio.journal.active.JournalImpl$2.run(JournalImpl.java:229)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
... 1 more
This error is not being detected by the broker as a fatal error and the broker
is not going down automatically. The issue was reported by a Servicemix user
and it is expected that after the AMQ broker goes down SMX must goes down too.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.