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
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
Priority: Blocker
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.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]