Bug #11513 "fulltext" test suite failure
Submitted: 22 Jun 2005 16:36 Modified: 26 Jan 2007 10:46
Reporter: Lenz Grimmer Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: FULLTEXT search Severity:S3 (Non-critical)
Version:4.1 OS:Linux (SUSE Linux 9.3/x86)
Assigned to: CPU Architecture:Any

[22 Jun 2005 16:36] Lenz Grimmer
Description:
This might be a compiler/OS specific problem, as I have not seen it on any other build platform. When compiling 4.1 or 5.0 with BUILD/compile dist on SUSE Linux 9.3 (gcc 3.3.5), the "fulltext" test fails with the following diff (as noticed on 5.0):

TEST                            RESULT
-------------------------------------------------------
fulltext                       [ fail ]

Errors are (from /home/lenz/my/mysql-5.0-build/mysql-test/var/log/mysqltest-time) :
/home/lenz/my/mysql-5.0-build/client/.libs/mysqltest: At line 341: Result content mismatch
(the last lines may be the most important ones)
Below are the diffs between actual and expected results:
-------------------------------------------------------
*** r/fulltext.result   2005-06-21 12:32:19.000000000 +0300
--- r/fulltext.reject   2005-06-22 19:32:45.000000000 +0300
***************
*** 11,18 ****
  t1    1       a       2       b       NULL    NULL    NULL    NULL    YES     FULLTEXT
  select * from t1 where MATCH(a,b) AGAINST ("collections");
  a     b
- Only MyISAM tables    support collections
  Full-text indexes     are called collections
  explain extended select * from t1 where MATCH(a,b) AGAINST ("collections");
  id    select_type     table   type    possible_keys   key     key_len ref     rows    Extra
  1     SIMPLE  t1      fulltext        a       a       0               1       Using where
--- 11,18 ----
  t1    1       a       2       b       NULL    NULL    NULL    NULL    YES     FULLTEXT
  select * from t1 where MATCH(a,b) AGAINST ("collections");
  a     b
  Full-text indexes     are called collections
+ Only MyISAM tables    support collections
  explain extended select * from t1 where MATCH(a,b) AGAINST ("collections");
  id    select_type     table   type    possible_keys   key     key_len ref     rows    Extra
  1     SIMPLE  t1      fulltext        a       a       0               1       Using where
***************
*** 166,173 ****
  Function MATCH ... AGAINST()  is used to do a search
  select * from t1 where MATCH(a,b) AGAINST ("collections") UNION ALL select * from t1 where MATCH(a,b) AGAINST ("indexes");
  a     b
- Only MyISAM tables    support collections
  Full-text indexes     are called collections
  Full-text indexes     are called collections
  delete from t1 where a like "MySQL%";
  update t1 set a='some test foobar' where MATCH a,b AGAINST ('model');
--- 166,173 ----
  Function MATCH ... AGAINST()  is used to do a search
  select * from t1 where MATCH(a,b) AGAINST ("collections") UNION ALL select * from t1 where MATCH(a,b) AGAINST ("indexes");
  a     b
  Full-text indexes     are called collections
+ Only MyISAM tables    support collections
  Full-text indexes     are called collections
  delete from t1 where a like "MySQL%";
  update t1 set a='some test foobar' where MATCH a,b AGAINST ('model');
***************
*** 369,375 ****
  t     collation(t)
  SELECT t, collation(t),FORMAT(MATCH t AGAINST ('Osnabruck'),6) FROM t1 WHERE MATCH t AGAINST ('Osnabruck');
  t     collation(t)    FORMAT(MATCH t AGAINST ('Osnabruck'),6)
! aus Osnabrck  utf8_general_ci 1.591140
  alter table t1 modify t varchar(200) collate latin1_german2_ci not null;
  Warnings:
  Warning       1265    Data truncated for column 't' at row 3
--- 369,375 ----
  t     collation(t)
  SELECT t, collation(t),FORMAT(MATCH t AGAINST ('Osnabruck'),6) FROM t1 WHERE MATCH t AGAINST ('Osnabruck');
  t     collation(t)    FORMAT(MATCH t AGAINST ('Osnabruck'),6)
! aus Osnabrck  utf8_general_ci 0.000000
  alter table t1 modify t varchar(200) collate latin1_german2_ci not null;
  Warnings:
  Warning       1265    Data truncated for column 't' at row 3
-------------------------------------------------------

How to repeat:
Compile using BUILD/compile-dist on SUSE Linux 9.3 and run "mysql-test-run fulltext"
[15 Jul 2005 7:31] SREENIDISH C
I am also facing the same issue with mysql-test. Following four tests are failed: fulltest, fulltext_cache, fulltext_left_join and fulltext_multi. 
The environment  info is:
MySQL version: 4.1.12
OS: SuSE 9.1 GNU/Linux 2.6.4-52 on i686

Could someone throw light on this issue?
The excerpt from resultant log after the test is added below:

foreign_key                    [ pass ]
fulltext                       [ fail ]

Errors are (from /opt/mysql41/src/mysql-test/var/log/mysqltest-time) :
/opt/mysql41/src/client/mysqltest: At line 341: Result content mismatch
(the last lines may be the most important ones)
Below are the diffs between actual and expected results:
-------------------------------------------------------
*** r/fulltext.result   2005-06-02 07:22:35.000000000 +0300
--- r/fulltext.reject   2005-07-14 22:27:47.417713360 +0300
***************
*** 11,18 ****
  t1    1       a       2       b       NULL    NULL    NULL    NULL    YES     FULLTEXT
  select * from t1 where MATCH(a,b) AGAINST ("collections");
  a     b
- Only MyISAM tables    support collections
  Full-text indexes     are called collections
  explain extended select * from t1 where MATCH(a,b) AGAINST ("collections");
  id    select_type     table   type    possible_keys   key     key_len ref     rows    Extra
  1     SIMPLE  t1      fulltext        a       a       0               1       Using where
--- 11,18 ----
  t1    1       a       2       b       NULL    NULL    NULL    NULL    YES     FULLTEXT
 select * from t1 where MATCH(a,b) AGAINST ("collections");
  a     b
  Full-text indexes     are called collections
+ Only MyISAM tables    support collections
  explain extended select * from t1 where MATCH(a,b) AGAINST ("collections");
  id    select_type     table   type    possible_keys   key     key_len ref     rows    Extra
  1     SIMPLE  t1      fulltext        a       a       0               1       Using where
***************
*** 165,172 ****
  Function MATCH ... AGAINST()  is used to do a search
  select * from t1 where MATCH(a,b) AGAINST ("collections") UNION ALL select * from t1 where MATCH(a,b) AGAINST ("indexes");
  a     b
- Only MyISAM tables    support collections
  Full-text indexes     are called collections
  Full-text indexes     are called collections
  delete from t1 where a like "MySQL%";
  update t1 set a='some test foobar' where MATCH a,b AGAINST ('model');
--- 165,172 ----
  Function MATCH ... AGAINST()  is used to do a search
  select * from t1 where MATCH(a,b) AGAINST ("collections") UNION ALL select * from t1 where MATCH(a,b) AGAINST ("indexes");
  a     b
  Full-text indexes     are called collections
+ Only MyISAM tables    support collections
  Full-text indexes     are called collections
  delete from t1 where a like "MySQL%";
  update t1 set a='some test foobar' where MATCH a,b AGAINST ('model');
***************
*** 368,374 ****
  t     collation(t)
  SELECT t, collation(t),FORMAT(MATCH t AGAINST ('Osnabruck'),6) FROM t1 WHERE MATCH t AGAINST ('Osnabruck');
  t     collation(t)    FORMAT(MATCH t AGAINST ('Osnabruck'),6)
! aus Osnabrück utf8_general_ci 1.591140
  alter table t1 modify t varchar(200) collate latin1_german2_ci not null;
  Warnings:
  Warning       1265    Data truncated for column 't' at row 3
--- 368,374 ----
  t     collation(t)
  SELECT t, collation(t),FORMAT(MATCH t AGAINST ('Osnabruck'),6) FROM t1 WHERE MATCH t AGAINST ('Osnabruck');
  t     collation(t)    FORMAT(MATCH t AGAINST ('Osnabruck'),6)
! aus Osnabrück utf8_general_ci 0.000000
  alter table t1 modify t varchar(200) collate latin1_german2_ci not null;
  Warnings:
  Warning       1265    Data truncated for column 't' at row 3
-------------------------------------------------------
Please follow the instructions outlined at
http://www.mysql.com/doc/en/Reporting_mysqltest_bugs.html
to find the reason to this problem and how to report this.

Ending Tests
Shutting-down MySQL daemon

Master shutdown finished
Slave shutdown finished
Resuming Tests

fulltext2                      [ pass ]
fulltext_cache                 [ fail ]

Errors are (from /opt/mysql41/src/mysql-test/var/log/mysqltest-time) :
/opt/mysql41/src/client/mysqltest: At line 45: Result content mismatch
(the last lines may be the most important ones)
Below are the diffs between actual and expected results:
-------------------------------------------------------
*** r/fulltext_cache.result     2005-06-02 07:22:35.000000000 +0300
--- r/fulltext_cache.reject     2005-07-14 22:27:55.093546456 +0300
***************
*** 24,30 ****
  SELECT t1.q, t2.item, t2.id, round(MATCH t2.item AGAINST ('sushi'),6)
  as x FROM t1, t2 WHERE (t2.id2 = t1.id) ORDER BY x DESC,t2.id;
  q     item    id      x
! aaaaaaaaa dsaass de   sushi   1       1.923787
  aaaaaaaaa dsaass de   Bolo de Chocolate       2       0.000000
  aaaaaaaaa dsaass de   Feijoada        3       0.000000
  aaaaaaaaa dsaass de   Mousse de Chocolate     4       0.000000
--- 24,30 ----
  SELECT t1.q, t2.item, t2.id, round(MATCH t2.item AGAINST ('sushi'),6)
  as x FROM t1, t2 WHERE (t2.id2 = t1.id) ORDER BY x DESC,t2.id;
  q     item    id      x
! aaaaaaaaa dsaass de   sushi   1       0.000000
  aaaaaaaaa dsaass de   Bolo de Chocolate       2       0.000000
  aaaaaaaaa dsaass de   Feijoada        3       0.000000
  aaaaaaaaa dsaass de   Mousse de Chocolate     4       0.000000
***************
*** 46,52 ****
  SELECT t1.q, t2.item, t2.id, round(MATCH t2.item AGAINST ('sushi'),6)
  as x FROM t2, t1 WHERE (t2.id2 = t1.id) ORDER BY x DESC,t2.id;
  q     item    id      x
! aaaaaaaaa dsaass de   sushi   1       1.923787
  aaaaaaaaa dsaass de   Bolo de Chocolate       2       0.000000
  aaaaaaaaa dsaass de   Feijoada        3       0.000000
  aaaaaaaaa dsaass de   Mousse de Chocolate     4       0.000000
--- 46,52 ----
  SELECT t1.q, t2.item, t2.id, round(MATCH t2.item AGAINST ('sushi'),6)
  as x FROM t2, t1 WHERE (t2.id2 = t1.id) ORDER BY x DESC,t2.id;
  q     item    id      x
! aaaaaaaaa dsaass de   sushi   1       0.000000
  aaaaaaaaa dsaass de   Bolo de Chocolate       2       0.000000
  aaaaaaaaa dsaass de   Feijoada        3       0.000000
  aaaaaaaaa dsaass de   Mousse de Chocolate     4       0.000000
-------------------------------------------------------
Please follow the instructions outlined at
http://www.mysql.com/doc/en/Reporting_mysqltest_bugs.html
to find the reason to this problem and how to report this.

Ending Tests
Shutting-down MySQL daemon

Master shutdown finished
Slave shutdown finished
Resuming Tests

fulltext_distinct              [ pass ]
fulltext_left_join             [ fail ]

Errors are (from /opt/comps/mysql41/src/mysql-test/var/log/mysqltest-time) :
/opt/mysql41/src/client/mysqltest: At line 48: Result content mismatch
(the last lines may be the most important ones)
Below are the diffs between actual and expected results:
-------------------------------------------------------
*** r/fulltext_left_join.result 2005-06-02 07:22:35.000000000 +0300
--- r/fulltext_left_join.reject 2005-07-14 22:28:00.335749520 +0300
***************
*** 21,27 ****
  round(match(t1.texte,t1.sujet,t1.motsclefs) against('droit'),5)
  0.00000
  0.00000
! 0.67003
  0.00000
  select match(t1.texte,t1.sujet,t1.motsclefs) against('droit' IN BOOLEAN MODE)
  from t1 left join t2 on t2.id=t1.id;
--- 21,27 ----
  round(match(t1.texte,t1.sujet,t1.motsclefs) against('droit'),5)
  0.00000
  0.00000
! 0.00000
  0.00000
  select match(t1.texte,t1.sujet,t1.motsclefs) against('droit' IN BOOLEAN MODE)
  from t1 left join t2 on t2.id=t1.id;
-------------------------------------------------------
Please follow the instructions outlined at
http://www.mysql.com/doc/en/Reporting_mysqltest_bugs.html
to find the reason to this problem and how to report this.

Ending Tests
Shutting-down MySQL daemon

Master shutdown finished
Slave shutdown finished
Resuming Tests

fulltext_multi                 [ fail ]

Errors are (from /opt/mysql41/src/mysql-test/var/log/mysqltest-time) :
/opt/mysql41/src/client/mysqltest: At line 24: Result content mismatch
(the last lines may be the most important ones)
Below are the diffs between actual and expected results:
-------------------------------------------------------
*** r/fulltext_multi.result     2005-06-02 07:22:35.000000000 +0300
--- r/fulltext_multi.reject     2005-07-14 22:28:06.465817608 +0300
***************
*** 13,19 ****
  INSERT INTO t1 VALUES (3,'qpwoei','zmxnvb');
  SELECT a, round(MATCH  b  AGAINST ('lala lkjh'),5) FROM t1;
  a     round(MATCH  b  AGAINST ('lala lkjh'),5)
! 1     0.67003
  2     0.00000
  3     0.00000
  SELECT a, round(MATCH  c  AGAINST ('lala lkjh'),5) FROM t1;
--- 13,19 ----
  INSERT INTO t1 VALUES (3,'qpwoei','zmxnvb');
  SELECT a, round(MATCH  b  AGAINST ('lala lkjh'),5) FROM t1;
  a     round(MATCH  b  AGAINST ('lala lkjh'),5)
! 1     0.00000
  2     0.00000
  3     0.00000
  SELECT a, round(MATCH  c  AGAINST ('lala lkjh'),5) FROM t1;
-------------------------------------------------------
Please follow the instructions outlined at
http://www.mysql.com/doc/en/Reporting_mysqltest_bugs.html
to find the reason to this problem and how to report this.

Ending Tests
Shutting-down MySQL daemon

Master shutdown finished
Slave shutdown finished
Resuming Tests

fulltext_order_by              [ pass ]
[1 Aug 2005 9:44] Sivakumar K
I am facing the same problem. This is a SuSE specific issue and is observed in
4.1.13 of the mysql code. The same tests pass in redhat machines. 
Some details of the issue are: 
A snipped from the diff output ::
-------------------------------------------------------
*** r/fulltext.result   2005-07-23 03:07:18.000000000 +0300
--- r/fulltext.reject   2005-08-01 13:14:05.647559216 +0300
***************
  insert t1 values ("aaa10 bbb20"), ("aaa20 bbb15"), ("aaa30 bbb10");
  select * from t1 where match a against ("+aaa* +bbb*" in boolean mode);
  a
- aaa10 bbb20
- aaa20 bbb15
- aaa30 bbb10
  select * from t1 where match a against ("+aaa* +bbb1*" in boolean mode);
  a
- aaa20 bbb15
- aaa30 bbb10
  select * from t1 where match a against ("+aaa* +ccc*" in boolean mode);
  a
  select * from t1 where match a against ("+aaa10 +(bbb*)" in boolean mode);
  a
- aaa10 bbb20
  select * from t1 where match a against ("+(+aaa* +bbb1*)" in boolean mode);
  a
- aaa20 bbb15
- aaa30 bbb10
  select * from t1 where match a against ("(+aaa* +bbb1*)" in boolean mode);
  a
- aaa20 bbb15
- aaa30 bbb10

**** The line  "select * from t1 where match a against ("+aaa* +bbb*" in boolean
mode)"
 is causing the error - the output from this seems to be no rows. - looks like
the select's are not returning any values.
[30 Sep 2005 12:47] Sergei Golubchik
looks like gcc bug (gcc 3.3.5 20050117 (prerelease) that comes with SuSE 9.3)
[15 Dec 2005 11:26] Kristian Nielsen
FWIW, this bug reproduces on our host sles9-x86.mysql.com. The GCC version is:

> gcc --version
gcc (GCC) 3.3.3 (SuSE Linux)
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

This was for the newest mysql-5.0 BitKeeper sources.

Will attack full output from failing tests.
[15 Dec 2005 11:30] Kristian Nielsen
Output from failing fulltest test cases on sles9-x86.mysql.com

Attachment: knielsen (application/octet-stream, text), 10.33 KiB.

[19 Dec 2005 11:14] Kristian Nielsen
FWIW, I managed to fix the fulltext problem on host sles9-x86.mysql.com by passing environment variables to ./configure as follows (copied from how it is done in our RPM release builds):

    CC => 'gcc'
    CXX => 'gcc'
    CFLAGS => '-O2 -g -march=i586 -mcpu=i686'
    CXXFLAGS => '-O2 -g -march=i586 -mcpu=i686'

(mainly replacing the default -O3 with -O2, and using gcc instead of g++).

For the record:

    > gcc --version
    gcc (GCC) 3.3.3 (SuSE Linux)

Not sure how to fix the build scripts to make this work out-of-the-box.
[26 Jan 2007 8:46] Kristian Nielsen
I verified that this failure still exists in latest mysql-5.0 BitKeeper on the host sles9-x86. This was building from a BitKeeper clone (changeset key 'svoj@mysql.com/april.(none)|ChangeSet|20070124213158|63194').

    $ BUILD/compile-dist
    $ (cd mysql-test && MTR_BUILD_THREAD=4 perl mysql-test-run.pl fulltext)
    ...
    fulltext                       [ fail ]

Even though this is actually a completely new host, as the old hardware for sles0-x86 died:

    $ cat /etc/SuSE-release 
    SUSE LINUX Enterprise Server 9 (i586)
    VERSION = 9

    $ gcc --version
    gcc (GCC) 3.3.3 (SuSE Linux)
    Copyright (C) 2003 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[16 Jul 2007 10:19] Sveta Smirnova
Bug #29811 was marked as duplicate of this one.
[16 Jul 2007 10:20] Sveta Smirnova
Summary of the discussion about failure with 5.0 tree:

Real problem is gcc bug. You should use optimization flag -O2 to successfully build MySQL on SUSE 9.
[16 Jul 2007 13:07] Liam Gretton
Yes, that solves the problem.

Many thanks Sveta, for the very fast response to this. Apologies for the duplicate bug, I didn't spot #11513 when I searched.