[ 
https://issues.apache.org/jira/browse/DERBY-4731?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mike Matrigali updated DERBY-4731:
----------------------------------


I've successfully backported this all the way back to 10.4.  When I try the 
backport to 10.3 I am getting one error in the client/server run of the new 
test.  I don't think this is an issue with the actual change, but some fix that 
not made it back to the 10.3 line.  It is sort of hard to prove as without the 
fix the test fails with the expected error that the test is exercising.  The 
problem seems similar to     DERBY-4310 but that fix is in 10.3. :

There was 1 error:
1) testXATempTableD4731_RawStore(org.apache.derbyTesting.functionTests.tests.jdb
capi.XATest)java.sql.SQLException: Error executing a XAResource.commit(), server
 returned XAER_RMFAIL.
    at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(SQLExcepti
onFactory.java:46)
    at org.apache.derby.client.am.SqlException.getSQLException(SqlException.java
:362)
    at org.apache.derby.client.am.Statement.close(Statement.java:506)
    at org.apache.derbyTesting.functionTests.tests.jdbcapi.XATest.doXATempTableD
4731Work(XATest.java:1166)
    at org.apache.derbyTesting.functionTests.tests.jdbcapi.XATest.testXATempTabl
eD4731_RawStore(XATest.java:1096)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java
:79)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI
mpl.java:43)
    at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:99)
    at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
    at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
    at junit.extensions.TestSetup.run(TestSetup.java:23)
    at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
    at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
    at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
    at junit.extensions.TestSetup.run(TestSetup.java:23)
    at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
    at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
    at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
    at junit.extensions.TestSetup.run(TestSetup.java:23)
Caused by: org.apache.derby.client.am.SqlException: Error executing a XAResource
.commit(), server returned XAER_RMFAIL.
    at org.apache.derby.client.net.NetXAResource.xaRetValErrorAccumSQL(NetXAReso
urce.java:954)
    at org.apache.derby.client.net.NetXAConnection.readCommit(NetXAConnection.ja
va:184)
    at org.apache.derby.client.net.NetConnection.readXACommit_(NetConnection.jav
a:1827)
    at org.apache.derby.client.am.Connection.readCommit(Connection.java:663)
    at org.apache.derby.client.am.Connection.readAutoCommit(Connection.java:657)
    at org.apache.derby.client.am.Statement.readCloseResultSets(Statement.java:1
703)
    at org.apache.derby.client.am.Statement.readCloseResultSets(Statement.java:1
667)
    at org.apache.derby.client.am.Statement.readClose(Statement.java:1606)
    at org.apache.derby.client.am.Statement.flowClose(Statement.java:1589)
    at org.apache.derby.client.am.Statement.closeX(Statement.java:539)
    at org.apache.derby.client.am.Statement.close(Statement.java:501)
    ... 42 more

> XA two phase commit with active  GLOBAL TEMPORARY TABLE causes  An internal 
> error identified by RawStore module
> ---------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-4731
>                 URL: https://issues.apache.org/jira/browse/DERBY-4731
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.3.3.0, 10.4.2.0, 10.5.3.0, 10.6.1.0, 10.7.0.0
>            Reporter: Kathey Marsden
>            Assignee: Mike Matrigali
>             Fix For: 10.7.0.0
>
>         Attachments: derby_4731.diff, derby_4731_2.diff, 
> ReproXATempTable.java, ReproXATempTableAssert.java, utilXid.java
>
>
> If an XA  two phase commit is performed while an GLOBAL TEMPORARY TABLE is 
> active,  it will fail with:
> XAER_RMERR
> Exception in thread "main" javax.transaction.xa.XAException: An internal 
> error w
> as identified by RawStore module.
>         at 
> org.apache.derby.jdbc.EmbedXAResource.wrapInXAException(EmbedXAResour
> ce.java:820)
>         at 
> org.apache.derby.jdbc.EmbedXAResource.commit(EmbedXAResource.java:143
> )
>         at ReproXATempTable.tempTableInXA(ReproXATempTable.java:51)
>         at ReproXATempTable.main(ReproXATempTable.java:14)
> Caused by: java.sql.SQLTransactionRollbackException: An internal error was 
> ident
> ified by RawStore module.
>         at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLE
> xceptionFactory40.java:88)
>         at 
> org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:256)
>         at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException
> (TransactionResourceImpl.java:391)
>         at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Tr
> ansactionResourceImpl.java:346)
>         at 
> org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConne
> ction.java:2269)
>         at 
> org.apache.derby.impl.jdbc.EmbedConnection.xa_commit(EmbedConnection.
> java:2924)
>         at 
> org.apache.derby.jdbc.XATransactionState.xa_commit(XATransactionState
> .java:339)
>         at 
> org.apache.derby.jdbc.EmbedXAResource.commit(EmbedXAResource.java:141
> )
>         ... 2 more
> Caused by: java.sql.SQLException: An internal error was identified by 
> RawStore m
> odule.
>         at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExc
> eptionFactory.java:45)
>         at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransport
> AcrossDRDA(SQLExceptionFactory40.java:119)
>         at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLE
> xceptionFactory40.java:70)
>         ... 9 more
> Caused by: ERROR 40XT0: An internal error was identified by RawStore module.
>         at 
> org.apache.derby.iapi.error.StandardException.newException(StandardEx
> ception.java:276)
>         at 
> org.apache.derby.impl.store.raw.xact.Xact.setActiveState(Xact.java:18
> 09)
>         at 
> org.apache.derby.impl.store.raw.xact.Xact.addContainer(Xact.java:1357
> )
>         at org.apache.derby.impl.store.access.heap.Heap.create(Heap.java:274)
>         at 
> org.apache.derby.impl.store.access.heap.HeapConglomerateFactory.creat
> eConglomerate(HeapConglomerateFactory.java:195)
>         at 
> org.apache.derby.impl.store.access.RAMTransaction.createConglomerate(
> RAMTransaction.java:823)
>         at 
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.clean
> upTempTableOnCommitOrRollback(GenericLanguageConnectionContext.java:1345)
>         at 
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.doCom
> mit(GenericLanguageConnectionContext.java:1263)
>         at 
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.xaCom
> mit(GenericLanguageConnectionContext.java:1160)
>         at 
> org.apache.derby.impl.jdbc.EmbedConnection.xa_commit(EmbedConnection.
> java:2921)
>         ... 4 more
> See attached program for reproduction. 
> javac  -g ReproXATempTable.java utilXid.java
> java ReproXATempTable
> To work around the issue, you can drop the temp table before ending the xa 
> transaction.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to