List:Commits« Previous MessageNext Message »
From:Vladislav Vaintroub Date:August 20 2008 5:24pm
Subject:bzr push into mysql-6.0-falcon branch (vvaintroub:2777 to 2778)
View as plain text  
 2778 Vladislav Vaintroub	2008-08-20
      Fix a deadlock (reverse order of locks to active and committed transactions)
      found by Kelly and Chris 
modified:
  storage/falcon/Transaction.cpp

 2777 Vladislav Vaintroub	2008-08-20
      aftermerge bzr config files fix
modified:
  .bzr-mysql/default.conf

=== modified file 'storage/falcon/Transaction.cpp'
--- a/storage/falcon/Transaction.cpp	2008-08-14 11:18:42 +0000
+++ b/storage/falcon/Transaction.cpp	2008-08-20 15:01:21 +0000
@@ -300,17 +300,19 @@ void Transaction::commit()
 	database->flushInversion(this);
 
 	// Transfer transaction from active list to committed list, set committed state
+
 	Sync syncCommitted(&transactionManager->committedTransactions.syncObject,
"Transaction::commit(2)");
 	Sync syncActiveTransactions(&transactionManager->activeTransactions.syncObject,
"Transaction::commit(3)");
-	syncCommitted.lock(Exclusive);
+
 	syncActiveTransactions.lock(Exclusive);
+	syncCommitted.lock(Exclusive);
 
 	transactionManager->activeTransactions.remove(this);
 	transactionManager->committedTransactions.append(this);
 	state = Committed;
 
-	syncActiveTransactions.unlock();
 	syncCommitted.unlock();
+	syncActiveTransactions.unlock();
 
 	database->commit(this);
 

Thread
bzr push into mysql-6.0-falcon branch (vvaintroub:2777 to 2778) Vladislav Vaintroub20 Aug