Details
- 
    Bug 
- 
    Status: Closed (View Workflow)
- 
    Major 
- 
    Resolution: Fixed
- 
    5.1.67, 5.2.14, 5.3.12, 5.5.38, 10.1.0
- 
    None
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 |