MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:Vladislav Vaintroub Date:July 11 2008 10:23am
Subject:bzr commit into mysql-6.0-falcon branch (vvaintroub:2731) Bug#37725
View as plain text  
#At file:///C:/bzr/mysql-6.0-falcon/

 2731 Vladislav Vaintroub	2008-07-11
      Bug#37725 : assertion in transaction::waitForTransaction
      The patch fixes the problem where Transaction::waitingFor is not reset 
      if LOCK_TIMEOUT exception is thrown by Sync::timedout().
modified:
  storage/falcon/Transaction.cpp

per-file messages:
  storage/falcon/Transaction.cpp
    Always reset Transaction::waitingFor to NULL
=== modified file 'storage/falcon/Transaction.cpp'
--- a/storage/falcon/Transaction.cpp	2008-06-17 18:34:46 +0000
+++ b/storage/falcon/Transaction.cpp	2008-07-11 10:23:03 +0000
@@ -1023,8 +1023,17 @@ State Transaction::waitForTransaction(Tr
 
 	if (!(*deadlock))
 		{
-		syncActiveTransactions.unlock();
-		transaction->waitForTransaction();
+		try
+			{
+			syncActiveTransactions.unlock();
+			transaction->waitForTransaction();
+			}
+		catch(...)
+			{
+			if (!COMPARE_EXCHANGE_POINTER(&waitingFor, transaction, NULL))
+				FATAL("waitingFor was not %p",transaction);
+			throw;
+			}
 		}
 
 	if (!COMPARE_EXCHANGE_POINTER(&waitingFor, transaction, NULL))

Thread
bzr commit into mysql-6.0-falcon branch (vvaintroub:2731) Bug#37725Vladislav Vaintroub11 Jul