Adding Fulltext Index Crashes MySQL
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Percona Server moved to https://jira.percona.com/projects/PS |
New
|
Undecided
|
Unassigned |
Bug Description
This happens in Percona server 5.6 and 5.7 every version.
Steps to reproduce:
* Have an existing table with data in it. In our case we have a table with approximately 150K rows. (details below)
* Execute alter statement to add a fulltext index. Doesn't matter if it's on a single column or multiple columns, every iteration fails.
* Receive the following error immediately ERROR 2013 (HY000): Lost connection to MySQL server during query
At this point the mysqld process is ended and does not restart.
Please note (and this is important), this only crashes the process if there is a decent amount of data in the table. I am able to create a copy of the table structure only, add the index, then insert the data into the new table, drop the old, and rename the new. This only crashes mysql if I attempt to add the index to a table with data. I tested this copy method at different row numbers. With one record in the table, it works fine. When I added 100 records it crashed.
Found a similar bug report which was closed due to no activity. So I am opening this new report. Reference https:/
TABLE INFO:
CREATE TABLE `video` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`videoservice_id` int(11) NOT NULL,
`created` datetime DEFAULT NULL,
`title` varchar(255) DEFAULT NULL,
`description` varchar(1024) DEFAULT NULL,
`youtubeid` varchar(255) DEFAULT NULL,
`channelid` varchar(255) DEFAULT NULL,
`channeltitle` varchar(255) DEFAULT NULL,
`lifetimeviews` int(11) unsigned NOT NULL DEFAULT '0',
`reviewneeded` tinyint(1) DEFAULT NULL,
`updated` datetime DEFAULT NULL,
`exclude` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `fk_video_
KEY `exclude` (`exclude`),
KEY `youtubeid` (`youtubeid`),
KEY `title` (`title`),
) ENGINE=InnoDB AUTO_INCREMENT=
ALTER COMMAND:
ALTER TABLE video ADD FULLTEXT KEY `titleDescripti
ERROR DUMP (this particular dump is Percona XtraDB Cluster, but the same behavior occurs on the standard Percona server as well):
2016-08-19 14:59:28 0x7f6995620700 InnoDB: Assertion failure in thread 140091454523136 in file row0merge.cc line 1009
InnoDB: Failing assertion: b == &block[0] + buf->total_size
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.
18:59:28 UTC - 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.
Attempting to collect some information that could help diagnose the problem.
As this is a crash and something is definitely wrong, the information
collection process might fail.
Please help us make Percona XtraDB Cluster better by reporting any
bugs at https:/
key_buffer_
read_buffer_
max_used_
max_threads=501
thread_count=4
connection_count=2
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_
Hope that's ok; if not, decrease some variables in the equation.
Thread pointer: 0x0
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 = 0 thread_stack 0x40000
/usr/sbin/
/usr/sbin/
/lib64/
/lib64/
/lib64/
/usr/sbin/
/usr/sbin/
/usr/sbin/
/lib64/
/lib64/
You may download the Percona XtraDB Cluster operations manual by visiting
http://
in the manual which will help you identify the cause of the crash.
2016-08-
2016-08-
2016-08-
Did some more testing. This may be a character issue. When I do the create copy, insert 100 rows method, and update the title and description to random values (using RAND()), then apply the index it works. This data is populated from YouTube video API, so several titles and descriptions have goofy characters. I can provide sample data if needed.