Bug #25255 | MyISAM table corruption when using thread_cache_size | ||
---|---|---|---|
Submitted: | 23 Dec 2006 13:18 | Modified: | 3 Mar 2007 19:35 |
Reporter: | [ name withheld ] | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | MySQL Server: MyISAM storage engine | Severity: | S1 (Critical) |
Version: | 5.0.22 and 5.0.27 | OS: | Linux (Linux Suse ES9; kernel 2.6.5) |
Assigned to: | CPU Architecture: | Any |
[23 Dec 2006 13:18]
[ name withheld ]
[25 Dec 2006 15:57]
MySQL Verification Team
Hi! Please send us output from: SHOW CREATE TABLE I\G SHOW TABLE STATUS LIKE I\G We can try recreate a random dataset, using many concurrent connections and thread_cache_size setting as you described, also killing random connections.
[26 Dec 2006 16:28]
MySQL Verification Team
a sample file for queries
Attachment: bug25255.query (application/octet-stream, text), 769 bytes.
[26 Dec 2006 20:33]
MySQL Verification Team
An update: while running the above queries in 45 threads on 5.0.34BK, I managed to get CHECK TABLE to report a corrupted table at least once. But, the next time CHECK TABLE is run, it returns OK. So, there is something worth investigating here. On another run of 45 threads, I issued a REPAIR TABLE instead, and it crashed the server, with a debug assertion. 061226 18:22:53 [Note] Retrying repair of: './test/t1' with keycache mysqld: my_seek.c:57: my_seek: Assertion `fd != -1' failed. This is probably another bug, which I'll deal with seperately.
[9 Feb 2007 17:15]
MySQL Verification Team
we've seen many customers who had corruption issues which vanished after setting thread_cache_size to 4 or even 0. So, this bug report has merit, but I haven't been able to reproduce it exactly yet. Perhaps a code review would be easier.
[14 Mar 2007 18:14]
MySQL Verification Team
an update. a huge problem was found with thread_cache_size. I filed it in bug #25966 . So, maybe that was an underlying cause of this? (especially if slaves exist, or if KILL sql command is used).