Bug #14270 | Stored procedures: crash if load index | ||
---|---|---|---|
Submitted: | 24 Oct 2005 18:24 | Modified: | 2 Feb 2006 13:14 |
Reporter: | Peter Gulutzan | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Stored Routines | Severity: | S3 (Non-critical) |
Version: | 5.0.16-debug | OS: | Linux (SUSE 9.2) |
Assigned to: | Per-Erik Martin | CPU Architecture: | Any |
[24 Oct 2005 18:24]
Peter Gulutzan
[24 Oct 2005 19:03]
MySQL Verification Team
Version: '5.0.16-debug' socket: '/tmp/mysql.sock' port: 3306 Source distribution [New Thread 1132456880 (LWP 22026)] mysqld: protocol.cc:837: virtual bool Protocol_simple::store_long(long long int): Assertion `field_types == 0 || field_types[field_pos] == MYSQL_TYPE_INT24 || field_types[field_pos] == MYSQL_TYPE_LONG' failed. Program received signal SIGABRT, Aborted. [Switching to Thread 1132456880 (LWP 22026)] 0xffffe410 in ?? () (gdb) bt full #0 0xffffe410 in ?? () No symbol table info available. #1 0x437fd37c in ?? () No symbol table info available. #2 0x00000006 in ?? () No symbol table info available. #3 0x40214b75 in abort () from /lib/tls/libc.so.6 No symbol table info available. #4 0x4020c903 in __assert_fail () from /lib/tls/libc.so.6 No symbol table info available. #5 0x081d172a in Protocol_simple::store_long (this=0x8e3de5c, from=4) at protocol.cc:835 buff = "\004", '\0' <repeats 11 times>, "\004\000\000\000\200´æ\b" #6 0x08155681 in Item::send (this=0x8e69ac0, protocol=0x8e3de5c, buffer=0x437fd610) at item.cc:4321 nr = 4 result = false type = MYSQL_TYPE_LONG #7 0x081c844c in select_send::send_data (this=0x8e6a4c8, items=@0x8e3d6dc) at sql_class.cc:920 li = {<base_list_iterator> = {list = 0x8e3d6dc, el = 0x8e6a220, prev = 0x0, current = 0x0}, <No data fields>} protocol = (class Protocol *) 0x8e3de5c buff = "@³æ\bÖai\001hÖ\177CZ\n\033\b@³æ\b\000\000\000\000\v\000\000\000ô\232d\b\001\000\000\000\000\000\000\000(¢æ\b\210\233æ\b\000\000\000\001@³æ\b¨Ö\177C\200«\025\b@³æ\b\000\000\000\000\v\000\000\000ô\232d\b\001\000\000\000\000\000\000\000(¢æ\b\210\233æ\b", '\0' <repeats 12 times>, "\003\000\000\000@³æ\b\030\000\000\001\030×\177C¤\f\034\b@³æ\b\000\000\000\000\v\000\000\000ô\232d\b\001\000\000\000\000\000\000\000(¢æ\b\210\233æ\b\000\000\000\000\001\000\000\000\000×\177)\233Zæ\bÿÿÿÿ`ëz\b(×\177C\217]\035\bà(y\b ×\177C,¢"... buffer = {Ptr = 0x437fd630 "@³æ\bÖai\001hÖ\177CZ\n\033\b@³æ\b", str_length = 766, Alloced_length = 766, alloced = false, str_charset = 0x87ae4c0} _db_func_ = 0x81b0f4f "\203Ä\020\213U\b\213E\034\211BD\213U\b\213E\020\211BH\213U\b\212Eÿ\210BR\213U\b\213E\b\203x\b" _db_file_ = 0x437fd638 "hÖ\177CZ\n\033\b@³æ\b" _db_level_ = 0 _db_framep_ = (char **) 0x1 item = (class Item *) 0x8e69ac0 #8 0x0822b55c in JOIN::exec (this=0x8e6a4d8) at sql_select.cc:1207 tmp_error = 0 _db_func_ = 0x0 _db_file_ = 0x8e3d778 "°²æ\b\001" _db_level_ = 149333208 _db_framep_ = (char **) 0x8e3d65c curr_join = (JOIN *) 0x0 curr_all_fields = (List<Item> *) 0x8e6a4d8 curr_fields_list = (List<Item> *) 0x0 ---Type <return> to continue, or q <return> to quit--- curr_tmp_table = (TABLE *) 0x80a44a00 #9 0x0822d17d in mysql_select (thd=0x8e3d3f8, rref_pointer_array=0x8e3d778, tables=0x0, wild_num=0, fields=@0x8e3d6dc, conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2158250496, result=0x8e6a4c8, unit=0x8e3d448, select_lex=0x8e3d65c) at sql_select.cc:1833 err = false free_join = true _db_func_ = 0x8147bea "\203Ä\020\211Eð\211Uôë\016ÇEðÿÿÿÿÇEôÿÿÿÿ\213Eð\213Uô\211Eø\211Uü\213U\b\211Uì\213E\f\203¸\030\001" _db_file_ = 0x437fda68 "" _db_level_ = 140768847 _db_framep_ = (char **) 0x863f91d join = (JOIN *) 0x8e6a4d8 #10 0x0822847d in handle_select (thd=0x8e3d3f8, lex=0x8e3d438, result=0x8e6a4c8, setup_tables_done_option=0) at sql_select.cc:234 unit = (SELECT_LEX_UNIT *) 0x8e3d448 res = false select_lex = (SELECT_LEX *) 0x8e3d65c _db_func_ = 0xe3d3f8 <Address 0xe3d3f8 out of bounds> _db_file_ = 0x81f03c3 "\203Ä \210Eç\200}ç" _db_level_ = 1132453864 _db_framep_ = (char **) 0xc8 #11 0x081f05a3 in mysql_execute_command (thd=0x8e3d3f8) at sql_parse.cc:2484 result = (class select_result *) 0x8e6a4c8 res = false result = 0 lex = (LEX *) 0x8e3d438 select_lex = (SELECT_LEX *) 0x8e3d65c first_table = (TABLE_LIST *) 0x0 all_tables = (TABLE_LIST *) 0x0 unit = (SELECT_LEX_UNIT *) 0x8e3d448 _db_func_ = 0x0 _db_file_ = 0x8e3d438 "\230\"[\b\001" _db_level_ = 1132453864 _db_framep_ = (char **) 0x8e69a18 #12 0x081f813d in mysql_parse (thd=0x8e3d3f8, inBuf=0x8e69a28 "select fq()", length=11) at sql_parse.cc:5558 <cut>
[31 Jan 2006 13:35]
Per-Erik Martin
This was fixed by a patch on 2005-12-03: "this has nothing to do with the bug 13012. it's about mysql_admin_commands not being reexecution-safe (and CHECK still isn't)" where LOAD INDEX, OPTIMIZE, CACHE INDEX and CHECK were disallowed in functions.
[31 Jan 2006 15:28]
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/1950
[1 Feb 2006 14:56]
Per-Erik Martin
Pushed to bk 5.0.19
[2 Feb 2006 13:14]
Jon Stephens
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 Additional info: Documented in 5.0.19 changelog. Noted that we do not support using LOAD INDEX in a stored routine. Closed bug.