Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-2693

Broker instability with the topic exchange

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • 0.7, 0.8, 0.9, 0.10, 0.11, 0.12
    • None
    • Broker-J
    • None
    • 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

    Description

      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.

      Attachments

        1. qpid-log.txt
          15 kB
          Emmanuel Bourg
        2. qpid-dump.txt
          36 kB
          Emmanuel Bourg

        Activity

          People

            robbie Robbie Gemmell
            ebourg Emmanuel Bourg
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: