[infinispan-issues] [JBoss JIRA] (ISPN-2023) JdbcUtil.safeClose() - does it work against PostgreSQL 9.0?
Jim Dunkerton (JIRA)
jira-events at lists.jboss.org
Wed May 2 08:28:18 EDT 2012
[ https://issues.jboss.org/browse/ISPN-2023?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12689543#comment-12689543 ]
Jim Dunkerton commented on ISPN-2023:
-------------------------------------
It also appears to fail against MySQL 5.5:
Caused by: org.infinispan.CacheException: Unable to start cache loaders
at org.infinispan.loaders.CacheLoaderManagerImpl.start(CacheLoaderManagerImpl.java:132) [infinispan-core-5.1.2.FINAL.jar:5.1.2.FINAL]
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.infinispan.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:236) [infinispan-core-5.1.2.FINAL.jar:5.1.2.FINAL]
... 132 more
Caused by: org.infinispan.loaders.CacheLoaderException: java.sql.SQLException: XAER_RMFAIL: The command cannot be executed when global transaction is in the ACTIVE state
at org.infinispan.loaders.jdbc.TableManipulation.executeUpdateSql(TableManipulation.java:157) [infinispan-cachestore-jdbc-5.1.2.FINAL.jar:5.1.2.FINAL]
at org.infinispan.loaders.jdbc.TableManipulation.createTable(TableManipulation.java:130) [infinispan-cachestore-jdbc-5.1.2.FINAL.jar:5.1.2.FINAL]
at org.infinispan.loaders.jdbc.TableManipulation.start(TableManipulation.java:231) [infinispan-cachestore-jdbc-5.1.2.FINAL.jar:5.1.2.FINAL]
at org.infinispan.loaders.jdbc.binary.JdbcBinaryCacheStore.doConnectionFactoryInitialization(JdbcBinaryCacheStore.java:504) [infinispan-cachestore-jdbc-5.1.2.FINAL.jar:5.1.2.FINAL]
at org.infinispan.loaders.jdbc.mixed.JdbcMixedCacheStore.start(JdbcMixedCacheStore.java:93) [infinispan-cachestore-jdbc-5.1.2.FINAL.jar:5.1.2.FINAL]
at org.infinispan.loaders.decorators.AbstractDelegatingStore.start(AbstractDelegatingStore.java:134) [infinispan-core-5.1.2.FINAL.jar:5.1.2.FINAL]
at org.infinispan.loaders.decorators.AsyncStore.start(AsyncStore.java:198) [infinispan-core-5.1.2.FINAL.jar:5.1.2.FINAL]
at org.infinispan.loaders.CacheLoaderManagerImpl.start(CacheLoaderManagerImpl.java:129) [infinispan-core-5.1.2.FINAL.jar:5.1.2.FINAL]
... 137 more
Caused by: java.sql.SQLException: XAER_RMFAIL: The command cannot be executed when global transaction is in the ACTIVE state
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4096)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2490)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2651)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2677)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1748)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1665)
at com.mysql.jdbc.jdbc2.optional.StatementWrapper.executeUpdate(StatementWrapper.java:841)
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]
... 144 more
I think the method of rolling back the transaction once the SELECT count(*) FROM <tablename> statement has failed is perhaps generally unsafe?
> JdbcUtil.safeClose() - does it work against PostgreSQL 9.0?
> -----------------------------------------------------------
>
> Key: ISPN-2023
> URL: https://issues.jboss.org/browse/ISPN-2023
> Project: Infinispan
> Issue Type: Bug
> Components: Loaders and Stores
> Affects Versions: 5.1.2.FINAL
> Environment: JBoss 7.1.1.Final, Infinispan 5.1.2.Final, PostgreSQL 9.0
> Reporter: Jim Dunkerton
> Assignee: Tristan Tarrant
> Labels: jdbcutil, postgres
> Fix For: 5.1.x, 5.2.0.ALPHA1, 5.2.0.FINAL
>
>
> 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?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the infinispan-issues
mailing list