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

Suspend failures in EJB

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Critical Critical
    • None
    • None
    • EJB, Management
    • None
    • ---
    • ---

      EJB subsystem suspend failures during shutdown

      I've been working on EE TCK stuff recently and have noticed this in the logs a couple times:

      0m01:18:15,282 INFO  [org.jboss.as.server] (Thread-1) WFLYSRV0272: Suspending server
      01:18:15,310 ERROR [org.jboss.as.server] (Thread-1) WFLYSRV0312: Caught exception during shutdown: java.util.concurrent.ExecutionException: java.lang.IllegalStateException
       	at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396)
       	at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.BootstrapImpl$ShutdownHook.suspend(BootstrapImpl.java:302)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.BootstrapImpl$ShutdownHook.shutdown(BootstrapImpl.java:259)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.BootstrapImpl$ShutdownHook.run(BootstrapImpl.java:245)
       Caused by: java.lang.IllegalStateException
       	at org.jboss.msc@1.5.6.Final//org.jboss.msc.value.InjectedValue.getValue(InjectedValue.java:49)
       	at org.jboss.as.ejb3@40.0.0.Beta1-SNAPSHOT//org.jboss.as.ejb3.suspend.EJBSuspendHandlerService.suspended(EJBSuspendHandlerService.java:195)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.ServerActivity.suspend(ServerActivity.java:101)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:243)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:206)
       	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@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:223)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:206)
       	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@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:223)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:206)
       	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@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:223)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:206)
       	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@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:223)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:206)
       	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@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:223)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController.phaseStage(SuspendController.java:253)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController.lambda$suspend$2(SuspendController.java:130)
       	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@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:213)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:206)
       	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@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:223)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:206)
       	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@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:223)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:206)
       	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@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:223)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:206)
       	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@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:223)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:206)
       	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@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:223)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:206)
       	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@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2$1.accept(SuspendController.java:238)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2$1.accept(SuspendController.java:231)
       	at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
       	at java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:887)
       	at java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2325)
       	at java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:144)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:245)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:206)
       	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@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:223)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:206)
       	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@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:223)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:206)
       	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@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:223)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:206)
       	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@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:223)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:206)
       	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@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController$2.accept(SuspendController.java:223)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController.phaseStage(SuspendController.java:253)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.suspend.SuspendController.suspend(SuspendController.java:122)
       	at org.jboss.as.server@32.0.0.Beta4//org.jboss.as.server.BootstrapImpl$ShutdownHook.suspend(BootstrapImpl.java:296)
       	... 2 more
      
      01:18:15,325 INFO  [org.jboss.as.server] (Thread-1) WFLYSRV0220: Server shutdown has been requested via an OS signal
      01:18:15,321 INFO  [org.jboss.as.connector.deployment] (MSC service thread 1-2) WFLYJCA0119: Unbinding connection factory named java:/jms/QueueConnectionFactory2 to alias jms/TopicConnectionFactory2
      ... etc
      

      The failure is on the EJBSuspendHandlerService call to

      localTransactionContextInjectedValue.getValue().suspendRequests();

      EJBSuspendHandlerService has a dependency on the service providing that value so I'd not expect that to fail unless the suspend call is happening after stopping of services has already begun. Perhaps that could somehow happen if the graceful shutdown times out, allowing shutdown to proceed, but the suspend process continues in the background. But the WFLYSRV0220 message is logged before shutdown begins to stop MSC services, and that is logged after the failure. So, ???

              tadamski@redhat.com Tomasz Adamski
              bstansbe@redhat.com Brian Stansberry
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: