#At file:///home/os136802/mysql/develop/repo/falcon-bug35932/
2775 Olav Sandstaa 2008-08-12
Initial fix to Bug#35932 Falcon crashes in Transaction::commitNoUpdates for simple
SELECT queries
Changed the failing assert so that it handles that the transition of the Transaction
object from Active
to Available is not "atomic" when seen from a thread not having locked the
transaction object.
modified:
storage/falcon/Transaction.cpp
per-file messages:
storage/falcon/Transaction.cpp
Change the assert to handle that the transition of the Transaction object from Active
to Available is not "atomic".
=== modified file 'storage/falcon/Transaction.cpp'
=== modified file 'storage/falcon/Transaction.cpp'
--- a/storage/falcon/Transaction.cpp 2008-07-31 10:04:30 +0000
+++ b/storage/falcon/Transaction.cpp 2008-08-12 13:42:43 +0000
@@ -778,7 +778,8 @@
if (COMPARE_EXCHANGE_POINTER(&state->transaction, transaction, NULL))
{
- ASSERT(transaction->transactionId == state->transactionId ||
transaction->state == Available);
+ ASSERT(transaction->transactionId == state->transactionId ||
transaction->transactionId == 0);
+ ASSERT(transaction->state == Active || transaction->state == Available);
transaction->releaseDependency();
}
}