-
Bug
-
Resolution: Won't Do
-
Blocker
-
None
-
7.4.0.Beta
-
None
-
False
-
False
-
-
-
-
-
-
Undefined
-
The error is present in EAP Clustering tests where the replicated session data is stored in a remote mariadb version 101 relational database;
The 4 EAP cluster nodes are configured as follows:
embed-server --server-config=standalone-ha.xml /subsystem=jgroups/channel=ee:write-attribute(name=stack,value=tcp) /subsystem=infinispan/cache-container=web/invalidation-cache=offload:add() /subsystem=infinispan/cache-container=web/invalidation-cache==offload/component=transaction:write-attribute(name=mode, value=BATCH) /subsystem=infinispan/cache-container=web/invalidation-cache=offload/component=locking:write-attribute(name=isolation, value=REPEATABLE_READ) data-source add --name=testDS --jndi-name=java:jboss/datasources/testDS --driver-name=mariadb-connector.jar --connection-url=jdbc:mariadb://mariadb-101.hosts.prod.upshift.rdu2.redhat.com:3306/dballo06 --enabled=true --jta=true --use-java-context=true --transaction-isolation=TRANSACTION_READ_COMMITTED --min-pool-size=1 --max-pool-size=5 --pool-prefill=true --user-name=dballo06 --password=dballo06 --prepared-statements-cache-size=32 --share-prepared-statements=true /subsystem=infinispan/cache-container=web/invalidation-cache=offload/store=jdbc:add(data-source=testDS,fetch-state=false,passivation=false,purge=false,shared=true,dialect=MARIA_DB){allow-resource-service-restart=true} /subsystem=infinispan/cache-container=web/invalidation-cache=offload/store=jdbc/table=string:write-attribute(name=id-column.name,value=id) /subsystem=infinispan/cache-container=web/invalidation-cache=offload/store=jdbc/table=string:write-attribute(name=data-column.name,value=datum) /subsystem=infinispan/cache-container=web/invalidation-cache=offload/store=jdbc/table=string:write-attribute(name=timestamp-column.name,value=version) /subsystem=infinispan/cache-container=web/invalidation-cache=offload/store=jdbc/table=string:write-attribute(name=id-column.type,value=VARCHAR(255)) /subsystem=infinispan/cache-container=web/invalidation-cache=offload/store=jdbc/table=string:write-attribute(name=timestamp-column.type,value=BIGINT) /subsystem=infinispan/cache-container=web/invalidation-cache=offload/store=jdbc/table=string:write-attribute(name=data-column.type,value=VARBINARY(10000)) /subsystem=infinispan/cache-container=web:write-attribute(name=default-cache, value=offload) /subsystem=transactions:write-attribute(name=node-identifier,value=wildfly1)
After the first node is failed and then restarted, we observer the following error repeated about 230 times:
2021-02-15 18:02:45,358 ERROR [org.infinispan.interceptors.impl.InvocationContextInterceptor] (non-blocking-thread--p7-t2) ISPN000136: Error executing command LockControlCommand on Cache 'cbnc.ear.a.war', writing keys []: org.infinispan.util.concurrent.TimeoutException: ISPN000299: Unable to acquire lock after 15 seconds for key SessionCreationMetaDataKey(qah3k7nGdVAFt5UzWgDWyYPBg4RgWEiIUXTIrt7z) and requestor GlobalTransaction{id=1322, addr=wildfly3, remote=true, xid=null, internalId=-1}. Lock is held by GlobalTransaction{id=1291, addr=wildfly3, remote=true, xid=null, internalId=-1} at org.infinispan@11.0.8.Final-redhat-00001//org.infinispan.util.concurrent.locks.impl.DefaultLockManager$KeyAwareExtendedLockPromise.get(DefaultLockManager.java:292) at org.infinispan@11.0.8.Final-redhat-00001//org.infinispan.util.concurrent.locks.impl.DefaultLockManager$KeyAwareExtendedLockPromise.get(DefaultLockManager.java:222) at org.infinispan@11.0.8.Final-redhat-00001//org.infinispan.util.concurrent.locks.impl.InfinispanLock$LockPlaceHolder.checkState(InfinispanLock.java:440) at org.infinispan@11.0.8.Final-redhat-00001//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:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.jboss.as.clustering.common@7.4.0.Beta-redhat-00001//org.jboss.as.clustering.context.ContextReferenceExecutor.execute(ContextReferenceExecutor.java:49) at org.jboss.as.clustering.common@7.4.0.Beta-redhat-00001//org.jboss.as.clustering.context.ContextualExecutor$1.run(ContextualExecutor.java:70) at java.base/java.lang.Thread.run(Thread.java:834)
This impacts on the client:
- 27% of the HTTP requests receive an invalid serial (= replication isn't working properly)
- 1% of the HTTP requests receive 500 or 503 response code
Complete test run here: eap-7.x-clustering-db-session-shutdown-repl-mariadb-10#76;
Find attached the logs of the 4 cluster nodes;
- relates to
-
JBEAP-21346 Missing documentation for Externalize HTTP Sessions to a relational database
- Closed