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

Intermittent failure of deployment containing two datasources in -ds.xml

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 7.0.0.DR9
    • 7.0.0.DR7
    • JCA
    • None
    • Hide

      I prepared two deployments as simple as possible, one with two datasources showing the problem and one with single datasource added which doesn't cause the failure.

      Try to deploy them in a loop:

      for i in {1..100}; do 
        jboss-eap-7.0/bin/jboss-cli.sh -c --command="deploy two-datasources.jar --force"; 
      done
      

      With two-datasources.jar some iterations will fail (cca 5 out of 100).
      When the debugger is attached to the server it fails almost everytime (95/100).

      Show
      I prepared two deployments as simple as possible, one with two datasources showing the problem and one with single datasource added which doesn't cause the failure. Try to deploy them in a loop: for i in {1..100}; do jboss-eap-7.0/bin/jboss-cli.sh -c --command= "deploy two-datasources.jar --force" ; done With two-datasources.jar some iterations will fail (cca 5 out of 100). When the debugger is attached to the server it fails almost everytime (95/100).

      Running smoke runs of JBossWS in EAP7, I occasionally hit test failure of WSRMStoreFeatureTestCase (from JBossWS testsuite). The testcase uses deployment that should add some datasources, but deploying ends up with:

      org.jboss.msc.service.StartException in service jboss.data-source.java:jboss/datasources/rmclientdb.statistics: Failed to start service
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.IllegalArgumentException: WFLYCTL0218: A node is already registered at '/deployment=*/subsystem=datasources/data-source=*/statistics=jdbc'
      	at org.jboss.as.controller.registry.NodeSubregistry.register(NodeSubregistry.java:86)
      	at org.jboss.as.controller.registry.ConcreteResourceRegistration.registerSubModel(ConcreteResourceRegistration.java:180)
      	at org.jboss.as.connector.services.datasources.statistics.DataSourceStatisticsService.start(DataSourceStatisticsService.java:85)
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
      	... 3 more
      

      After some debugging, the problematic scenario seems to be:
      1) there is a deployment (jar/war, doesn't matter) containing -ds.xml configuration file
      2) this file contains definition of at least two datasources to be added

              msimka@redhat.com Martin Simka
              jbliznak@redhat.com Jan Blizňák
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: