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

Deployment fails with ConcurrentModificationException when using modcluster capabilities

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Critical Critical
    • None
    • 8.1 Update 2
    • Server
    • None
    • False
    • Hide

      None

      Show
      None
    • False

      Testcase: https://gitlab.cee.redhat.com/jbossqe-eap/clouds-ts/-/blob/master/aws/vm-image/src/test/java/org/wildfly/test/hyperscaler/DynamicBalancerAwsTestCase.java

      Topology:
      1 loadbalancer
      2 workers

      Test scenario:
      1. spin up server instances, loadbalancer uses standalone-load-balancer.xml, workers standalone-ha.xml
      2. configure workers
      jvmRoute is either worker-1 or worker-2

      //system-property=jboss.mod_cluster.jvmRoute:add(value=\"" + jvmRoute + "\")
      /subsystem=modcluster/proxy=default:write-attribute(name=advertise,value=false)
      /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=proxy1:add(host=\"" + balancerIP + "\", port=\"" + balancerPort + "\")
      /subsystem=modcluster/proxy=default:list-add(name=proxies,value=proxy1)
      reload
      

      3. deploy

      Deployment is a very simple application printing worker id: https://gitlab.cee.redhat.com/jbossqe-eap/clouds-ts/-/blob/master/shared-tests/src/main/java/org/wildfly/test/hyperscaler/dynamicBalancer/deployment/ModclusterLoadbalancerResource.java

      Deployment operation fails intermittently with following exception:

      2025-12-16 12:25:37,042 ERROR [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0055: Caught exception during boot: java.util.concurrent.CompletionException: java.util.ConcurrentModificationException
      	at java.base/java.util.concurrent.CompletableFuture.reportJoin(CompletableFuture.java:413)
      	at java.base/java.util.concurrent.CompletableFuture.join(CompletableFuture.java:2118)
      	at org.jboss.as.server@27.1.2.Final-redhat-00002//org.jboss.as.server.ServerService.finishBoot(ServerService.java:446)
      	at org.jboss.as.server@27.1.2.Final-redhat-00002//org.jboss.as.server.ServerService.boot(ServerService.java:396)
      	at org.jboss.as.controller@27.1.2.Final-redhat-00002//org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:358)
      	at java.base/java.lang.Thread.run(Thread.java:840)
      Caused by: java.util.ConcurrentModificationException
      	at java.base/java.util.HashMap$HashIterator.nextNode(HashMap.java:1597)
      	at java.base/java.util.HashMap$KeyIterator.next(HashMap.java:1620)
      	at org.wildfly.mod_cluster.undertow@8.1.1.GA-redhat-00006//org.wildfly.mod_cluster.undertow.UndertowEventHandlerAdapterService.resume(UndertowEventHandlerAdapterService.java:196)
      	at org.jboss.as.server@27.1.2.Final-redhat-00002//org.jboss.as.server.suspend.ServerActivity.resume(ServerActivity.java:112)
      	at org.jboss.as.server@27.1.2.Final-redhat-00002//org.jboss.as.server.suspend.SuspendController$1.accept(SuspendController.java:202)
      	at org.jboss.as.server@27.1.2.Final-redhat-00002//org.jboss.as.server.suspend.SuspendController$1.accept(SuspendController.java:165)
      	at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
      	at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
      	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
      	at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2147)
      	at org.jboss.as.server@27.1.2.Final-redhat-00002//org.jboss.as.server.suspend.SuspendController$1.accept(SuspendController.java:182)
      	at org.jboss.as.server@27.1.2.Final-redhat-00002//org.jboss.as.server.suspend.SuspendController$1.accept(SuspendController.java:165)
      	at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
      	at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
      	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
      	at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2147)
      	at org.jboss.as.server@27.1.2.Final-redhat-00002//org.jboss.as.server.suspend.SuspendController$1.accept(SuspendController.java:182)
      	at org.jboss.as.server@27.1.2.Final-redhat-00002//org.jboss.as.server.suspend.SuspendController$1.accept(SuspendController.java:165)
      	at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
      	at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
      	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
      	at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2147)
      	at org.jboss.as.server@27.1.2.Final-redhat-00002//org.jboss.as.server.suspend.SuspendController$1.accept(SuspendController.java:182)
      	at org.jboss.as.server@27.1.2.Final-redhat-00002//org.jboss.as.server.suspend.SuspendController$1.accept(SuspendController.java:165)
      	at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
      	at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
      	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
      	at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2147)
      	at org.jboss.as.server@27.1.2.Final-redhat-00002//org.jboss.as.server.suspend.SuspendController$1.accept(SuspendController.java:182)
      	at org.jboss.as.server@27.1.2.Final-redhat-00002//org.jboss.as.server.suspend.SuspendController$1.accept(SuspendController.java:165)
      	at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
      	at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
      	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
      	at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2147)
      	at org.jboss.as.server@27.1.2.Final-redhat-00002//org.jboss.as.server.suspend.SuspendController$1.accept(SuspendController.java:182)
      	at org.jboss.as.server@27.1.2.Final-redhat-00002//org.jboss.as.server.suspend.SuspendController.phaseStage(SuspendController.java:212)
      	at org.jboss.as.server@27.1.2.Final-redhat-00002//org.jboss.as.server.suspend.SuspendController.resume(SuspendController.java:136)
      	... 4 more
      

      Logs and configurations are attached

      I hit this on AWS EC2 instances. I suspect this plays a role since instances are not on the same machine and they run in parallel. From time to time deployment is successful when I pause the debugger before the deploy operation when I think I give the servers more time. But when I let it run without a pause I have no problem hitting it.

      If there are troubles with reproducing the issue locally, I can assist with deploying to AWS env.

      I don't know if this is a regression to 8.1.0.GA, we did not have a test EC2 image for 8.1.0.GA.

        1. worker1_server.log
          41 kB
          Ivan Straka
        2. worker1_standalona-ha.xml
          34 kB
          Ivan Straka
        3. standalone-load-balancer.xml
          13 kB
          Ivan Straka
        4. standalone-load-balancer_server.log
          10 kB
          Ivan Straka
        5. worker2_standalona-ha.xml
          34 kB
          Ivan Straka
        6. worker2_server.log
          27 kB
          Ivan Straka

              Unassigned Unassigned
              istraka@redhat.com Ivan Straka
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: