Bug #35045 Innodb crash in row_prebuilt_free row/row0mysql.c line 681
Submitted: 4 Mar 2008 17:34 Modified: 5 Jun 2009 18:17
Reporter: Philip Stoev Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S3 (Non-critical)
Version:6.0-falcon-team OS:Any
Assigned to: Philip Stoev CPU Architecture:Any
Tags: simpler_testcase_needed, v6

[4 Mar 2008 17:34] Philip Stoev
Description:
When executing a concurrent workload which involves creating partitioned tables, innodb crashes as follows:

#0  0x00110402 in __kernel_vsyscall ()
#1  0x00bdc617 in pthread_kill () from /lib/libpthread.so.0
#2  0x0842ba5c in write_core (sig=11) at stacktrace.c:240
#3  0x082912a6 in handle_segfault (sig=11) at mysqld.cc:2313
#4  <signal handler called>
#5  0x08605bf6 in row_prebuilt_free (prebuilt=0xb6fed068) at row/row0mysql.c:681
#6  0x085ab608 in ha_innobase::close (this=0xa2b9800) at handler/ha_innodb.cc:2463
#7  0x083c2492 in ha_partition::close (this=0xa2b9240) at ha_partition.cc:2412
#8  0x082f8fdd in closefrm (table=0xa1a9a98, free_share=true) at table.cc:2042
#9  0x082e7a1a in intern_close_table (table=0xa1a9a98) at sql_base.cc:827
#10 0x082e7aba in free_cache_entry (table=0xa1a9a98) at sql_base.cc:849
#11 0x086c7572 in hash_delete (hash=0x89f3620, record=0xa1a9a98 "`╟\033\n@\222+\n") at hash.c:529
#12 0x082e66a7 in unlink_open_table (thd=0xa1e2808, find=0xa1a9a98, unlock=false) at sql_base.cc:2105
#13 0x082e71ae in drop_open_table (thd=0xa1e2808, table=0xa1a9a98, db_name=0xa211d50 "test", table_name=0xa211b38 "alter2") at sql_base.cc:2152
#14 0x0832e040 in select_create::abort (this=0xa213320) at sql_insert.cc:3732
#15 0x0832aa49 in handle_select (thd=0xa1e2808, lex=0xa1e356c, result=0xa213320, setup_tables_done_option=0) at sql_select.cc:288
#16 0x082a2393 in mysql_execute_command (thd=0xa1e2808) at sql_parse.cc:2210
#17 0x082a9e5e in mysql_parse (thd=0xa1e2808,
    inBuf=0xa211a28 "CREATE TABLE alter2 ENGINE = InnoDB PARTITION BY HASH(t1_autoinc) PARTITIONS 2 SELECT * FROM inter1", length=99,
    found_semicolon=0xa9ace280) at sql_parse.cc:5410
#18 0x082aa871 in dispatch_command (command=COM_QUERY, thd=0xa1e2808,
    packet=0xa207461 "CREATE TABLE alter2 ENGINE = InnoDB PARTITION BY HASH(t1_autoinc) PARTITIONS 2 SELECT * FROM inter1", packet_length=99)
    at sql_parse.cc:921
#19 0x082ab9f7 in do_command (thd=0xa1e2808) at sql_parse.cc:697
#20 0x08299d21 in handle_one_connection (arg=0xa1e2808) at sql_connect.cc:1146
#21 0x00bd750b in start_thread () from /lib/libpthread.so.0
#22 0x00b18b2e in clone () from /lib/libc.so.6

How to repeat:
Simplifed test will hopefully come shortly.
[4 Mar 2008 17:38] Heikki Tuuri
I guess this is the assertion failure "InnoDB: Trying to free a corrupt table handle"
[4 Mar 2008 17:41] Philip Stoev
Yes, here is what the log says:

InnoDB: Error: trying to free a corrupt
InnoDB: table handle. Magic n 1, magic n2 78540783, table name080304
[23 May 2008 21:06] Calvin Sun
Philip,

Where is the test case to reproduce the crash? Thanks!
[22 Jun 2008 11:57] Philip Stoev
Calvin, unfortunately I am unable to repeat this crash. The test that previously caused this crash now deadlocks in the server itself. I will keep trying.
[5 Jun 2009 18:17] Philip Stoev
Unfortunately the original issue is no longer repeatable.