When using ActiveMQ 5.4.0 I can get KahaDB corruption that is unrecoverable.
This is after a hard crash (unrelated kernel panic).
This prevents the server restarting and my only workaround is to
remove (or rename) the KahaDB directory.
I've enabled ignoreMissingJournalfiles and checkForCorruptJournalFiles
but that makes no difference.
Will moving to 5.4.2 fix this issue?
Thanks
Joe
Stack trace details...
Feb 23, 2011 4:41:13 PM org.apache.activemq.broker.BrokerService start
SEVERE: Failed to start ActiveMQ JMS Message Broker. Reason:
java.io.IOException: Invalid argument
java.io.IOException: Invalid argument
at java.io.RandomAccessFile.seek(Native Method)
at org.apache.kahadb.page.PageFile.readPage(PageFile.java:791)
at org.apache.kahadb.page.Transaction.load(Transaction.java:411)
at org.apache.kahadb.page.Transaction.load(Transaction.java:361)
at org.apache.kahadb.index.BTreeIndex.load(BTreeIndex.java:159)
at
org.apache.activemq.store.kahadb.MessageDatabase$1.execute(MessageDatabase.java:249)
at org.apache.kahadb.page.Transaction.execute(Transaction.java:728)
at
org.apache.activemq.store.kahadb.MessageDatabase.loadPageFile(MessageDatabase.java:230)
at
org.apache.activemq.store.kahadb.MessageDatabase.open(MessageDatabase.java:309)
at
org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:353)
at
org.apache.activemq.store.kahadb.MessageDatabase.doStart(MessageDatabase.java:217)
at
org.apache.activemq.store.kahadb.KahaDBStore.doStart(KahaDBStore.java:178)
at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:53)
at
org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter.start(KahaDBPersistenceAdapter.java:186)
at
org.apache.activemq.broker.BrokerService.start(BrokerService.java:482)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:340)
at
org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:293)
at
org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:130)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:394)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1413)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)