Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-2023

JDBC stores fail to create tables using XA datasources when a TX is active

    XMLWordPrintable

Details

    Description

      I am seeing the following error logged in server.log:

      Caused by: org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block
      at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)
      at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835)
      at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
      at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)
      at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:374)
      at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:302)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_23]
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_23]
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_23]
      at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_23]
      at org.postgresql.ds.jdbc23.AbstractJdbc23PooledConnection$StatementHandler.invoke(AbstractJdbc23PooledConnection.java:455)
      at $Proxy49.executeUpdate(Unknown Source) at org.jboss.jca.adapters.jdbc.WrappedStatement.executeUpdate(WrappedStatement.java:371)
      at org.infinispan.loaders.jdbc.TableManipulation.executeUpdateSql(TableManipulation.java:154) [infinispan-cachestore-jdbc-5.1.2.FINAL.jar:5.1.2.FINAL]
      ... 154 more

      I believe it is down to the code suggested in ISPN-1204, which eventually was committed, perhaps not quite working against PostgreSQL 9.0?

      I have attached a debugger to a live JBoss instance with this code running, and set a breakpoint on entry into the tableExists() method. PostgreSQL threw an exception and it was caught, but later on, the attempt to create the table in the TableManipulation.createTable() method resulted in the exception given above. Perhaps the JdbcUtil.safeClose() methods do not work against PostgreSQL 9.0?

      Attachments

        Activity

          People

            ttarrant@redhat.com Tristan Tarrant
            jimidy Jim Dunkerton (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: