You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Keith Wall (JIRA)" <ji...@apache.org> on 2016/07/26 22:12:20 UTC
[jira] [Commented] (QPID-7363) [Java Broker - 6.0.1] Unhandled
exception with Berkeley DB message store
[ https://issues.apache.org/jira/browse/QPID-7363?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15394648#comment-15394648 ]
Keith Wall commented on QPID-7363:
----------------------------------
The above stack trace shows the virtualhost's housekeeper was in the process of deleting messages that had reached their time-to-live. It also shows us that the message store was not in a open state which one of these deletes was taking place.
When the virtuahost is initially activated ({{AbstractVirtualHost#onActivate}}) the message store is opened *before* any messages are recovered (read) from it, so it is difficult to see how this exception could occur on startup.
I can see a problem in the {{AbstractVirtualHost#onClose}} that would allow this problem to occur as the virtualhost is _closed_. This code path is used when the Broker is shutdown. The order of the statements within ({{org.apache.qpid.server.virtualhost.AbstractVirtualHost#onClose}} means that the message store is put into a closed state *before* the housekeeper is shutdown. This might mean that a housekeeping round takes place after the store is closed, which would give arise to the exception above.
However, Adel reported the exception occurred during Broker startup. This makes me think there must have been another condition that caused the Broker to shut itself down shortly after startup. The shutdown would have closed the virtualhost allowing the condition I describe above to develop.
We will fix the virtualhost close problem for 6.1 and 6.0.5, but we will need to see a log to understand a root cause.
> [Java Broker - 6.0.1] Unhandled exception with Berkeley DB message store
> ------------------------------------------------------------------------
>
> Key: QPID-7363
> URL: https://issues.apache.org/jira/browse/QPID-7363
> Project: Qpid
> Issue Type: Bug
> Components: Java Broker
> Affects Versions: qpid-java-6.0.1
> Reporter: Adel Boutros
>
> Randomly, I have the below exception on the console when launching the broker. Is this expected?
> I am using Berkley DB jar "je-5.0.104.jar" as described here https://qpid.apache.org/releases/qpid-java-6.0.1/java-broker/book/Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE.html.
> ########################################################################
> #
> # Unhandled Exception java.lang.IllegalStateException: Message store is not open in Thread virtualhost-default-pool-2
> #
> # Exiting
> #
> ########################################################################
> java.lang.IllegalStateException: Message store is not open
> at org.apache.qpid.server.store.berkeleydb.BDBMessageStore.checkMessageStoreOpen(BDBMessageStore.java:154)
> at org.apache.qpid.server.store.berkeleydb.AbstractBDBMessageStore$StoredBDBMessage.remove(AbstractBDBMessageStore.java:1202)
> at org.apache.qpid.server.message.AbstractServerMessageImpl.decrementReference(AbstractServerMessageImpl.java:110)
> at org.apache.qpid.server.message.AbstractServerMessageImpl.access$500(AbstractServerMessageImpl.java:38)
> at org.apache.qpid.server.message.AbstractServerMessageImpl$Reference.release(AbstractServerMessageImpl.java:308)
> at org.apache.qpid.server.queue.QueueEntryImpl.dispose(QueueEntryImpl.java:510)
> at org.apache.qpid.server.queue.QueueEntryImpl.delete(QueueEntryImpl.java:524)
> at org.apache.qpid.server.queue.AbstractQueue$13.postCommit(AbstractQueue.java:1903)
> at org.apache.qpid.server.txn.AutoCommitTransaction.dequeue(AutoCommitTransaction.java:90)
> at org.apache.qpid.server.queue.AbstractQueue.dequeueEntry(AbstractQueue.java:1897)
> at org.apache.qpid.server.queue.AbstractQueue.dequeueEntry(AbstractQueue.java:1892)
> at org.apache.qpid.server.queue.AbstractQueue.checkMessageStatus(AbstractQueue.java:2490)
> at org.apache.qpid.server.virtualhost.AbstractVirtualHost$VirtualHostHouseKeepingTask.execute(AbstractVirtualHost.java:1225)
> at org.apache.qpid.server.virtualhost.HouseKeepingTask$1.run(HouseKeepingTask.java:65)
> at java.security.AccessController.doPrivileged(Native Method)
> at org.apache.qpid.server.virtualhost.HouseKeepingTask.run(HouseKeepingTask.java:60)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> 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:745)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org