[
https://issues.apache.org/jira/browse/AMQ-7041?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16591616#comment-16591616
]
Mark commented on AMQ-7041:
---------------------------
[~gtully], thank you for your answer. I tried to disable that option and
cleaning the journal before running the test several times. It still fails. The
first errors:
{noformat}
2018-08-24 14:58:36,860 | ERROR | Failed to load message at: 1:7227364 |
org.apache.activemq.store.kahadb.KahaDBStore | ActiveMQ BrokerService[AMQ01]
Task-25
java.io.IOException: Unexpected error on journal read at: 1:7227364{noformat}
{noformat}
2018-08-24 15:09:54,614 | ERROR | Failed to load message at: 1:7303848 |
org.apache.activemq.store.kahadb.KahaDBStore | {noformat}
Here is gluster volume info:
{noformat}
Volume Name: vol1
Type: Replicate
Volume ID: f0e16ed4-010c-400e-be68-27f3a59128db
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: host1:/gluster/bricks/vol1
Brick2: host2:/gluster/bricks/vol1
Options Reconfigured:
performance.read-ahead: off
performance.client-io-threads: off
nfs.disable: on
transport.address-family: inet{noformat}
> Failed to load message under load in GlusterFS setup
> ----------------------------------------------------
>
> Key: AMQ-7041
> URL: https://issues.apache.org/jira/browse/AMQ-7041
> Project: ActiveMQ
> Issue Type: Bug
> Affects Versions: 5.15.2
> Environment: Two nodes master and slave.
> GlusterFS is configured to replicate the journal across nodes. Only one node
> is active and writing.
>
> Relevant from activemq.xml
> {noformat}
> <destinationPolicy>
> <policyMap>
> <policyEntries>
> <policyEntry queue=">"
> memoryLimit="40mb"
> producerFlowControl="true"
> optimizedDispatch="true">
> </policyEntry>
> <policyEntry topic=">"
> memoryLimit="600mb"
> producerFlowControl="false"
> optimizedDispatch="true">
> </policyEntry>
> </policyEntries>
> </policyMap>
> </destinationPolicy>
> <persistenceAdapter>
> <kahaDB directory="${persistence.brokerData}"
> enableJournalDiskSyncs="true"
> ignoreMissingJournalfiles="true"
> checkForCorruptJournalFiles="true"
> checksumJournalFiles="true">
> <locker>
> <shared-file-locker lockAcquireSleepInterval="3000"/>
> </locker>
> </kahaDB>
> </persistenceAdapter>{noformat}
> Reporter: Mark
> Priority: Major
>
> Hi,
>
> I am trying to solve the issue that with ActiveMQ in GlusterFS setup. I tend
> to blame GlusterFS because without it, ActiveMQ performs well under the same
> load. However, I would like to understand why it might fail with GlusterFS or
> maybe some parts could be tuned to play nicely. Another point to mention is
> that GlusterFS doesn't report any errors whatsoever when this issue happens.
> Would be great to understand what the error is about.
> There is not way to reproduce it with 100% probability, however there are
> steps that are likely to cause the issue:
> # add several (10+) consumers for a queue
> # add several (100+) async producers to the queue to produce very high load
> spike around 50-100k msg/s
>
> {noformat}
> 2018-08-23 16:24:08,506 | ERROR | Failed to load message at: 181:32956327 |
> org.apache.activemq.store.kahadb.KahaDBStore | ActiveMQ BrokerService[AMQ01]
> Task-236
> java.io.IOException: Unexpected error on journal read at: 181:32956327
> at
> org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:28)
> at
> org.apache.activemq.store.kahadb.KahaDBStore.loadMessage(KahaDBStore.java:1260)
> at
> org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore$4.execute(KahaDBStore.java:594)
> at
> org.apache.activemq.store.kahadb.disk.page.Transaction.execute(Transaction.java:779)
> at
> org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore.recoverNextMessages(KahaDBStore.java:583)
> at
> org.apache.activemq.store.ProxyMessageStore.recoverNextMessages(ProxyMessageStore.java:110)
> at
> org.apache.activemq.broker.region.cursors.QueueStorePrefetch.doFillBatch(QueueStorePrefetch.java:127)
> at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:448)
> at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.reset(AbstractStoreCursor.java:168)
> at
> org.apache.activemq.broker.region.cursors.StoreQueueCursor.reset(StoreQueueCursor.java:169)
> at
> org.apache.activemq.broker.region.Queue.doPageInForDispatch(Queue.java:1981)
> at
> org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:2210)
> at org.apache.activemq.broker.region.Queue.iterate(Queue.java:1644)
> at
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
> at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.io.IOException: Could not load journal record, unexpected
> command type: KAHA_TRACE_COMMAND at location: 181:32956327
> at
> org.apache.activemq.store.kahadb.KahaDBStore.loadMessage(KahaDBStore.java:1252)
> ... 16 more
> 2018-08-23 16:24:08,509 | INFO | Stopping BrokerService[AMQ01] due to
> exception, java.io.IOException: Unexpected error on journal read at:
> 181:32956327 | org.apache.activemq.util.DefaultIOExceptionHandler | ActiveMQ
> BrokerService[AMQ01] Task-236
> java.io.IOException: Unexpected error on journal read at: 181:32956327
> at
> org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:28)
> at
> org.apache.activemq.store.kahadb.KahaDBStore.loadMessage(KahaDBStore.java:1260)
> at
> org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore$4.execute(KahaDBStore.java:594)
> at
> org.apache.activemq.store.kahadb.disk.page.Transaction.execute(Transaction.java:779)
> at
> org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore.recoverNextMessages(KahaDBStore.java:583)
> at
> org.apache.activemq.store.ProxyMessageStore.recoverNextMessages(ProxyMessageStore.java:110)
> at
> org.apache.activemq.broker.region.cursors.QueueStorePrefetch.doFillBatch(QueueStorePrefetch.java:127)
> at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:448)
> at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.reset(AbstractStoreCursor.java:168)
> at
> org.apache.activemq.broker.region.cursors.StoreQueueCursor.reset(StoreQueueCursor.java:169)
> at
> org.apache.activemq.broker.region.Queue.doPageInForDispatch(Queue.java:1981)
> at
> org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:2210)
> at org.apache.activemq.broker.region.Queue.iterate(Queue.java:1644)
> at
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
> at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.io.IOException: Could not load journal record, unexpected
> command type: KAHA_TRACE_COMMAND at location: 181:32956327
> at
> org.apache.activemq.store.kahadb.KahaDBStore.loadMessage(KahaDBStore.java:1252)
> ... 16 more
> 2018-08-23 16:24:08,511 | ERROR |
> org.apache.activemq.broker.region.cursors.QueueStorePrefetch@ef6b8e9:TEST,batchResetNeeded=false,size=654,cacheEnabled=false,maxBatchSize:200,hasSpace:true,pendingCachedIds.size:0,lastSyncCachedId:null,lastSyncCachedId-seq:null,lastAsyncCachedId:null,lastAsyncCachedId-seq:null,store=permits:10000,sd=nextSeq:19935,lastRet:MessageOrderCursor:[def:19165,
> low:19163, high:19163],pending:116 - Failed to fill batch |
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor | ActiveMQ
> BrokerService[AMQ01] Task-236
> org.apache.activemq.broker.SuppressReplyException: ShutdownBrokerInitiated
> at
> org.apache.activemq.util.DefaultIOExceptionHandler.handle(DefaultIOExceptionHandler.java:165)
> at
> org.apache.activemq.broker.BrokerService.handleIOException(BrokerService.java:2772)
> at
> org.apache.activemq.store.kahadb.KahaDBStore.loadMessage(KahaDBStore.java:1262)
> at
> org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore$4.execute(KahaDBStore.java:594)
> at
> org.apache.activemq.store.kahadb.disk.page.Transaction.execute(Transaction.java:779)
> at
> org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore.recoverNextMessages(KahaDBStore.java:583)
> at
> org.apache.activemq.store.ProxyMessageStore.recoverNextMessages(ProxyMessageStore.java:110)
> at
> org.apache.activemq.broker.region.cursors.QueueStorePrefetch.doFillBatch(QueueStorePrefetch.java:127)
> at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:448)
> at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.reset(AbstractStoreCursor.java:168)
> at
> org.apache.activemq.broker.region.cursors.StoreQueueCursor.reset(StoreQueueCursor.java:169)
> at
> org.apache.activemq.broker.region.Queue.doPageInForDispatch(Queue.java:1981)
> at
> org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:2210)
> at org.apache.activemq.broker.region.Queue.iterate(Queue.java:1644)
> at
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
> at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.io.IOException: Unexpected error on journal read at:
> 181:32956327
> at
> org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:28)
> at
> org.apache.activemq.store.kahadb.KahaDBStore.loadMessage(KahaDBStore.java:1260)
> ... 16 more
> Caused by: java.io.IOException: Could not load journal record, unexpected
> command type: KAHA_TRACE_COMMAND at location: 181:32956327
> at
> org.apache.activemq.store.kahadb.KahaDBStore.loadMessage(KahaDBStore.java:1252)
> ... 16 more
> 2018-08-23 16:24:08,511 | INFO | Apache ActiveMQ 5.15.2 (AMQ01, ***) is
> shutting down | org.apache.activemq.broker.BrokerService |
> IOExceptionHandler: stopping BrokerService[AMQ01]{noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)