#At file:///C:/Work/bzr/Merge/mysql-6.0-falcon-team/
2983 Kevin Lewis 2009-01-28
Bug #42429-Falcon crash in Table::checkUniqueRecordVersion
increment the useCount for dup so it does not go away
immediately rleasing syncPrior.
modified:
storage/falcon/Table.cpp
per-file messages:
storage/falcon/Table.cpp
Bug #42429-Falcon crash in Table::checkUniqueRecordVersion
increment the useCount for dup so it does not go away
immediately rleasing syncPrior.
=== modified file 'storage/falcon/Table.cpp'
--- a/storage/falcon/Table.cpp 2009-01-22 18:40:02 +0000
+++ b/storage/falcon/Table.cpp 2009-01-28 19:19:44 +0000
@@ -2617,12 +2617,14 @@ bool Table::checkUniqueRecordVersion(int
{
if (state == Active)
{
+ dup->addRef();
syncPrior.unlock(); // release lock before wait
syncUnique->unlock(); // release lock before wait
// Wait for that transaction, then restart checkUniqueIndexes()
state = transaction->getRelativeState(dup, WAIT_IF_ACTIVE);
+ dup->release(); // We are done with this now.
if (state != Deadlock)
{
@@ -2798,7 +2800,7 @@ int Table::chartActiveRecords(int *chart
void Table::rebuildIndex(Index *index, Transaction *transaction)
{
index->rebuildIndex(transaction);
- populateIndex(index, transaction);
+ populateIndex(index, transaction);
}