Bug #74891 default cmake excludes utf8_5624_1 charset, required for main.ctype_ldml
Submitted: 17 Nov 2014 6:21 Modified: 8 Jul 2015 22:49
Reporter: Stewart Smith Email Updates:
Status: Closed Impact on me:
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:5.6.25, 5.7.5 OS:Any
Assigned to: CPU Architecture:ARM

[17 Nov 2014 6:21] Stewart Smith
Building with the default cmake options builds a server that will fail the test suite with this error:

worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 13000..13009
main.ctype_ldml                          [ fail ]
        Test ended at 2014-11-17 17:18:00

CURRENT_TEST: main.ctype_ldml
mysqltest: At line 217: query 'SET NAMES utf8 COLLATE utf8_5624_1' failed: 1273: Unknown collation: 'utf8_5624_1'

How to repeat:
build server with default cmake options, run test suite

Suggested fix:
have the test not run if collation isn't present, or, by default, build with that collation.
[27 Nov 2014 14:11] MySQL Verification Team
Hello Stewart,

Thank you for the report.
I'm not seeing this issue at my end, I suspect that somehow mysql-test/std_data/Index.xml is overwritten. Could you please share exact cmake or any other changes required to trigger this issue?

// I tried this

[ushastry@cluster-repo setups]$ wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.5-m15.tar.gz
[ushastry@cluster-repo setups]$ tar -zxvf mysql-5.7.5-m15.tar.gz
[ushastry@cluster-repo setups]$ cd mysql-5.7.5-m15
[ushastry@cluster-repo mysql-5.7.5-m15]$ cmake . -DCMAKE_INSTALL_PREFIX=/data/ushastry/setups/mysql-5.7.5-m15 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/tmp/
[ushastry@cluster-repo mysql-5.7.5-m15]$ make
[ushastry@cluster-repo mysql-5.7.5-m15]$ make install
[ushastry@cluster-repo mysql-5.7.5-m15]$ cd mysql-test/
[ushastry@cluster-repo mysql-test]$ ./mtr ctype_ldml
Logging: ./mtr  ctype_ldml
MySQL Version 5.7.5
Checking supported features...
 - SSL connections supported
Collecting tests...
Removing old var directory...
Creating var directory '/data/ushastry/setups/mysql-5.7.5-m15/mysql-test/var'...
Installing system database...


TEST                                      RESULT   TIME (ms) or COMMENT

worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 13000..13009
main.ctype_ldml                          [ pass ]  22768
The servers were restarted 0 times
Spent 22.768 of 54 seconds executing testcases

Completed: All 1 tests were successful.

[28 Dec 2014 1:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[11 Mar 2015 1:57] Stewart Smith
worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 13000..13009
innodb.innodb_ctype_ldml                 [ fail ]
        Test ended at 2015-03-11 11:48:57

CURRENT_TEST: innodb.innodb_ctype_ldml
mysqltest: At line 214: query 'SET NAMES utf8 COLLATE utf8_5624_1' failed: 1273: Unknown collation: 'utf8_5624_1'

steps to reproduce:
 1136  cd mysql-5.7.6-m16/
 1138  mkdir build ; cd build/
 1140  cmake ../ -DDOWNLOAD_BOOST=1 -DWITH_BOOST=boost/
 1142  make -j 160

cd mysql-test/
 1172  eatmydata ./mysql-test-run.pl --mem innodb.innodb_ctype_ldml
[11 Mar 2015 1:58] Stewart Smith
If this helps:

f1353517b2c89d0e7d29c2d744b7a476b1dc95d0  ../../mysql-test/std_data/Index.xml
[22 Apr 2015 10:33] Jon Olav Hauglid
I'm able to verify using ARM hardware.
[22 Apr 2015 21:46] Stewart Smith
Interesting that you saw it on ARM hardware. Big Endian ARM by any chance? I'm wondering if there could be a weird endian thing going on here...
[23 Apr 2015 7:01] Jon Olav Hauglid
No, little endian.

My current guess is that this has something to do with signed/unsigned char.
Similar to Bug#46895
[26 Jun 2015 6:53] Stewart Smith
Also found on 5.6.25 on ppc64el
[29 Jun 2015 16:13] Alexey Kopytov
Reproducible on x86 as well with a binary built with CFLAGS="-funsigned-char".
[29 Jun 2015 16:45] Alexey Kopytov
Fix: https://github.com/mysql/mysql-server/pull/18
[30 Jun 2015 13:01] Omer Barnir
Hi Alexey, 
Please confirm in the Github pull request its under the OCA. 
Once you do that - this bug will automatically have the pull request information added to it. There is no need to post the link manually
[30 Jun 2015 15:21] OCA Admin
Contribution submitted via Github - Bug #74891: default cmake excludes utf8_5624_1 charset, required for main.ctype_ 
(*) Contribution by Alexey Kopytov (Github akopytov, mysql-server/pull/18#issuecomment-117187882): I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.

Contribution: git_patch_38793360.txt (text/plain), 796 bytes.

[8 Jul 2015 22:49] Paul DuBois
Noted in 5.7.8, 5.8.0 changelogs.

On platforms where the char is unsigned, the server was unable to
parse collation definitions that included non-7-bit ASCII characters.
Affected platforms include ARM and PowerPC. Thanks to Alexey Kopytov
for the patch.