Uploaded image for project: 'AMQ Broker'
  1. AMQ Broker
  2. ENTMQBR-76

[AMQP] Broker NPE when client attaches receiver to source that does not exist

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • A-MQ 7.0.0.GA
    • A-MQ 7.0.0.ER4
    • None
    • Hide

      Run any AMQP client that tries to attach to a receiver to a source that does not exist.

      Show
      Run any AMQP client that tries to attach to a receiver to a source that does not exist.
    • Broker - September Sprint

      When the client attaches to the receiver to source 'amq.topicXXX' the broker emits

      java.lang.NullPointerException
      	at org.proton.plug.context.AbstractConnectionContext$LocalListener.onFlow(AbstractConnectionContext.java:259)
      	at org.proton.plug.handler.Events.dispatch(Events.java:85)
      	at org.proton.plug.handler.impl.ProtonHandlerImpl.dispatch(ProtonHandlerImpl.java:362)
      	at org.proton.plug.handler.impl.ProtonHandlerImpl.access$000(ProtonHandlerImpl.java:49)
      	at org.proton.plug.handler.impl.ProtonHandlerImpl$1.run(ProtonHandlerImpl.java:63)
      	at org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:100)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      

      Over the wire the protocol is handled perfectly. An Attach is returned to the client followed immediately with a Detach that has a condition. All links, sessions, and connections are closed correctly.

      AMQP frames
      ◊  ◊◊ 5.968655  Frame 352  10.18.96.1:11335  -> 10.10.53.31:5672  ->   init AMQP (0): (1.0.0)
      ◊  ◊◊ 5.982233  Frame 353  10.18.96.1:11335  -> 10.10.53.31:5672  ->   open [0]
      ◊  ◊◊ 5.983141  Frame 354  10.18.96.1:11335  -> 10.10.53.31:5672  ->   begin [0,null]
      ◊  ◊◊ 5.988035  Frame 355  10.18.96.1:11335  -> 10.10.53.31:5672  ->   attach [0,0] receiver receiver-drain (source: amq.topicXXX, target: null)
      ◊  ◊◊ 5.991157  Frame 356  10.18.96.1:11335  -> 10.10.53.31:5672  ->   flow [0,0] (0,10)
      ◊  ◊◊ 6.036822  Frame 359  10.18.96.1:11335 <-  10.10.53.31:5672 <-    init AMQP (0): (1.0.0)
      ◊  ◊◊ 6.049694  Frame 362  10.18.96.1:11335 <-  10.10.53.31:5672 <-    open [0]
      ◊  ◊◊ 6.050310  Frame 364  10.18.96.1:11335 <-  10.10.53.31:5672 <-    begin [0,0]
      ◊  ◊◊ 6.054407  Frame 365  10.18.96.1:11335 <-  10.10.53.31:5672 <-    attach [0,0] sender receiver-drain (source: null, target: null), detach [0,0]
         ◊  attach [0,0] sender receiver-drain (source: null, target: null)
         ◊  detach [0,0]
              Length: 85
              Doff: 2
              Type: AMQP (0)
              Channel: 0
              Performative: detach (22)
              Arguments (list of 3 elements)
                   Handle: 0 (67)
                   Closed: true (65)
                   Error (list of 2 elements)
                        Condition: amqp:internal-error
                        Description: AMQ219010: source address does not exist
      ◊  ◊◊ 6.072061  Frame 367  10.18.96.1:11335  -> 10.10.53.31:5672  ->   detach [0,0]
      ◊  ◊◊ 6.077239  Frame 368  10.18.96.1:11335  -> 10.10.53.31:5672  ->   end [0]
      ◊  ◊◊ 6.144358  Frame 372  10.18.96.1:11335 <-  10.10.53.31:5672 <-    end [0]
      ◊  ◊◊ 6.146988  Frame 373  10.18.96.1:11335  -> 10.10.53.31:5672  ->   close [0]
      ◊  ◊◊ 6.213966  Frame 374  10.18.96.1:11335 <-  10.10.53.31:5672 <-    close [0]
      

      From the client side the broker is doing everything right.

              mtaylor1@redhat.com Martyn Taylor (Inactive)
              crolke@redhat.com Chuck Rolke (Inactive)
              David Kornel David Kornel
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: