You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Gary Tully (JIRA)" <ji...@apache.org> on 2016/07/27 11:01:20 UTC

[jira] [Resolved] (AMQ-6376) IOException on pageIn should involve IOExeceptionHandler

     [ https://issues.apache.org/jira/browse/AMQ-6376?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Tully resolved AMQ-6376.
-----------------------------
    Resolution: Fixed

resolved with: 

Commit 6b8e743b083b9baf201f26b6f7d9a574638ba537 in activemq's branch refs/heads/master from Gary Tully
[ https://git-wip-us.apache.org/repos/asf?p=activemq.git;h=6b8e743 ]
AMQ-6372 - add IOExceptionHandler to kahadb read path to ensure fast shutdown on disk access errors

wrong jira number in the commit message!

> IOException on pageIn should involve IOExeceptionHandler
> --------------------------------------------------------
>
>                 Key: AMQ-6376
>                 URL: https://issues.apache.org/jira/browse/AMQ-6376
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker, Message Store
>    Affects Versions: 5.13.0
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>             Fix For: 5.14.0
>
>
> This relates to AMQ-6372 where the broker was running out of file descriptors.
> However if the IOException occurred for dispatch when the cache is disabled the broker carries on in error. The IOExceptionHandler is invoked on every store write failure, but should also be on the read error path.
> This ensures a timely response to disk IO errors. 
> {code}2016-07-27 11:50:26,292 [calhost] Task-1] - ERROR AbstractStoreCursor            - org.apache.activemq.broker.region.cursors.QueueStorePrefetch@7cd532ee:Test,batchResetNeeded=false,size=50,cacheEnabled=false,maxBatchSize:50,hasSpace:true,pendingCachedIds.size:0,lastSyncCachedId:null,lastSyncCachedId-seq:null,lastAsyncCachedId:null,lastAsyncCachedId-seq:null,store=permits:10000,sd=nextSeq:50,lastRet:MessageOrderCursor:[def:0, low:0, high:0],pending:0 - Failed to fill batch
> java.io.EOFException
> 	at java.io.RandomAccessFile.readFully(RandomAccessFile.java:446)
> 	at java.io.RandomAccessFile.readFully(RandomAccessFile.java:424)
> 	at org.apache.activemq.util.RecoverableRandomAccessFile.readFully(RecoverableRandomAccessFile.java:75)
> 	at org.apache.activemq.store.kahadb.disk.journal.DataFileAccessor.readRecord(DataFileAccessor.java:88)
> 	at org.apache.activemq.store.kahadb.disk.journal.Journal.read(Journal.java:867)
> 	at org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:1118)
> 	at org.apache.activemq.store.kahadb.KahaDBStore.loadMessage(KahaDBStore.java:1177)
> 	at org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore$4.execute(KahaDBStore.java:584)
> 	at org.apache.activemq.store.kahadb.disk.page.Transaction.execute(Transaction.java:779)
> 	at org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore.recoverNextMessages(KahaDBStore.java:573)
> 	at org.apache.activemq.store.ProxyMessageStore.recoverNextMessages(ProxyMessageStore.java:110)
> 	at org.apache.activemq.broker.region.cursors.QueueStorePrefetch.doFillBatch(QueueStorePrefetch.java:120)
> 	at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:406)
> 	at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.reset(AbstractStoreCursor.java:149)
> 	at org.apache.activemq.broker.region.cursors.StoreQueueCursor.reset(StoreQueueCursor.java:169)
> 	at org.apache.activemq.broker.region.Queue.doPageInForDispatch(Queue.java:1935)
> 	at org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:2160){code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)