Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-13592

CXF over JMS: Connections leak after broker recovery

XMLWordPrintable

    • % %
    • build2
    • -
    • Fuse Standalone
    • Workaround Exists
    • Hide

      Set-up

      Test

      1. Broker A active, 5 local consumers
        Broker B active, 5 remote consumers
      2. Shutdown Broker A
      3. Broker B active, 10 local consumers <--- LEAK
      4. Broker A active again
        Broker A active, 10 remote consumers
        Broker B active, 10 local consumers
      5. Shutdown Broker B
        #Broker B active again
        Broker A active, 15 local consumers

      and so on...

       

      Note

      Consumers have been checked with the Web console.

       

      Direct consumers have a generated progressive id 

       

       

      Remote consumers are prefixed with destination broker -> source broker, under the network bridge folder

       

      Show
      Set-up Fuse 7.3.1 on EAP 7.2.0 and Camel subsystem enabled 2 AMQ 6.3, with Network of Broker (bidirectional without duplex) brokerA.zip brokerB.zip run EAP, brokerA, brokerB git clone https://github.com/agagliardi/wildfly-camel-examples/tree/cxf-over-jms-with-spring-02613978/camel-cxf-jaxws-over-jms mvn clean install -Pdeploy check http://127.0.0.1:8080/example-camel-cxf-jaxws-over-jms/ Test Broker A active, 5 local consumers Broker B active, 5 remote consumers Shutdown Broker A Broker B active, 10 local consumers <--- LEAK Broker A active again Broker A active, 10 remote consumers Broker B active, 10 local consumers Shutdown Broker B #Broker B active again Broker A active, 15 local consumers and so on...   Note Consumers have been checked with the Web console.   Direct consumers have a generated progressive id      Remote consumers are prefixed with destination broker -> source broker, under the network bridge folder  

      Environment

      • Fuse 7.3.1 on EAP 7.2.0
      • AMQ 6.3
      • CXF over JMS route fully configured with Spring

      Issue

      An error with the JMS connection, like a broker restart, cause a duplication of active connection when the broker pop-up again.
      In "Steps to Reproduce" there is a configuration with two brokers but it's easy to reproduce just with one active.

      I suspect that JMSDestionation#restartConnection doesn't delete old connections before creates new ones believing that the old ones are permanently broken but if they have been created with a failover URL, they come available again when the broker pop up again.
      Indeed seems PollingMessageListenerContainer leak.

        1. remote-consumer.png
          remote-consumer.png
          65 kB
        2. direct-consumer.png
          direct-consumer.png
          83 kB
        3. camel-cxf-jaxws-over-jms.zip
          78 kB
        4. brokerB.zip
          2 kB
        5. brokerA.zip
          2 kB

              ldemasi Luigi De Masi
              rhn-support-agagliar Antonio Gagliardi
              Francesco Mongiardo Francesco Mongiardo
              Tomas Turek, Viliam Kasala
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

                Created:
                Updated:
                Resolved: