Details
Description
--source include/have_partition.inc --disable_abort_on_error CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=Aria PARTITION BY KEY() PARTITIONS 2; CREATE VIEW v1 AS SELECT * FROM t1; LOCK TABLE v1 WRITE; CREATE TABLE v1 (i INT); INSERT INTO v1 VALUES (1); UNLOCK TABLES; SELECT * FROM t1;
The provided test case ends with the assertion failure on 5.5 and higher:
mysqld: 5.5/sql/sql_select.cc:17280: int join_read_const_table(JOIN_TAB*, POSITION*): Assertion `table->file->stats.records > 0 || error' failed. 140727 17:55:00 [ERROR] mysqld got signal 6 ; #6 0x00007fc057e22621 in *__GI___assert_fail (assertion=0xd99138 "table->file->stats.records > 0 || error", file=<optimized out>, line=17280, function=0xd9a940 "int join_read_const_table(JOIN_TAB*, POSITION*)") at assert.c:81 #7 0x000000000068a891 in join_read_const_table (tab=0x7fc052948fe0, pos=0x7fc052949510) at 5.5/sql/sql_select.cc:17280 #8 0x0000000000669943 in make_join_statistics (join=0x7fc0529488f0, tables_list=..., conds=0x0, keyuse_array=0x7fc052948bf8) at 5.5/sql/sql_select.cc:3410 #9 0x00000000006620be in JOIN::optimize (this=0x7fc0529488f0) at 5.5/sql/sql_select.cc:1229 #10 0x0000000000668927 in mysql_select (thd=0x7fc056749060, rref_pointer_array=0x7fc05674ccc8, tables=0x7fc052948258, wild_num=1, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x7fc0529488d0, unit=0x7fc05674c380, select_lex=0x7fc05674ca58) at 5.5/sql/sql_select.cc:3080 #11 0x000000000065f489 in handle_select (thd=0x7fc056749060, lex=0x7fc05674c2d0, result=0x7fc0529488d0, setup_tables_done_option=0) at 5.5/sql/sql_select.cc:319 #12 0x0000000000638a9f in execute_sqlcom_select (thd=0x7fc056749060, all_tables=0x7fc052948258) at 5.5/sql/sql_parse.cc:4688 #13 0x0000000000631c81 in mysql_execute_command (thd=0x7fc056749060) at 5.5/sql/sql_parse.cc:2233 #14 0x000000000063b1ae in mysql_parse (thd=0x7fc056749060, rawbuf=0x7fc052948078 "SELECT * FROM t1", length=16, parser_state=0x7fc0533b5630) at 5.5/sql/sql_parse.cc:5799 #15 0x000000000062f1f9 in dispatch_command (command=COM_QUERY, thd=0x7fc056749060, packet=0x7fc053afa061 "SELECT * FROM t1", packet_length=16) at 5.5/sql/sql_parse.cc:1079 #16 0x000000000062e385 in do_command (thd=0x7fc056749060) at 5.5/sql/sql_parse.cc:793 #17 0x0000000000730006 in do_handle_one_connection (thd_arg=0x7fc056749060) at 5.5/sql/sql_connect.cc:1266 #18 0x000000000072fac5 in handle_one_connection (arg=0x7fc056749060) at 5.5/sql/sql_connect.cc:1181 #19 0x0000000000b65105 in pfs_spawn_thread (arg=0x7fc0547fa8e0) at 5.5/storage/perfschema/pfs.cc:1015 #20 0x00007fc059382b50 in start_thread (arg=<optimized out>) at pthread_create.c:304 #21 0x00007fc057ed1a7d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
Stack trace from:
revision-id: jplindst@mariadb.org-20140727054445-c4dp836fcgt69e8w revno: 4244 branch-nick: 5.5
Without the last SELECT, the same test case causes valgrind warnings:
==31970== Thread 5: ==31970== Invalid write of size 8 ==31970== at 0xBCFA69: _ma_new (ma_page.c:406) ==31970== by 0xBF7216: _ma_enlarge_root (ma_write.c:573) ==31970== by 0xBF6FB9: _ma_ck_real_write_btree (ma_write.c:527) ==31970== by 0xBF6E57: _ma_ck_write_btree_with_log (ma_write.c:491) ==31970== by 0xBF6CD6: _ma_ck_write_btree (ma_write.c:449) ==31970== by 0xBF6C4F: _ma_ck_write (ma_write.c:434) ==31970== by 0xBF64A6: maria_write (ma_write.c:188) ==31970== by 0xB807B8: ha_maria::write_row(unsigned char*) (ha_maria.cc:1266) ==31970== by 0x7EDCE8: handler::ha_write_row(unsigned char*) (handler.cc:5198) ==31970== by 0xCA9440: ha_partition::write_row(unsigned char*) (ha_partition.cc:3596) ==31970== by 0x7EDCE8: handler::ha_write_row(unsigned char*) (handler.cc:5198) ==31970== by 0x61770A: write_record(THD*, TABLE*, st_copy_info*) (sql_insert.cc:1843) ==31970== by 0x6153F4: mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:986) ==31970== by 0x6337E7: mysql_execute_command(THD*) (sql_parse.cc:2973) ==31970== by 0x63B1AD: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5799) ==31970== by 0x62F1F8: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1079) ==31970== Address 0xb929e90 is 144 bytes inside a block of size 256 free'd ==31970== at 0xD3441D: free (jemalloc.c:1273) ==31970== by 0xCEDFE8: free_memory (safemalloc.c:205) ==31970== by 0xCEDF0C: sf_free (safemalloc.c:182) ==31970== by 0xCDA7CB: my_free (my_malloc.c:119) ==31970== by 0xCB342E: delete_dynamic (array.c:303) ==31970== by 0x917D35: Dynamic_array<Item_splocal*>::~Dynamic_array() (sql_array.h:62) ==31970== by 0x90FB2F: subst_spvars(THD*, sp_instr*, st_mysql_lex_string*) (sp_head.cc:1056) ==31970== by 0x9144AB: sp_instr_stmt::execute(THD*, unsigned int*) (sp_head.cc:3133) ==31970== by 0x9103A8: sp_head::execute(THD*, bool) (sp_head.cc:1431) ==31970== by 0x9120F1: sp_head::execute_procedure(THD*, List<Item>*) (sp_head.cc:2197) ==31970== by 0x636FB7: mysql_execute_command(THD*) (sql_parse.cc:4122) ==31970== by 0x63B1AD: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5799) ==31970== by 0x62F1F8: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1079) ==31970== by 0x62E384: do_command(THD*) (sql_parse.cc:793) ==31970== by 0x730005: do_handle_one_connection(THD*) (sql_connect.cc:1266) ==31970== by 0x72FAC4: handle_one_connection (sql_connect.cc:1181) ==31970== Invalid read of size 4 ==31970== at 0xBF6587: maria_write (ma_write.c:286) ==31970== by 0xB807B8: ha_maria::write_row(unsigned char*) (ha_maria.cc:1266) ==31970== by 0x7EDCE8: handler::ha_write_row(unsigned char*) (handler.cc:5198) ==31970== by 0xCA9440: ha_partition::write_row(unsigned char*) (ha_partition.cc:3596) ==31970== by 0x7EDCE8: handler::ha_write_row(unsigned char*) (handler.cc:5198) ==31970== by 0x61770A: write_record(THD*, TABLE*, st_copy_info*) (sql_insert.cc:1843) ==31970== by 0x6153F4: mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:986) ==31970== by 0x6337E7: mysql_execute_command(THD*) (sql_parse.cc:2973) ==31970== by 0x63B1AD: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5799) ==31970== by 0x62F1F8: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1079) ==31970== by 0x62E384: do_command(THD*) (sql_parse.cc:793) ==31970== by 0x730005: do_handle_one_connection(THD*) (sql_connect.cc:1266) ==31970== by 0x72FAC4: handle_one_connection (sql_connect.cc:1181) ==31970== by 0xB65104: pfs_spawn_thread (pfs.cc:1015) ==31970== by 0x4E35B4F: start_thread (pthread_create.c:304) ==31970== by 0x6320A7C: clone (clone.S:112) ==31970== Address 0xb929ea0 is 160 bytes inside a block of size 256 free'd ==31970== at 0xD3441D: free (jemalloc.c:1273) ==31970== by 0xCEDFE8: free_memory (safemalloc.c:205) ==31970== by 0xCEDF0C: sf_free (safemalloc.c:182) ==31970== by 0xCDA7CB: my_free (my_malloc.c:119) ==31970== by 0xCB342E: delete_dynamic (array.c:303) ==31970== by 0x917D35: Dynamic_array<Item_splocal*>::~Dynamic_array() (sql_array.h:62) ==31970== by 0x90FB2F: subst_spvars(THD*, sp_instr*, st_mysql_lex_string*) (sp_head.cc:1056) ==31970== by 0x9144AB: sp_instr_stmt::execute(THD*, unsigned int*) (sp_head.cc:3133) ==31970== by 0x9103A8: sp_head::execute(THD*, bool) (sp_head.cc:1431) ==31970== by 0x9120F1: sp_head::execute_procedure(THD*, List<Item>*) (sp_head.cc:2197) ==31970== by 0x636FB7: mysql_execute_command(THD*) (sql_parse.cc:4122) ==31970== by 0x63B1AD: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5799) ==31970== by 0x62F1F8: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1079) ==31970== by 0x62E384: do_command(THD*) (sql_parse.cc:793) ==31970== by 0x730005: do_handle_one_connection(THD*) (sql_connect.cc:1266) ==31970== by 0x72FAC4: handle_one_connection (sql_connect.cc:1181) ==31970== Invalid write of size 4 ==31970== at 0xBF6599: maria_write (ma_write.c:286) ==31970== by 0xB807B8: ha_maria::write_row(unsigned char*) (ha_maria.cc:1266) ==31970== by 0x7EDCE8: handler::ha_write_row(unsigned char*) (handler.cc:5198) ==31970== by 0xCA9440: ha_partition::write_row(unsigned char*) (ha_partition.cc:3596) ==31970== by 0x7EDCE8: handler::ha_write_row(unsigned char*) (handler.cc:5198) ==31970== by 0x61770A: write_record(THD*, TABLE*, st_copy_info*) (sql_insert.cc:1843) ==31970== by 0x6153F4: mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:986) ==31970== by 0x6337E7: mysql_execute_command(THD*) (sql_parse.cc:2973) ==31970== by 0x63B1AD: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5799) ==31970== by 0x62F1F8: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1079) ==31970== by 0x62E384: do_command(THD*) (sql_parse.cc:793) ==31970== by 0x730005: do_handle_one_connection(THD*) (sql_connect.cc:1266) ==31970== by 0x72FAC4: handle_one_connection (sql_connect.cc:1181) ==31970== by 0xB65104: pfs_spawn_thread (pfs.cc:1015) ==31970== by 0x4E35B4F: start_thread (pthread_create.c:304) ==31970== by 0x6320A7C: clone (clone.S:112) ==31970== Address 0xb929ea0 is 160 bytes inside a block of size 256 free'd ==31970== at 0xD3441D: free (jemalloc.c:1273) ==31970== by 0xCEDFE8: free_memory (safemalloc.c:205) ==31970== by 0xCEDF0C: sf_free (safemalloc.c:182) ==31970== by 0xCDA7CB: my_free (my_malloc.c:119) ==31970== by 0xCB342E: delete_dynamic (array.c:303) ==31970== by 0x917D35: Dynamic_array<Item_splocal*>::~Dynamic_array() (sql_array.h:62) ==31970== by 0x90FB2F: subst_spvars(THD*, sp_instr*, st_mysql_lex_string*) (sp_head.cc:1056) ==31970== by 0x9144AB: sp_instr_stmt::execute(THD*, unsigned int*) (sp_head.cc:3133) ==31970== by 0x9103A8: sp_head::execute(THD*, bool) (sp_head.cc:1431) ==31970== by 0x9120F1: sp_head::execute_procedure(THD*, List<Item>*) (sp_head.cc:2197) ==31970== by 0x636FB7: mysql_execute_command(THD*) (sql_parse.cc:4122) ==31970== by 0x63B1AD: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5799) ==31970== by 0x62F1F8: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1079) ==31970== by 0x62E384: do_command(THD*) (sql_parse.cc:793) ==31970== by 0x730005: do_handle_one_connection(THD*) (sql_connect.cc:1266) ==31970== by 0x72FAC4: handle_one_connection (sql_connect.cc:1181) ==31970== Invalid read of size 8 ==31970== at 0xBF6677: maria_write (ma_write.c:298) ==31970== by 0xB807B8: ha_maria::write_row(unsigned char*) (ha_maria.cc:1266) ==31970== by 0x7EDCE8: handler::ha_write_row(unsigned char*) (handler.cc:5198) ==31970== by 0xCA9440: ha_partition::write_row(unsigned char*) (ha_partition.cc:3596) ==31970== by 0x7EDCE8: handler::ha_write_row(unsigned char*) (handler.cc:5198) ==31970== by 0x61770A: write_record(THD*, TABLE*, st_copy_info*) (sql_insert.cc:1843) ==31970== by 0x6153F4: mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:986) ==31970== by 0x6337E7: mysql_execute_command(THD*) (sql_parse.cc:2973) ==31970== by 0x63B1AD: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5799) ==31970== by 0x62F1F8: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1079) ==31970== by 0x62E384: do_command(THD*) (sql_parse.cc:793) ==31970== by 0x730005: do_handle_one_connection(THD*) (sql_connect.cc:1266) ==31970== by 0x72FAC4: handle_one_connection (sql_connect.cc:1181) ==31970== by 0xB65104: pfs_spawn_thread (pfs.cc:1015) ==31970== by 0x4E35B4F: start_thread (pthread_create.c:304) ==31970== by 0x6320A7C: clone (clone.S:112) ==31970== Address 0xb929e70 is 112 bytes inside a block of size 256 free'd ==31970== at 0xD3441D: free (jemalloc.c:1273) ==31970== by 0xCEDFE8: free_memory (safemalloc.c:205) ==31970== by 0xCEDF0C: sf_free (safemalloc.c:182) ==31970== by 0xCDA7CB: my_free (my_malloc.c:119) ==31970== by 0xCB342E: delete_dynamic (array.c:303) ==31970== by 0x917D35: Dynamic_array<Item_splocal*>::~Dynamic_array() (sql_array.h:62) ==31970== by 0x90FB2F: subst_spvars(THD*, sp_instr*, st_mysql_lex_string*) (sp_head.cc:1056) ==31970== by 0x9144AB: sp_instr_stmt::execute(THD*, unsigned int*) (sp_head.cc:3133) ==31970== by 0x9103A8: sp_head::execute(THD*, bool) (sp_head.cc:1431) ==31970== by 0x9120F1: sp_head::execute_procedure(THD*, List<Item>*) (sp_head.cc:2197) ==31970== by 0x636FB7: mysql_execute_command(THD*) (sql_parse.cc:4122) ==31970== by 0x63B1AD: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5799) ==31970== by 0x62F1F8: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1079) ==31970== by 0x62E384: do_command(THD*) (sql_parse.cc:793) ==31970== by 0x730005: do_handle_one_connection(THD*) (sql_connect.cc:1266) ==31970== by 0x72FAC4: handle_one_connection (sql_connect.cc:1181) ==31970== Invalid write of size 8 ==31970== at 0xBF667E: maria_write (ma_write.c:298) ==31970== by 0xB807B8: ha_maria::write_row(unsigned char*) (ha_maria.cc:1266) ==31970== by 0x7EDCE8: handler::ha_write_row(unsigned char*) (handler.cc:5198) ==31970== by 0xCA9440: ha_partition::write_row(unsigned char*) (ha_partition.cc:3596) ==31970== by 0x7EDCE8: handler::ha_write_row(unsigned char*) (handler.cc:5198) ==31970== by 0x61770A: write_record(THD*, TABLE*, st_copy_info*) (sql_insert.cc:1843) ==31970== by 0x6153F4: mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:986) ==31970== by 0x6337E7: mysql_execute_command(THD*) (sql_parse.cc:2973) ==31970== by 0x63B1AD: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5799) ==31970== by 0x62F1F8: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1079) ==31970== by 0x62E384: do_command(THD*) (sql_parse.cc:793) ==31970== by 0x730005: do_handle_one_connection(THD*) (sql_connect.cc:1266) ==31970== by 0x72FAC4: handle_one_connection (sql_connect.cc:1181) ==31970== by 0xB65104: pfs_spawn_thread (pfs.cc:1015) ==31970== by 0x4E35B4F: start_thread (pthread_create.c:304) ==31970== by 0x6320A7C: clone (clone.S:112) ==31970== Address 0xb929e70 is 112 bytes inside a block of size 256 free'd ==31970== at 0xD3441D: free (jemalloc.c:1273) ==31970== by 0xCEDFE8: free_memory (safemalloc.c:205) ==31970== by 0xCEDF0C: sf_free (safemalloc.c:182) ==31970== by 0xCDA7CB: my_free (my_malloc.c:119) ==31970== by 0xCB342E: delete_dynamic (array.c:303) ==31970== by 0x917D35: Dynamic_array<Item_splocal*>::~Dynamic_array() (sql_array.h:62) ==31970== by 0x90FB2F: subst_spvars(THD*, sp_instr*, st_mysql_lex_string*) (sp_head.cc:1056) ==31970== by 0x9144AB: sp_instr_stmt::execute(THD*, unsigned int*) (sp_head.cc:3133) ==31970== by 0x9103A8: sp_head::execute(THD*, bool) (sp_head.cc:1431) ==31970== by 0x9120F1: sp_head::execute_procedure(THD*, List<Item>*) (sp_head.cc:2197) ==31970== by 0x636FB7: mysql_execute_command(THD*) (sql_parse.cc:4122) ==31970== by 0x63B1AD: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5799) ==31970== by 0x62F1F8: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1079) ==31970== by 0x62E384: do_command(THD*) (sql_parse.cc:793) ==31970== by 0x730005: do_handle_one_connection(THD*) (sql_connect.cc:1266) ==31970== by 0x72FAC4: handle_one_connection (sql_connect.cc:1181) ==31970== Invalid read of size 1 ==31970== at 0xBF66D9: maria_write (ma_write.c:303) ==31970== by 0xB807B8: ha_maria::write_row(unsigned char*) (ha_maria.cc:1266) ==31970== by 0x7EDCE8: handler::ha_write_row(unsigned char*) (handler.cc:5198) ==31970== by 0xCA9440: ha_partition::write_row(unsigned char*) (ha_partition.cc:3596) ==31970== by 0x7EDCE8: handler::ha_write_row(unsigned char*) (handler.cc:5198) ==31970== by 0x61770A: write_record(THD*, TABLE*, st_copy_info*) (sql_insert.cc:1843) ==31970== by 0x6153F4: mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:986) ==31970== by 0x6337E7: mysql_execute_command(THD*) (sql_parse.cc:2973) ==31970== by 0x63B1AD: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5799) ==31970== by 0x62F1F8: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1079) ==31970== by 0x62E384: do_command(THD*) (sql_parse.cc:793) ==31970== by 0x730005: do_handle_one_connection(THD*) (sql_connect.cc:1266) ==31970== by 0x72FAC4: handle_one_connection (sql_connect.cc:1181) ==31970== by 0xB65104: pfs_spawn_thread (pfs.cc:1015) ==31970== by 0x4E35B4F: start_thread (pthread_create.c:304) ==31970== by 0x6320A7C: clone (clone.S:112) ==31970== Address 0xb929ea4 is 164 bytes inside a block of size 256 free'd ==31970== at 0xD3441D: free (jemalloc.c:1273) ==31970== by 0xCEDFE8: free_memory (safemalloc.c:205) ==31970== by 0xCEDF0C: sf_free (safemalloc.c:182) ==31970== by 0xCDA7CB: my_free (my_malloc.c:119) ==31970== by 0xCB342E: delete_dynamic (array.c:303) ==31970== by 0x917D35: Dynamic_array<Item_splocal*>::~Dynamic_array() (sql_array.h:62) ==31970== by 0x90FB2F: subst_spvars(THD*, sp_instr*, st_mysql_lex_string*) (sp_head.cc:1056) ==31970== by 0x9144AB: sp_instr_stmt::execute(THD*, unsigned int*) (sp_head.cc:3133) ==31970== by 0x9103A8: sp_head::execute(THD*, bool) (sp_head.cc:1431) ==31970== by 0x9120F1: sp_head::execute_procedure(THD*, List<Item>*) (sp_head.cc:2197) ==31970== by 0x636FB7: mysql_execute_command(THD*) (sql_parse.cc:4122) ==31970== by 0x63B1AD: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5799) ==31970== by 0x62F1F8: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1079) ==31970== by 0x62E384: do_command(THD*) (sql_parse.cc:793) ==31970== by 0x730005: do_handle_one_connection(THD*) (sql_connect.cc:1266) ==31970== by 0x72FAC4: handle_one_connection (sql_connect.cc:1181) ==31970== Invalid write of size 1 ==31970== at 0xBF66E0: maria_write (ma_write.c:303) ==31970== by 0xB807B8: ha_maria::write_row(unsigned char*) (ha_maria.cc:1266) ==31970== by 0x7EDCE8: handler::ha_write_row(unsigned char*) (handler.cc:5198) ==31970== by 0xCA9440: ha_partition::write_row(unsigned char*) (ha_partition.cc:3596) ==31970== by 0x7EDCE8: handler::ha_write_row(unsigned char*) (handler.cc:5198) ==31970== by 0x61770A: write_record(THD*, TABLE*, st_copy_info*) (sql_insert.cc:1843) ==31970== by 0x6153F4: mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:986) ==31970== by 0x6337E7: mysql_execute_command(THD*) (sql_parse.cc:2973) ==31970== by 0x63B1AD: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5799) ==31970== by 0x62F1F8: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1079) ==31970== by 0x62E384: do_command(THD*) (sql_parse.cc:793) ==31970== by 0x730005: do_handle_one_connection(THD*) (sql_connect.cc:1266) ==31970== by 0x72FAC4: handle_one_connection (sql_connect.cc:1181) ==31970== by 0xB65104: pfs_spawn_thread (pfs.cc:1015) ==31970== by 0x4E35B4F: start_thread (pthread_create.c:304) ==31970== by 0x6320A7C: clone (clone.S:112) ==31970== Address 0xb929ea4 is 164 bytes inside a block of size 256 free'd ==31970== at 0xD3441D: free (jemalloc.c:1273) ==31970== by 0xCEDFE8: free_memory (safemalloc.c:205) ==31970== by 0xCEDF0C: sf_free (safemalloc.c:182) ==31970== by 0xCDA7CB: my_free (my_malloc.c:119) ==31970== by 0xCB342E: delete_dynamic (array.c:303) ==31970== by 0x917D35: Dynamic_array<Item_splocal*>::~Dynamic_array() (sql_array.h:62) ==31970== by 0x90FB2F: subst_spvars(THD*, sp_instr*, st_mysql_lex_string*) (sp_head.cc:1056) ==31970== by 0x9144AB: sp_instr_stmt::execute(THD*, unsigned int*) (sp_head.cc:3133) ==31970== by 0x9103A8: sp_head::execute(THD*, bool) (sp_head.cc:1431) ==31970== by 0x9120F1: sp_head::execute_procedure(THD*, List<Item>*) (sp_head.cc:2197) ==31970== by 0x636FB7: mysql_execute_command(THD*) (sql_parse.cc:4122) ==31970== by 0x63B1AD: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5799) ==31970== by 0x62F1F8: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1079) ==31970== by 0x62E384: do_command(THD*) (sql_parse.cc:793) ==31970== by 0x730005: do_handle_one_connection(THD*) (sql_connect.cc:1266) ==31970== by 0x72FAC4: handle_one_connection (sql_connect.cc:1181)
Please also note that CREATE TABLE v1 ends with ER_TABLE_NOT_LOCKED, even though there was LOCK TABLE v1 before.
For the record, the same scenario also fails on 5.1-5.3, only there it causes a crash on UNLOCK TABLES:
#2 0x00000000007fd86d in handle_fatal_signal (sig=11) at signal_handler.cc:249 #3 <signal handler called> #4 malloc_consolidate (av=0x7fa18058ce60) at malloc.c:5155 #5 0x00007fa1802804d4 in _int_malloc (av=0x7fa18058ce60, bytes=2092) at malloc.c:4373 #6 0x00007fa180282b90 in *__GI___libc_malloc (bytes=2092) at malloc.c:3660 #7 0x0000000000b8b24b in _mymalloc (size=2048, filename=0xde12d0 "thr_mutex.c", lineno=179, MyFlags=0) at safemalloc.c:140 #8 0x0000000000b99f73 in init_dynamic_array2 (array=0x348db50, element_size=16, init_buffer=0x0, init_alloc=128, alloc_increment=64, sFile=0xde12d0 "thr_mutex.c", uLine=179) at array.c:67 #9 0x0000000000b986b2 in _my_hash_init (hash=0x348db28, growth_size=64, charset=0x1216360, size=128, key_offset=40, key_length=8, get_key=0, free_element=0, flags=1, sFile=0xde12d0 "thr_mutex.c", uLine=179) at hash.c:94 #10 0x0000000000baee6d in safe_mutex_lazy_init_deadlock_detection (mp=0x162e768) at thr_mutex.c:175 #11 0x0000000000baf2e9 in safe_mutex_lock (mp=0x162e768, my_flags=0, file=0xd8ba00 "ma_loghandler.c", line=1617) at thr_mutex.c:325 #12 0x00000000009887ae in translog_buffer_lock (buffer=0x152e6e8) at ma_loghandler.c:1617 #13 0x0000000000997d29 in translog_force_current_buffer_to_finish () at ma_loghandler.c:7380 #14 0x0000000000998912 in translog_flush (lsn=4294976781) at ma_loghandler.c:7642 #15 0x0000000000965150 in ma_commit (trn=0x34291b8) at ma_commit.c:65 #16 0x000000000094bdde in ha_maria::external_lock (this=0x342b2b0, thd=0x3383618, lock_type=2) at ha_maria.cc:2555 #17 0x00000000007e8d8d in handler::ha_external_lock (this=0x342b2b0, thd=0x3383618, lock_type=2) at handler.cc:4754 #18 0x00000000007f1893 in ha_partition::external_lock (this=0x342ad30, thd=0x3383618, lock_type=2) at ha_partition.cc:2991 #19 0x00000000007e8d8d in handler::ha_external_lock (this=0x342ad30, thd=0x3383618, lock_type=2) at handler.cc:4754 #20 0x0000000000692b73 in unlock_external (thd=0x3383618, table=0x3429820, count=1) at lock.cc:829 #21 0x0000000000691b19 in mysql_unlock_tables (thd=0x3383618, sql_lock=0x34297e8) at lock.cc:390 #22 0x00000000006f702d in close_thread_tables (thd=0x3383618) at sql_base.cc:1353 #23 0x00000000006a901e in unlock_locked_tables (thd=0x3383618) at sql_parse.cc:162 #24 0x00000000006b1d74 in mysql_execute_command (thd=0x3383618) at sql_parse.cc:3687 #25 0x00000000006b9666 in mysql_parse (thd=0x3383618, rawbuf=0x3411680 "UNLOCK TABLES", length=13, found_semicolon=0x7fa177332ca0) at sql_parse.cc:6231 #26 0x00000000006aba69 in dispatch_command (command=COM_QUERY, thd=0x3383618, packet=0x33f0b19 "UNLOCK TABLES", packet_length=13) at sql_parse.cc:1303 #27 0x00000000006aa93d in do_command (thd=0x3383618) at sql_parse.cc:906 #28 0x00000000006a78da in handle_one_connection (arg=0x3383618) at sql_connect.cc:1238 #29 0x00007fa180597b50 in start_thread (arg=<optimized out>) at pthread_create.c:304 #30 0x00007fa1802e1a7d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
Stack trace from:
revision-id: elenst@montyprogram.com-20140422211641-fc02411zu0z1wgyk revno: 3221 branch-nick: 5.1
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
Pushed into 5.5 tree