[ https://issues.apache.org/jira/browse/QPID-2693?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robbie Gemmell updated QPID-2693: --------------------------------- Affects Version/s: 0.10 0.9 Fix Version/s: (was: 0.9) 0.11 I dont believe there is actually anything here to need a fix in the end, but bumping this JIRA from 0.9 to 0.11 to keep it in focus for now. > Broker instability with the topic exchange > ------------------------------------------ > > Key: QPID-2693 > URL: https://issues.apache.org/jira/browse/QPID-2693 > Project: Qpid > Issue Type: Bug > Components: Java Broker > Affects Versions: 0.7, 0.8, 0.9, 0.10 > Environment: java version "1.6.0_12" > Java(TM) SE Runtime Environment (build 1.6.0_12-b04) > Java HotSpot(TM) 64-Bit Server VM (build 11.2-b01, mixed mode) > Linux 2.6.24-11-pve #1 SMP PREEMPT Fri May 14 09:28:08 CEST 2010 x86_64 > GNU/Linux > Reporter: Emmanuel Bourg > Assignee: Robbie Gemmell > Priority: Critical > Fix For: 0.11 > > Attachments: qpid-dump.txt, qpid-log.txt > > > I've noticed an instability of the Java broker when sending a high volume of > messages to the topic exchange. The messages are non acked, non durable. > After about 15 minutes the messages can no longer be dispatched and the > client gets this exception: > org.apache.qpid.transport.SessionException: timed out waiting for sync: > complete = 77824, point = 77825 > at org.apache.qpid.transport.Session.sync(Session.java:743) > at org.apache.qpid.transport.Session.sync(Session.java:712) > at org.apache.qpid.transport.Session.invoke(Session.java:672) > at org.apache.qpid.transport.Session.invoke(Session.java:518) > at > org.apache.qpid.transport.SessionInvoker.messageTransfer(SessionInvoker.java:96) > at org.apache.qpid.transport.Session.messageTransfer(Session.java:880) > And in the server log I get these exceptions: > 2010-06-25 02:48:48,005 [ERROR] Exception thrown and no ProtocolEngine to > handle it > org.apache.qpid.transport.SessionException: timed out waiting for completion > at org.apache.qpid.transport.Session.invoke(Session.java:635) > at > org.apache.qpid.server.transport.ServerSession.sendMessage(ServerSession.java:180) > at > org.apache.qpid.server.subscription.Subscription_0_10.send(Subscription_0_10.java:573) > at > org.apache.qpid.server.queue.SimpleAMQQueue.deliverMessage(SimpleAMQQueue.java:715) > at > org.apache.qpid.server.queue.SimpleAMQQueue.deliverToSubscription(SimpleAMQQueue.java:658) > at > org.apache.qpid.server.queue.SimpleAMQQueue.enqueue(SimpleAMQQueue.java:611) > at > org.apache.qpid.server.queue.SimpleAMQQueue.enqueue(SimpleAMQQueue.java:536) > at > org.apache.qpid.server.transport.ServerSession$1.postCommit(ServerSession.java:157) > at > org.apache.qpid.server.txn.AutoCommitTransaction.enqueue(AutoCommitTransaction.java:151) > at > org.apache.qpid.server.transport.ServerSession.enqueue(ServerSession.java:146) > at > org.apache.qpid.server.transport.ServerSessionDelegate.messageTransfer(ServerSessionDelegate.java:287) > at > org.apache.qpid.server.transport.ServerSessionDelegate.messageTransfer(ServerSessionDelegate.java:96) > at > org.apache.qpid.transport.MessageTransfer.dispatch(MessageTransfer.java:103) > at > org.apache.qpid.transport.SessionDelegate.command(SessionDelegate.java:46) > at > org.apache.qpid.server.transport.ServerSessionDelegate.command(ServerSessionDelegate.java:110) > at > org.apache.qpid.server.transport.ServerSessionDelegate.command(ServerSessionDelegate.java:96) > at org.apache.qpid.transport.Method.delegate(Method.java:159) > at org.apache.qpid.transport.Session.received(Session.java:487) > at org.apache.qpid.transport.Connection.dispatch(Connection.java:377) > at > org.apache.qpid.transport.ConnectionDelegate.handle(ConnectionDelegate.java:64) > at > org.apache.qpid.transport.ConnectionDelegate.handle(ConnectionDelegate.java:40) > at > org.apache.qpid.transport.MethodDelegate.messageTransfer(MethodDelegate.java:113) > at > org.apache.qpid.transport.MessageTransfer.dispatch(MessageTransfer.java:103) > at > org.apache.qpid.transport.ConnectionDelegate.command(ConnectionDelegate.java:54) > at > org.apache.qpid.transport.ConnectionDelegate.command(ConnectionDelegate.java:40) > at org.apache.qpid.transport.Method.delegate(Method.java:159) > at org.apache.qpid.transport.Connection.received(Connection.java:342) > at org.apache.qpid.transport.Connection.received(Connection.java:55) > at org.apache.qpid.transport.network.Assembler.emit(Assembler.java:98) > at > org.apache.qpid.transport.network.Assembler.assemble(Assembler.java:220) > at > org.apache.qpid.transport.network.Assembler.frame(Assembler.java:132) > at org.apache.qpid.transport.network.Frame.delegate(Frame.java:133) > at > org.apache.qpid.transport.network.Assembler.received(Assembler.java:103) > at > org.apache.qpid.transport.network.Assembler.received(Assembler.java:48) > at > org.apache.qpid.transport.network.InputHandler.next(InputHandler.java:187) > at > org.apache.qpid.transport.network.InputHandler.received(InputHandler.java:103) > at > org.apache.qpid.transport.network.InputHandler.received(InputHandler.java:42) > at > org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:101) > at > org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:36) > at > org.apache.qpid.transport.network.mina.MINANetworkDriver.messageReceived(MINANetworkDriver.java:337) > at > org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:703) > at > org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362) > at > org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:54) > at > org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800) > at > org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:243) > at > org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:305) > at > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665) > at > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690) > at java.lang.Thread.run(Thread.java:619) > 2010-06-25 02:48:48,005 [ERROR] Exception thrown and no ProtocolEngine to > handle it > java.lang.NullPointerException > at > org.apache.qpid.transport.network.Assembler.assemble(Assembler.java:218) > at > org.apache.qpid.transport.network.Assembler.frame(Assembler.java:132) > at org.apache.qpid.transport.network.Frame.delegate(Frame.java:133) > at > org.apache.qpid.transport.network.Assembler.received(Assembler.java:103) > at > org.apache.qpid.transport.network.Assembler.received(Assembler.java:48) > at > org.apache.qpid.transport.network.InputHandler.next(InputHandler.java:187) > at > org.apache.qpid.transport.network.InputHandler.received(InputHandler.java:113) > at > org.apache.qpid.transport.network.InputHandler.received(InputHandler.java:42) > at > org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:101) > at > org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:36) > at > org.apache.qpid.transport.network.mina.MINANetworkDriver.messageReceived(MINANetworkDriver.java:337) > at > org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:703) > at > org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362) > at > org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:54) > at > org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800) > at > org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:243) > at > org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:305) > at > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665) > at > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690) > at java.lang.Thread.run(Thread.java:619) > At this point the client can reconnect to the broker, but the messages are no > longer dispatched. The broker has to be restarted. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:dev-subscr...@qpid.apache.org