Fuse Message Broker fails to startup due to "Recovery Failed: The subscription does not exist:"

Solution Verified - Updated -

Environment

  • Fuse Message Broker/ActiveMQ 5.0

Issue

  • ActiveMQ broker fails to startup with "Recovery Failed: The subscription does not exist:"
        Broker. Reason: java.io.IOException: Recovery Failed: The subscription does not 
        exist: ID:localhost-61381-1251821489011-0:2:-1:2
        jvm 1 | java.io.IOException: Recovery Failed: The subscription does not exist: 
        ID:grominet.localhost-61381-1251821489011-0:2:-1:2
        jvm 1 | at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:27)
        jvm 1 | at org.apache.activemq.broker.TransactionBroker.start(TransactionBroker.java:110)
        jvm 1 | at org.apache.activemq.broker.BrokerFilter.start(BrokerFilter.java:154)
        jvm 1 | at org.apache.activemq.broker.BrokerFilter.start(BrokerFilter.java:154)
        jvm 1 | at org.apache.activemq.broker.BrokerFilter.start(BrokerFilter.java:154)
        jvm 1 | at org.apache.activemq.broker.BrokerService$3.start(BrokerService.java:1719)
        jvm 1 | at org.apache.activemq.broker.BrokerService.start(BrokerService.java:471)
        jvm 1 | at org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:56)
        jvm 1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1368)
        jvm 1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1334)
        jvm 1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
        jvm 1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
        jvm 1 | at java.security.AccessController.doPrivileged(Native Method)
        jvm 1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
        jvm 1 | at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
        jvm 1 | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221)
        jvm 1 | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
        jvm 1 | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
        jvm 1 | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
        jvm 1 | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:254)
        jvm 1 | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
        jvm 1 | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
        jvm 1 | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:254)
        jvm 1 | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
        jvm 1 | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
        jvm 1 | at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
        jvm 1 | at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729)
        jvm 1 | at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381)
        jvm 1 | at org.apache.xbean.spring.context.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:161)
        jvm 1. | at org.apache.xbean.spring.context.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:51)
        jvm 1 | at org.apache.servicemix.Main.main(Main.java:53)
        jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        jvm 1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        jvm 1 | at java.lang.reflect.Method.invoke(Method.java:597)
        jvm 1 | at org.codehaus.classworlds.Launcher.launchStandard(Launcher.java:353)
        jvm 1 | at org.codehaus.classworlds.Launcher.launch(Launcher.java:264)
        jvm 1 | at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        jvm 1 | at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
        jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        jvm 1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        jvm 1 | at java.lang.reflect.Method.invoke(Method.java:597)
        jvm 1 | at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:236)
        jvm 1 | at java.lang.Thread.run(Thread.java:619)
        jvm 1 | Caused by: java.lang.IllegalArgumentException: The subscription does not exist: ID:grominet.localhost-61381-1251821489011-0:2:-1:2
        jvm 1 | at org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:363)
        jvm 1 | at org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:468)
        jvm 1 | at org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:194)
        jvm 1 | at org.apache.activemq.broker.TransactionBroker$1.recover(TransactionBroker.java:100)
        jvm 1 | at org.apache.activemq.store.amq.AMQTransactionStore.recover(AMQTransactionStore.java:198)
        jvm 1 | at org.apache.activemq.broker.TransactionBroker.start(TransactionBroker.java:92)
        jvm 1 | ... 43 more

        . | at org.apache.xbean.spring.context.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:51)
        jvm 1 | at org.apache.servicemix.Main.main(Main.java:53)
        jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        jvm 1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        jvm 1 | at java.lang.reflect.Method.invoke(Method.java:597)
        jvm 1 | at org.codehaus.classworlds.Launcher.launchStandard(Launcher.java:353)
        jvm 1 | at org.codehaus.classworlds.Launcher.launch(Launcher.java:264)
        jvm 1 | at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        jvm 1 | at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
        jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        jvm 1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        jvm 1 | at java.lang.reflect.Method.invoke(Method.java:597)
        jvm 1 | at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:236)
        jvm 1 | at java.lang.Thread.run(Thread.java:619)
        jvm 1 | Caused by: java.lang.IllegalArgumentException: The subscription does not exist: ID:grominet.localhost-61381-1251821489011-0:2:-1:2
        jvm 1 | at org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:363)
        jvm 1 | at org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:468)
        jvm 1 | at org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:194)
        jvm 1 | at org.apache.activemq.broker.TransactionBroker$1.recover(TransactionBroker.java:100)
        jvm 1 | at org.apache.activemq.store.amq.AMQTransactionStore.recover(AMQTransactionStore.java:198)
        jvm 1 | at org.apache.activemq.broker.TransactionBroker.start(TransactionBroker.java:92)
        jvm 1 | ... 43 more. 

Resolution

This has been fixed in Fuse Message Broker 5.3.1 and higher.

Root Cause

Bug AMQ-1498

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments