Bug #22183 | Loss of data after INSERT and ALTER with two interleaving transactions | ||
---|---|---|---|
Submitted: | 9 Sep 2006 10:40 | Modified: | 5 Dec 2006 15:56 |
Reporter: | Georg Richter | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Falcon storage engine | Severity: | S2 (Serious) |
Version: | 5.2 | OS: | Any (all) |
Assigned to: | Jim Starkey | CPU Architecture: | Any |
[9 Sep 2006 10:40]
Georg Richter
[12 Sep 2006 16:40]
Jim Starkey
I don't see anyway to detect or reject an "alter table" from within a storage engine. The first hint that a table rebuild is underway is the rename call, which is both ambiguous and way too late to reject the "alter". If we had a hint that a table rebuild was underway, we could detect a concurrent transaction with uncommitted updates, but I don't see any way this can be done. This is fundamentally a server bug. The server should not attempt to rebuild a table with uncommitted updates.
[9 Nov 2006 18:46]
Jim Starkey
Falcon now gives an error when attempting an "alter table" (or variation) with outstanding transactions. A better solution is to block, but that can wait until after alpha. The message is less that ideal, but the server insists on using its own text rather than getting more explicit text from the storage engine.
[5 Dec 2006 15:56]
Hakan Küçükyılmaz
Adjusted falcon_bug_233.test to reflect Falcon behaviour. The test passes now on Linux 32-bit, change set 1.2387, 2006-12-04. TEST RESULT TIME (ms) ------------------------------------------------------- falcon_bug_233 [ pass ] 2096 ------------------------------------------------------- Stopping All Servers All 1 tests were successful. The servers were restarted 1 times Spent 2.096 seconds actually executing testcases Regards, Hakan