Description:
Performing a simple query (see next) the server crash, It was restarted by mysqld_safe, but still crash again.
This issue happen only the following architecture:
machines (http://www.dell.com/content/products/productdetails.aspx/pedge_2950?c=us&cs=28&l=en&s=dfb)
32 GB RAM
2 quad core (8 CPU)
6 HD 15K rpm
Raid 10 (300gb x disk = 900gb tt)
Read Hat 5.3 ENT
and it happen ONLY with all the 5.1.34 version 5.4 works fine and 5.1.31 as well.
I was trying to reproduce the error on a 32bit machine but there it works fine as well.
The following is the error coming from the server mysql on the error log
len 224; hex b80862aeaa2a0000238216afaa2a00000000000000000000000000000000000003000000000000000100000000000000000000000000000006000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000834451070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e11177000000000400000000000000b8d862aeaa2a0000000000000000000000000000000000000000000000000000; asc b * # * DQ ` w b * ;TRANSACTION 0 3840, ACTIVE 0 sec, process no 22847, OS thread id 1157929280 unlock_row, thread declared inside InnoDB 498
mysql tables in use 2, locked 1
3 lock struct(s), heap size 368, 1 row lock(s)
MySQL thread id 1, query id 9 localhost root Sending data
SELECT item_t0.PK FROM catalogversions item_t0 WHERE (EXISTS (SELECT item_t1.PK FROM jobs item_t1 WHERE ( item_t1.p_sourceversion = item_t0.PK ) AND (item_t1.TypePkString IN(23088202315827552, 23088202315822256, 23088202315827360,23088202315827488, 23088202315821984) ))) AND (item_t0.TypePkString IN (23088202315822928,23088202315820656)) ORDER BY item_t0.p_version ASC
090521 14:05:33 InnoDB: Assertion failure in thread 1157929280 in file btr/btr0pcur.c line 217
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.
090521 14:05:33 - mysqld got signal 11 ;
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=52428800
read_buffer_size=131072
max_used_connections=1
max_threads=100
threads_connected=1
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 3341818 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
thd: 0x2ab0766675d0
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 = 0x45049118 thread_stack 0x20000
/usr/local/mysql/bin/mysqld(my_print_stacktrace+0x20) [0xa03cb4]
/usr/local/mysql/bin/mysqld(handle_segfault+0x368) [0x60026c]
/lib64/libpthread.so.0 [0x372d80e4c0]
/usr/local/mysql/bin/mysqld(btr_pcur_restore_position+0x81) [0x971297]
/usr/local/mysql/bin/mysqld(row_unlock_for_mysql+0x168) [0x913a20]
/usr/local/mysql/bin/mysqld(ha_innobase::unlock_row()+0x57) [0x833beb]
/usr/local/mysql/bin/mysqld [0x68d618]
/usr/local/mysql/bin/mysqld(sub_select(JOIN*, st_join_table*, bool)+0xae) [0x68d2a6]
/usr/local/mysql/bin/mysqld [0x68ce0b]
/usr/local/mysql/bin/mysqld(JOIN::exec()+0x1990) [0x6877dc]
/usr/local/mysql/bin/mysqld(subselect_single_select_engine::exec()+0x26d) [0x59e0dd]
/usr/local/mysql/bin/mysqld(Item_subselect::exec()+0x42) [0x59d82e]
/usr/local/mysql/bin/mysqld(Item_exists_subselect::val_bool()+0xb5) [0x59f3cd]
/usr/local/mysql/bin/mysqld(Item_cond_and::val_int()+0x40) [0x571864]
/usr/local/mysql/bin/mysqld [0x73bc63]
/usr/local/mysql/bin/mysqld(filesort(THD*, st_table*, st_sort_field*, unsigned int, SQL_SELECT*, unsigned long long, bool, unsigned long long*)+0x966) [0x73a32e]
/usr/local/mysql/bin/mysqld [0x684553]
/usr/local/mysql/bin/mysqld(JOIN::exec()+0x185a) [0x6876a6]
/usr/local/mysql/bin/mysqld(mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*)+0x18b) [0x66bedf]
/usr/local/mysql/bin/mysqld(handle_select(THD*, st_lex*, select_result*, unsigned long)+0x16c) [0x69481c]
/usr/local/mysql/bin/mysqld [0x616470]
/usr/local/mysql/bin/mysqld(mysql_execute_command(THD*)+0x4a73) [0x6106c3]
/usr/local/mysql/bin/mysqld(mysql_parse(THD*, char const*, unsigned int, char const**)+0x20a) [0x616a06]
/usr/local/mysql/bin/mysqld(dispatch_command(enum_server_command, THD*, char*, unsigned int)+0x133f) [0x60b0f9]
/usr/local/mysql/bin/mysqld(do_command(THD*)+0x114) [0x609db6]
/usr/local/mysql/bin/mysqld(handle_one_connection+0xd20) [0x60516c]
/lib64/libpthread.so.0 [0x372d806367]
/lib64/libc.so.6(clone+0x6d) [0x372ccd30ad]
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort...
thd->query at 0x2ab0766c0af0 is an invalid pointer
thd->thread_id=1
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.
How to repeat:
Create a db on mysql instance based on one of the following
(http://www.dell.com/content/products/productdetails.aspx/pedge_2950?c=us&cs=28&l=en&s=dfb)
32 GB RAM
2 quad core (8 CPU)
6 HD 15K rpm
Raid 10 (300gb x disk = 900gb tt)
Read Hat 5.3 ENT
mysql-5.1.34-linux-x86_64-icc-glibc23
mysql-advanced-gpl-5.1.34-linux-x86_64-icc-glibc23
Load the attached files...
mysql -u -p
use <dbcreated>
run the command :
SELECT item_t0.PK FROM catalogversions item_t0 WHERE (EXISTS (SELECT item_t1.PK FROM jobs item_t1 WHERE ( item_t1.p_sourceversion = item_t0.PK ) AND (item_t1.TypePkString IN(23088202315827552, 23088202315822256, 23088202315827360,23088202315827488, 23088202315821984) ))) AND (item_t0.TypePkString IN (23088202315822928,23088202315820656)) ORDER BY item_t0.p_version ASC;
!!BANG!!!