You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Vishist Mandapaka <vi...@gmail.com> on 2010/04/09 02:33:44 UTC

Kaha Indexing exception

Hi,
 We've two brokers running on shared data-store mounted through NFS.
Broker version is 5.3.0 and jdk is 1.6.0.
Everything works fine in non-production environment. In production
environment, after startup, we see exceptions
that I can't seem to understand or reproduce in non-prod. environment.

Any pointer towards this is really appreciated.

Exception:

java.lang.RuntimeException: Failed to index

at
org.apache.activemq.kaha.impl.index.DiskIndexLinkedList.refreshEntry(DiskIndexLinkedList.java:332)

at
org.apache.activemq.kaha.impl.container.ContainerValueCollectionIterator.<init>(ContainerValueCollectionIterator.java:39)

at
org.apache.activemq.kaha.impl.container.ContainerListIterator.<init>(ContainerListIterator.java:30)

at
org.apache.activemq.kaha.impl.container.ListContainerImpl.listIterator(ListContainerImpl.java:603)

at
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor.reset(FilePendingMessageCursor.java:123)

at org.apache.activemq.broker.region.Queue.doPageIn(Queue.java:1363)

at org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:1503)

at org.apache.activemq.broker.region.Queue.doBrowse(Queue.java:759)

at org.apache.activemq.broker.region.Queue.expireMessages(Queue.java:588)

at org.apache.activemq.broker.region.Queue.access$000(Queue.java:85)

at org.apache.activemq.broker.region.Queue$2.run(Queue.java:116)

at
org.apache.activemq.thread.SchedulerTimerTask.run(SchedulerTimerTask.java:33)

at java.util.TimerThread.mainLoop(Timer.java:512)

at java.util.TimerThread.run(Timer.java:462)

Caused by: java.io.IOException: Stale NFS file handle

at java.io.RandomAccessFile.readBytes(Native Method)

at java.io.RandomAccessFile.read(RandomAccessFile.java:322)

at java.io.RandomAccessFile.readFully(RandomAccessFile.java:381)

at
org.apache.activemq.kaha.impl.index.StoreIndexReader.updateIndexes(StoreIndexReader.java:57)

at
org.apache.activemq.kaha.impl.index.IndexManager.refreshIndex(IndexManager.java:76)

at
org.apache.activemq.kaha.impl.index.DiskIndexLinkedList.refreshEntry(DiskIndexLinkedList.java:330)

... 13 more

Broker cconfiguration:
 <amq:broker brokerName="broker" persistent="true" useShutdownHook="true"
deleteAllMessagesOnStartup="false" advisorySupport="false"
    dataDirectory="/sharedPath" useJmx="true" >
    <amq:managementContext>
        <amq:managementContext createConnector="false" />
    </amq:managementContext>

    <amq:persistenceAdapter>
      <amq:amqPersistenceAdapter directory="/sharedPath"
maxFileLength="32mb" />
    </amq:persistenceAdapter>

    <amq:transportConnectors>
      <amq:transportConnector uri="tcp://
0.0.0.0:61616?wireFormat.maxInactivityDuration=0"/>
    </amq:transportConnectors>

    <amq:destinations>
        <amq:queue id="queue1" physicalName="bqueue" />
    </amq:destinations>

    <amq:plugins>
        <amq:loggingBrokerPlugin logAll="true" />
    </amq:plugins>

    <amq:destinationPolicy>
        <amq:policyMap>
            <amq:policyEntries>
                <amq:policyEntry queue=">" producerFlowControl="true"
memoryLimit="1mb">
                    <amq:pendingQueuePolicy>
                        <amq:fileQueueCursor/>
                    </amq:pendingQueuePolicy>
                </amq:policyEntry>
            </amq:policyEntries>
        </amq:policyMap>
    </amq:destinationPolicy>

    <amq:systemUsage>
        <amq:systemUsage sendFailIfNoSpace="true">
            <amq:memoryUsage>
                <amq:memoryUsage id="memoryUsage" limit="4 gb"/>
            </amq:memoryUsage>
            <amq:storeUsage>
                <amq:storeUsage id="storeUsage" limit="10 gb" />
            </amq:storeUsage>
            <amq:tempUsage>
                <amq:tempUsage id="tempUsage" limit="10 gb" />
            </amq:tempUsage>
        </amq:systemUsage>
    </amq:systemUsage>

  </amq:broker>

Re: Kaha Indexing exception

Posted by Vishist Mandapaka <vi...@gmail.com>.
We've nfsv4 deployed, but I can double-check. I'm aware of v3 issues with
locks, and decided to migrate to v4. Anything on ActiveMQ side that I need
to configure specifically for production environment, though it works fine
with other environments?

thanks,
Vish.

On Fri, Apr 9, 2010 at 3:54 AM, Gary Tully <ga...@gmail.com> wrote:

> you need a nfs version that supports shared distributed locks, on your
> production box. nfsv4 should do the trick.
>
> On 9 April 2010 01:33, Vishist Mandapaka <vi...@gmail.com> wrote:
>
> > Hi,
> >  We've two brokers running on shared data-store mounted through NFS.
> > Broker version is 5.3.0 and jdk is 1.6.0.
> > Everything works fine in non-production environment. In production
> > environment, after startup, we see exceptions
> > that I can't seem to understand or reproduce in non-prod. environment.
> >
> > Any pointer towards this is really appreciated.
> >
> > Exception:
> >
> > java.lang.RuntimeException: Failed to index
> >
> > at
> >
> >
> org.apache.activemq.kaha.impl.index.DiskIndexLinkedList.refreshEntry(DiskIndexLinkedList.java:332)
> >
> > at
> >
> >
> org.apache.activemq.kaha.impl.container.ContainerValueCollectionIterator.<init>(ContainerValueCollectionIterator.java:39)
> >
> > at
> >
> >
> org.apache.activemq.kaha.impl.container.ContainerListIterator.<init>(ContainerListIterator.java:30)
> >
> > at
> >
> >
> org.apache.activemq.kaha.impl.container.ListContainerImpl.listIterator(ListContainerImpl.java:603)
> >
> > at
> >
> >
> org.apache.activemq.broker.region.cursors.FilePendingMessageCursor.reset(FilePendingMessageCursor.java:123)
> >
> > at org.apache.activemq.broker.region.Queue.doPageIn(Queue.java:1363)
> >
> > at
> org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:1503)
> >
> > at org.apache.activemq.broker.region.Queue.doBrowse(Queue.java:759)
> >
> > at org.apache.activemq.broker.region.Queue.expireMessages(Queue.java:588)
> >
> > at org.apache.activemq.broker.region.Queue.access$000(Queue.java:85)
> >
> > at org.apache.activemq.broker.region.Queue$2.run(Queue.java:116)
> >
> > at
> >
> >
> org.apache.activemq.thread.SchedulerTimerTask.run(SchedulerTimerTask.java:33)
> >
> > at java.util.TimerThread.mainLoop(Timer.java:512)
> >
> > at java.util.TimerThread.run(Timer.java:462)
> >
> > Caused by: java.io.IOException: Stale NFS file handle
> >
> > at java.io.RandomAccessFile.readBytes(Native Method)
> >
> > at java.io.RandomAccessFile.read(RandomAccessFile.java:322)
> >
> > at java.io.RandomAccessFile.readFully(RandomAccessFile.java:381)
> >
> > at
> >
> >
> org.apache.activemq.kaha.impl.index.StoreIndexReader.updateIndexes(StoreIndexReader.java:57)
> >
> > at
> >
> >
> org.apache.activemq.kaha.impl.index.IndexManager.refreshIndex(IndexManager.java:76)
> >
> > at
> >
> >
> org.apache.activemq.kaha.impl.index.DiskIndexLinkedList.refreshEntry(DiskIndexLinkedList.java:330)
> >
> > ... 13 more
> >
> > Broker cconfiguration:
> >  <amq:broker brokerName="broker" persistent="true" useShutdownHook="true"
> > deleteAllMessagesOnStartup="false" advisorySupport="false"
> >    dataDirectory="/sharedPath" useJmx="true" >
> >    <amq:managementContext>
> >        <amq:managementContext createConnector="false" />
> >    </amq:managementContext>
> >
> >    <amq:persistenceAdapter>
> >      <amq:amqPersistenceAdapter directory="/sharedPath"
> > maxFileLength="32mb" />
> >    </amq:persistenceAdapter>
> >
> >    <amq:transportConnectors>
> >      <amq:transportConnector uri="tcp://
> > 0.0.0.0:61616?wireFormat.maxInactivityDuration=0"/>
> >    </amq:transportConnectors>
> >
> >    <amq:destinations>
> >        <amq:queue id="queue1" physicalName="bqueue" />
> >    </amq:destinations>
> >
> >    <amq:plugins>
> >        <amq:loggingBrokerPlugin logAll="true" />
> >    </amq:plugins>
> >
> >    <amq:destinationPolicy>
> >        <amq:policyMap>
> >            <amq:policyEntries>
> >                <amq:policyEntry queue=">" producerFlowControl="true"
> > memoryLimit="1mb">
> >                    <amq:pendingQueuePolicy>
> >                        <amq:fileQueueCursor/>
> >                    </amq:pendingQueuePolicy>
> >                </amq:policyEntry>
> >            </amq:policyEntries>
> >        </amq:policyMap>
> >    </amq:destinationPolicy>
> >
> >    <amq:systemUsage>
> >        <amq:systemUsage sendFailIfNoSpace="true">
> >            <amq:memoryUsage>
> >                <amq:memoryUsage id="memoryUsage" limit="4 gb"/>
> >            </amq:memoryUsage>
> >            <amq:storeUsage>
> >                <amq:storeUsage id="storeUsage" limit="10 gb" />
> >            </amq:storeUsage>
> >            <amq:tempUsage>
> >                <amq:tempUsage id="tempUsage" limit="10 gb" />
> >            </amq:tempUsage>
> >        </amq:systemUsage>
> >    </amq:systemUsage>
> >
> >  </amq:broker>
> >
>
>
>
> --
> http://blog.garytully.com
>
> Open Source Integration
> http://fusesource.com
>

Re: Kaha Indexing exception

Posted by Gary Tully <ga...@gmail.com>.
you need a nfs version that supports shared distributed locks, on your
production box. nfsv4 should do the trick.

On 9 April 2010 01:33, Vishist Mandapaka <vi...@gmail.com> wrote:

> Hi,
>  We've two brokers running on shared data-store mounted through NFS.
> Broker version is 5.3.0 and jdk is 1.6.0.
> Everything works fine in non-production environment. In production
> environment, after startup, we see exceptions
> that I can't seem to understand or reproduce in non-prod. environment.
>
> Any pointer towards this is really appreciated.
>
> Exception:
>
> java.lang.RuntimeException: Failed to index
>
> at
>
> org.apache.activemq.kaha.impl.index.DiskIndexLinkedList.refreshEntry(DiskIndexLinkedList.java:332)
>
> at
>
> org.apache.activemq.kaha.impl.container.ContainerValueCollectionIterator.<init>(ContainerValueCollectionIterator.java:39)
>
> at
>
> org.apache.activemq.kaha.impl.container.ContainerListIterator.<init>(ContainerListIterator.java:30)
>
> at
>
> org.apache.activemq.kaha.impl.container.ListContainerImpl.listIterator(ListContainerImpl.java:603)
>
> at
>
> org.apache.activemq.broker.region.cursors.FilePendingMessageCursor.reset(FilePendingMessageCursor.java:123)
>
> at org.apache.activemq.broker.region.Queue.doPageIn(Queue.java:1363)
>
> at org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:1503)
>
> at org.apache.activemq.broker.region.Queue.doBrowse(Queue.java:759)
>
> at org.apache.activemq.broker.region.Queue.expireMessages(Queue.java:588)
>
> at org.apache.activemq.broker.region.Queue.access$000(Queue.java:85)
>
> at org.apache.activemq.broker.region.Queue$2.run(Queue.java:116)
>
> at
>
> org.apache.activemq.thread.SchedulerTimerTask.run(SchedulerTimerTask.java:33)
>
> at java.util.TimerThread.mainLoop(Timer.java:512)
>
> at java.util.TimerThread.run(Timer.java:462)
>
> Caused by: java.io.IOException: Stale NFS file handle
>
> at java.io.RandomAccessFile.readBytes(Native Method)
>
> at java.io.RandomAccessFile.read(RandomAccessFile.java:322)
>
> at java.io.RandomAccessFile.readFully(RandomAccessFile.java:381)
>
> at
>
> org.apache.activemq.kaha.impl.index.StoreIndexReader.updateIndexes(StoreIndexReader.java:57)
>
> at
>
> org.apache.activemq.kaha.impl.index.IndexManager.refreshIndex(IndexManager.java:76)
>
> at
>
> org.apache.activemq.kaha.impl.index.DiskIndexLinkedList.refreshEntry(DiskIndexLinkedList.java:330)
>
> ... 13 more
>
> Broker cconfiguration:
>  <amq:broker brokerName="broker" persistent="true" useShutdownHook="true"
> deleteAllMessagesOnStartup="false" advisorySupport="false"
>    dataDirectory="/sharedPath" useJmx="true" >
>    <amq:managementContext>
>        <amq:managementContext createConnector="false" />
>    </amq:managementContext>
>
>    <amq:persistenceAdapter>
>      <amq:amqPersistenceAdapter directory="/sharedPath"
> maxFileLength="32mb" />
>    </amq:persistenceAdapter>
>
>    <amq:transportConnectors>
>      <amq:transportConnector uri="tcp://
> 0.0.0.0:61616?wireFormat.maxInactivityDuration=0"/>
>    </amq:transportConnectors>
>
>    <amq:destinations>
>        <amq:queue id="queue1" physicalName="bqueue" />
>    </amq:destinations>
>
>    <amq:plugins>
>        <amq:loggingBrokerPlugin logAll="true" />
>    </amq:plugins>
>
>    <amq:destinationPolicy>
>        <amq:policyMap>
>            <amq:policyEntries>
>                <amq:policyEntry queue=">" producerFlowControl="true"
> memoryLimit="1mb">
>                    <amq:pendingQueuePolicy>
>                        <amq:fileQueueCursor/>
>                    </amq:pendingQueuePolicy>
>                </amq:policyEntry>
>            </amq:policyEntries>
>        </amq:policyMap>
>    </amq:destinationPolicy>
>
>    <amq:systemUsage>
>        <amq:systemUsage sendFailIfNoSpace="true">
>            <amq:memoryUsage>
>                <amq:memoryUsage id="memoryUsage" limit="4 gb"/>
>            </amq:memoryUsage>
>            <amq:storeUsage>
>                <amq:storeUsage id="storeUsage" limit="10 gb" />
>            </amq:storeUsage>
>            <amq:tempUsage>
>                <amq:tempUsage id="tempUsage" limit="10 gb" />
>            </amq:tempUsage>
>        </amq:systemUsage>
>    </amq:systemUsage>
>
>  </amq:broker>
>



-- 
http://blog.garytully.com

Open Source Integration
http://fusesource.com