XAMPP 的 MariaDB 在尝试为大型 table 的列添加全文搜索时挂起

MariaDB of XAMPP hanging when trying to add fulltext search for a large table's column

XAMPP 5.6.15 Windows 即 运行 10.1.9-MariaDB。我有一个 table,InnoDB,具有大量记录和大小,49888 条记录和 245 MiB 大小。它在一列中的主要大小包含名为 tafText 的文本。

使用 PHPMyAdmin,我尝试在该列上设置全文搜索。但是,mysqld挂了,数据库服务器顶了:

以下是错误发生后生成的错误日志副本:

    2016-10-18 20:49:22 13360 [Note] InnoDB: Online DDL : Start
2016-10-18 20:49:22 13360 [Note] InnoDB: Online DDL : Start reading clustered index of the table and create temporary files
2016-10-18 20:49:22 1d78  InnoDB: Assertion failure in thread 7544 in file row0merge.cc line 892
InnoDB: Failing assertion: b < &block[srv_sort_buf_size]
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.6/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
161018 20:49:22 [ERROR] mysqld got exception 0x80000003 ;
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.

To report this bug, see http://kb.askmonty.org/en/reporting-bugs

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.

Server version: 10.1.9-MariaDB
key_buffer_size=16777216
read_buffer_size=262144
max_used_connections=2
max_threads=1001
thread_count=2
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 787099 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x0x0
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...
mysqld.exe!my_parameter_handler()
mysqld.exe!my_mb_ctype_mb()
mysqld.exe!?set_charset@String@@QAEXPBUcharset_info_st@@@Z()
KERNEL32.DLL!BaseThreadInitThunk()
ntdll.dll!RtlSubscribeWnfStateChangeNotification()
ntdll.dll!RtlSubscribeWnfStateChangeNotification()
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.

我的 mysql 设置有什么问题导致此操作失败?

以下是my.ini中InnoDB相关设置的副本:

# Comment the following if you are using InnoDB tables
#skip-innodb
innodb_data_home_dir = "C:/xampp-3/mysql/data"
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = "C:/xampp-3/mysql/data"
#innodb_log_arch_dir = "C:/xampp-3/mysql/data"
## You can set .._buffer_pool_size up to 50 - 80 %
## of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 125M
## Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

使用 google 很容易找到,如果您输入 "InnoDB: Failing assertion: b < &block[srv_sort_buf_size]" :)

此错误已在 https://jira.mariadb.org/browse/MDEV-9129 中报告,已在 MariaDB 10.1.10 中修复。你有10.1.9,所以没有固定。