Keith Wall created QPID-6808:
--------------------------------

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


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 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]

Reply via email to