List:Commits« Previous MessageNext Message »
From:Kevin Lewis Date:August 18 2009 10:03pm
Subject:bzr push into mysql-6.0-falcon-team branch (kevin.lewis:2765 to 2766)
Bug#46496
View as plain text  
 2766 Kevin Lewis	2009-08-18
      Bug#46496 - There are a number of places in the Falcon code where 
      TransactionManager::committedTransactions.syncObject is held while 
      locking Transaction::syncRecords.    So Transaction::thawAll() should 
      not hold Transaction::syncRecords while locking 
      TransactionManager::activeTransactions.syncObject,
      which is often held while locking committedTransactions.syncObject.  
      It can cause a deadlock.

    modified:
      storage/falcon/Transaction.cpp
 2765 Christopher Powers	2009-08-05
      Bug#44670, "ALTER TABLE crashes in StorageTableShare::haveIndexes()"
      
      Don't use StorageTableShare::haveIndexes() at all
     @ storage/falcon/ha_falcon.cpp
        Removed call to StorageTableShare::haveIndexes() in
        StorageInterface::setIndexes(). The stripped-down version
        of haveIndexes() incorrectly prevented index remapping
        between Falcon and the server.

    modified:
      storage/falcon/ha_falcon.cpp
=== modified file 'storage/falcon/Transaction.cpp'
--- a/storage/falcon/Transaction.cpp	2009-07-28 15:53:09 +0000
+++ b/storage/falcon/Transaction.cpp	2009-08-18 22:01:40 +0000
@@ -1614,14 +1614,14 @@ bool Transaction::committedBefore(TransI
 
 void Transaction::thawAll(void)
 {
-	Sync syncRec(&syncRecords,"Transaction::thawAll");
-	syncRec.lock(Shared);
-
 	Sync syncActive(&database->transactionManager->activeTransactions.syncObject, "Transaction::thawAll");
 	syncActive.lock(Shared);
 	TransId oldestActiveTransaction = database->transactionManager->findOldestInActiveList();
 	syncActive.unlock();
 
+	Sync syncRec(&syncRecords,"Transaction::thawAll");
+	syncRec.lock(Shared);
+
 	int totalRecords = 0;
 	int totalThawed = 0;
 


Attachment: [text/bzr-bundle] bzr/kevin.lewis@sun.com-20090818220140-rbwhhsiet2f1rbpy.bundle
Thread
bzr push into mysql-6.0-falcon-team branch (kevin.lewis:2765 to 2766)Bug#46496Kevin Lewis19 Aug