[
https://issues.apache.org/jira/browse/QPID-6808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14971339#comment-14971339
]
Keith Wall commented on QPID-6808:
----------------------------------
I'm not sure about the division of responsibilities. If someone were to use
the executor to perform another task, they too would need to remember to catch
exception and plumb it into the uncaught exception handle. I think it would be
better if we took the same approach as we did in the
AVH._houseKeepingTaskExecutor i.e. override afterExecute, call future.get() to
get the exception that might be lurking inside and plumb that into the UEH.
> ServerScopedRuntimeExceptions occurring during asynchronous recovery don't
> shutdown the Broker
> ----------------------------------------------------------------------------------------------
>
> Key: QPID-6808
> URL: https://issues.apache.org/jira/browse/QPID-6808
> Project: Qpid
> Issue Type: Bug
> Components: Java Broker
> Affects Versions: 0.32
> Reporter: Keith Wall
> Assignee: Keith Wall
>
> By design, the {{ServerScopedRuntimeExceptions}} is intended to be fatal to
> the Broker. If such an exception is thrown the Broker should always shutdown
> as soon as possible so that the nature of the problem can be investigate.
> A user using the Asynchronous Recovery (0.32) feature encountered the
> following issue. Despite of the SSRTE, the Broker kept running, meaning that
> the error went unnoticed.
> {noformat}
> 2015-10-21 13:48:49,245 ERROR [Queue Recoverer : xxxx-xxxx (vh: default)]
> org.apache.qpid.server.util.ServerScopedRuntimeException Unexpected exception
> occurred on store operation
> com.sleepycat.je.LockTimeoutException: (JE 5.0.104) Lock expired. Locker
> 1538378594 -1_Queue Recoverer : xxxx-xxxxx (vh: default)_ThreadLocker: waited
> for lock on database=QUEUE_ENTRIES LockAddr:1973403125 LSN=0x9e7d/0x68098
> type=READ grant=WAIT_NEW timeoutMillis=500 startTime=1445435328744
> endTime=1445435329244
> Owners: [<LockInfo locker="1886923901 215323278_IoReceiver -
> /xxx.xxx.xxx.xx:59827_Txn" type="WRITE"/>]
> Waiters: []
>
> at
> com.sleepycat.je.txn.LockManager.newLockTimeoutException(LockManager.java:665)
> at
> com.sleepycat.je.txn.LockManager.makeTimeoutMsgInternal(LockManager.java:623)
> at
> com.sleepycat.je.txn.SyncedLockManager.makeTimeoutMsg(SyncedLockManager.java:97)
> at com.sleepycat.je.txn.LockManager.lockInternal(LockManager.java:390)
> at com.sleepycat.je.txn.LockManager.lock(LockManager.java:276)
> at com.sleepycat.je.txn.BasicLocker.lockInternal(BasicLocker.java:118)
> at com.sleepycat.je.txn.Locker.lock(Locker.java:443)
> at com.sleepycat.je.dbi.CursorImpl.lockLN(CursorImpl.java:2642)
> at com.sleepycat.je.dbi.CursorImpl.lockLN(CursorImpl.java:2443)
> at com.sleepycat.je.dbi.CursorImpl.fetchCurrent(CursorImpl.java:2272)
> at
> com.sleepycat.je.dbi.CursorImpl.getCurrentAlreadyLatched(CursorImpl.java:1480)
> at com.sleepycat.je.dbi.CursorImpl.getNext(CursorImpl.java:1607)
> at com.sleepycat.je.Cursor.retrieveNextAllowPhantoms(Cursor.java:3080)
> at com.sleepycat.je.Cursor.retrieveNextNoDups(Cursor.java:2957)
> at com.sleepycat.je.Cursor.retrieveNext(Cursor.java:2931)
> at com.sleepycat.je.Cursor.getNext(Cursor.java:1148)
> at
> org.apache.qpid.server.store.berkeleydb.AbstractBDBMessageStore.visitMessageInstances(AbstractBDBMessageStore.java:202)
> at
> org.apache.qpid.server.virtualhost.AsynchronousMessageStoreRecoverer$AsynchronousRecoverer.recoverQueue(AsynchronousMessageStoreRecoverer.java:145)
> at
> org.apache.qpid.server.virtualhost.AsynchronousMessageStoreRecoverer$AsynchronousRecoverer.access$900(AsynchronousMessageStoreRecoverer.java:81)
> at
> org.apache.qpid.server.virtualhost.AsynchronousMessageStoreRecoverer$AsynchronousRecoverer$QueueRecoveringTask.run(AsynchronousMessageStoreRecoverer.java:409)
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:744)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]