I'm running an EAR that works fine in standalone mode, but runs into this timeout when run on a domain.
When my code calls "io.undertow.servlet.spec.HttpServletRequestImpl.getSession(HttpServletRequestImpl.java:426)", the server handling that request throws this exception:
2021-06-17 10:35:24,700 ERROR [org.infinispan.interceptors.impl.InvocationContextInterceptor] (non-blocking-thread--p7-t1) ISPN000136: Error executing command GetKeyValueCommand on Cache 'ClearingworksEAR_4.3.1.ear.Clearingworks.war', writing keys []: org.infinispan.util.concurrent.TimeoutException: ISPN000299: Unable to acquire lock after 15 seconds for key SessionCreationMetaDataKey(rUwy9fqCOP6wshNfF5B0IrQgvvdsikIZzT6sZvCR) and requestor GlobalTransaction{id=99, addr=master:server-three, remote=false, xid=null, internalId=-1}. Lock is held by GlobalTransaction{id=98, addr=master:server-three, remote=false, xid=null, internalId=-1}
at org.inf...@11.0.8.Final//org.infinispan.util.concurrent.locks.impl.DefaultLockManager$KeyAwareExtendedLockPromise.get(DefaultLockManager.java:292)
at org.inf...@11.0.8.Final//org.infinispan.util.concurrent.locks.impl.DefaultLockManager$KeyAwareExtendedLockPromise.get(DefaultLockManager.java:222)
at org.inf...@11.0.8.Final//org.infinispan.util.concurrent.locks.impl.InfinispanLock$LockPlaceHolder.checkState(InfinispanLock.java:440)
at org.inf...@11.0.8.Final//org.infinispan.util.concurrent.locks.impl.InfinispanLock$LockPlaceHolder.lambda$toInvocationStage$3(InfinispanLock.java:416)
at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:642)
at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at org.jboss.as.cl...@22.0.0.Final//org.jboss.as.clustering.context.ContextReferenceExecutor.execute(ContextReferenceExecutor.java:49)
at org.jboss.as.cl...@22.0.0.Final//org.jboss.as.clustering.context.ContextualExecutor$1.run(ContextualExecutor.java:70)
at java.base/java.lang.Thread.run(Thread.java:832)
I can't figure out why it is timing out. Right now, I only have one server running my EAR.
I've tried editing the full-ha profile in domain.xml to set all of the cache-containers to use '<locking isolation="OPTIMISTIC"/>', but that didn't change anything.
The rest of my configuration is very close to the default for WildFly 22.
How do other people get the session from an HTTP request in domain mode without timing out trying to grab SessionCreationMetaDataKey?