Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-10817

Incorrect data check when clearing body of large compressed message after failover

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Critical
    • Resolution: Done
    • 13.0.0.Final
    • 14.0.0.Final
    • JMS
    • None
    • Hide
      git clone git://git.app.eng.bos.redhat.com/jbossqe/eap-tests-hornetq.git
      cd eap-tests-hornetq/scripts/
      groovy -DEAP_ZIP_URL=https://eap-qe-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/job/eap-7.x-messaging-testing-prepare/173/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 clean test -Dtest=DedicatedFailoverTestCase#testFailoverWithMessageCompressionLargeCompressedToLarge -Deap7.org.jboss.qa.hornetq.apps.clients.version=7.1533713160-SNAPSHOT -DfailIfNoTests=false -Deap=7x | tee log
      
      Show
      git clone git: //git.app.eng.bos.redhat.com/jbossqe/eap-tests-hornetq.git cd eap-tests-hornetq/scripts/ groovy -DEAP_ZIP_URL=https: //eap-qe-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/job/eap-7.x-messaging-testing-prepare/173/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 clean test -Dtest=DedicatedFailoverTestCase#testFailoverWithMessageCompressionLargeCompressedToLarge -Deap7.org.jboss.qa.hornetq.apps.clients.version=7.1533713160-SNAPSHOT -DfailIfNoTests= false -Deap=7x | tee log

    Description

      Scenario

      • There are two WildFly (Artemis) servers in dedicated shared store HA topology
      • Connection factory is configured to compress large messages
      • Live server is killed
      • Clients do failover to backup

      After the clients do failover to backup, I can see following exceptions in the log when a receiver tries to clear body of large message. The test fails because of lost messages.

      I can see this issue with Artemis 1.5.5.jbossorg-012.

      I am not able to reproduce it locally but I hit it on Jenkins every time.

      javax.jms.JMSException: AMQ119029: Error writing body of message
              at org.apache.activemq.artemis.jms.client.ActiveMQBytesMessage.clearBody(ActiveMQBytesMessage.java:337)
              at org.jboss.qa.hornetq.apps.clients.Client.cleanMessage(Client.java:144)
              at org.jboss.qa.hornetq.apps.clients.Receiver11.receiveMessage(Receiver11.java:153)
              at org.jboss.qa.hornetq.apps.clients.ReceiverTransAck.run(ReceiverTransAck.java:89)
      Caused by: java.lang.RuntimeException: AMQ119029: Error writing body of message
              at org.apache.activemq.artemis.core.client.impl.ClientLargeMessageImpl.getBodyBuffer(ClientLargeMessageImpl.java:93)
              at org.apache.activemq.artemis.jms.client.ActiveMQBytesMessage.getBuffer(ActiveMQBytesMessage.java:363)
              at org.apache.activemq.artemis.jms.client.ActiveMQBytesMessage.clearBody(ActiveMQBytesMessage.java:335)
              ... 3 more
      Caused by: ActiveMQLargeMessageException[errorType=LARGE_MESSAGE_ERROR_BODY message=AMQ119029: Error writing body of message]
              at org.apache.activemq.artemis.core.client.impl.LargeMessageControllerImpl.sendPacketToOutput(LargeMessageControllerImpl.java:1077)
              at org.apache.activemq.artemis.core.client.impl.LargeMessageControllerImpl.setOutputStream(LargeMessageControllerImpl.java:258)
              at org.apache.activemq.artemis.core.client.impl.CompressedLargeMessageControllerImpl.setOutputStream(CompressedLargeMessageControllerImpl.java:75)
              at org.apache.activemq.artemis.core.client.impl.CompressedLargeMessageControllerImpl.saveBuffer(CompressedLargeMessageControllerImpl.java:80)
              at org.apache.activemq.artemis.core.client.impl.ClientLargeMessageImpl.checkBuffer(ClientLargeMessageImpl.java:159)
              at org.apache.activemq.artemis.core.client.impl.ClientLargeMessageImpl.getBodyBuffer(ClientLargeMessageImpl.java:91)
              ... 5 more
      Caused by: java.io.IOException: incorrect data check
              at org.apache.activemq.artemis.utils.InflaterWriter.close(InflaterWriter.java:81)
              at org.apache.activemq.artemis.core.client.impl.LargeMessageControllerImpl.sendPacketToOutput(LargeMessageControllerImpl.java:1074)
              ... 10 more
      Caused by: java.util.zip.DataFormatException: incorrect data check
              at java.util.zip.Inflater.inflateBytes(Native Method)
              at java.util.zip.Inflater.inflate(Inflater.java:259)
              at java.util.zip.Inflater.inflate(Inflater.java:280)
              at org.apache.activemq.artemis.utils.InflaterWriter.close(InflaterWriter.java:77)
              ... 11 more
      

      Attachments

        Activity

          People

            jmesnil1@redhat.com Jeff Mesnil
            eduda_jira Erich Duda (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: