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 10:53:20 UTC

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

Gary Tully created AMQ-6376:
-------------------------------

             Summary: 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)