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

MQTT spec violation when subscribed to wildcard topic on redistribution

XMLWordPrintable

    • False
    • False
    • Undefined
    • Hide
      • Steps are also mentioned in ARTEMIS-3223
      • subscribe emob/emob-test/test/+/test on node 2, send 3 test messages on every node, this is successful, disconnect the client:
       mosquitto_sub -i client1 -h amq2 -p 1883 -t 'emob/emob-test/test/+/test' -d -c
      Client client1 sending CONNECT
      Client client1 received CONNACK (0)
      Client client1 sending SUBSCRIBE (Mid: 1, Topic: emob/emob-test/test/+/test, QoS: 0, Options: 0x00)
      Client client1 received SUBACK
      Subscribed (mid: 1): 0
      Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/12345/test', ... (5 bytes))
      test1
      Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/12345/test', ... (5 bytes))
      test2
      Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/12345/test', ... (5 bytes))
      test3
      ^CClient client1 sending DISCONNECT
      

      send 3 messages again

      $ mosquitto_pub -i publisher3 -h amq3 -p 1883 -u testuser -P testpassword --insecure -t emob/emob-test/test/12345/test -m test3 -d
      Client publisher3 sending CONNECT
      Client publisher3 received CONNACK (0)
      Client publisher3 sending PUBLISH (d0, q0, r0, m1, 'emob/emob-test/test/12345/test', ... (5 bytes))
      Client publisher3 sending DISCONNECT
      
      $ mosquitto_pub -i publisher2 -h amq2 -p 1883 -u testuser -P testpassword --insecure -t emob/emob-test/test/12345/test -m test2 -d
      Client publisher2 sending CONNECT
      Client publisher2 received CONNACK (0)
      Client publisher2 sending PUBLISH (d0, q0, r0, m1, 'emob/emob-test/test/12345/test', ... (5 bytes))
      Client publisher2 sending DISCONNECT
      
      $ mosquitto_pub -i publisher1 -h amq1 -p 1883 -u testuser -P testpassword --insecure -t emob/emob-test/test/12345/test -m test1 -d
      Client publisher1 sending CONNECT
      Client publisher1 received CONNACK (0)
      Client publisher1 sending PUBLISH (d0, q0, r0, m1, 'emob/emob-test/test/12345/test', ... (5 bytes))
      Client publisher1 sending DISCONNECT
       
      • reconnect client to node 3:
        mosquitto_sub -i client1 -h amq3 -p 1883 -t 'emob/emob-test/test/+/test' -d -c
        Client client1 sending CONNECT
        Client client1 received CONNACK (0)
        Client client1 sending SUBSCRIBE (Mid: 1, Topic: emob/emob-test/test/+/test, QoS: 0, Options: 0x00)
        Client client1 received SUBACK
        Subscribed (mid: 1): 0
        Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/+/test', ... (5 bytes))
        test3
        Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/+/test', ... (5 bytes))
        test2
        Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/+/test', ... (5 bytes))
        test1
        

         

      • if i try to connect to the same node it looks even more weird, sometimes 1/3 messages have the correct topic, sometimes 2/3 messages have the correct topic:
         $ mosquitto_sub -i client1 -h amq3 -p 1883 -t 'emob/emob-test/test/+/test' -d -c
        Client client1 sending CONNECT
        Client client1 received CONNACK (0)
        Client client1 sending SUBSCRIBE (Mid: 1, Topic: emob/emob-test/test/+/test, QoS: 0, Options: 0x00)
        Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/12345/test', ... (5 bytes))
        test3
        Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/+/test', ... (5 bytes))
        test1
        Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/+/test', ... (5 bytes))
        test2
        Client client1 received SUBACK
        Subscribed (mid: 1): 0
        ^CClient client1 sending DISCONNECT
         $ mosquitto_sub -i client1 -h amq3 -p 1883 -t 'emob/emob-test/test/+/test' -d -c
        Client client1 sending CONNECT
        Client client1 received CONNACK (0)
        Client client1 sending SUBSCRIBE (Mid: 1, Topic: emob/emob-test/test/+/test, QoS: 0, Options: 0x00)
        Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/12345/test', ... (5 bytes))
        test3
        Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/12345/test', ... (5 bytes))
        test1
        Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/+/test', ... (5 bytes))
        test2
        Client client1 received SUBACK
        Subscribed (mid: 1): 0

         

      Show
      Steps are also mentioned in ARTEMIS-3223 subscribe emob/emob-test/test/+/test on node 2, send 3 test messages on every node, this is successful, disconnect the client: mosquitto_sub -i client1 -h amq2 -p 1883 -t 'emob/emob-test/test/+/test' -d -c Client client1 sending CONNECT Client client1 received CONNACK (0) Client client1 sending SUBSCRIBE (Mid: 1, Topic: emob/emob-test/test/+/test, QoS: 0, Options: 0x00) Client client1 received SUBACK Subscribed (mid: 1): 0 Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/12345/test' , ... (5 bytes)) test1 Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/12345/test' , ... (5 bytes)) test2 Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/12345/test' , ... (5 bytes)) test3 ^CClient client1 sending DISCONNECT send 3 messages again $ mosquitto_pub -i publisher3 -h amq3 -p 1883 -u testuser -P testpassword --insecure -t emob/emob-test/test/12345/test -m test3 -d Client publisher3 sending CONNECT Client publisher3 received CONNACK (0) Client publisher3 sending PUBLISH (d0, q0, r0, m1, 'emob/emob-test/test/12345/test' , ... (5 bytes)) Client publisher3 sending DISCONNECT $ mosquitto_pub -i publisher2 -h amq2 -p 1883 -u testuser -P testpassword --insecure -t emob/emob-test/test/12345/test -m test2 -d Client publisher2 sending CONNECT Client publisher2 received CONNACK (0) Client publisher2 sending PUBLISH (d0, q0, r0, m1, 'emob/emob-test/test/12345/test' , ... (5 bytes)) Client publisher2 sending DISCONNECT $ mosquitto_pub -i publisher1 -h amq1 -p 1883 -u testuser -P testpassword --insecure -t emob/emob-test/test/12345/test -m test1 -d Client publisher1 sending CONNECT Client publisher1 received CONNACK (0) Client publisher1 sending PUBLISH (d0, q0, r0, m1, 'emob/emob-test/test/12345/test' , ... (5 bytes)) Client publisher1 sending DISCONNECT reconnect client to node 3: mosquitto_sub -i client1 -h amq3 -p 1883 -t 'emob/emob-test/test/+/test' -d -c Client client1 sending CONNECT Client client1 received CONNACK (0) Client client1 sending SUBSCRIBE (Mid: 1, Topic: emob/emob-test/test/+/test, QoS: 0, Options: 0x00) Client client1 received SUBACK Subscribed (mid: 1): 0 Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/+/test' , ... (5 bytes)) test3 Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/+/test' , ... (5 bytes)) test2 Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/+/test' , ... (5 bytes)) test1   if i try to connect to the same node it looks even more weird, sometimes 1/3 messages have the correct topic, sometimes 2/3 messages have the correct topic: $ mosquitto_sub -i client1 -h amq3 -p 1883 -t 'emob/emob-test/test/+/test' -d -c Client client1 sending CONNECT Client client1 received CONNACK (0) Client client1 sending SUBSCRIBE (Mid: 1, Topic: emob/emob-test/test/+/test, QoS: 0, Options: 0x00) Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/12345/test' , ... (5 bytes)) test3 Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/+/test' , ... (5 bytes)) test1 Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/+/test' , ... (5 bytes)) test2 Client client1 received SUBACK Subscribed (mid: 1): 0 ^CClient client1 sending DISCONNECT $ mosquitto_sub -i client1 -h amq3 -p 1883 -t 'emob/emob-test/test/+/test' -d -c Client client1 sending CONNECT Client client1 received CONNACK (0) Client client1 sending SUBSCRIBE (Mid: 1, Topic: emob/emob-test/test/+/test, QoS: 0, Options: 0x00) Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/12345/test' , ... (5 bytes)) test3 Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/12345/test' , ... (5 bytes)) test1 Client client1 received PUBLISH (d0, q0, r0, m0, 'emob/emob-test/test/+/test' , ... (5 bytes)) test2 Client client1 received SUBACK Subscribed (mid: 1): 0  

            gtully@redhat.com Gary Tully
            rhn-support-cpandey Chandra Shekhar Pandey (Inactive)
            Roman Vais Roman Vais (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: