Bug #33492 | Falcon blob corruption on restart | ||
---|---|---|---|
Submitted: | 23 Dec 2007 13:08 | Modified: | 5 May 2008 14:46 |
Reporter: | Philip Stoev | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Falcon storage engine | Severity: | S1 (Critical) |
Version: | 6.0.4 | OS: | Any |
Assigned to: | Jim Starkey | CPU Architecture: | Any |
[23 Dec 2007 13:08]
Philip Stoev
[23 Dec 2007 13:26]
Philip Stoev
Pre-restart part of bug 33492
Attachment: bug33492-part1.test (application/octet-stream, text), 1.44 KiB.
[23 Dec 2007 13:26]
Philip Stoev
Post-restart part of bug 33492
Attachment: bug33492-part2.test (application/octet-stream, text), 19 bytes.
[23 Dec 2007 13:26]
Philip Stoev
Include file for test case of bug 33492
Attachment: 64K.inc (text/plain), 64.03 KiB.
[23 Dec 2007 13:29]
Philip Stoev
Please find attached the test case for this bug. To run it, please follow the following procedure: 1. Manually start a fresh 6.0.4 server 2. Run the first part of the test case: perl mysql-test-run.pl --record --extern bug33492-part1 3. Shutdown and restart server manually using "mysqladmin shutdown" 2. Run the second part of the test case: perl mysql-test-run.pl --extern bug33492-part2 Test will fail, and corrupted data will be visible in the output.
[23 Dec 2007 13:49]
Philip Stoev
Bug is also present in 6.0.3
[26 Dec 2007 18:53]
Jim Starkey
I have been unable to reproduce this on a 4 processor, AMD64 SuSE 10.2 system. Could somebody send me a zip file of data directory after the failure. I would also appreciate the actual output of the failure.
[26 Dec 2007 19:12]
Philip Stoev
I am able to verify this bug with the latest BK tree. Once you run the sequence of steps, you may see that main.bug33492-part2 may pass. Please go to mysql-test/r/bug33492-part2.result and see the garbage that is being returned. [philips@philips mysql-test]$ uname -a Linux philips 2.6.21-1.3194.fc7 #1 SMP Wed May 23 22:35:01 EDT 2007 i686 i686 i386 GNU/Linux Fedora release 7 (Moonshine) Kernel \r on an \m vmware player with 385MB of memory.
[26 Dec 2007 19:16]
Philip Stoev
Corrupted datadir uploaded to ftp://ftp.mysql.com/pub/mysql/upload/bug33492.zip
[26 Dec 2007 19:44]
Philip Stoev
Bug is also reproducible on ia64 using the 32-bit binary from production.mysql.com:/data0/mysqldev/my/build-200712031732-6.0.4-alpha/mysql-6.0.4-alpha-build/dist/packages/mysql-6.0.4-alpha-linux-i686-glibc23.tar.gz
[26 Dec 2007 19:50]
Philip Stoev
ftp://ftp.mysql.com/pub/mysql/upload/bug33492-before.zip This archive contains the data directory after server shutdown, however before server restart.
[27 Dec 2007 16:20]
Jim Starkey
Database was actually ok. Problems was with Falcon meta-data handling during startup.
[28 Dec 2007 8:27]
Philip Stoev
I can confirm that this bug is no longer present when using a patched binary from /data0/mysqldev/my/mysql-6.0.4-alpha-p1-build/dist/packages/mysql-6.0.4-alpha-p1-linux-i686-glibc23.tar.gz Even if the blob was inserted in a previous 6.0.4 build, the latest 6.0.4 build can read it correctly, which is consistent with Mr. Sharkey's description of the cause of this bug.
[21 Feb 2008 15:11]
Kevin Lewis
Patch is in mysql-6.0-release version 6.0.4
[5 May 2008 14:46]
Paul DuBois
Noted in 6.0.4 changelog. After a server restart, Falcon mishandled metadata, resulting in apparent corruption of BLOB data.