[ 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