Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-6378

KahaDb recover from corrupt metadata state locations that can be rebuilt

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.13.0
    • 5.14.0
    • Message Store
    • None

    Description

      The index tracks producerAudit and ackMessageFileMap locations. Failure to recreate/read on startup can be replayed from the journal however if the locations are corrupt the broker errors out. In this case a replay can still recreate this information.

      java.io.IOException: Invalid location: 7:4802, : java.lang.NegativeArraySizeException
      
      	at org.apache.activemq.store.kahadb.disk.journal.DataFileAccessor.readRecord(DataFileAccessor.java:92)
      	at org.apache.activemq.store.kahadb.disk.journal.Journal.read(Journal.java:867)
      	at org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:1123)
      	at org.apache.activemq.store.kahadb.MessageDatabase.recoverProducerAudit(MessageDatabase.java:754)
      	at org.apache.activemq.store.kahadb.MessageDatabase.recover(MessageDatabase.java:639)
      	at org.apache.activemq.store.kahadb.MessageDatabase.open(MessageDatabase.java:439)
      	at org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:458)
      	at org.apache.activemq.store.kahadb.MessageDatabase.doStart(MessageDatabase.java:291)
      	at org.apache.activemq.store.kahadb.KahaDBStore.doStart(KahaDBStore.java:216)
      	at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:55)
      	at org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter.doStart(KahaDBPersistenceAdapter.java:223)
      	at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:55)
      	at org.apache.activemq.broker.BrokerService.doStartPersistenceAdapter(BrokerService.java:674)
      	at org.apache.activemq.broker.BrokerService.startPersistenceAdapter(BrokerService.java:658)
      	at org.apache.activemq.broker.BrokerService.start(BrokerService.java:622)
      Caused by: java.lang.NegativeArraySizeException
      	at org.apache.activemq.store.kahadb.disk.journal.DataFileAccessor.readRecord(DataFileAccessor.java:87)

      Attachments

        Activity

          People

            gtully Gary Tully
            gtully Gary Tully
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: