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

[QA](7.4.z) WFLY-12887 - Clustering: com.ibm.db2.jcc.am.SqlSyntaxErrorException when DB2 is used as invalidation-cache

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • Major
    • None
    • None
    • Clustering
    • None
    • Workaround Exists
    • Hide

      While it is still unclear why the test has a missing database object, there is a clear workaround - to create the schema manually, and disable create-on-start.

      Show
      While it is still unclear why the test has a missing database object, there is a clear workaround - to create the schema manually, and disable create-on-start.

    Description

      The error happens in clustering tests where the cache is backed by a DB2 relational database;

      The cache is 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=db2-connector.jar --connection-url=jdbc:db2://db2-111.hosts.mwqe.eng.bos.redhat.com:50000/dballo --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=dballo00 --password=dballo00 --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=DB2){allow-resource-service-restart=true}
      /subsystem=infinispan/cache-container=web/invalidation-cache=offload/store=jdbc/table=string:write-attribute(name=prefix,value=s)
      /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=id-column.type,value=VARCHAR(255))
      /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=data-column.type,value=BLOB)
      /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=timestamp-column.type,value=BIGINT)
      /subsystem=infinispan/cache-container=web:write-attribute(name=default-cache, value=offload)
      /subsystem=transactions:write-attribute(name=node-identifier,value=wildfly1)
      /subsystem=datasources/data-source=testDS:write-attribute(name=spy,value=true)
      /subsystem=logging/logger=jboss.jdbc.spy:add(level=TRACE)
      

      The error is the following:

      2019-12-16 16:02:25,135 DEBUG [jboss.jdbc.spy] (thread-17,ejb,wildfly2) java:jboss/datasources/testDS [DataSource] getConnection()
      2019-12-16 16:02:25,136 DEBUG [jboss.jdbc.spy] (thread-17,ejb,wildfly2) java:jboss/datasources/testDS [Connection] prepareStatement(SELECT id, datum FROM "s_cbnc_ear_a_war" WHERE id = ?)
      2019-12-16 16:02:25,146 DEBUG [jboss.jdbc.spy] (thread-17,ejb,wildfly2) java:jboss/datasources/testDS [PreparedStatement] setString(1, 7pBvbzQhBkfC7YliJcYvb565VDITonTSMxq9ADfUT)
      2019-12-16 16:02:25,146 DEBUG [jboss.jdbc.spy] (thread-17,ejb,wildfly2) java:jboss/datasources/testDS [PreparedStatement] executeQuery()
      2019-12-16 16:02:25,171 DEBUG [jboss.jdbc.spy] (persistence-thread--p25-t3) java:jboss/datasources/testDS [DataSource] getConnection()
      2019-12-16 16:02:25,171 DEBUG [jboss.jdbc.spy] (persistence-thread--p25-t3) java:jboss/datasources/testDS [Connection] isValid(10)
      2019-12-16 16:02:25,182 ERROR [org.infinispan.persistence.jdbc.stringbased.JdbcStringBasedStore] (thread-17,ejb,wildfly2) ISPN008027: SQL error while fetching stored entry with key: SessionCreationMetaDataKey(pBvbzQhBkfC7YliJcYvb565VDITonTSMxq9ADfUT), lockingKey: 7pBvbzQhBkfC7YliJcYvb565VDITonTSMxq9ADfUT: com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=DBALLO19.s_cbnc_ear_a_war, DRIVER=4.25.1301
      	at deployment.db2-connector.jar//com.ibm.db2.jcc.am.b6.a(b6.java:810)
      	at deployment.db2-connector.jar//com.ibm.db2.jcc.am.b6.a(b6.java:66)
      	at deployment.db2-connector.jar//com.ibm.db2.jcc.am.b6.a(b6.java:140)
      	at deployment.db2-connector.jar//com.ibm.db2.jcc.am.k3.c(k3.java:2824)
      	at deployment.db2-connector.jar//com.ibm.db2.jcc.am.k3.d(k3.java:2808)
      	at deployment.db2-connector.jar//com.ibm.db2.jcc.am.k3.a(k3.java:2234)
      	at deployment.db2-connector.jar//com.ibm.db2.jcc.am.k4.a(k4.java:8242)
      	at deployment.db2-connector.jar//com.ibm.db2.jcc.t4.ab.i(ab.java:206)
      	at deployment.db2-connector.jar//com.ibm.db2.jcc.t4.ab.b(ab.java:96)
      	at deployment.db2-connector.jar//com.ibm.db2.jcc.t4.p.a(p.java:32)
      	at deployment.db2-connector.jar//com.ibm.db2.jcc.t4.av.i(av.java:150)
      	at deployment.db2-connector.jar//com.ibm.db2.jcc.am.k3.al(k3.java:2203)
      	at deployment.db2-connector.jar//com.ibm.db2.jcc.am.k4.bq(k4.java:3730)
      	at deployment.db2-connector.jar//com.ibm.db2.jcc.am.k4.a(k4.java:4609)
      	at deployment.db2-connector.jar//com.ibm.db2.jcc.am.k4.b(k4.java:4182)
      	at deployment.db2-connector.jar//com.ibm.db2.jcc.am.k4.bd(k4.java:780)
      	at deployment.db2-connector.jar//com.ibm.db2.jcc.am.k4.executeQuery(k4.java:745)
      	at org.jboss.ironjacamar.jdbcadapters@1.4.19.Final-redhat-00001//org.jboss.jca.adapters.jdbc.CachedPreparedStatement.executeQuery(CachedPreparedStatement.java:113)
      	at org.jboss.ironjacamar.jdbcadapters@1.4.19.Final-redhat-00001//org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:504)
      	at org.infinispan.persistence.jdbc@9.4.16.Final-redhat-00002//org.infinispan.persistence.jdbc.stringbased.JdbcStringBasedStore.load(JdbcStringBasedStore.java:353)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.persistence.spi.SegmentedAdvancedLoadWriteStore.load(SegmentedAdvancedLoadWriteStore.java:46)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.persistence.manager.PersistenceManagerImpl.loadFromAllStores(PersistenceManagerImpl.java:646)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.persistence.internal.PersistenceUtil.loadAndCheckExpiration(PersistenceUtil.java:139)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.persistence.internal.PersistenceUtil.lambda$loadAndComputeInDataContainer$0(PersistenceUtil.java:97)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.container.impl.AbstractInternalDataContainer.lambda$compute$3(AbstractInternalDataContainer.java:230)
      	at java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1908)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.container.impl.AbstractInternalDataContainer.compute(AbstractInternalDataContainer.java:229)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.persistence.internal.PersistenceUtil.loadAndComputeInDataContainer(PersistenceUtil.java:119)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.persistence.internal.PersistenceUtil.loadAndStoreInDataContainer(PersistenceUtil.java:53)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.impl.CacheLoaderInterceptor.loadInContext(CacheLoaderInterceptor.java:333)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.impl.CacheLoaderInterceptor.loadIfNeeded(CacheLoaderInterceptor.java:328)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.impl.CacheLoaderInterceptor.visitDataCommand(CacheLoaderInterceptor.java:195)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.impl.CacheLoaderInterceptor.visitPutKeyValueCommand(CacheLoaderInterceptor.java:124)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:73)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextThenAccept(BaseAsyncInterceptor.java:98)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.impl.EntryWrappingInterceptor.setSkipRemoteGetsAndInvokeNextForDataCommand(EntryWrappingInterceptor.java:671)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.impl.EntryWrappingInterceptor.visitPutKeyValueCommand(EntryWrappingInterceptor.java:302)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:73)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:54)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:54)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.DDAsyncInterceptor.visitPutKeyValueCommand(DDAsyncInterceptor.java:60)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:73)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:54)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:54)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.DDAsyncInterceptor.visitPutKeyValueCommand(DDAsyncInterceptor.java:60)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:73)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:54)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.locking.AbstractTxLockingInterceptor.lambda$new$0(AbstractTxLockingInterceptor.java:34)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.InvocationSuccessFunction.apply(InvocationSuccessFunction.java:25)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.SyncInvocationStage.addCallback(SyncInvocationStage.java:42)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.InvocationStage.thenApply(InvocationStage.java:45)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.locking.PessimisticLockingInterceptor.acquireLocalLockAndInvokeNext(PessimisticLockingInterceptor.java:283)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.locking.PessimisticLockingInterceptor.lambda$visitDataWriteCommand$3(PessimisticLockingInterceptor.java:154)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.InvocationSuccessFunction.apply(InvocationSuccessFunction.java:25)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.impl.QueueAsyncInvocationStage.invokeQueuedHandlers(QueueAsyncInvocationStage.java:118)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:81)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:30)
      	at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
      	at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
      	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
      	at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.remoting.transport.AbstractRequest.complete(AbstractRequest.java:67)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.remoting.transport.impl.MultiTargetRequest.onResponse(MultiTargetRequest.java:102)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.remoting.transport.impl.RequestRepository.addResponse(RequestRepository.java:52)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.remoting.transport.jgroups.JGroupsTransport.processResponse(JGroupsTransport.java:1369)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.remoting.transport.jgroups.JGroupsTransport.processMessage(JGroupsTransport.java:1272)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.remoting.transport.jgroups.JGroupsTransport.access$300(JGroupsTransport.java:126)
      	at org.infinispan@9.4.16.Final-redhat-00002//org.infinispan.remoting.transport.jgroups.JGroupsTransport$ChannelCallbacks.up(JGroupsTransport.java:1417)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.JChannel.up(JChannel.java:775)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.fork.ForkProtocolStack.up(ForkProtocolStack.java:134)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.stack.Protocol.up(Protocol.java:306)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.protocols.FORK.up(FORK.java:142)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.protocols.FRAG3.up(FRAG3.java:171)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.protocols.FlowControl.up(FlowControl.java:338)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.protocols.pbcast.GMS.up(GMS.java:849)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:241)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.protocols.UNICAST3.deliverMessage(UNICAST3.java:1019)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.protocols.UNICAST3.handleDataReceived(UNICAST3.java:745)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.protocols.UNICAST3.up(UNICAST3.java:400)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:590)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:132)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.protocols.FD_ALL.up(FD_ALL.java:202)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:254)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.protocols.MERGE3.up(MERGE3.java:285)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.protocols.Discovery.up(Discovery.java:297)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.protocols.TP.passMessageUp(TP.java:1275)
      	at org.jgroups@4.1.4.Final-redhat-00001//org.jgroups.util.SubmitToThreadPool$SingleMessageHandler.run(SubmitToThreadPool.java:87)
      	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.jgroups@7.3.0.GA-redhat-00001//org.jboss.as.clustering.jgroups.ClassLoaderThreadFactory.lambda$newThread$0(ClassLoaderThreadFactory.java:52)
      	at java.base/java.lang.Thread.run(Thread.java:834)
      

      The issue is set as "Blocker" because DB2 is one of the supported databases and we don't have a workaround at present

      Attachments

        Issue Links

          Activity

            People

              pferraro@redhat.com Paul Ferraro
              rhn-support-ivassile Ilia Vassilev
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: