Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-23574

Messaging - Transaction remained in prepared state after failover

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Blocker Blocker
    • 8.0.0.GA-CR1, 8.0.0.GA
    • 8.0.0.Beta-CR1, 8.0.0.Beta
    • ActiveMQ, JMS
    • None
    • False
    • None
    • False
    • Known Issue
    • Hide
      Use Java 11 or 17 and Groovy 4
      cd /tmp
      export EAP_ZIP_FILE=/tmp/jboss-eap-8.0.0.Beta-redhat-20220512.zip
      
      git clone messaging-testsuite
      export MESSAGING_TESTSUITE_DIR=$PWD/messaging-testsuite
      export WORKSPACE=/tmp/WORKSPACE
      
      rm -rdf $WORKSPACE
      mkdir -p $WORKSPACE
      cd $WORKSPACE
      
      groovy -DeapZipUrl=file://$EAP_ZIP_FILE $MESSAGING_TESTSUITE_DIR/scripts/PrepareServers7.groovy
      
      $MESSAGING_TESTSUITE_DIR/scripts/prepare-env-variables.sh
      
      chmod +x $WORKSPACE/test.env
      $WORKSPACE/test.env
      
      mvn -f $MESSAGING_TESTSUITE_DIR/jboss-hornetq-testsuite/pom.xml clean install -B \
      -Denforcer.skip \
      -Dartemis.version=2.19.1 \
      -DexcludedGroups=None,category.scope.Broker \
      -Dgroups=category.FailoverDedicatedMdb \
      -Dtest=ReplicatedDedicatedFailoverTestWithMdb#testShutdown \
      -Dsurefire.timeout=93600 \
      -Deap7.org.jboss.qa.hornetq.apps.clients.version=8.1652427368-SNAPSHOT \
      -DreuseForks=false \
      -Dmaven.test.failure.ignore=true \
      -Deap7.clients.version=8.1652427368-SNAPSHOT \
      -Dsurefire.failIfNoSpecifiedTests=false \
      -DMYTESTIP_1=127.0.0.1 -DMYTESTIP_2=127.0.0.1 -DMYTESTIP_3=127.0.0.1 -DMYTESTIP_4=127.0.0.1 \
      -DJBOSS_HOME_1=$WORKSPACE/server1/jboss-eap \
      -DJBOSS_HOME_2=$WORKSPACE/server2/jboss-eap \
      -DJBOSS_HOME_3=$WORKSPACE/server3/jboss-eap \
      -DJBOSS_HOME_4=$WORKSPACE/server4/jboss-eap 
      
      Show
      Use Java 11 or 17 and Groovy 4 cd /tmp export EAP_ZIP_FILE=/tmp/jboss-eap-8.0.0.Beta-redhat-20220512.zip git clone messaging-testsuite export MESSAGING_TESTSUITE_DIR=$PWD/messaging-testsuite export WORKSPACE=/tmp/WORKSPACE rm -rdf $WORKSPACE mkdir -p $WORKSPACE cd $WORKSPACE groovy -DeapZipUrl=file://$EAP_ZIP_FILE $MESSAGING_TESTSUITE_DIR/scripts/PrepareServers7.groovy $MESSAGING_TESTSUITE_DIR/scripts/prepare-env-variables.sh chmod +x $WORKSPACE/test.env $WORKSPACE/test.env mvn -f $MESSAGING_TESTSUITE_DIR/jboss-hornetq-testsuite/pom.xml clean install -B \ -Denforcer.skip \ -Dartemis.version=2.19.1 \ -DexcludedGroups=None,category.scope.Broker \ -Dgroups=category.FailoverDedicatedMdb \ -Dtest=ReplicatedDedicatedFailoverTestWithMdb#testShutdown \ -Dsurefire.timeout=93600 \ -Deap7.org.jboss.qa.hornetq.apps.clients.version=8.1652427368-SNAPSHOT \ -DreuseForks=false \ -Dmaven.test.failure.ignore=true \ -Deap7.clients.version=8.1652427368-SNAPSHOT \ -Dsurefire.failIfNoSpecifiedTests=false \ -DMYTESTIP_1=127.0.0.1 -DMYTESTIP_2=127.0.0.1 -DMYTESTIP_3=127.0.0.1 -DMYTESTIP_4=127.0.0.1 \ -DJBOSS_HOME_1=$WORKSPACE/server1/jboss-eap \ -DJBOSS_HOME_2=$WORKSPACE/server2/jboss-eap \ -DJBOSS_HOME_3=$WORKSPACE/server3/jboss-eap \ -DJBOSS_HOME_4=$WORKSPACE/server4/jboss-eap

      Scenario:

      The error shows up both with JDK-11 and JDK-17

      There are three servers. Live server (Node 1) and backup server (Node 2) are in dedicated HA topology. InQueue and OutQueue are deployed on live and backup:

      • Send messages to InQueue on live server
      • When all messages are sent, deploy message driven bean on Node 3
      • MDB sends messages form InQueue to OutQueue
      • Shutdown live server
      • Receive messages from OutQueue from backup server

      After all this happened, transactions remain in prepared state on Node 2;

      The complete error message is:

      [ERROR] org.jboss.qa.hornetq.test.failover.ReplicatedDedicatedFailoverTestWithMdb.testShutdown  Time elapsed: 605.326 s  <<< FAILURE!
      java.lang.AssertionError: There are prepared transactions in HornetQ/Artemis journal - number of prepared transactions is: 2
              at org.junit.Assert.fail(Assert.java:89)
              at org.jboss.qa.hornetq.tools.TransactionUtils.waitUntilThereAreNoPreparedHornetQTransactions(TransactionUtils.java:63)
              at org.jboss.qa.hornetq.tools.TransactionUtils.waitUntilThereAreNoPreparedHornetQTransactions(TransactionUtils.java:81)
              at org.jboss.qa.hornetq.test.failover.DedicatedFailoverTestCaseWithMdb.testFailoverWithRemoteJca(DedicatedFailoverTestCaseWithMdb.java:395)
              at org.jboss.qa.hornetq.test.failover.DedicatedFailoverTestCaseWithMdb.testShutdown(DedicatedFailoverTestCaseWithMdb.java:323)
      

              ehugonne1@redhat.com Emmanuel Hugonnet
              tborgato@redhat.com Tommaso Borgato
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated:
                Resolved: