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

[GSS](7.1.z) Server stop indefinitely blocked by DistributableSessionManager in lifecycleLock.writeLockInterruptibly()

XMLWordPrintable

    • +
    • Hide
      1. Either disable transactions on the infinispan cache or change the locking isolation to READ_COMMITTED
        /subsystem=infinispan/cache-container=web/local-cache=passivation/component=locking:write-attribute(name=isolation,value=READ_COMMITTED)
        reload
        
      2. Establish session (/jbeap15091/hi.jsp)
      3. Issue long request (/jbeap15091/sleep.jsp)
      4. Invalidate session during long request (/jbeap15091/invalidate.jsp)
      5. Wait for long request to complete
      6. Attempt shutdown
      Show
      Either disable transactions on the infinispan cache or change the locking isolation to READ_COMMITTED /subsystem=infinispan/cache-container=web/local-cache=passivation/component=locking:write-attribute(name=isolation,value=READ_COMMITTED) reload Establish session (/jbeap15091/hi.jsp) Issue long request (/jbeap15091/sleep.jsp) Invalidate session during long request (/jbeap15091/invalidate.jsp) Wait for long request to complete Attempt shutdown

      Stop server operation may hang indefinitely due to the thread such as the following one being blocked:

      "ServerService Thread Pool -- 24" #49 prio=5 os_prio=0 tid=0x00000000035d1000 nid=0x4de1 waiting on condition [0x00007f4bddc46000]
         java.lang.Thread.State: WAITING (parking)
              at sun.misc.Unsafe.park(Native Method)
              - parking to wait for  <0x00000000c4e61998> (a java.util.concurrent.locks.StampedLock)
              at java.util.concurrent.locks.StampedLock.acquireWrite(StampedLock.java:1119)
              at java.util.concurrent.locks.StampedLock.writeLockInterruptibly(StampedLock.java:413)
              at org.wildfly.clustering.web.undertow.session.DistributableSessionManager.stop(DistributableSessionManager.java:90)
              - locked <0x00000000c4e60090> (a org.wildfly.clustering.web.undertow.session.DistributableSessionManager)
              at io.undertow.servlet.core.DeploymentManagerImpl$3.call(DeploymentManagerImpl.java:599)
              at io.undertow.servlet.core.DeploymentManagerImpl$3.call(DeploymentManagerImpl.java:589)
              at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42)
              at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
              at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
              at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction$$Lambda$1005/749195997.call(Unknown Source)
              at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
              at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction$$Lambda$1006/1165195653.call(Unknown Source)
              at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
              at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction$$Lambda$1006/1165195653.call(Unknown Source)
              at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
              at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction$$Lambda$1006/1165195653.call(Unknown Source)
              at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
              at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction$$Lambda$1006/1165195653.call(Unknown Source)
              at io.undertow.servlet.core.DeploymentManagerImpl.stop(DeploymentManagerImpl.java:603)
              at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.stopContext(UndertowDeploymentService.java:139)
              at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$2.run(UndertowDeploymentService.java:120)
              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
              at java.util.concurrent.FutureTask.run(FutureTask.java:266)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
              at java.lang.Thread.run(Thread.java:748)
              at org.jboss.threads.JBossThread.run(JBossThread.java:320)
      

      The related code in the DistributableSessionManager makes use of the java.util.concurrent.locks.StampedLock.writeLockInterruptibly() method which can theoretically block indefinitely and thus prevent the server stop from ever completing.

            rhn-support-ivassile Ilia Vassilev
            rhn-support-aogburn Aaron Ogburn
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: