Bug #28090 | Falcon Concurrent UPDATEs leading to assertion | ||
---|---|---|---|
Submitted: | 25 Apr 2007 9:55 | Modified: | 30 Apr 2007 14:07 |
Reporter: | Hakan Küçükyılmaz | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Falcon storage engine | Severity: | S2 (Serious) |
Version: | 6.0.0-alpha | OS: | Any |
Assigned to: | Kevin Lewis | CPU Architecture: | Any |
[25 Apr 2007 9:55]
Hakan Küçükyılmaz
[25 Apr 2007 9:56]
Hakan Küçükyılmaz
Related to Bug#25557.
[29 Apr 2007 2:57]
Kevin Lewis
When I tried this on my Windows laptop, I found a reproduceable assert that indicated a transaction was being completed twice. The problem was in TransactionManager::startTransaction, when transactionSequence is assigned to a Transaction and incremented, it can be done under a shared lock for activeTransactions.syncObject if there is an available transaction with no dependencies. This possibility was introduced as a performance enhancement to keep threads from backing up in startTransaction(). I incremented transactionSequence with INTERLOCKED_INCREMENT() and the problem went away. My laptop was able to run three of these stored procedures to completion. This may be related to the call stack that Hakan reported on Linux, but maybe not. Hakan, please see if the other problem still exists.
[29 Apr 2007 22:14]
Hakan Küçükyılmaz
I could successfully run the test with three and five concurrent clients. Output of my run with five clients: +--------+ | 999998 | +--------+ 1 row in set (1 hour 41 min 40.80 sec) +--------+ | update | +--------+ | update | +--------+ 1 row in set (1 hour 41 min 40.80 sec) +-----+ | end | +-----+ | end | +-----+ 1 row in set (1 hour 41 min 40.81 sec) +--------+ | v | +--------+ | 999999 | +--------+ 1 row in set (1 hour 41 min 40.81 sec) +--------+ | update | +--------+ | update | +--------+ 1 row in set (1 hour 41 min 40.81 sec) +-----+ | end | +-----+ | end | +-----+ 1 row in set (1 hour 41 min 40.81 sec) Query OK, 0 rows affected (1 hour 41 min 40.81 sec) Best regards, Hakan
[30 Apr 2007 14:07]
MC Brown
A note has been added to 6.0.0 changelog.