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

KahaDb recover from corrupt metadata state locations that can be rebuilt

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.13.0
    • Fix Version/s: 5.14.0
    • Component/s: Message Store
    • Labels:
      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

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

              Dates

              • Created:
                Updated:
                Resolved: