Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 10.0.15
    • Fix Version/s: 10.0
    • Labels:
      None

      Description

      Mroonga tests fails in debian builds:

      http://labs.seravo.fi/~otto/mariadb-repo/logs/mariadb-10.0_10.0.15-1_i386_sid.build-fail

      It was a 32-bit build inside a pbuilder chroot on 64-bit host.

      Note that mroonga 32-bit tests are skipped and 64-bit tests are run. Perhaps that's why they fail. Supposedly, 32/64-bit detection for tests needs to be adjusted to detect how mroonga was actually built, not what the host cpu is capable of.

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            kou Kouhei Sutou added a comment - - edited

            Thanks!

            The following platforms don't have any Mroonga problems:

            • arm64
              • Failed tests are all perfschema related tests:
                • perfschema.func_file_io
                • perfschema.func_mutex
                • perfschema.global_read_lock
                • perfschema.setup_objects
            • armel
              • Failed tests are all perfschema related tests:
                • perfschema.func_file_io
                • perfschema.func_mutex
                • perfschema.global_read_lock
                • perfschema.setup_objects
            • armhf
              • Failed tests are connect related tests and perfschema related tests:
                • connect.bin
                • connect.endian
                • perfschema.func_file_io
                • perfschema.func_mutex
                • perfschema.global_read_lock
                • perfschema.setup_objects

            Mroonga is already disabled (*1) on the following platforms because they are big-endian:

            • mips
            • mipsel
            • s390x
            • ppc64

            (*1) https://github.com/MariaDB/server/blob/10.1/storage/mroonga/CMakeLists.txt#L31-L40

            (I think that Mroonga can work on big-endian but I didn't tries yet. Because I don't have big-endian environment.)

            Show
            kou Kouhei Sutou added a comment - - edited Thanks! The following platforms don't have any Mroonga problems: arm64 Failed tests are all perfschema related tests: perfschema.func_file_io perfschema.func_mutex perfschema.global_read_lock perfschema.setup_objects armel Failed tests are all perfschema related tests: perfschema.func_file_io perfschema.func_mutex perfschema.global_read_lock perfschema.setup_objects armhf Failed tests are connect related tests and perfschema related tests: connect.bin connect.endian perfschema.func_file_io perfschema.func_mutex perfschema.global_read_lock perfschema.setup_objects Mroonga is already disabled (*1) on the following platforms because they are big-endian: mips mipsel s390x ppc64 (*1) https://github.com/MariaDB/server/blob/10.1/storage/mroonga/CMakeLists.txt#L31-L40 (I think that Mroonga can work on big-endian but I didn't tries yet. Because I don't have big-endian environment.)
            Hide
            otto Otto Kekäläinen added a comment -

            Kouhei Sutou Interestingly, the same codebase fails when built on my own system via pbuilder, see full log at http://labs.seravo.fi/~otto/mariadb-repo/logs/mroonga-fails/mariadb-10.0_10.0.21-3_amd64.build-7954da1-pbuilder.log

            Too many failed: Failed 10/2772 tests, 99.64% were successful.
            
            Failing test(s): mroonga/storage.column_datetime_64bit_2038 mroonga/storage.column_datetime_64bit_before_unix_epoch mroonga/storage.column_datetime_64bit_max mroonga/storage.column_datetime_64bit_version_56_or_later_out_of_range mroonga/storage.index_btree_equal_datetime mroonga/storage.index_multiple_column_unique_date_64bit_equal mroonga/storage.index_multiple_column_unique_date_index_read mroonga/storage.index_multiple_column_unique_date_order_64bit_asc mroonga/storage.index_multiple_column_unique_date_order_64bit_desc mroonga/storage.index_multiple_column_unique_datetime_index_read
            

            Some of the fail parts:

            mroonga/storage.column_datetime_64bit_2038 [ fail ]
                    Test ended at 2015-08-29 23:35:12
            
            CURRENT_TEST: mroonga/storage.column_datetime_64bit_2038
            --- /tmp/buildd/mariadb-10.0-10.0.21/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_2038.result	2015-08-05 18:11:32.000000000 +0000
            +++ /tmp/buildd/mariadb-10.0-10.0.21/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_2038.reject	2015-08-29 23:35:11.356223645 +0000
            @@ -16,8 +16,10 @@
             VALUES ('2038-01-19 03:14:07', '2038-01-19 03:14:07');
             INSERT INTO diaries (title, created_at)
             VALUES ('2038-01-19 03:14:08', '2038-01-19 03:14:08');
            +Warnings:
            +Warning	1265	Data truncated for column 'created_at' at row 1
             SELECT * FROM diaries;
             id	title	created_at
             1	2038-01-19 03:14:07	2038-01-19 03:14:07
            -2	2038-01-19 03:14:08	2038-01-19 03:14:08
            +2	2038-01-19 03:14:08	1970-01-01 00:00:00
             DROP TABLE diaries;
            
            mysqltest: Result length mismatch
            
             - saving '/tmp/buildd/mariadb-10.0-10.0.21/builddir/mysql-test/var/log/mroonga/storage.column_datetime_64bit_2038/' to '/tmp/buildd/mariadb-10.0-10.0.21/builddir/mysql-test/var/log/storage.column_datetime_64bit_2038/'
            mroonga/storage.column_datetime_64bit_before_unix_epoch [ fail ]
                    Test ended at 2015-08-29 23:35:12
            
            CURRENT_TEST: mroonga/storage.column_datetime_64bit_before_unix_epoch
            --- /tmp/buildd/mariadb-10.0-10.0.21/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_before_unix_epoch.result	2015-08-05 18:11:32.000000000 +0000
            +++ /tmp/buildd/mariadb-10.0-10.0.21/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_before_unix_epoch.reject	2015-08-29 23:35:12.500223622 +0000
            @@ -14,7 +14,9 @@
             ) ENGINE=Mroonga DEFAULT CHARSET=utf8
             INSERT INTO diaries (title, created_at)
             VALUES ('1000-01-01 00:00:00', '1000-01-01 00:00:00');
            +Warnings:
            +Warning	1265	Data truncated for column 'created_at' at row 1
             SELECT * FROM diaries;
             id	title	created_at
            -1	1000-01-01 00:00:00	1000-01-01 00:00:00
            +1	1000-01-01 00:00:00	1970-01-01 00:00:00
             DROP TABLE diaries;
            
            mysqltest: Result length mismatch
            
             - saving '/tmp/buildd/mariadb-10.0-10.0.21/builddir/mysql-test/var/log/mroonga/storage.column_datetime_64bit_before_unix_epoch/' to '/tmp/buildd/mariadb-10.0-10.0.21/builddir/mysql-test/var/log/storage.column_datetime_64bit_before_unix_epoch/'
            mroonga/storage.column_datetime_64bit_max [ fail ]
                    Test ended at 2015-08-29 23:35:13
            
            CURRENT_TEST: mroonga/storage.column_datetime_64bit_max
            --- /tmp/buildd/mariadb-10.0-10.0.21/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_max.result	2015-08-05 18:11:32.000000000 +0000
            +++ /tmp/buildd/mariadb-10.0-10.0.21/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_max.reject	2015-08-29 23:35:12.992223613 +0000
            @@ -14,7 +14,9 @@
             ) ENGINE=Mroonga DEFAULT CHARSET=utf8
             INSERT INTO diaries (title, created_at)
             VALUES ('9999-12-31 23:59:59', '9999-12-31 23:59:59');
            +Warnings:
            +Warning	1265	Data truncated for column 'created_at' at row 1
             SELECT * FROM diaries;
             id	title	created_at
            -1	9999-12-31 23:59:59	9999-12-31 23:59:59
            +1	9999-12-31 23:59:59	1970-01-01 00:00:00
             DROP TABLE diaries;
            
            mysqltest: Result length mismatch
            
             - saving '/tmp/buildd/mariadb-10.0-10.0.21/builddir/mysql-test/var/log/mroonga/storage.column_datetime_64bit_max/' to '/tmp/buildd/mariadb-10.0-10.0.21/builddir/mysql-test/var/log/storage.column_datetime_64bit_max/'
            mroonga/storage.column_datetime_64bit_version_55_out_of_range [ skipped ]  This test is for MySQL version 5.5.x
            mroonga/storage.column_datetime_64bit_version_56_or_later_out_of_range [ fail ]
                    Test ended at 2015-08-29 23:35:13
            
            CURRENT_TEST: mroonga/storage.column_datetime_64bit_version_56_or_later_out_of_range
            --- /tmp/buildd/mariadb-10.0-10.0.21/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_version_56_or_later_out_of_range.result	2015-08-05 18:11:32.000000000 +0000
            +++ /tmp/buildd/mariadb-10.0-10.0.21/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_version_56_or_later_out_of_range.reject	2015-08-29 23:35:13.512223602 +0000
            @@ -19,5 +19,5 @@
             Warning	1265	Data truncated for column 'created_at' at row 1
             SELECT * FROM diaries;
             id	title	created_at
            -1	2012	0000-01-01 00:00:00
            +1	2012	1970-01-01 00:00:00
             DROP TABLE diaries;
            
            mysqltest: Result content mismatch
            
             - saving '/tmp/buildd/mariadb-10.0-10.0.21/builddir/mysql-test/var/log/mroonga/storage.column_datetime_64bit_version_56_or_later_out_of_range/' to '/tmp/buildd/mariadb-10.0-10.0.21/builddir/mysql-test/var/log/storage.column_datetime_64bit_version_56_or_later_out_of_range/'
            
            Show
            otto Otto Kekäläinen added a comment - Kouhei Sutou Interestingly, the same codebase fails when built on my own system via pbuilder , see full log at http://labs.seravo.fi/~otto/mariadb-repo/logs/mroonga-fails/mariadb-10.0_10.0.21-3_amd64.build-7954da1-pbuilder.log Too many failed: Failed 10/2772 tests, 99.64% were successful. Failing test(s): mroonga/storage.column_datetime_64bit_2038 mroonga/storage.column_datetime_64bit_before_unix_epoch mroonga/storage.column_datetime_64bit_max mroonga/storage.column_datetime_64bit_version_56_or_later_out_of_range mroonga/storage.index_btree_equal_datetime mroonga/storage.index_multiple_column_unique_date_64bit_equal mroonga/storage.index_multiple_column_unique_date_index_read mroonga/storage.index_multiple_column_unique_date_order_64bit_asc mroonga/storage.index_multiple_column_unique_date_order_64bit_desc mroonga/storage.index_multiple_column_unique_datetime_index_read Some of the fail parts: mroonga/storage.column_datetime_64bit_2038 [ fail ] Test ended at 2015-08-29 23:35:12 CURRENT_TEST: mroonga/storage.column_datetime_64bit_2038 --- /tmp/buildd/mariadb-10.0-10.0.21/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_2038.result 2015-08-05 18:11:32.000000000 +0000 +++ /tmp/buildd/mariadb-10.0-10.0.21/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_2038.reject 2015-08-29 23:35:11.356223645 +0000 @@ -16,8 +16,10 @@ VALUES ('2038-01-19 03:14:07', '2038-01-19 03:14:07'); INSERT INTO diaries (title, created_at) VALUES ('2038-01-19 03:14:08', '2038-01-19 03:14:08'); +Warnings: +Warning 1265 Data truncated for column 'created_at' at row 1 SELECT * FROM diaries; id title created_at 1 2038-01-19 03:14:07 2038-01-19 03:14:07 -2 2038-01-19 03:14:08 2038-01-19 03:14:08 +2 2038-01-19 03:14:08 1970-01-01 00:00:00 DROP TABLE diaries; mysqltest: Result length mismatch - saving '/tmp/buildd/mariadb-10.0-10.0.21/builddir/mysql-test/var/log/mroonga/storage.column_datetime_64bit_2038/' to '/tmp/buildd/mariadb-10.0-10.0.21/builddir/mysql-test/var/log/storage.column_datetime_64bit_2038/' mroonga/storage.column_datetime_64bit_before_unix_epoch [ fail ] Test ended at 2015-08-29 23:35:12 CURRENT_TEST: mroonga/storage.column_datetime_64bit_before_unix_epoch --- /tmp/buildd/mariadb-10.0-10.0.21/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_before_unix_epoch.result 2015-08-05 18:11:32.000000000 +0000 +++ /tmp/buildd/mariadb-10.0-10.0.21/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_before_unix_epoch.reject 2015-08-29 23:35:12.500223622 +0000 @@ -14,7 +14,9 @@ ) ENGINE=Mroonga DEFAULT CHARSET=utf8 INSERT INTO diaries (title, created_at) VALUES ('1000-01-01 00:00:00', '1000-01-01 00:00:00'); +Warnings: +Warning 1265 Data truncated for column 'created_at' at row 1 SELECT * FROM diaries; id title created_at -1 1000-01-01 00:00:00 1000-01-01 00:00:00 +1 1000-01-01 00:00:00 1970-01-01 00:00:00 DROP TABLE diaries; mysqltest: Result length mismatch - saving '/tmp/buildd/mariadb-10.0-10.0.21/builddir/mysql-test/var/log/mroonga/storage.column_datetime_64bit_before_unix_epoch/' to '/tmp/buildd/mariadb-10.0-10.0.21/builddir/mysql-test/var/log/storage.column_datetime_64bit_before_unix_epoch/' mroonga/storage.column_datetime_64bit_max [ fail ] Test ended at 2015-08-29 23:35:13 CURRENT_TEST: mroonga/storage.column_datetime_64bit_max --- /tmp/buildd/mariadb-10.0-10.0.21/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_max.result 2015-08-05 18:11:32.000000000 +0000 +++ /tmp/buildd/mariadb-10.0-10.0.21/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_max.reject 2015-08-29 23:35:12.992223613 +0000 @@ -14,7 +14,9 @@ ) ENGINE=Mroonga DEFAULT CHARSET=utf8 INSERT INTO diaries (title, created_at) VALUES ('9999-12-31 23:59:59', '9999-12-31 23:59:59'); +Warnings: +Warning 1265 Data truncated for column 'created_at' at row 1 SELECT * FROM diaries; id title created_at -1 9999-12-31 23:59:59 9999-12-31 23:59:59 +1 9999-12-31 23:59:59 1970-01-01 00:00:00 DROP TABLE diaries; mysqltest: Result length mismatch - saving '/tmp/buildd/mariadb-10.0-10.0.21/builddir/mysql-test/var/log/mroonga/storage.column_datetime_64bit_max/' to '/tmp/buildd/mariadb-10.0-10.0.21/builddir/mysql-test/var/log/storage.column_datetime_64bit_max/' mroonga/storage.column_datetime_64bit_version_55_out_of_range [ skipped ] This test is for MySQL version 5.5.x mroonga/storage.column_datetime_64bit_version_56_or_later_out_of_range [ fail ] Test ended at 2015-08-29 23:35:13 CURRENT_TEST: mroonga/storage.column_datetime_64bit_version_56_or_later_out_of_range --- /tmp/buildd/mariadb-10.0-10.0.21/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_version_56_or_later_out_of_range.result 2015-08-05 18:11:32.000000000 +0000 +++ /tmp/buildd/mariadb-10.0-10.0.21/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_version_56_or_later_out_of_range.reject 2015-08-29 23:35:13.512223602 +0000 @@ -19,5 +19,5 @@ Warning 1265 Data truncated for column 'created_at' at row 1 SELECT * FROM diaries; id title created_at -1 2012 0000-01-01 00:00:00 +1 2012 1970-01-01 00:00:00 DROP TABLE diaries; mysqltest: Result content mismatch - saving '/tmp/buildd/mariadb-10.0-10.0.21/builddir/mysql-test/var/log/mroonga/storage.column_datetime_64bit_version_56_or_later_out_of_range/' to '/tmp/buildd/mariadb-10.0-10.0.21/builddir/mysql-test/var/log/storage.column_datetime_64bit_version_56_or_later_out_of_range/'
            Hide
            kou Kouhei Sutou added a comment -

            It's strange result. Because these tests are for 64bit environment. (You can find "64" word in test name.)

            Could you confirm the followings in pbuilder?

            1. grep MACHINE_TYPE config.h

            config.h exists in the build directory.

            2. mysql -u root -e "show variables like 'version_compile_machine'"

            Show
            kou Kouhei Sutou added a comment - It's strange result. Because these tests are for 64bit environment. (You can find "64" word in test name.) Could you confirm the followings in pbuilder? 1. grep MACHINE_TYPE config.h config.h exists in the build directory. 2. mysql -u root -e "show variables like 'version_compile_machine'"
            Hide
            otto Otto Kekäläinen added a comment -

            Kouhei Sutou Pbuilder is basically a chroot. I will not start testing it because there is too much work for little gain, but I am pretty sure all test that test directly the kernel will see the host machine which is amd64. Builds are supposed to adhere to the flags CMAKE has about the build target. When building 32-bit binaries on 64-bit host machine, CMAKE will be run with the following line:

            sh -c  'PATH=${MYSQL_BUILD_PATH:-"/usr/local/bin:/usr/bin:/bin"} \
                	CC=i586-linux-gnu-gcc \
            	CFLAGS=${MYSQL_BUILD_CFLAGS:-"-O3 -fno-strict-aliasing"} \
                	CXX=i586-linux-gnu-g++ \
                	CXXFLAGS=${MYSQL_BUILD_CXXFLAGS:-"-O3 -felide-constructors -fno-exceptions -fno-rtti -fno-strict-aliasing "-DTAOCRYPT_DISABLE_X86ASM""} \
                cmake -DCMAKE_INSTALL_PREFIX=/usr \
                -DWITHOUT_TOKUDB=true \
                -DWITH_SSL=bundled \
                -DCOMPILATION_COMMENT="Debian unstable" \
                -DMYSQL_SERVER_SUFFIX="-3" \
                -DSYSTEM_TYPE="debian-linux-gnu" \
                -DCMAKE_SYSTEM_PROCESSOR=i386 \
                -DBUILD_CONFIG=mysql_release \
                -DINSTALL_LIBDIR=lib/i386-linux-gnu \
                -DINSTALL_PLUGINDIR=lib/mysql/plugin \
                -DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test \
                -DDEB=Debian ..'
            

            See log at http://labs.seravo.fi/~otto/mariadb-repo/logs/mroonga-fails/mariadb-10.0_10.0.21-3_sid-i386.build-7954da1-pbuilder.log

            Show
            otto Otto Kekäläinen added a comment - Kouhei Sutou Pbuilder is basically a chroot. I will not start testing it because there is too much work for little gain, but I am pretty sure all test that test directly the kernel will see the host machine which is amd64. Builds are supposed to adhere to the flags CMAKE has about the build target. When building 32-bit binaries on 64-bit host machine, CMAKE will be run with the following line: sh -c 'PATH=${MYSQL_BUILD_PATH:-"/usr/local/bin:/usr/bin:/bin"} \ CC=i586-linux-gnu-gcc \ CFLAGS=${MYSQL_BUILD_CFLAGS:-"-O3 -fno-strict-aliasing"} \ CXX=i586-linux-gnu-g++ \ CXXFLAGS=${MYSQL_BUILD_CXXFLAGS:-"-O3 -felide-constructors -fno-exceptions -fno-rtti -fno-strict-aliasing "-DTAOCRYPT_DISABLE_X86ASM""} \ cmake -DCMAKE_INSTALL_PREFIX=/usr \ -DWITHOUT_TOKUDB=true \ -DWITH_SSL=bundled \ -DCOMPILATION_COMMENT="Debian unstable" \ -DMYSQL_SERVER_SUFFIX="-3" \ -DSYSTEM_TYPE="debian-linux-gnu" \ -DCMAKE_SYSTEM_PROCESSOR=i386 \ -DBUILD_CONFIG=mysql_release \ -DINSTALL_LIBDIR=lib/i386-linux-gnu \ -DINSTALL_PLUGINDIR=lib/mysql/plugin \ -DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test \ -DDEB=Debian ..' See log at http://labs.seravo.fi/~otto/mariadb-repo/logs/mroonga-fails/mariadb-10.0_10.0.21-3_sid-i386.build-7954da1-pbuilder.log
            Hide
            kou Kouhei Sutou added a comment -

            I wanted to confirm these CMake options are really applied in MariaDB layer...

            Show
            kou Kouhei Sutou added a comment - I wanted to confirm these CMake options are really applied in MariaDB layer...

              People

              • Assignee:
                Kentoku Kentoku
                Reporter:
                serg Sergei Golubchik
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated: