RK G created AMQ-4349:
-------------------------
Summary: ActiveMQ 5.8.0 thows nullpointer exception while shutting
down (NIO + LevelDB + pending Non Peristent Messages)
Key: AMQ-4349
URL: https://issues.apache.org/jira/browse/AMQ-4349
Project: ActiveMQ
Issue Type: Bug
Reporter: RK G
I am not sure whether I have to post this in the mailling list first or open a
ticket.
We updated our activemq broker to version 5.8.0 and replaced the persistent
store from kahadb to leveldb. The persistent write performance increased by 10
times but at the same time the non persistent message write and read
performance is decreased. Especially the read performance is decreased a lot.
When there are not persistent messages on the broker and if we do graceful
shutdown, the broker throws a null pointer exception. This is happening only if
we use leveldb. Here is the stack trace.
2013-02-26 06:06:58,956 | INFO | Stopped LevelDB[/opt/activemq/data/leveldb] |
org.apache.activemq.leveldb.LevelDBStore | Thread-16
2013-02-26 06:06:58,957 | ERROR | Could not stop service: QueueRegion:
destinations=1, subscriptions=0, memory=0%. Reason:
java.lang.NullPointerException | org.apache.activemq.broker.jmx.Ma
nagedQueueRegion | Thread-16
java.lang.NullPointerException
at
org.fusesource.hawtdispatch.package$RichExecutor.execute(hawtdispatch.scala:171)
at
org.fusesource.hawtdispatch.package$RichExecutorTrait$class.apply(hawtdispatch.scala:68)
at
org.fusesource.hawtdispatch.package$RichExecutor.apply(hawtdispatch.scala:169)
at
org.fusesource.hawtdispatch.package$RichExecutorTrait$class.future(hawtdispatch.scala:116)
at
org.fusesource.hawtdispatch.package$RichExecutor.future(hawtdispatch.scala:169)
at
org.fusesource.hawtdispatch.package$RichExecutorTrait$class.sync(hawtdispatch.scala:107)
at
org.fusesource.hawtdispatch.package$RichExecutor.sync(hawtdispatch.scala:169)
at
org.apache.activemq.leveldb.DBManager.destroyPList(DBManager.scala:773)
at
org.apache.activemq.leveldb.LevelDBStore.removePList(LevelDBStore.scala:454)
at
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor.destroyDiskList(FilePendingMessageCursor.java:168)
at
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor.destroy(FilePendingMessageCursor.java:163)
at
org.apache.activemq.broker.region.cursors.StoreQueueCursor.stop(StoreQueueCursor.java:82)
at org.apache.activemq.broker.region.Queue.stop(Queue.java:910)
at
org.apache.activemq.broker.region.AbstractRegion.stop(AbstractRegion.java:117)
at org.apache.activemq.util.ServiceStopper.stop(ServiceStopper.java:41)
at
org.apache.activemq.broker.region.RegionBroker.doStop(RegionBroker.java:574)
at
org.apache.activemq.broker.jmx.ManagedRegionBroker.doStop(ManagedRegionBroker.java:126)
at
org.apache.activemq.broker.region.RegionBroker.stop(RegionBroker.java:194)
at org.apache.activemq.broker.BrokerFilter.stop(BrokerFilter.java:161)
at org.apache.activemq.broker.BrokerFilter.stop(BrokerFilter.java:161)
at
org.apache.activemq.broker.TransactionBroker.stop(TransactionBroker.java:204)
at
org.apache.activemq.broker.BrokerService$5.stop(BrokerService.java:2070)
at org.apache.activemq.util.ServiceStopper.stop(ServiceStopper.java:41)
at org.apache.activemq.broker.BrokerService.stop(BrokerService.java:715)
at
org.apache.activemq.xbean.XBeanBrokerService.stop(XBeanBrokerService.java:96)
at
org.apache.activemq.console.command.StartCommand$1.run(StartCommand.java:148)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira