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

Deployment fails due to NullPointerException in ExpirationMetaData.getLastAccessTime()

XMLWordPrintable

    • Hide
      sticky sessions are disabled

       

      Show
      sticky sessions are disabled  
    • Hide

      stop all cluster nodes

      or

      purge passivation store (i.e. delete files) before starting.

      Show
      stop all cluster nodes or purge passivation store (i.e. delete files) before starting.
    • ---
    • ---

      After upgrading from WildFly 31 to 35.0.1.Final, our application fails on the first deployment attempt after a long idle period (> 24h).

      Stacktrace shows a NullPointerException from:

      org.wildfly.clustering.server.expiration.ExpirationMetaData.getLastAccessTime()

      which is called in:

      org.wildfly.clustering.server.infinispan.expiration.ExpirationMetaDataFunction.apply(...)

      Root cause: stale or passivated session entries remain in Infinispan's file-store with lastAccessTime == null. On the first deployment, the session expiration logic attempts to invoke .plus(...) on a null Instant.

       

      Even after a failed deploy, retrying deployment does not resolve the issue. The only way to recover is to run:
      "sudo docker stop wildfly" on all cluster nodes, which forces Infinispan to purge or rebuild its cache state.

      Message: MSC000001: Failed to start service jboss.deployment.unit."fs.war".undertow-deployment
      : org.jboss.msc.service.StartException in service jboss.deployment.unit."pr.war".undertow-deployment: java.lang.NullPointerException: Cannot invoke "java.time.Instant.plus(java.time.temporal.TemporalAmount)" because the return value of "org.wildfly.clustering.server.expiration.ExpirationMetaData.getLastAccessTime()" is null
          at org.wildfly.extension.undertow@35.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:73)
          at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
          at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
          at org.jboss.threads@2.4.0.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
          at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
          at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
          at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
          at java.base/java.lang.Thread.run(Thread.java:840)
          at org.jboss.threads@2.4.0.Final//org.jboss.threads.JBossThread.run(JBossThread.java:513)
      Caused by: java.lang.NullPointerException: Cannot invoke "java.time.Instant.plus(java.time.temporal.TemporalAmount)" because the return value of "org.wildfly.clustering.server.expiration.ExpirationMetaData.getLastAccessTime()" is null
          at org.wildfly.clustering.server.infinispan@5.0.4.Final//org.wildfly.clustering.server.infinispan.expiration.ExpirationMetaDataFunction.apply(ExpirationMetaDataFunction.java:23)
          at org.wildfly.clustering.server.infinispan@5.0.4.Final//org.wildfly.clustering.server.infinispan.expiration.ExpirationMetaDataFunction.apply(ExpirationMetaDataFunction.java:18)
          at org.wildfly.clustering.server.spi@5.0.4.Final//org.wildfly.clustering.server.scheduler.Scheduler$1.schedule(Scheduler.java:46)
          at org.wildfly.clustering.server.spi@5.0.4.Final//org.wildfly.clustering.server.scheduler.Scheduler$ReferenceScheduler.schedule(Scheduler.java:121)
          at org.wildfly.clustering.session.infinispan.embedded@5.0.4.Final//org.wildfly.clustering.session.infinispan.embedded.SessionExpirationScheduler.schedule(SessionExpirationScheduler.java:95)
          at org.wildfly.clustering.session.infinispan.embedded@5.0.4.Final//org.wildfly.clustering.session.infinispan.embedded.SessionExpirationScheduler.schedule(SessionExpirationScheduler.java:89)
          at org.wildfly.clustering.server.infinispan@5.0.4.Final//org.wildfly.clustering.server.infinispan.scheduler.CacheEntriesTask.accept(CacheEntriesTask.java:53)
          at org.wildfly.clustering.server.infinispan@5.0.4.Final//org.wildfly.clustering.server.infinispan.scheduler.CacheEntriesTask.accept(CacheEntriesTask.java:25)
          at org.wildfly.clustering.session.infinispan.embedded@5.0.4.Final//org.wildfly.clustering.session.infinispan.embedded.InfinispanSessionManagerFactory.lambda$createSessionManager$0(InfinispanSessionManagerFactory.java:147)
          at org.wildfly.clustering.session.infinispan.embedded@5.0.4.Final//org.wildfly.clustering.session.infinispan.embedded.InfinispanSessionManager.start(InfinispanSessionManager.java:85)
          at org.wildfly.clustering.session.cache@5.0.4.Final//org.wildfly.clustering.session.cache.DecoratedSessionManager.start(DecoratedSessionManager.java:47)
          at org.wildfly.clustering.web.undertow@35.0.1.Final//org.wildfly.clustering.web.undertow.session.DistributableSessionManager.start(DistributableSessionManager.java:72)
          at io.undertow.servlet@2.3.18.Final//io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:562)
          at io.undertow.servlet@2.3.18.Final//io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:559)
          at io.undertow.servlet@2.3.18.Final//io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42)
          at io.undertow.servlet@2.3.18.Final//io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
          at org.wildfly.extension.undertow@35.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1421)
          at org.wildfly.extension.undertow@35.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1421)
          at org.wildfly.extension.undertow@35.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1421)
          at org.wildfly.extension.undertow@35.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1421)
          at org.wildfly.extension.undertow@35.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1421)
          at io.undertow.servlet@2.3.18.Final//io.undertow.servlet.core.DeploymentManagerImpl.start(DeploymentManagerImpl.java:605)
          at org.wildfly.extension.undertow@35.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:89)
          at org.wildfly.extension.undertow@35.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:70)
          ... 8 more 

              pferraro@redhat.com Paul Ferraro
              viktoriia.teliuk Viktoriia Teliuk (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: