| Bug #24401 | MySQL server crashes if you try to retrieve data from corrupted table | ||
|---|---|---|---|
| Submitted: | 17 Nov 2006 16:53 | Modified: | 7 Feb 2007 19:05 |
| Reporter: | Victoria Reznichenko | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server | Severity: | S2 (Serious) |
| Version: | 5.0.30 | OS: | Any (any) |
| Assigned to: | Sergey Vojtovich | CPU Architecture: | Any |
[17 Nov 2006 16:56]
MySQL Verification Team
corrupted table
Attachment: t1.zip (application/zip, text), 696 bytes.
[19 Jan 2007 11:12]
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/18429 ChangeSet@1.2594, 2007-01-19 15:14:00+04:00, svoj@mysql.com +1 -0 BUG#24401 - MySQL server crashes if you try to retrieve data from corrupted table Accessing a table with corrupted column definition results in server crash. This is fixed by refusing to open such tables. Affects MyISAM only. No test case, since it requires crashed table.
[22 Jan 2007 12:33]
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/18536 ChangeSet@1.2594, 2007-01-22 16:34:58+04:00, svoj@mysql.com +1 -0 BUG#24401 - MySQL server crashes if you try to retrieve data from corrupted table Accessing a table with corrupted column definition results in server crash. This is fixed by refusing to open such tables. Affects MyISAM only. No test case, since it requires crashed table.
[25 Jan 2007 9:29]
Sergey Vojtovich
Pushed to trees currently marked as 5.0.36 and 5.1.15.
[5 Feb 2007 11:42]
Sergey Vojtovich
Pushed to tree currently marked as 4.1.23.
[7 Feb 2007 19:05]
Paul DuBois
Noted in 4.1.23, 5.0.36, 5.1.15 changelogs.

Description: I have small corrupted MyISAM table t1 (I made it corrupted for testing). If I do simple SELECT like: select * from t1 order by id; MySQL server crashes. Backtrace: (gdb) bt #0 0x085bb25c in _mi_rec_unpack (info=0x8dee1d0, to=0x8deea38 '╔' <repeats 200 times>..., from=0x8def7a1 '╔' <repeats 200 times>..., found_length=10) at mi_dynrec.c:1062 #1 0x085bc89a in _mi_read_rnd_dynamic_record (info=0x8dee1d0, buf=0x8dedf38 "Ч\001", filepos=18446744073709551615, skip_deleted_blocks=0 '\0') at mi_dynrec.c:1599 #2 0x085b2bb2 in mi_scan (info=0x8dee1d0, buf=0x8dedf38 "Ч\001") at mi_scan.c:45 #3 0x0830e756 in ha_myisam::rnd_next (this=0x8dede48, buf=0x8dedf38 "Ч\001") at ha_myisam.cc:1277 #4 0x08303918 in find_all_keys (param=0xb4fe10d4, select=0x8de3640, sort_keys=0x8dddf38, buffpek_pointers=0xb4fe0f4c, tempfile=0xb4fe1010, indexfile=0x0) at filesort.cc:464 #5 0x08304493 in filesort (thd=0xb51260e0, table=0x8ded5f8, sortorder=0x8de3748, s_length=1, select=0x8de3640, max_rows=18446744073709551615, examined_rows=0xb4fe1208) at filesort.cc:225 #6 0x08287aad in create_sort_index (thd=0xb51260e0, join=0x8de21e0, order=0x8de2148, filesort_limit=18446744073709551615, select_limit=18446744073709551615) at sql_select.cc:12212 #7 0x08299856 in JOIN::exec (this=0x8de21e0) at sql_select.cc:1804 #8 0x08295caf in mysql_select (thd=0xb51260e0, rref_pointer_array=0xb51264dc, tables=0x8de1ed0, wild_num=1, fields=@0xb5126440, conds=0x0, og_num=1, order=0x8de2148, group=0x0, having=0x0, proc_param=0x0, select_options=2156153344, result=0x8de21d0, unit=0xb5126184, select_lex=0xb51263b4) at sql_select.cc:2017 #9 0x08299d74 in handle_select (thd=0xb51260e0, lex=0xb5126120, result=0x8de21d0, setup_tables_done_option=0) at sql_select.cc:257 #10 0x08233ca8 in mysql_execute_command (thd=0xb51260e0) at sql_parse.cc:2596 #11 0x0823c130 in mysql_parse (thd=0xb51260e0, inBuf=0x8de1db0 "select \n* from t1 order by id", length=29) at sql_parse.cc:5809 #12 0x0823eae0 in dispatch_command (command=COM_QUERY, thd=0xb51260e0, packet=0xb5157091 "select \n* from t1 order by id", packet_length=30) at sql_parse.cc:1773 #13 0x0824008f in do_command (thd=0xb51260e0) at sql_parse.cc:1557 #14 0x0824125d in handle_one_connection (arg=0xb51260e0) at sql_parse.cc:1188 #15 0xb7f4d34b in start_thread () from /lib/libpthread.so.0 #16 0xb7e7765e in clone () from /lib/libc.so.6 How to repeat: I'll upload table files (.frm, .MYI, .MYD) to this issue. Just run: select * from t1 order by id