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

Clustering: org.infinispan.util.concurrent.TimeoutException in mariadb database test

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Blocker Blocker
    • None
    • 7.4.0.Beta
    • Clustering
    • 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;

            Unassigned Unassigned
            tborgato@redhat.com Tommaso Borgato
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: