[
https://issues.apache.org/jira/browse/AMQ-5786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15110419#comment-15110419
]
Paul Smith commented on AMQ-5786:
---------------------------------
We have faced the same situation for the 3rd time now, this looks the same as
reported in AMQ-3098.
I can provide a copy of the ActiveMQ logs and a copy of the Kahadb in the state
it was in when it went south.
Fundamentally though I think the KahaDB db/txn log allocation is flawed,
because it ought to (IMHO) pre-allocate logs as per the sizes specified to
ensure it 'grabs' the allocated space and then can't lose a chance to allocate
one in some future time (when sadly the disk fills up).
In our case what was happening was that rsyslog could not route some
application logs downstream, and started stalling the consumer application (the
one doing the logging) so the Queue built up, and eventually when rsyslog had
starved the local disk, ActiveMQ could not correctly allocate any more redo log
space, and throwing the error.
It is unrecoverable at this point, I've tried moving aside Kaha individual log
files, but it doesn't help, the whole KahaDB data store needs to be purged, and
then ActiveMQ restarted.
> ActiveMQ failed to start with KahaDB reporting corrupt journal records and
> throwing NegativeArraySizeException
> --------------------------------------------------------------------------------------------------------------
>
> Key: AMQ-5786
> URL: https://issues.apache.org/jira/browse/AMQ-5786
> Project: ActiveMQ
> Issue Type: Bug
> Components: KahaDB
> Affects Versions: 5.11.1
> Environment: Karaf 3.0.3
> Reporter: Martin Lichtin
> Priority: Critical
>
> ActiveMQ failed to start up, with the following information:
> {noformat}
> 2015-05-20 14:23:21,709 | INFO | apache.activemq.server]) | Journal
> | tore.kahadb.disk.journal.Journal 219 | 105 -
> org.apache.activemq.activemq-osgi - 5.11.1 | Corrupt journal records found in
> 'activemq/kahadb/db-1.log' between offsets: 5504795..5505130
> 2015-05-20 14:23:21,725 | INFO | apache.activemq.server]) | Journal
> | tore.kahadb.disk.journal.Journal 219 | 105 -
> org.apache.activemq.activemq-osgi - 5.11.1 | Corrupt journal records found in
> 'activemq/kahadb/db-1.log' between offsets: 5611475..5612818
> 2015-05-20 14:23:21,749 | INFO | apache.activemq.server]) | Journal
> | tore.kahadb.disk.journal.Journal 219 | 105 -
> org.apache.activemq.activemq-osgi - 5.11.1 | Corrupt journal records found in
> 'activemq/kahadb/db-1.log' between offsets: 6139835..6140254
> 2015-05-20 14:23:21,756 | INFO | apache.activemq.server]) | Journal
> | tore.kahadb.disk.journal.Journal 219 | 105 -
> org.apache.activemq.activemq-osgi - 5.11.1 | Corrupt journal records found in
> 'activemq/kahadb/db-1.log' between offsets: 6246179..6247270
> 2015-05-20 14:23:21,765 | INFO | apache.activemq.server]) | Journal
> | tore.kahadb.disk.journal.Journal 219 | 105 -
> org.apache.activemq.activemq-osgi - 5.11.1 | Corrupt journal records found in
> 'activemq/kahadb/db-1.log' between offsets: 6512519..6520426
> 2015-05-20 14:23:21,789 | INFO | apache.activemq.server]) | Journal
> | tore.kahadb.disk.journal.Journal 219 | 105 -
> org.apache.activemq.activemq-osgi - 5.11.1 | Corrupt journal records found in
> 'activemq/kahadb/db-1.log' between offsets: 7606018..7627848
> 2015-05-20 14:23:21,794 | INFO | apache.activemq.server]) | Journal
> | tore.kahadb.disk.journal.Journal 219 | 105 -
> org.apache.activemq.activemq-osgi - 5.11.1 | Corrupt journal records found in
> 'activemq/kahadb/db-1.log' between offsets: 7630473..7650409
> 2015-05-20 14:23:21,796 | INFO | apache.activemq.server]) | Journal
> | tore.kahadb.disk.journal.Journal 219 | 105 -
> org.apache.activemq.activemq-osgi - 5.11.1 | Corrupt journal records found in
> 'activemq/kahadb/db-1.log' between offsets: 7650488..7703243
> 2015-05-20 14:23:22,065 | INFO | apache.activemq.server]) | MessageDatabase
> | .kahadb.MessageDatabase$Metadata 168 | 105 -
> org.apache.activemq.activemq-osgi - 5.11.1 | KahaDB is version 5
> 2015-05-20 14:23:22,188 | INFO | apache.activemq.server]) | MessageDatabase
> | emq.store.kahadb.MessageDatabase 603 | 105 -
> org.apache.activemq.activemq-osgi - 5.11.1 | Recovering from the journal ...
> 2015-05-20 14:23:22,188 | ERROR | apache.activemq.server]) | BrokerService
> | he.activemq.broker.BrokerService 609 | 105 -
> org.apache.activemq.activemq-osgi - 5.11.1 | Failed to start Apache ActiveMQ
> ([broker-amq, null], java.io.IOException: Invalid location: 1:6516763, :
> java.lang.NegativeArraySizeException)
> 2015-05-20 14:23:22,189 | INFO | apache.activemq.server]) | BrokerService
> | he.activemq.broker.BrokerService 758 | 105 -
> org.apache.activemq.activemq-osgi - 5.11.1 | Apache ActiveMQ 5.11.1
> (broker-amq, null) is shutting down
> 2015-05-20 14:23:22,194 | INFO | apache.activemq.server]) |
> TransportConnector | tivemq.broker.TransportConnector 291 |
> 105 - org.apache.activemq.activemq-osgi - 5.11.1 | Connector openwire stopped
> 2015-05-20 14:23:22,372 | INFO | apache.activemq.server]) |
> JobSchedulerStoreImpl | .scheduler.JobSchedulerStoreImpl 259 |
> 105 - org.apache.activemq.activemq-osgi - 5.11.1 | JobSchedulerStore:
> activemq/broker-amq/scheduler stopped.
> 2015-05-20 14:23:22,372 | INFO | apache.activemq.server]) | PListStoreImpl
> | tore.kahadb.plist.PListStoreImpl 356 | 105 -
> org.apache.activemq.activemq-osgi - 5.11.1 |
> PListStore:[/integrator/int1/proc/broker-amq/karaf-std-0.2-440/activemq/broker-amq/tmp_storage]
> stopped
> 2015-05-20 14:23:22,372 | INFO | apache.activemq.server]) | KahaDBStore
> | ctivemq.store.kahadb.KahaDBStore 245 | 105 -
> org.apache.activemq.activemq-osgi - 5.11.1 | Stopping async queue tasks
> 2015-05-20 14:23:22,372 | INFO | apache.activemq.server]) | KahaDBStore
> | ctivemq.store.kahadb.KahaDBStore 259 | 105 -
> org.apache.activemq.activemq-osgi - 5.11.1 | Stopping async topic tasks
> 2015-05-20 14:23:22,373 | INFO | apache.activemq.server]) | KahaDBStore
> | ctivemq.store.kahadb.KahaDBStore 287 | 105 -
> org.apache.activemq.activemq-osgi - 5.11.1 | Stopped KahaDB
> 2015-05-20 14:23:22,664 | INFO | apache.activemq.server]) | BrokerService
> | he.activemq.broker.BrokerService 819 | 105 -
> org.apache.activemq.activemq-osgi - 5.11.1 | Apache ActiveMQ 5.11.1
> (broker-amq, null) uptime 1.245 seconds
> 2015-05-20 14:23:22,664 | INFO | apache.activemq.server]) | BrokerService
> | he.activemq.broker.BrokerService 821 | 105 -
> org.apache.activemq.activemq-osgi - 5.11.1 | Apache ActiveMQ 5.11.1
> (broker-amq, null) is shutdown
> 2015-05-20 14:23:22,676 | ERROR | apache.activemq.server]) | configadmin
> | ? ? | 6 -
> org.apache.felix.configadmin - 1.8.0 |
> [org.osgi.service.cm.ManagedServiceFactory, id=673,
> bundle=105/mvn:org.apache.activemq/activemq-osgi/5.11.1]: Updating
> configuration org.apache.activemq.server.02ee5a2d-fb5b-48ce-b4e1-93ed72adba19
> caused a problem: Cannot start the broker
> org.osgi.service.cm.ConfigurationException: null : Cannot start the broker
> at
> org.apache.activemq.osgi.ActiveMQServiceFactory.updated(ActiveMQServiceFactory.java:120)[105:org.apache.activemq.activemq-osgi:5.11.1]
> at Proxyfc1340e4_63f4_474d_995e_cdb9ac0c71b9.updated(Unknown
> Source)[:]
> at
> org.apache.felix.cm.impl.helper.ManagedServiceFactoryTracker.provideConfiguration(ManagedServiceFactoryTracker.java:88)[6:org.apache.felix.configadmin:1.8.0]
> at
> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.provide(ConfigurationManager.java:1605)[6:org.apache.felix.configadmin:1.8.0]
> at
> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.run(ConfigurationManager.java:1548)[6:org.apache.felix.configadmin:1.8.0]
> at
> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:103)[6:org.apache.felix.configadmin:1.8.0]
> at java.lang.Thread.run(Thread.java:745)[:1.8.0_45]
> Caused by: java.io.IOException: Invalid location: 1:6516763, :
> java.lang.NegativeArraySizeException
> at
> org.apache.activemq.store.kahadb.disk.journal.DataFileAccessor.readRecord(DataFileAccessor.java:92)[105:org.apache.activemq.activemq-osgi:5.11.1]
> at
> org.apache.activemq.store.kahadb.disk.journal.Journal.read(Journal.java:619)[105:org.apache.activemq.activemq-osgi:5.11.1]
> at
> org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:1013)[105:org.apache.activemq.activemq-osgi:5.11.1]
> at
> org.apache.activemq.store.kahadb.MessageDatabase.recover(MessageDatabase.java:605)[105:org.apache.activemq.activemq-osgi:5.11.1]
> at
> org.apache.activemq.store.kahadb.MessageDatabase.open(MessageDatabase.java:399)[105:org.apache.activemq.activemq-osgi:5.11.1]
> at
> org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:417)[105:org.apache.activemq.activemq-osgi:5.11.1]
> at
> org.apache.activemq.store.kahadb.MessageDatabase.doStart(MessageDatabase.java:261)[105:org.apache.activemq.activemq-osgi:5.11.1]
> at
> org.apache.activemq.store.kahadb.KahaDBStore.doStart(KahaDBStore.java:206)[105:org.apache.activemq.activemq-osgi:5.11.1]
> at
> org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:55)[105:org.apache.activemq.activemq-osgi:5.11.1]
> at
> org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter.doStart(KahaDBPersistenceAdapter.java:223)[105:org.apache.activemq.activemq-osgi:5.11.1]
> at
> org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:55)[105:org.apache.activemq.activemq-osgi:5.11.1]
> at
> org.apache.activemq.broker.BrokerService.doStartPersistenceAdapter(BrokerService.java:651)[105:org.apache.activemq.activemq-osgi:5.11.1]
> at
> org.apache.activemq.broker.BrokerService.startPersistenceAdapter(BrokerService.java:640)[105:org.apache.activemq.activemq-osgi:5.11.1]
> at
> org.apache.activemq.broker.BrokerService.start(BrokerService.java:605)[105:org.apache.activemq.activemq-osgi:5.11.1]
> at
> org.apache.activemq.osgi.ActiveMQServiceFactory.updated(ActiveMQServiceFactory.java:116)[105:org.apache.activemq.activemq-osgi:5.11.1]
> ... 6 more
> Caused by: java.lang.NegativeArraySizeException
> at
> org.apache.activemq.store.kahadb.disk.journal.DataFileAccessor.readRecord(DataFileAccessor.java:87)[105:org.apache.activemq.activemq-osgi:5.11.1]
> ... 20 more
> {noformat}
> <kahaDB> is configured with checkForCorruptJournalFiles="true".
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)