Clustered SSO can hit infinispan lock timeouts upon SSO maxEmptyLife expiration
Issue
- JBoss ClusteredSingleSignOn can hit infinispan lock timeouts upon SSO maxEmptyLife expiration, for example:
[ContainerBackgroundProcessor[StandardEngine[jboss.web]]] ERROR org.infinispan.interceptors.InvocationContextInterceptor - ISPN000136: Execution error: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from x/web, see cause for remote stack trace
at org.infinispan.remoting.transport.AbstractTransport.checkResponse(AbstractTransport.java:60)
...
at org.infinispan.AbstractDelegatingCache.endBatch(AbstractDelegatingCache.java:80)
at org.jboss.as.clustering.infinispan.invoker.BatchCacheInvoker.invoke(BatchCacheInvoker.java:53)
at org.jboss.as.clustering.web.sso.infinispan.SSOClusterManager.logout(SSOClusterManager.java:155)
at org.jboss.as.web.sso.ClusteredSingleSignOn.logout(ClusteredSingleSignOn.java:573)
at org.jboss.as.web.sso.ClusteredSingleSignOn.clearExpiredSSOs(ClusteredSingleSignOn.java:893)
at org.jboss.as.web.sso.ClusteredSingleSignOn.processExpires(ClusteredSingleSignOn.java:884)
at org.jboss.as.web.sso.ClusteredSingleSignOn.sessionEvent(ClusteredSingleSignOn.java:278)
at org.jboss.as.web.session.ClusteredSession.fireSessionEvent(ClusteredSession.java:1790)
at org.jboss.as.web.session.ClusteredSession.expire(ClusteredSession.java:1326)
at org.jboss.as.web.session.ClusteredSession.isValid(ClusteredSession.java:1224)
at org.jboss.as.web.session.ClusteredSession.isValid(ClusteredSession.java:605)
at org.jboss.as.web.session.DistributableSessionManager.processExpirationPassivation(DistributableSessionManager.java:1234)
at org.jboss.as.web.session.AbstractSessionManager.processExpires(AbstractSessionManager.java:137)
at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:367)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1302)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1588)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1600)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1600)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1574)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.infinispan.util.concurrent.TimeoutException: Unable to acquire lock after [15 seconds] on key [spXBAxdV7oY8yj8nliaCC4DX] for requestor [GlobalTransaction:<x/web>:205742:remote]! Lock held by [GlobalTransaction:<x/web>:207544:local]
at org.infinispan.util.concurrent.locks.LockManagerImpl.lock(LockManagerImpl.java:213)
at org.infinispan.util.concurrent.locks.LockManagerImpl.acquireLock(LockManagerImpl.java:186)
at org.infinispan.interceptors.locking.AbstractTxLockingInterceptor.lockKeyAndCheckOwnership(AbstractTxLockingInterceptor.java:192)
at org.infinispan.interceptors.locking.AbstractTxLockingInterceptor.lockAndRegisterBackupLock(AbstractTxLockingInterceptor.java:129)
at org.infinispan.interceptors.locking.OptimisticLockingInterceptor.acquireAllLocks(OptimisticLockingInterceptor.java:327)
at org.infinispan.interceptors.locking.OptimisticLockingInterceptor.visitPrepareCommand(OptimisticLockingInterceptor.java:132)
at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
...
Environment
Red Hat JBoss Enterprise Application Platform (EAP)
- 6.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.