| Bug #36074 | Long prefix index on TEXT column crash the server (InnoDB only) | ||
|---|---|---|---|
| Submitted: | 15 Apr 2008 3:45 | Modified: | 17 Apr 2008 5:29 |
| Reporter: | Yuan WANG | Email Updates: | |
| Status: | Can't repeat | Impact on me: | |
| Category: | MySQL Server: InnoDB storage engine | Severity: | S1 (Critical) |
| Version: | 5.0.60-debug-log | OS: | Linux (2.6.22-14-generic) |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | crash, innodb, Prefix index | ||
[15 Apr 2008 6:42]
Valeriy Kravchuk
Thank you for a problem report. Is it 32-bit or 64-bit Linux? As you built from sources (I assume), please, provide exact ./configure command line used and gcc version useed.
I can not repeat this with MySQL binaries of 5.0.58 on 32-bit Windows, for example:
C:\Program Files\MySQL\MySQL Server 5.1\bin>mysql -uroot -proot test -P3308
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.0.58-enterprise-gpl-nt MySQL Enterprise Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> drop table t;
Query OK, 0 rows affected (0.45 sec)
mysql> create table t(a TEXT, b int, index idx_t_a(a(400))) engine = innodb;
Query OK, 0 rows affected (0.09 sec)
mysql> insert into t
-> values('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 1);
Query OK, 1 row affected (0.05 sec)
So, this is either a recent regression or build/platform related problem.
[16 Apr 2008 10:55]
Yuan WANG
I did a more careful test and found that if I create the table in mysql 5.0.44, it will crash. Then open the same data file in mysql 5.0.60 and insert it will also crash. However, if I create the table in 5.0.60 and insert in 5.0.60, it's OK. So for current version of mysql this bug doesn't exist. I'm sorry for my mistake.

Description: Long prefix index on TEXT column crash the server. This bug affects InnoDB only, with MyISAM table is OK. How to repeat: mysql> create table t(a TEXT, b int, index idx_t_a(a(400))) engine = innodb; mysql> insert into t values('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 1); ERROR 2013 (HY000): Lost connection to MySQL server during query Suggested fix: Prevent the server from crashing.