[ https://forge.continuent.org/jira/browse/SEQUOIA-1000?page=all ]
     
Stephane Giron resolved SEQUOIA-1000:
-------------------------------------

     Assign To: Robert Hodges  (was: Stephane Giron)
    Resolution: Fixed

Fixed in CVS

> Failover due to controller crash during a commit statement can issue the 
> following warning "Transaction 4 was aborted by database"
> ----------------------------------------------------------------------------------------------------------------------------------
>
>          Key: SEQUOIA-1000
>          URL: https://forge.continuent.org/jira/browse/SEQUOIA-1000
>      Project: Sequoia
>         Type: Bug

>     Versions: Sequoia 2.10.9
>     Reporter: Stephane Giron
>     Assignee: Robert Hodges
>      Fix For: sequoia 2.10.10

>
>
> This is an example of how it can be reproduced:
>     conn.createStatement().executeUpdate("create table test(i integer)");
>     conn.setAutoCommit(false);
>     conn.createStatement().executeUpdate("insert into test values(1)");
>     conn.commit(); --> simulate controller crash before the driver gets the 
> result
>     conn.setAutoCommit(true);
>     conn.createStatement().executeQuery("select count(*) from test");
> In such case, the following will happen (when executing the 
> statement.executeQuery) :
> 2007-11-15 13:13:22,123 DEBUG virtualdatabase.VirtualDatabaseWorkerThread.DB1 
> RestoreConnectionState command
> 2007-11-15 13:13:22,126 DEBUG virtualdatabase.VirtualDatabaseWorkerThread.DB1 
> SetReadOnly command (value=true)
> 2007-11-15 13:13:22,129 DEBUG virtualdatabase.VirtualDatabaseWorkerThread.DB1 
> Retrieve commit command
> 2007-11-15 13:13:22,130 WARN  virtualdatabase.VirtualDatabaseWorkerThread.DB1 
> Transaction 4 was aborted by database
> 2007-11-15 13:13:22,131 DEBUG virtualdatabase.VirtualDatabaseWorkerThread.DB1 
> StatementExecuteQuery command
> 2007-11-15 13:13:22,136 WARN  controller.RequestManager.DB1 No transaction 
> metadata found to abort transaction 4. Creating a fake context for abort.
> 2007-11-15 13:13:22,138 WARN  controller.RequestManager.DB1 No transaction 
> metadata found to abort transaction 4. Creating a fake context for abort.
> 2007-11-15 13:13:22,141 WARN  controller.virtualdatabase.DB1 Failed to commit 
> transaction 4, transaction has been aborted (No transaction marker metadata 
> found for transaction 4)
> 2007-11-15 13:13:22,142 WARN  virtualdatabase.VirtualDatabaseWorkerThread.DB1 
> Error during command execution (No transaction marker metadata found for 
> transaction 4)
> and the client application will receive the following exception :
> org.continuent.sequoia.common.exceptions.driver.DriverSQLException: Message 
> of cause: No transaction marker metadata found for transaction 4
>       at 
> org.continuent.sequoia.driver.Connection.statementExecuteQuery(Connection.java:2843)
>       at 
> org.continuent.sequoia.driver.Statement.executeQuery(Statement.java:522)
>       at 
> org.continuent.sequoia.driver.Statement.executeQuery(Statement.java:495)
>       at 
> com.continuent.sequoia.test.functional.failover.FailingControllerDuringRequestTest.testFailover(FailingControllerDuringRequestTest.java:256)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:585)
>       at junit.framework.TestCase.runTest(TestCase.java:164)
>       at 
> com.continuent.sequoia.test.util.ClusterTestCase.runTest(ClusterTestCase.java:151)
>       at 
> com.continuent.sequoia.test.util.AbstractTestCase.runTest(AbstractTestCase.java:445)
>       at 
> com.continuent.sequoia.test.util.ClusterTestCase.runBare(ClusterTestCase.java:177)
>       at junit.framework.TestResult$1.protect(TestResult.java:106)
>       at junit.framework.TestResult.runProtected(TestResult.java:124)
>       at junit.framework.TestResult.run(TestResult.java:109)
>       at junit.framework.TestCase.run(TestCase.java:120)
>       at 
> com.continuent.sequoia.test.util.AbstractTestCase.run(AbstractTestCase.java:185)
>       at 
> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
>       at 
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
> Caused by: 
> org.continuent.sequoia.common.exceptions.driver.protocol.BackendDriverException:
>  No transaction marker metadata found for transaction 4
> SerializableStackTrace of each cause:
> org.continuent.sequoia.common.exceptions.driver.protocol.BackendDriverException:
>  No transaction marker metadata found for transaction 4
>       at 
> org.continuent.sequoia.controller.requestmanager.RequestManager.getTransactionMetaData(RequestManager.java:1969)
>       at 
> org.continuent.sequoia.controller.requestmanager.distributed.DistributedRequestManager.commit(DistributedRequestManager.java:990)
>       at 
> org.continuent.sequoia.controller.virtualdatabase.VirtualDatabase.commit(VirtualDatabase.java:1248)
>       at 
> org.continuent.sequoia.controller.virtualdatabase.VirtualDatabaseWorkerThread.setRequestParameters(VirtualDatabaseWorkerThread.java:2150)
>       at 
> org.continuent.sequoia.controller.virtualdatabase.VirtualDatabaseWorkerThread.setRequestParametersAndTransactionStarted(VirtualDatabaseWorkerThread.java:2165)
>       at 
> org.continuent.sequoia.controller.virtualdatabase.VirtualDatabaseWorkerThread.statementExecuteQuery(VirtualDatabaseWorkerThread.java:2199)
>       at 
> org.continuent.sequoia.controller.virtualdatabase.VirtualDatabaseWorkerThread.run(VirtualDatabaseWorkerThread.java:449)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   https://forge.continuent.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

_______________________________________________
Sequoia mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/sequoia

Reply via email to