Bug #1161 | MySQL-4.1.1 crashes when trying to access a ISAM table and have_isam set to no | ||
---|---|---|---|
Submitted: | 28 Aug 2003 23:34 | Modified: | 28 Sep 2003 9:41 |
Reporter: | jocelyn fournier (Silver Quality Contributor) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server | Severity: | S2 (Serious) |
Version: | 4.1.1 | OS: | Linux (Linux) |
Assigned to: | Sergei Golubchik | CPU Architecture: | Any |
[28 Aug 2003 23:34]
jocelyn fournier
[30 Aug 2003 11:31]
MySQL Verification Team
Works fine for me with latest 4.1.1: [/mnt/work/mysql-4.1]$ ./client/mysql bug Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Didn't find any fields in table 'xx' Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 4.1.1-alpha-debug Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> select * from xx; ERROR 1017 (HY000): Can't find file: 'xx.MYI' (errno: 2) mysql> quit Bye
[4 Sep 2003 13:28]
jocelyn fournier
Hi, The bug still occurs for me. To reproduce it, download ftp://support.mysql.com/pub/mysql/secret/isam.tar.gz And then try : SELECT * FROM phpads_clients; MySQL will crash. Regards, Jocelyn
[4 Sep 2003 14:09]
jocelyn fournier
Here is the full backtrace BTW : (gdb) backtrace full #0 0x400da781 in kill () from /lib/libc.so.6 No symbol table info available. #1 0x40034e5e in pthread_kill () from /lib/libpthread.so.0 No symbol table info available. #2 0x08212e87 in write_core (sig=11) at stacktrace.c:220 No locals. #3 0x081437b0 in handle_segfault (sig=11) at mysqld.cc:1578 thd = (class THD *) 0xb #4 0x40034f54 in pthread_sighandler () from /lib/libpthread.so.0 No symbol table info available. #5 0x400da6b8 in sigaction () from /lib/libc.so.6 No symbol table info available. #6 0x08178b6b in openfrm(char const*, char const*, unsigned, unsigned, unsigned, st_table*) ( name=0xbf5ff12c "./isam/phpads_clients", alias=0x0, db_stat=39, prgflag=44, ha_open_flags=0, outparam=0x0) at table.cc:428 i = 1 strpos = (uchar *) 0x84df699 "\005\vDÿ\004" j = 1074002656 error = 4 rec_buff_length = 0 n_length = 0 int_length = 13 records = 3 key_parts = 1 keys = 1 interval_count = 1 interval_parts = 3 read_length = 0 db_create_options = 3 key_info_length = 0 com_length = 0 pos = 294 index_file = "./isam/phpads_clients\0frm\0_¿\0\0\0\08\020\0\0\0\0\0\0Ôî_¿\016\t\003@àú\003@\0\0\0\0\a\0\0\0\216n\003@\a\0\0\0 f\034@ôî_¿ n\003@\0\0\0\0\0\0\0\0\004ï_¿mn\003@H\216\034@ nN\b\004ï_¿£ú\021@H\216\034@\0\0\0\04ï_¿äá\024@\a\0\0\0H\216\034@4ï_¿Ûá\024@ nN\b\a\0\0\04ï_¿~á\024@\0\0\0\08\017O\bX\022O\b\0\0\0\08\017O\bX\022O\bäó_¿\017\2041\b´\0\0\0\214ï_¿"... names = 0x84e18b0 "è\2324\b\baN\b" keynames = 0x84e1672 "" comment_pos = 0x84e18b0 "è\2324\b\baN\b" head = "ã\003\0\020", '\0' <repeats 252 times>, "\001\0\023\0&\001e\003\0\0\036\003¿\0\001\0\003\0\r\0\0\0P\0\026\0\a\0\0\0\0" disk_buff = (uchar *) 0x84df568 "&\001\024\023\002\024)", ' ' <repeats 40 times> new_field_pack_flag = 2 '\002' record = 0x84e6107 "" int_array = (const char **) 0x84e17e0 use_hash = false null_field_first = false file = -1 field_ptr = (class Field **) 0x84e1724 reg_field = (class Field *) 0x0 keyinfo = (KEY *) 0x84e1650 key_part = (KEY_PART_INFO *) 0x0 null_pos = (uchar *) 0x0 null_bit = 1 new_frm_ver = 1 field_pack_length = 11 _db_func_ = 0x4003fae0 "ì9\001" _db_file_ = 0x401c6ab0 "" _db_level_ = 139398928 _db_framep_ = (char **) 0x40036c3e old_root = (MEM_ROOT *) 0x84d919c rec_per_key = (ulong *) 0xb #7 0x08174b9e in open_unireg_entry (thd=0x84d8aa8, entry=0x84e1268, db=0x84e6060 "isam", name=0x84eaf80 "phpads_clients", alias=0x84eafc8 "phpads_clients") at sql_base.cc:1286 path = "./isam/phpads_clients\0_¿\a\0\0\0Â\0361\bÜñ_¿É2O\b\0\0\0\0>l\003@àú\003@°j\034@H\022N\b>l\003@àú\003@@ÚK\b¿\0\0\0\224ñ_¿\220ñ_¿\224ñ_¿´ñ_¿\0\0\0\0Àj\034@\0\0\0\0Äñ_¿Ó2\003@PÚK\b\0\0\0\0Äñ_¿\2251\003@\0\0\0\0@ÚK\b¿\0\0\0¨ñ\021@°j\034@ f\034@ôñ_¿Õ\0272\b@ÚK\b\003\b\0\0d\003\0\08ò_¿,ò_¿Þö_¿Üö_¿P\022N\bh\022N\bd\003\0\0"... error = -1084231380 _db_func_ = 0xbf5ff31c " ÚG\b" _db_file_ = 0xbf5ff5fe "" ---Type <return> to continue, or q <return> to quit--- _db_level_ = 0 _db_framep_ = (char **) 0x0 #8 0x08173c12 in open_table(THD*, char const*, char const*, char const*, bool*) (thd=0x84d8aa8, db=0x84e6060 "isam", table_name=0x84eaf80 "phpads_clients", alias=0x84eafc8 "phpads_clients", refresh=0xbf5ff5f7) at sql_base.cc:863 table = (TABLE *) 0x84e1268 key = "isam\0phpads_clients\0\0\0\0\0Ôó_¿Øó_\0\0\0\0\0Øó_¿\0\0\0\0\004\0\0\0üô_¿\006\0\0\0äó_¿ÖjL\bÖjL\b\200¯G\b\024ô_¿\001\003\024\b´\212M\b\005\0\0\0\024ô_¿´\212M\b´\212M\be`N\bDô_¿\0\230\023\bê\0\0\00ô_¿4ô_¿8ô_¿4ô_¿8ô_¿<ô_¿\017\0\0\0\0\222M\0´\212M\b\005\0\0\005¨\212M\b´\212M\be`N\b¤ô_¿`²\023\b^\001\0\0|ô_¿\200ô_¿\204ô_¿\200ô_¿\204ô_¿"... key_length = 20 _db_func_ = 0x234 <Address 0x234 out of bounds> _db_file_ = 0xbf5ff3cc "üô_¿\006" _db_level_ = 3210736592 _db_framep_ = (char **) 0xbf5ff3d4 #9 0x08174eb6 in open_tables(THD*, st_table_list*) (thd=0x84d8aa8, start=0x84eafd8) at sql_base.cc:1363 tables = (TABLE_LIST *) 0x84eafd8 refresh = false result = 0 _db_func_ = 0x819a421 "\203Ä0[_]ÃU\211å\203ì(\211]ô\211uø\211}ü\213u\b\213}\024\213\206D\r" _db_file_ = 0x54 <Address 0x54 out of bounds> _db_level_ = 3210737180 _db_framep_ = (char **) 0xbf5ff620 #10 0x081752f6 in open_and_lock_tables(THD*, st_table_list*) (thd=0x84d8aa8, tables=0x84eafd8) at sql_base.cc:1519 No locals. #11 0x08154db2 in mysql_execute_command(THD*) (thd=0x84d8aa8) at sql_parse.cc:1736 result = (class select_result *) 0x84d8aa8 res = 0 lex = (LEX *) 0x84d8d20 tables = (TABLE_LIST *) 0x84eafd8 select_lex = (SELECT_LEX *) 0x84d8df0 unit = (SELECT_LEX_UNIT *) 0x84d8d2c _db_func_ = 0x2c0000 <Address 0x2c0000 out of bounds> _db_file_ = 0x2fd01ff <Address 0x2fd01ff out of bounds> _db_level_ = 96928853 _db_framep_ = (char **) 0x8540720 #12 0x0815a807 in mysql_parse(THD*, char*, unsigned) (thd=0x84d8aa8, inBuf=0x84eaef0 "SELECT * FROM phpads_clients", length=139300128) at sql_parse.cc:3681 lex = (LEX *) 0x84d8d20 _db_func_ = 0xbf5ffc88 "" _db_file_ = 0x0 _db_level_ = 1075630144 _db_framep_ = (char **) 0xbf5ff8b4 #13 0x08153aaf in dispatch_command(enum_server_command, THD*, char*, unsigned) (command=COM_QUERY, thd=0x84d8aa8, packet=0x84e1c19 "SELECT * FROM phpads_clients", packet_length=29) at sql_parse.cc:1285 net = (NET *) 0x84d8ab4 error = false slow_command = false _db_func_ = 0xbf5ff96c "¨\212M\b\v" _db_file_ = 0xbf5ff970 "\v" _db_level_ = 3210738028 _db_framep_ = (char **) 0x401c8e48 start_of_query = 139299496 #14 0x0815335e in do_command(THD*) (thd=0x84d8aa8) at sql_parse.cc:1120 packet = 0x84e1c18 "\003SELECT * FROM phpads_clients" old_timeout = 30 packet_length = 29 net = (NET *) 0x84d8ab4 command = COM_QUERY _db_func_ = 0x81327b8 "\213]ü\211ì]Ã\220U\211å\203ì8\211]ü\213]\b\211\034$èl" _db_file_ = 0x84d9658 "8\002N\b" _db_level_ = 4096 _db_framep_ = (char **) 0x1000 #15 0x08152853 in handle_one_connection (arg=0x0) at sql_parse.cc:899 error = 11 net = (NET *) 0x84d8ab4 thd = (class THD *) 0x84d8aa8 launch_time = 0 set = {__val = {0 <repeats 32 times>}}
[22 Sep 2003 0:13]
MySQL Verification Team
For to complete: ISAM tables won't be supported anymore on 4.1.XX.
[28 Sep 2003 9:41]
Sergei Golubchik
Thank you for your bug report. This issue has been committed to our source repository of that product and will be incorporated into the next release. If necessary, you can access the source repository and build the latest available version, including the bugfix, yourself. More information about accessing the source trees is available at http://www.mysql.com/doc/en/Installing_source_tree.html In fact, ISAM tables will be still supported at least up to MySQL 5. But in 4.1 they will not be compiled in by default. As for this particular bug, the reason of crash was old 3.22.frm file, not ISAM table handler. Fixed in 4.1.1