[ 
https://issues.apache.org/jira/browse/QPID-2693?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13012627#comment-13012627
 ] 

Robbie Gemmell commented on QPID-2693:
--------------------------------------

I was never able to explain the issue you saw with needing to restart the 
broker, as the only thing that I know of which could definitely have had that 
affect was fixed long before I had you try retesting the issue at various 
points. I cant think offhand of any changes since that could/should affect that 
and have never seen it happen.

The reason the producer would see an effect is that it is the producer 
connection's threads attempting to deliver the message straight-through to the 
consumer which runs into the full protocol command buffer of the consumer 
connection and encounters the issue. As we continue integrating the 0-10 code 
path better with the 0-8/0-9/0-9-1 support we will hopefully resolve that.

> 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

Reply via email to