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

[LTS] Client: Failed rollback stuck the client consumer.

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical Critical
    • None
    • AMQ 7.8.1.GA
    • core-jms-client
    • None
    • False
    • False
    • Undefined
    • Hide

      The reproducer need Byteman installed and a default Broker running.

      https://github.com/agagliardi/reproducer-ENTMQBR-4988

       

      • Install Byteman
      • Running a broker with defaults
      • run the reproducer with:
        • export MAVEN_OPTS=-javaagent:$BYTEMAN_HOME/lib/byteman.jar=script:amqclient.btm
        • mvn clean compile exec:java -Dexec.arguments="tcp://xxxxx:61616"
      • produce some message on
         ./artemis producer --destination topic://test --message-count 10 --message-size 10 --user admin --password admin --url tcp://xxxxx:61616
      • the reproducer will receive a message a will wait 30 sec to break the network before trying the rollback
          Byteman wait 30 second before ClientSessionImpl#flushAcks.
      • break the network, with iptables for example
      • wait that the rollback failure
      • fix the network (delete iptables rule)
      • press ENTER on the reproducer stdin
      • the reproducer stuck on the message Setting echo listener, now message should be received but will not as it's a bug.

       

       

      It seems that the ClientSession is no more able to recover after an exception during the rollback.

      https://github.com/apache/activemq-artemis/blob/58e59ef67989f06675c488e16d4418f766e46549/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ClientSessionImpl.java#L1023

       

       

       

       

       

      Show
      The reproducer need Byteman installed and a default Broker running. https://github.com/agagliardi/reproducer-ENTMQBR-4988   Install Byteman Running a broker with defaults run the reproducer with: export MAVEN_OPTS=-javaagent:$BYTEMAN_HOME/lib/byteman.jar=script:amqclient.btm mvn clean compile exec:java -Dexec.arguments="tcp://xxxxx:61616" produce some message on  ./artemis producer --destination topic://test --message-count 10 --message-size 10 --user admin --password admin --url tcp://xxxxx:61616 the reproducer will receive a message a will wait 30 sec to break the network before trying the rollback   Byteman wait 30 second before ClientSessionImpl#flushAcks. break the network, with iptables for example wait that the rollback failure fix the network (delete iptables rule) press ENTER on the reproducer stdin the reproducer stuck on the message Setting echo listener, now message should be received but will not as it's a bug .     It seems that the ClientSession is no more able to recover after an exception during the rollback. https://github.com/apache/activemq-artemis/blob/58e59ef67989f06675c488e16d4418f766e46549/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ClientSessionImpl.java#L1023          

      If a message rollback fails for a network glitch,  the next rollback will success but the consumer stuck and is no more able to consume messages.

            rhn-support-jbertram Justin Bertram
            rhn-support-dhawkins Duane Hawkins
            Roman Vais Roman Vais
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: