Index add causes innodb assertion failure
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Percona-XtraDB |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Since moving from 5.1.36 xtradb 5 to 5.1.43, xtradb 9.1, we have had regular mysql segfaults during index builds. This doesn't happen every time, but has happened 3 different times on 2 different servers. (identical server builds).
Each time, rebuilding the table via dump from a replica is required to fix the problem.
100409 9:20:56 [ERROR] Table la_management_
100409 9:24:12 InnoDB: Assertion failure in thread 1269074256 in file handler/
InnoDB: Failing assertion: index
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://
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://
InnoDB: about forcing recovery.
100409 9:24:12 - 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_
read_buffer_
max_used_
max_threads=2000
threads_
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
thd: 0xa6051f0
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 = 0x4ba48100 thread_stack 0x20000
/usr/local/
/usr/local/
/lib64/
/lib64/
/lib64/
/usr/local/
/usr/local/
/usr/local/
/usr/local/
/usr/local/
/usr/local/
/usr/local/
/usr/local/
/usr/local/
/usr/local/
/usr/local/
/usr/local/
/usr/local/
/usr/local/
/usr/local/
/lib64/
/lib64/
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort...
thd->query at 0x7f36f13488b0 is an invalid pointer
thd->thread_id=2628
thd->killed=
The manual page at http://
information that should help you find out what is causing the crash.
100409 09:24:13 mysqld_safe Number of processes running now: 0
Linux 2.6.24-25-generic #1 SMP Tue Oct 20 06:49:12 UTC 2009 x86_64 GNU/Linux
DISTRIB_ID=Ubuntu
DISTRIB_
DISTRIB_
DISTRIB_
Server version: 5.1.43-log Percona SQL Server (GPL), XtraDB 9.1, Revision 59
[mysqld]
basedir=
key_buffer = 128M
max_allowed_packet = 16M
thread_stack = 128K
thread_cache_size = 2048
table_cache = 4096
sort_buffer = 16M
join_buffer_size = 2M
read_buffer_size = 10M
read_rnd_
max_connections = 2000
max_allowed_packet = 32M
max_connect_errors = 99999999
log_slow_queries = /var/log/
long_query_time = 1
log-queries-
log_slave_updates
log_bin = /var/log/
expire_logs_days = 10
max_binlog_size = 100M
innodb_
innodb_
innodb_
innodb_
innodb_
innodb_
innodb_
innodb_
innodb_
innodb_
innodb_
innodb_
innodb_
innodb_
innodb_
sync_binlog=1
innodb_file_format = barracuda
innodb_io_capacity = 4000
innodb_support_xa = false
innodb_
innodb_
innodb_
innodb_
innodb_
server-id = 116
auto_increment_
auto_increment_
user=mysql
group=mysql
[mysql.server]
user=mysql
basedir=
datadir=
It seems that simply the index which mysqld wants to use by "its name"(not id) is not found in InnoDB.
There seems to be some inconsistency between .frm file and InnoDB files.
From only information here, I cannot specify where the inconsistency come from.
(I cannot judge whether it is bug or not..)