You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Torsten Mielke (JIRA)" <ji...@apache.org> on 2008/12/18 17:04:06 UTC

[jira] Commented: (AMQ-2038) Broker parameter systemExitOnShutdown="true" not being honored when persistence adapter file system is unavailable

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

Torsten Mielke commented on AMQ-2038:
-------------------------------------

With debug logging turned on the broker raises

{code}
DEBUG - Service                        - Error occured while processing sync command: java.io.IOException: The volume for a file has been externally a
ltered so that the opened file is no longer valid
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)
        at java.lang.Thread.run(Thread.java:595)
{code}

Perhaps this should be raised as an error instead of a debug msg? With the default logging turned on, this won't be noticed.

> 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.