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

[Artemis 2.x Upgrade] Old (Artemis 1.5..5) client cannot create subscription on Artemis 2.x server

XMLWordPrintable

    • Hide

      Steps to reproduce the issue - 100% reproducer:

      git clone git://git.app.eng.bos.redhat.com/jbossqe/eap-tests-hornetq.git
      cd eap-tests-hornetq/scripts/
      git checkout master
      groovy -DEAP_ZIP_URL=https://eap-qe-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/job/early-testing-messaging-prepare/128//artifact/jboss-eap.zip PrepareServers7.groovy
      export WORKSPACE=$PWD
      export JBOSS_HOME_1=$WORKSPACE/server1/jboss-eap
      export JBOSS_HOME_2=$WORKSPACE/server2/jboss-eap
      export JBOSS_HOME_3=$WORKSPACE/server3/jboss-eap
      export JBOSS_HOME_4=$WORKSPACE/server4/jboss-eap
      cd ../jboss-hornetq-testsuite/
      mvn -Dtest=Eap7ClientCompatibilityTestCase#testNettyTransAckTopic -Deap7.org.jboss.qa.hornetq.apps.clients.version=7.1.0.CR4 clean install | tee log
      
      Show
      Steps to reproduce the issue - 100% reproducer: git clone git: //git.app.eng.bos.redhat.com/jbossqe/eap-tests-hornetq.git cd eap-tests-hornetq/scripts/ git checkout master groovy -DEAP_ZIP_URL=https: //eap-qe-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/job/early-testing-messaging-prepare/128//artifact/jboss-eap.zip PrepareServers7.groovy export WORKSPACE=$PWD export JBOSS_HOME_1=$WORKSPACE/server1/jboss-eap export JBOSS_HOME_2=$WORKSPACE/server2/jboss-eap export JBOSS_HOME_3=$WORKSPACE/server3/jboss-eap export JBOSS_HOME_4=$WORKSPACE/server4/jboss-eap cd ../jboss-hornetq-testsuite/ mvn -Dtest=Eap7ClientCompatibilityTestCase#testNettyTransAckTopic -Deap7.org.jboss.qa.hornetq.apps.clients.version=7.1.0.CR4 clean install | tee log

      If Artemis 1.5.5 client tries to subscribe on topic with latest Artemis 2.x (Artemis repo: https://github.com/mnovak1/activemq-artemis/ , branch: ARTEMIS-1609 , commit: e45e75af64859dc43bfe40e0a4c6b81187cc20e4) then JMSException is thrown:

      04:28:00,121 Thread-15 ERROR [org.jboss.qa.hornetq.apps.clients.SubscriberTransAck:172] Exception thrown during subsribing.
      javax.jms.JMSException
              at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:404)
              at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:315)
              at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQSessionContext.queueQuery(ActiveMQSessionContext.java:254)
              at org.apache.activemq.artemis.core.client.impl.ClientSessionImpl.queueQuery(ClientSessionImpl.java:344)
              at org.apache.activemq.artemis.jms.client.ActiveMQSession.createConsumer(ActiveMQSession.java:689)
              at org.apache.activemq.artemis.jms.client.ActiveMQSession.createDurableSubscriber(ActiveMQSession.java:426)
              at org.apache.activemq.artemis.jms.client.ActiveMQSession.createDurableSubscriber(ActiveMQSession.java:400)
              at org.jboss.qa.hornetq.apps.clients.SubscriberTransAck.subscribe(SubscriberTransAck.java:166)
              at org.jboss.qa.hornetq.apps.clients.TopicClientsTransAck.startClients(TopicClientsTransAck.java:77)
              at org.jboss.qa.artemis.test.compatibility.Eap7ClientCompatibilityTestCase.testNettyClient(Eap7ClientCompatibilityTestCase.java:169)
              at org.jboss.qa.artemis.test.compatibility.Eap7ClientCompatibilityTestCase.testNettyTransAckTopic(Eap7ClientCompatibilityTestCase.java:159)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
              at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
              at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
              at org.jboss.arquillian.junit.Arquillian$6$1.invoke(Arquillian.java:270)
              at org.jboss.arquillian.container.test.impl.execution.LocalTestExecuter.execute(LocalTestExecuter.java:60)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      

      There is NPE on server with:

      15:32:15,509 WARN  [org.apache.activemq.artemis.core.server] (Thread-7 (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@5b9dcfa)) AMQ222225: Sending unexpected exception to the client: java.lang.NullPointerException
      	at org.apache.activemq.artemis.api.core.SimpleString.concat(SimpleString.java:399) [artemis-commons-2.5.0-SNAPSHOT.jar:2.5.0-SNAPSHOT]
      	at org.apache.activemq.artemis.core.protocol.core.impl.wireformat.QueueAbstractPacket.getOldPrefixedAddress(QueueAbstractPacket.java:115) [artemis-core-client-2.5.0-SNAPSHOT.jar:2.5.0-SNAPSHOT]
      	at org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.slowPacketHandler(ServerSessionPacketHandler.java:393) [artemis-server-2.5.0-SNAPSHOT.jar:2.5.0-SNAPSHOT]
      	at org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.onMessagePacket(ServerSessionPacketHandler.java:281) [artemis-server-2.5.0-SNAPSHOT.jar:2.5.0-SNAPSHOT]
      	at org.apache.activemq.artemis.utils.actors.Actor.doTask(Actor.java:33) [artemis-commons-2.5.0-SNAPSHOT.jar:2.5.0-SNAPSHOT]
      	at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:66) [artemis-commons-2.5.0-SNAPSHOT.jar:2.5.0-SNAPSHOT]
      	at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42) [artemis-commons-2.5.0-SNAPSHOT.jar:2.5.0-SNAPSHOT]
      	at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31) [artemis-commons-2.5.0-SNAPSHOT.jar:2.5.0-SNAPSHOT]
      	at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:66) [artemis-commons-2.5.0-SNAPSHOT.jar:2.5.0-SNAPSHOT]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_131]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_131]
      	at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_131]
      

      Looking at code there is processed packet SessionQueueQueryMessage on server which does not have set address variable.

              mtaylor1@redhat.com Martyn Taylor (Inactive)
              mtaylor1@redhat.com Martyn Taylor (Inactive)
              Michal Toth Michal Toth
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: