Bug #33665 | Falcon + event scheduler + restarts = crash | ||
---|---|---|---|
Submitted: | 3 Jan 2008 18:04 | Modified: | 5 May 2008 18:35 |
Reporter: | Philip Stoev | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Falcon storage engine | Severity: | S1 (Critical) |
Version: | 6.0.4-p2 | OS: | Any |
Assigned to: | Jim Starkey | CPU Architecture: | Any |
[3 Jan 2008 18:04]
Philip Stoev
[17 Jan 2008 11:37]
Philip Stoev
Setting to verified, since a reasonably simple repeatable test case is available. Setting lead, please triage.
[17 Jan 2008 15:36]
Kevin Lewis
Phillip, The call stack indicates that this is a recovery failure. Can you same of the falcon database so that we can re-run the recovery?
[17 Jan 2008 15:59]
Philip Stoev
Corrupted tablespace for bug #33665
Attachment: bug33665.zip (application/x-zip-compressed, text), 312.75 KiB.
[17 Jan 2008 16:01]
Philip Stoev
Hello, I just attached the corrupted tablespace. You can mount it and run a CREATE TABLE ENGINE=Falcon and the crash will occur. This table space is produced using the following command: perl mysql-test-run.pl --mysqld=--default-storage-engine=falcon \ events_restart_phase1 events_restart_phase2 events_restart_phase3
[17 Jan 2008 21:54]
Kevin Lewis
Possible 'double recovery' problem.
[23 Jan 2008 14:51]
Kevin Lewis
Possibly a double recovery problem
[23 Jan 2008 21:38]
Kevin Lewis
Jim Starkey pushed a change to Falcon that requires it ro wait for a Page Cache Flush at the end of recovery. It used to do this, but when the pool of IO threads were added, the recovery process just called for a flush to happen and then returned. Now the flush waits for all the IO threads to complete. When recovery does not wait for the flush to complete, new blocks can be written to the serial log before all the pages from the previous recovery can be written to disk. These blocks indicate that recovery should start after the previous one. If a shutdown happens before these pages are fully written, The following recovery will not start early enough. This very likely solves the double recovery problems exhibited by Bugs 32992, 33608 & 33665. I am putting these bugs into Patch Pending so that this fix can be verified, or not.
[11 Feb 2008 20:48]
Kevin Lewis
Patch is in mysql-6.0-falcon-team and mysql-6.0-release version 6.0.4
[5 May 2008 18:35]
Paul DuBois
Noted in 6.0.4 changelog. Incomplete Falcon recovery after server restarts eventually resulted in tablespace corruption.