Bug #24358 | Table access crashes server | ||
---|---|---|---|
Submitted: | 16 Nov 2006 11:19 | Modified: | 7 Feb 2007 12:19 |
Reporter: | Steven Hartland | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: MyISAM storage engine | Severity: | S1 (Critical) |
Version: | 5.0.32-BK | OS: | Linux (Linux) |
Assigned to: | Sergey Vojtovich | CPU Architecture: | Any |
[16 Nov 2006 11:19]
Steven Hartland
[21 Nov 2006 16:59]
Valeriy Kravchuk
Thank you for a problem report. What exact SQL statement should I execute agains your table? Please, check with the latest versions: 4.0.28, 4.1.21, 5.0.27 (for 5.0.27 you'll need to dump and restore the table, almost surely), and inform about the results.
[21 Nov 2006 17:09]
Steven Hartland
It appeared any select against the table caused the issue. As mentioned we tried the latest in the 4.1 stream but didnt have the latest 5.x on hand to try but as they all we needed 4.1 that by the by a bit.
[22 Nov 2006 8:29]
Valeriy Kravchuk
Do you mean that even SELECT * FROM thread; will crash the server? Have you tried to run CHECK TABLE thread?
[22 Nov 2006 13:36]
Steven Hartland
That is correct. I just tested that case, had only used a LIMIT case before, but that does indeed crash the entire db. Both check table and repair table report no errors either done via the server or from the command line, thats one of the most worrying factors as there is no indication there is anything wrong with the table at all.
[25 Nov 2006 8:43]
Valeriy Kravchuk
I've got a crash with 5.0.32-debug when put your `thread` table files into a database and tried to use it: openxs@suse:~/dbs/5.0> cd var/s openxs@suse:~/dbs/5.0/var/s> ../../bin/myisamchk -e thread.MYI Checking MyISAM file: thread.MYI Data records: 2672 Deleted blocks: 0 - check file-size - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 - check data record references index: 2 - check data record references index: 3 - check data record references index: 4 - check data record references index: 5 - check data record references index: 6 - check data record references index: 7 - check records and index references openxs@suse:~/dbs/5.0/var/s> cd ../.. openxs@suse:~/dbs/5.0> bin/mysqld_safe & [1] 12193 openxs@suse:~/dbs/5.0> Starting mysqld daemon with databases from /home/openxs/d bs/5.0/var openxs@suse:~/dbs/5.0> bin/mysql -uroot Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.0.32-debug Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use s; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> Number of processes running now: 0 061125 09:26:25 mysqld restarted Moreover, exen mysqlchk -e had not found any problems with this table. Resolved stack trace is: openxs@suse:~/dbs/5.0> bin/resolve_stack_dump -s /tmp/mysqld50.sym -n 24358.st ack 0x81d6f28 handle_segfault + 412 0x401f5903 _end + 933816611 0x82ed8a4 _Z18mysqld_list_fieldsP3THDP13st_table_listPKc + 456 0x81edb96 _Z16dispatch_command19enum_server_commandP3THDPcj + 3224 0x81eceee _Z10do_commandP3THD + 526 0x81ec0da handle_one_connection + 982 0x40050aa7 _end + 932092615 0x40247c2e _end + 934153294 Buf repair found some problem: openxs@suse:~/dbs/5.0/var/s> ../../bin/myisamchk -e -r thread.MYI - recovering (with sort) MyISAM-table 'thread.MYI' Data records: 2672 - Fixing index 1 Found block with too small length at 61720; Skipped Found link that points at 7527043798416888069 (outside data file) at 115152 - Fixing index 2 - Fixing index 3 - Fixing index 4 - Fixing index 5 - Fixing index 6 - Fixing index 7 And even after that repair server still crashes.
[15 Dec 2006 12:01]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/17042 ChangeSet@1.2583, 2006-12-15 16:01:56+04:00, svoj@mysql.com +1 -0 BUG#24358 - Table access crashes server Having broken .frm, particulary number of field names does not match number of fields, causes server crash. Refuse to open a table if number of field names in a table is not equal to number of fields in a table. No test case, since it requires broken .frm file.
[25 Jan 2007 9:29]
Sergey Vojtovich
Pushed to trees currently marked as 5.0.36 and 5.1.15.
[26 Jan 2007 13:39]
Steven Hartland
Is this fix going to be pushed into 4.x?
[26 Jan 2007 14:04]
Sergey Vojtovich
Steven, I hope to push it into 4.1 during next week.
[5 Feb 2007 11:41]
Sergey Vojtovich
Pushed to tree currently marked as 4.1.23.
[7 Feb 2007 12:19]
MC Brown
A note has been added to the 4.1.23, 5.0.36 and 5.1.15 changelogs.