Bug #2708 Crash on fulltext search
Submitted: 11 Feb 2004 11:02 Modified: 15 Feb 2004 11:31
Reporter: Steven Roussey Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: MyISAM storage engine Severity:S1 (Critical)
Version:4.1 OS:Linux (RHES WS 3)
Assigned to: Sergei Golubchik CPU Architecture:Any

[11 Feb 2004 11:02] Steven Roussey
Description:
Hello,

I have tried to do some testing of fulltext indexes in v4.1. We had lots of problems when doing a REPLACE INTO (getting dumplicate errors) in 4.1.1 that don't seem to exist in the bk pull as of 10 Feb 2004. This pull however has problems with searches themselves (I believe this crash happened in 4.1.1 as well, but I was consentrating on INSERT/REPLACE testing at that time).

I will update this if I see a pattern in how things crash, or can make a repeatable test case.

So this is from the error log of an early build of 4.1.2 from 10 Feb 2004:

Version: '4.1.2-alpha-debug-log'  socket: '/tmp/mysql.sock'  port: 3306
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=1258291200
read_buffer_size=12578816
max_used_connections=25
max_connections=803
threads_connected=1
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 562007 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

thd=0x857e538
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...
Cannot determine thread, fp=0x41dc7888, backtrace may not be correct.
Stack range sanity check OK, backtrace follows:

0x814c259 handle_segfault + 455
0x400437ce _end + 934907486
0x830131e _ftb_strstr + 58
0x8301569 _ftb_climb_the_tree + 309
0x8301ab0 ft_boolean_find_relevance + 582
0x83017f7 ft_boolean_read_next + 509
0x81d5bb4 _ZN9ha_myisam7ft_readEPc + 104
0x81ca7a2 _ZN9FT_SELECT8get_nextEv + 30
0x81cd4ee _Z13find_all_keysP13st_sort_paramP10SQL_SELECTPPhP11st_io_cacheS6_S6_ + 456
0x81ccca0 _Z8filesortP3THDP8st_tableP13st_sort_fieldjP10SQL_SELECTmPm + 940
0x819431c _Z17create_sort_indexP3THDP4JOINP8st_ordermm + 582
0x81870cd _ZN4JOIN4execEv + 5017
0x81875b8 _Z12mysql_selectP3THDPPP4ItemP13st_table_listjR4ListIS1_ES2_jP8st_orderSB_S2_SB_mP13select_resultP18st_select_lex_unitP13st_sel + 592
0x8183bcb _Z13handle_selectP3THDP6st_lexP13select_result + 247
0x816106a _Z21mysql_execute_commandP3THD + 4428
0x81654a7 _Z11mysql_parseP3THDPcj + 247
0x815f11b _Z16dispatch_command19enum_server_commandP3THDPcj + 1673
0x815ea87 _Z10do_commandP3THD + 515
0x815df78 handle_one_connection + 626
0x4003e881 _end + 934887185
0x420e40c7 _end + 969119575

New value of fp=(nil) failed sanity check, terminating stack trace!
Please read http://www.mysql.com/doc/en/Using_stack_trace.html and follow instructions on how to resolve the stack trace. Resolved
stack trace is much more helpful in diagnosing the problem, so please do 
resolve it
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort...
thd->query at 0x8506768 = SELECT title,messageid,rootmessageid,approved,MATCH(title,message,search_forumid) AGAINST ('+fid87612 +(hp55 d8897 15\" monitor)' IN BOOLEAN MODE) as score,message as x FROM forums_posts_new_2 WHERE deleted = 'no'  and approved = "yes"  and MATCH (title,message,search_forumid) AGAINST ('+fid87612 +(hp55 d8897 15\" monitor)' IN BOOLEAN MODE )  order by messageid desc  limit 0,11
thd->thread_id=2391

How to repeat:
not yet.

Suggested fix:
not yet.
[11 Feb 2004 13:53] Steven Roussey
I have now found four different backtraces that result after a crash (so far). Repeating the offending queries recrashes the server, sohopefully I will be able to create some test cases that don't require multi-gigabyte files.

For the same backtrace in the previous message there is also this query causing a crash:

thd->query at 0x8521ff0 = SELECT title,messageid,rootmessageid,approved,MATCH(title,message,search_forumid) AGAINST ('+fid101333 +(\"american express\' amex)' IN BOOLEAN MODE) as score,message as x FROM forums_posts_new_3 WHERE deleted = 'no'  and approved = "yes"  and MATCH (title,message,search_forumid) AGAINST ('+fid101333 +(\"american express\' amex)' IN BOOLEAN MODE )  order by score desc  limit 0,11
thd->thread_id=1032

Stack range sanity check OK, backtrace follows:
0x814c259 handle_segfault + 455
0x400437ce _end + 934907486
0x42028811 _end + 968351393
0x420284b4 _end + 968350532
0x42029bab _end + 968356411
0x420219aa _end + 968323130
0x8300ea3 _ft2_search + 727
0x830100f _ftb_init_index_search + 295
0x8301bb5 ft_boolean_reinit_search + 17
0x81d5e6b _ZN9ha_myisam7ft_initEv + 33
0x81942ba _Z17create_sort_indexP3THDP4JOINP8st_ordermm + 484
0x81870cd _ZN4JOIN4execEv + 5017
0x81875b8 _Z12mysql_selectP3THDPPP4ItemP13st_table_listjR4ListIS1_ES2_jP8st_orderSB_S2_SB_mP13select_resultP18st_select_lex_unitP13st_sel + 592
0x8183bcb _Z13handle_selectP3THDP6st_lexP13select_result + 247
0x816106a _Z21mysql_execute_commandP3THD + 4428
0x81654a7 _Z11mysql_parseP3THDPcj + 247
0x815f11b _Z16dispatch_command19enum_server_commandP3THDPcj + 1673
0x815ea87 _Z10do_commandP3THD + 515
0x815df78 handle_one_connection + 626
0x4003e881 _end + 934887185
0x420e40c7 _end + 969119575
New value of fp=(nil) failed sanity check, terminating stack trace!
Please read http://www.mysql.com/doc/en/Using_stack_trace.html and follow instructions on how to resolve the stack trace. Resolved
stack trace is much more helpful in diagnosing the problem, so please do
resolve it
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort...thd->query at 0x851ade0 = SELECT title,messageid,rootmessageid,approved,MATCH(title,message,search_forumid) AGAINST ('+fid47207 +(\"eduard type 97\")' IN BOOLEAN MODE) as score,message as x FROM forums_posts_new_7 WHERE deleted = 'no'  and approved = "yes"  and MATCH (title,message,search_forumid) AGAINST ('+fid47207 +(\"eduard type 97\")' IN BOOLEAN MODE )  order by messageid desc  limit 0,11
thd->thread_id=190

Stack range sanity check OK, backtrace follows:
0x814c259 handle_segfault + 455
0x400437ce _end + 934907486
0x42028811 _end + 968351393
0x420284b4 _end + 968350532
0x42029bab _end + 968356411
0x420219aa _end + 968323130
0x8300ea3 _ft2_search + 727
0x830100f _ftb_init_index_search + 295
0x8301bb5 ft_boolean_reinit_search + 17
0x81d5e6b _ZN9ha_myisam7ft_initEv + 33
0x81942ba _Z17create_sort_indexP3THDP4JOINP8st_ordermm + 484
0x81870cd _ZN4JOIN4execEv + 5017
0x81875b8 _Z12mysql_selectP3THDPPP4ItemP13st_table_listjR4ListIS1_ES2_jP8st_orderSB_S2_SB_mP13select_resultP18st_select_lex_unitP13st_sel + 592
0x8183bcb _Z13handle_selectP3THDP6st_lexP13select_result + 247
0x816106a _Z21mysql_execute_commandP3THD + 4428
0x81654a7 _Z11mysql_parseP3THDPcj + 247
0x815f11b _Z16dispatch_command19enum_server_commandP3THDPcj + 1673
0x815ea87 _Z10do_commandP3THD + 515
0x815df78 handle_one_connection + 626
0x4003e881 _end + 934887185
0x420e40c7 _end + 969119575
New value of fp=(nil) failed sanity check, terminating stack trace!Please read http://www.mysql.com/doc/en/Using_stack_trace.html and follow instructions on how to resolve the stack trace. Resolvedstack trace is much more helpful in diagnosing the problem, so please do
resolve it
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort...thd->query at 0x8539c30 = SELECT title,messageid,rootmessageid,approved,MATCH(title,message,search_forumid) AGAINST ('+fid47207 +(type 97)' IN BOOLEAN MODE) as score,message as x FROM forums_posts_new_7 WHERE deleted = 'no'  and approved = "yes"  and MATCH (title,message,search_forumid) AGAINST ('+fid47207 +(type 97)' IN BOOLEAN MODE )  order by messageid desc  limit 0,11
thd->thread_id=414

sanity check OK, backtrace follows:
0x814c259 handle_segfault + 455
0x400437ce _end + 934907486
0x814690f _Z13get_lock_dataP3THDPP8st_tablejbS3_ + 51
0x8145de9 _Z17mysql_lock_tablesP3THDPP8st_tablej + 105
0x817d96a _Z11lock_tablesP3THDP13st_table_listj + 160
0x817d854 _Z20open_and_lock_tablesP3THDP13st_table_list + 112
0x816024c _Z21mysql_execute_commandP3THD + 814
0x81654a7 _Z11mysql_parseP3THDPcj + 247
0x815f11b _Z16dispatch_command19enum_server_commandP3THDPcj + 1673
0x815ea87 _Z10do_commandP3THD + 515
0x815df78 handle_one_connection + 626
0x4003e881 _end + 934887185
0x420e40c7 _end + 969119575
New value of fp=(nil) failed sanity check, terminating stack trace!
Please read http://www.mysql.com/doc/en/Using_stack_trace.html and follow instructions on how to resolve the stack trace. Resolved
stack trace is much more helpful in diagnosing the problem, so please do
resolve it
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort...
thd->query at 0x40213620  is invalid pointer

Also for the above stacktrace, this crashed query:

Some pointers may be invalid and cause the dump to abort...
thd->query at 0x85274f0 = SELECT title,messageid,rootmessageid,approved,MATCH(title,message,search_forumid) AGAINST ('+fid87612 +(gdm)' IN BOOLEAN MODE) as score,message as x FROM forums_posts_new_2 WHERE deleted = 'no'  and approved = "yes"  and MATCH (title,message,search_forumid) AGAINST ('+fid87612 +(gdm)' IN BOOLEAN MODE )  order by messageid desc  limit 0,11
thd->thread_id=16
[11 Feb 2004 15:13] Steven Roussey
Hope this debug file is usefull :
(libexec/mysqld --debug=d,info,error,query,general,where:O,/tmp/mysqld.trace --skip-networking)

for the query:

SELECT
title,messageid,rootmessageid,approved,MATCH(title,message,search_forumid)
AGAINST ('+fid101333 +(\"american express\' amex)' IN BOOLEAN MODE) as score,message as x FROM forums_posts_new_3 WHERE deleted = 'no'  and approved = "yes"  and MATCH (title,message,search_forumid) AGAINST
('+fid101333 +(\"american express\' amex)' IN BOOLEAN MODE )  order by score desc  limit 0,11

with stack trace of:

0x814c259 handle_segfault + 455
0x400437ce _end + 934907486
0x830131e _ftb_strstr + 58
0x8301569 _ftb_climb_the_tree + 309
0x8301ab0 ft_boolean_find_relevance + 582
0x83017f7 ft_boolean_read_next + 509
0x81d5bb4 _ZN9ha_myisam7ft_readEPc + 104
0x81ca7a2 _ZN9FT_SELECT8get_nextEv + 30
0x81cd4ee
_Z13find_all_keysP13st_sort_paramP10SQL_SELECTPPhP11st_io_cacheS6_S6_ +
456
0x81ccca0 _Z8filesortP3THDP8st_tableP13st_sort_fieldjP10SQL_SELECTmPm + 940 0x819431c _Z17create_sort_indexP3THDP4JOINP8st_ordermm + 582 
0x81870cd _ZN4JOIN4execEv + 5017
0x81875b8
_Z12mysql_selectP3THDPPP4ItemP13st_table_listjR4ListIS1_ES2_jP8st_orderSB_S2_SB_mP13select_resultP18st_select_lex_unitP13st_sel
+ 592
0x8183bcb _Z13handle_selectP3THDP6st_lexP13select_result + 247 
0x816106a _Z21mysql_execute_commandP3THD + 4428
0x81654a7 _Z11mysql_parseP3THDPcj + 247
0x815f11b _Z16dispatch_command19enum_server_commandP3THDPcj + 1673
0x815ea87 _Z10do_commandP3THD + 515
0x815df78 handle_one_connection + 626
0x4003e881 _end + 934887185
0x420e40c7 _end + 969119575

has debug trace file of:

my_realpath: info: executing realpath
my_stat: error: Got errno: 2 from stat
?func: info: libexec/mysqld  Ver 4.1.2-alpha-debug-log for pc-linux on i686

set_maximum_open_files: info: rlim_cur: 1024  rlim_max: 1024
set_maximum_open_files: info: rlim_cur: 4025
get_charsets_dir: info: charsets dir: '/usr/local/mysql/share/mysql/charsets/'
server_init: general: UNIX Socket is /tmp/mysql.sock
server_init: info: server started
MYSQL_LOG::init: info: log_type: 2 max_size: 0
init_io_cache: info: init_io_cache: cachesize = 8192
init_key_cache: info: key_cache_block_size: 1024
openfrm: info: i_count: 1  i_parts: 3  index: 1  n_length: 168  int_length: 6  com_length: 0
my_realpath: info: executing realpath
open_table: info: inserting table 0x84c41b0 into the cache
openfrm: info: i_count: 2  i_parts: 8  index: 1  n_length: 385  int_length: 28  com_length: 0
my_realpath: info: executing realpath
open_table: info: inserting table 0x84fbb38 into the cache
openfrm: info: i_count: 1  i_parts: 3  index: 2  n_length: 173  int_length: 6  com_length: 0
my_realpath: info: executing realpath
open_table: info: inserting table 0x84fc6a8 into the cache
mi_lock_database: info: lock_type: 0
mi_lock_database: info: lock_type: 0
mi_lock_database: info: lock_type: 0
mi_get_status: info: key_file: 1024  data_file: 0
mi_get_status: info: key_file: 2048  data_file: 352
mi_get_status: info: key_file: 3072  data_file: 459
init_read_record: info: using rr_sequential
init_io_cache: info: init_io_cache: cachesize = 16384
init_read_record: info: using rr_sequential
init_io_cache: info: init_io_cache: cachesize = 16384
acl_init: info: user table fields: 31, password length: 41
_mi_writeinfo: info: operation: 0  tot_locks: 1
init_read_record: info: using rr_sequential
init_io_cache: info: init_io_cache: cachesize = 16384
mi_lock_database: info: lock_type: 2
mi_lock_database: info: old lock: 0
mi_lock_database: info: changed: 0  w_locks: 0
mi_lock_database: info: lock_type: 2
mi_lock_database: info: old lock: 0
mi_lock_database: info: changed: 0  w_locks: 0
mi_lock_database: info: lock_type: 2
mi_lock_database: info: old lock: 0
mi_lock_database: info: changed: 0  w_locks: 0
close_thread_tables: info: thd->open_tables=0x84fc6a8
~THD(): info: freeing host
openfrm: info: i_count: 2  i_parts: 16  index: 2  n_length: 67  int_length: 105  com_length: 0
my_realpath: info: executing realpath
open_table: info: inserting table 0x84c3b60 into the cache
openfrm: info: i_count: 1  i_parts: 5  index: 1  n_length: 60  int_length: 34  com_length: 0
my_realpath: info: executing realpath
open_table: info: inserting table 0x8500570 into the cache
mi_lock_database: info: lock_type: 0
mi_lock_database: info: lock_type: 0
mi_get_status: info: key_file: 1024  data_file: 0
mi_get_status: info: key_file: 1024  data_file: 0
mi_rnext: error: Got error: -1,  errno: 137
mi_lock_database: info: lock_type: 2
mi_lock_database: info: old lock: 0
mi_lock_database: info: changed: 0  w_locks: 0
mi_lock_database: info: lock_type: 2
mi_lock_database: info: old lock: 0
mi_lock_database: info: changed: 0  w_locks: 0
close_thread_tables: info: thd->open_tables=0x8500570
~THD(): info: freeing host
openfrm: info: i_count: 1  i_parts: 3  index: 1  n_length: 19  int_length: 21  com_length: 0
my_realpath: info: executing realpath
open_table: info: inserting table 0x84c3ca8 into the cache
mi_lock_database: info: lock_type: 0
mi_get_status: info: key_file: 1024  data_file: 0
init_read_record: info: using rr_sequential
init_io_cache: info: init_io_cache: cachesize = 16384
mi_lock_database: info: lock_type: 2
mi_lock_database: info: old lock: 0
mi_lock_database: info: changed: 0  w_locks: 0
close_thread_tables: info: thd->open_tables=0x84c3ca8
~THD(): info: freeing host
my_realpath: info: executing realpath
my_realpath: error: realpath failed with errno: 2
handle_connections_sockets: general: Waiting for connections.
create_new_thread: info: creating thread 1
create_new_thread: info: Thread created
?func: info: handle_one_connection called by thread 1

?func: info: New connection received on socket (8)
?func: info: Host: localhost
?func: info: vio_read returned -1,  errno: 11
thr_alarm: info: reschedule
process_alarm: info: sig: 14  active alarms: 1
?func: info: client_character_set: 8
check_user: info: Capabilities: 239245  packet_length: 16777216  Host: 'localhost'  Login user: 'root' Priv_user: 'root'  Using password: no Access: 2097151  db: '*none*'
mysql_change_db: info: Use database: search
send_ok: info: affected_rows: 0  id: 0  status: 2  warning_count: 0
load_db_opt: error: Got error 2 on open
do_command: info: Command on socket (8) = 3 (Query)
dispatch_command: query: show databases
my_stat: error: Got errno: 2 from stat
my_message_sql: error: Message: 'Can't get stat of './presence' (Errcode: 2)'
my_stat: error: Got errno: 2 from stat
my_message_sql: error: Message: 'Can't get stat of './gis' (Errcode: 2)'
my_stat: error: Got errno: 2 from stat
my_message_sql: error: Message: 'Can't get stat of './babbler' (Errcode: 2)'
mysql_find_files: info: found: 3 files
dispatch_command: info: query ready
do_command: info: Command on socket (8) = 3 (Query)
dispatch_command: query: show tables
mysql_find_files: info: found: 12 files
dispatch_command: info: query ready
do_command: info: Command on socket (8) = 4 (Field List)
openfrm: info: i_count: 1  i_parts: 3  index: 3  n_length: 146  int_length: 9  com_length: 0
my_realpath: info: executing realpath
open_table: info: inserting table 0x8505ea8 into the cache
close_thread_tables: info: thd->open_tables=0x8505ea8
do_command: info: vio_read returned -1,  errno: 11
thr_alarm: info: reschedule
process_alarm: info: sig: 14  active alarms: 1
do_command: info: Command on socket (8) = 4 (Field List)
openfrm: info: i_count: 1  i_parts: 3  index: 3  n_length: 146  int_length: 9  com_length: 0
my_realpath: info: executing realpath
open_table: info: inserting table 0x85007c8 into the cache
close_thread_tables: info: thd->open_tables=0x85007c8
do_command: info: Command on socket (8) = 4 (Field List)
openfrm: info: i_count: 1  i_parts: 3  index: 3  n_length: 146  int_length: 9  com_length: 0
my_realpath: info: executing realpath
open_table: info: inserting table 0x8510870 into the cache
close_thread_tables: info: thd->open_tables=0x8510870
do_command: info: Command on socket (8) = 4 (Field List)
openfrm: info: i_count: 1  i_parts: 3  index: 3  n_length: 146  int_length: 9  com_length: 0
my_realpath: info: executing realpath
open_table: info: inserting table 0x8513c00 into the cache
close_thread_tables: info: thd->open_tables=0x8513c00
do_command: info: Command on socket (8) = 4 (Field List)
openfrm: info: i_count: 1  i_parts: 3  index: 3  n_length: 146  int_length: 9  com_length: 0
my_realpath: info: executing realpath
open_table: info: inserting table 0x8517250 into the cache
close_thread_tables: info: thd->open_tables=0x8517250
do_command: info: Command on socket (8) = 4 (Field List)
openfrm: info: i_count: 1  i_parts: 3  index: 3  n_length: 146  int_length: 9  com_length: 0
my_realpath: info: executing realpath
open_table: info: inserting table 0x851a8a0 into the cache
close_thread_tables: info: thd->open_tables=0x851a8a0
do_command: info: Command on socket (8) = 4 (Field List)
openfrm: info: i_count: 1  i_parts: 3  index: 3  n_length: 146  int_length: 9  com_length: 0
my_realpath: info: executing realpath
open_table: info: inserting table 0x851def0 into the cache
close_thread_tables: info: thd->open_tables=0x851def0
do_command: info: Command on socket (8) = 4 (Field List)
openfrm: info: i_count: 1  i_parts: 3  index: 3  n_length: 146  int_length: 9  com_length: 0
my_realpath: info: executing realpath
open_table: info: inserting table 0x8521540 into the cache
close_thread_tables: info: thd->open_tables=0x8521540
do_command: info: Command on socket (8) = 4 (Field List)
openfrm: info: i_count: 1  i_parts: 3  index: 3  n_length: 146  int_length: 9  com_length: 0
my_realpath: info: executing realpath
open_table: info: inserting table 0x8524b30 into the cache
close_thread_tables: info: thd->open_tables=0x8524b30
do_command: info: Command on socket (8) = 4 (Field List)
openfrm: info: i_count: 1  i_parts: 3  index: 3  n_length: 146  int_length: 9  com_length: 0
my_realpath: info: executing realpath
open_table: info: inserting table 0x8528180 into the cache
close_thread_tables: info: thd->open_tables=0x8528180
do_command: info: vio_read returned -1,  errno: 11
thr_alarm: info: reschedule
process_alarm: info: sig: 14  active alarms: 1
do_command: info: Command on socket (8) = 4 (Field List)
openfrm: info: i_count: 0  i_parts: 0  index: 1  n_length: 4  int_length: 0  com_length: 0
my_realpath: info: executing realpath
open_table: info: inserting table 0x852b770 into the cache
close_thread_tables: info: thd->open_tables=0x852b770
do_command: info: vio_read returned -1,  errno: 11
thr_alarm: info: reschedule
process_alarm: info: sig: 14  active alarms: 1
do_command: info: Command on socket (8) = 4 (Field List)
openfrm: info: i_count: 1  i_parts: 3  index: 2  n_length: 146  int_length: 9  com_length: 0
my_realpath: info: executing realpath
open_table: info: inserting table 0x852dcf8 into the cache
close_thread_tables: info: thd->open_tables=0x852dcf8
do_command: info: vio_read returned -1,  errno: 11
thr_alarm: info: reschedule
process_alarm: info: sig: 14  active alarms: 1
do_command: info: Command on socket (8) = 3 (Query)
dispatch_command: query: SELECT
title,messageid,rootmessageid,approved,MATCH(title,message,search_forumid)
AGAINST ('+fid101333 +(\"american express\' amex)' IN BOOLEAN MODE) as score,message as x FROM forums_posts_new_3 WHERE deleted = 'no'  and approved = "yes"  and MATCH (title,message,search_forumid) AGAINST
('+fid101333 +(\"american express\' amex)' IN BOOLEAN MODE )  order by score desc  limit 0,11
mi_lock_database: info: lock_type: 0
mi_get_status: info: key_file: 964029440  data_file: 1776260500

WHERE:(original) ((search.forums_posts_new_3.deleted = _latin1'no') and (search.forums_posts_new_3.approved = _latin1'yes') and (match search.forums_posts_new_3.title,search.forums_posts_new_3.message,search.forums_posts_new_3.search_forumid against (_latin1'+fid101333 +("american express\' amex)' in boolean mode)))

WHERE:(after negation elimination) ((search.forums_posts_new_3.deleted = _latin1'no') and (search.forums_posts_new_3.approved = _latin1'yes') and (match search.forums_posts_new_3.title,search.forums_posts_new_3.message,search.forums_posts_new_3.search_forumid against (_latin1'+fid101333 +("american express\' amex)' in boolean mode)))

WHERE:(after const change) ((search.forums_posts_new_3.deleted = _latin1'no') and (search.forums_posts_new_3.approved = _latin1'yes') and (match search.forums_posts_new_3.title,search.forums_posts_new_3.message,search.forums_posts_new_3.search_forumid against (_latin1'+fid101333 +("american express\' amex)' in boolean mode)))

WHERE:(after remove) ((search.forums_posts_new_3.deleted = _latin1'no') and (search.forums_posts_new_3.approved = _latin1'yes') and (match search.forums_posts_new_3.title,search.forums_posts_new_3.message,search.forums_posts_new_3.search_forumid against (_latin1'+fid101333 +("american express\' amex)' in boolean mode)))

WHERE:(forums_posts_new_3) ((search.forums_posts_new_3.deleted = _latin1'no') and (search.forums_posts_new_3.approved = _latin1'yes') and (match search.forums_posts_new_3.title,search.forums_posts_new_3.message,search.forums_posts_new_3.search_forumid against (_latin1'+fid101333 +("american express\' amex)' in boolean mode)))

Info about JOIN
forums_posts_new  type: fulltext  q_keys: 4  refs: 1  key: 2  len: 0
                  select used
                  refs: +fid101333 +("american express' amex)  
JOIN::optimize: info: Performing FULLTEXT search
JOIN::exec: info: Sorting for send_fields
_mi_prefix_search: info: key: 'fid101333'
_mi_prefix_search: info: key: 'fid101333'
_mi_prefix_search: info: key: 'fid101333'
_mi_prefix_search: info: key: 'fid101333'
_mi_prefix_search: info: key: 'express'
_mi_prefix_search: info: key: 'express'
_mi_prefix_search: info: key: 'express'
_mi_prefix_search: info: key: 'express'
_mi_prefix_search: info: key: 'amex'
_mi_prefix_search: info: key: 'amex'
_mi_prefix_search: info: key: 'amex'
_mi_prefix_search: info: key: 'amex'
_mi_prefix_search: info: key: 'american'
_mi_prefix_search: info: key: 'american'
_mi_prefix_search: info: key: 'american'
_mi_prefix_search: info: key: 'american'

Info about FILESORT
Sortorder: -(match search.forums_posts_new_3.title,search.forums_posts_new_3.message,search.forums_posts_new_3.search_forumid against (_latin1'+fid101333 +("american express\' amex)' in boolean mode))
filesort: info: sort_length: 9
init_io_cache: info: init_io_cache: cachesize = 65536
find_all_keys: info: using: ranges
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'
_mi_prefix_search: info: key: 'Amex'

I am going to try for another.
[12 Feb 2004 7:37] Sergei Golubchik
I repeated it, thanks.

Data actually do not matter at all. Query parser crashes on

   '+fid101333 +("american express\' amex)' IN BOOLEAN MODE

as you have an opening paren and a opening double quote but neither is closed.

I'll fix it for 4.1.2, thanks!
[15 Feb 2004 11:31] Sergei Golubchik
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html