Bug #57529 crash on DROP TABLE INNODB_TABLE_MONITOR
Submitted: 18 Oct 2010 15:23 Modified: 13 Jan 2011 19:34
Reporter: Mark Callaghan Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: InnoDB Plugin storage engine Severity:S2 (Serious)
Version:5.1.47 OS:Any
Assigned to: Jimmy Yang CPU Architecture:Any
Tags: Drop, innodb, innodb_table_monitor

[18 Oct 2010 15:23] Mark Callaghan
Description:
101016 13:11:21  InnoDB: Assertion failure in thread 2136176960 in file row/row0mysql.c line 3373
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.1/en/forcing-recovery.html
InnoDB: about forcing recovery.
101016 13:11:21 - mysqld got signal 6 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help diagnose
the problem, but since we have already crashed, something is definitely wrong
and this may fail.

key_buffer_size=16777216
read_buffer_size=1048576
max_used_connections=3624
max_threads=5000
threads_connected=10
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 15429352 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

thd: 0x2ab0c015ab10
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0x7f536f30 thread_stack 0x30000
/usr/libexec/mysqld(my_print_stacktrace+0x2e) [0x8b30fe]
/usr/libexec/mysqld(handle_segfault+0x33d) [0x5e1a1d]
/lib64/libpthread.so.0 [0x31b5e0de70]
/lib64/libc.so.6(gsignal+0x35) [0x31b5230155]
/lib64/libc.so.6(abort+0x110) [0x31b5231bf0]
/usr/libexec/mysqld [0x7c6e50]
/usr/libexec/mysqld [0x776bca]
/usr/libexec/mysqld(ha_delete_table(THD*, handlerton*, char const*, char const*, char const*, bool)+0x10a) [0x6d621a]
/usr/libexec/mysqld(mysql_rm_table_part2(THD*, TABLE_LIST*, bool, bool, bool, bool)+0x59b) [0x6e5feb]
/usr/libexec/mysqld(mysql_rm_table(THD*, TABLE_LIST*, char, char)+0x7e) [0x6e656e]
/usr/libexec/mysqld(mysql_execute_command(THD*, unsigned long long*)+0x1c93) [0x5f2233]
/usr/libexec/mysqld(mysql_parse(THD*, char const*, unsigned int, char const**, unsigned long long*)+0x26f) [0x5f747f]
/usr/libexec/mysqld(dispatch_command(enum_server_command, THD*, char*, unsigned int)+0xb13) [0x5f8013]
/usr/libexec/mysqld(do_command(THD*)+0x113) [0x5f8d03]
/usr/libexec/mysqld(handle_one_connection+0x7ca) [0x5e9b1a]
/lib64/libpthread.so.0 [0x31b5e062f7]
/lib64/libc.so.6(clone+0x6d) [0x31b52d1e3d]
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort...
thd->query at 0x2ab0d040e490 is an invalid pointer
thd->thread_id=383459746
thd->killed=NOT_KILLED
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains

How to repeat:
row/row0mysql.c line 3373 is "ut_error" in the code below in row_drop_table_for_mysql
        default:
                /* No other possible error returns */
                ut_error;
        }

Note that InnoDB crashes here without logging an error message. It would be nice to know the value of "err" here that is not handled in the switch statement. All calls to ut_error must be preceded by logging an error message if we are to debug it.
[20 Oct 2010 14:42] Chris Calender
Well, I was able to get it to crash on the DROP TABLE innodb_table_monitor this morning.  (I was actually just cleaning up my instance to re-test today, tried dropping the table to start from fresh, and it crashed, first statement.)

Here is the error log, so perhaps it contains some additional, useful information:

101020 10:33:32 - mysqld got exception 0xc0000005 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help diagnose
the problem, but since we have already crashed, something is definitely wrong
and this may fail.

key_buffer_size=26214400
read_buffer_size=65536
max_used_connections=42
max_threads=2000
threads_connected=1
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 677850 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

thd: 0x8f374a0
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
10033601    ha_innodb_plugin.dll!dict_load_table()[dict0load.c:1057]
100295A8    ha_innodb_plugin.dll!dict_table_get_low()[dict0dict.ic:810]
1009761C    ha_innodb_plugin.dll!row_drop_table_for_mysql()[row0mysql.c:3054]
1007E6EE    ha_innodb_plugin.dll!ha_innodb::delete_table()[ha_innodb.cc:6993]
00481CB7    mysqld.exe!handler::ha_delete_table()[handler.cc:3373]
00483593    mysqld.exe!ha_delete_table()[handler.cc:2029]
004B88E6    mysqld.exe!mysql_rm_table_part2()[sql_table.cc:2071]
004B93FA    mysqld.exe!mysql_rm_table()[sql_table.cc:1850]
0045A69D    mysqld.exe!mysql_execute_command()[sql_parse.cc:3450]
0045D3BF    mysqld.exe!mysql_parse()[sql_parse.cc:6055]
0045DE23    mysqld.exe!dispatch_command()[sql_parse.cc:1262]
0045E8B7    mysqld.exe!do_command()[sql_parse.cc:892]
0047F3F0    mysqld.exe!handle_one_connection()[sql_connect.cc:1136]
00681B3B    mysqld.exe!pthread_start()[my_winthread.c:85]
00661673    mysqld.exe!_callthreadstart()[thread.c:293]
2E302E30    
0A130031    
08E4EA60    
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort...
thd->query at 0257CDD0=drop table innodb_table_monitor
thd->thread_id=43
thd->killed=NOT_KILLED
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.
[22 Dec 2010 21:29] Bugs System
Pushed into mysql-trunk 5.6.1 (revid:alexander.nozdrin@oracle.com-20101222212842-y0t3ibtd32wd9qaw) (version source revid:alexander.nozdrin@oracle.com-20101222212842-y0t3ibtd32wd9qaw) (merge vers: 5.6.1) (pib:24)