Valgrind on the same testcase ==19862== Thread 21: ==19862== Invalid write of size 8 ==19862== at 0xBAAB01: ha_myisam::open(char const*, int, unsigned int) (ha_myisam.cc:748) ==19862== by 0x658CB9: handler::ha_open(TABLE*, char const*, int, int) (handler.cc:2744) ==19862== by 0x658840: handler::clone(char const*, st_mem_root*) (handler.cc:2658) ==19862== by 0xBAA966: ha_myisam::clone(char const*, st_mem_root*) (ha_myisam.cc:655) ==19862== by 0x86ECE2: store_temporary_table_record(THD*, TABLE*, TABLE*, char const*) (sql_show.cc:4175) ==19862== by 0x86F286: fill_global_temporary_tables(THD*, TABLE_LIST*, Item*) (sql_show.cc:4266) ==19862== by 0x87F61F: do_fill_table(THD*, TABLE_LIST*, st_join_table*) (sql_show.cc:8013) ==19862== by 0x87FA35: get_schema_tables_result(JOIN*, enum_schema_table_state) (sql_show.cc:8115) ==19862== by 0x84DC11: JOIN::prepare_result(List**) (sql_select.cc:823) ==19862== by 0x7E335B: JOIN::exec() (sql_executor.cc:116) ==19862== by 0x84E879: mysql_execute_select(THD*, st_select_lex*, bool) (sql_select.cc:1101) ==19862== by 0x84EBB4: mysql_select(THD*, TABLE_LIST*, unsigned int, List&, Item*, SQL_I_List*, SQL_I_List*, Item*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:1222) ==19862== by 0x84C884: handle_select(THD*, select_result*, unsigned long) (sql_select.cc:110) ==19862== by 0x8204D3: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5683) ==19862== by 0x81854F: mysql_execute_command(THD*) (sql_parse.cc:3005) ==19862== by 0x9F2397: sp_instr_stmt::exec_core(THD*, unsigned int*) (sp_instr.cc:953) ==19862== Address 0x15a40f58 is 1,064 bytes inside a block of size 1,168 free'd ==19862== at 0x4C2EDEB: free (vg_replace_malloc.c:530) ==19862== by 0xB2FED2: my_free (my_malloc.c:140) ==19862== by 0xB26C79: free_root (my_alloc.c:373) ==19862== by 0x815FC1: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1899) ==19862== by 0x813710: do_command(THD*) (sql_parse.cc:1053) ==19862== by 0x7D6687: do_handle_one_connection(THD*) (sql_connect.cc:1541) ==19862== by 0x7D611F: handle_one_connection (sql_connect.cc:1444) ==19862== by 0xB989B2: pfs_spawn_thread (pfs.cc:1860) ==19862== by 0x5F656F9: start_thread (pthread_create.c:333) ==19862== by 0x6B22B5C: clone (clone.S:109) ==19862== Block was alloc'd at ==19862== at 0x4C2DB8F: malloc (vg_replace_malloc.c:299) ==19862== by 0xB2FA42: my_malloc (my_malloc.c:38) ==19862== by 0xB26357: alloc_root (my_alloc.c:173) ==19862== by 0x644476: Sql_alloc::operator new(unsigned long, st_mem_root*) (sql_alloc.h:40) ==19862== by 0xBA847B: myisam_create_handler(handlerton*, TABLE_SHARE*, st_mem_root*) (ha_myisam.cc:137) ==19862== by 0x653C56: get_new_handler(TABLE_SHARE*, st_mem_root*, handlerton*) (handler.cc:476) ==19862== by 0x65876E: handler::clone(char const*, st_mem_root*) (handler.cc:2636) ==19862== by 0xBAA966: ha_myisam::clone(char const*, st_mem_root*) (ha_myisam.cc:655) ==19862== by 0x86ECE2: store_temporary_table_record(THD*, TABLE*, TABLE*, char const*) (sql_show.cc:4175) ==19862== by 0x86F286: fill_global_temporary_tables(THD*, TABLE_LIST*, Item*) (sql_show.cc:4266) ==19862== by 0x87F61F: do_fill_table(THD*, TABLE_LIST*, st_join_table*) (sql_show.cc:8013) ==19862== by 0x87FA35: get_schema_tables_result(JOIN*, enum_schema_table_state) (sql_show.cc:8115) ==19862== by 0x84DC11: JOIN::prepare_result(List**) (sql_select.cc:823) ==19862== by 0x7E335B: JOIN::exec() (sql_executor.cc:116) ==19862== by 0x84E879: mysql_execute_select(THD*, st_select_lex*, bool) (sql_select.cc:1101) ==19862== by 0x84EBB4: mysql_select(THD*, TABLE_LIST*, unsigned int, List&, Item*, SQL_I_List*, SQL_I_List*, Item*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:1222)