[MDEV-7210] mroonga tests fail Created: 2014-11-26 Updated: 2015-12-21 Resolved: 2015-12-21 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Platform Debian, Storage Engine - Mroonga |
| Affects Version/s: | 10.0.15 |
| Fix Version/s: | 10.0.23 |
| Type: | Bug | Priority: | Major |
| Reporter: | Sergei Golubchik | Assignee: | Kentoku Shiba (Inactive) |
| Resolution: | Fixed | Votes: | 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. |
| Comments |
| Comment by Otto Kekäläinen [ 2014-11-26 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
It might be difficult to detect the target architecture inside CMakeLists.txt in cross-compilation situations and therefore e.g. the TokuDB arch dependent on/off is done in the Debian rules file and passed along to cmake as an option, see http://anonscm.debian.org/cgit/pkg-mysql/mariadb-10.0.git/tree/debian/rules#n24 Upload of 10.0.15 to Debian will wait until this is fixed or alternatively until there is some temporary patch that disables suitable parts of mroonga to get around this or disables all of mroonga. Mroonga is a new plugin and it seems the cross-compilation need of it hasn't been on the table before. Everything else of MariaDB cross-compiles (or at least to the degree needed on Debian build systems) nicely. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2014-11-26 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Looking at the code I wonder it these lines really both want to check for '64'?
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2014-11-26 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
version_compile_machine comes from MACHINE_TYPE (sql/sys_vars.cc) MACHINE_TYPE comes from ./config.h.cmake:#define MACHINE_TYPE "@CMAKE_SYSTEM_PROCESSOR@" CMAKE_SYSTEM_PROCESSOR comes from uname -p ( http://www.cmake.org/cmake/help/v3.0/variable/CMAKE_SYSTEM_PROCESSOR.html ) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2014-11-26 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
fyi, tokudb, innodb,xtradb all use CMAKE_SYSTEM_PROCESSOR
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2014-12-03 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Kentoku I think this issue is urgent. Could you please take a look at it soon? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2014-12-09 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I solved this now by disabling Mroonga for non-amd64 platforms, see in commit http://anonscm.debian.org/cgit/pkg-mysql/mariadb-10.0.git/commit/?id=579282f22e6ff3293993651a0232e8c26ea3e75c | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Kouhei Sutou [ 2015-08-16 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Could you try to add "-DCMAKE_SYSTEM_PROCESSOR=i386" to "cmake" options? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2015-08-16 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Here are the environment variables I could pass along to the cmake command in the debian/rules file: DEB_BUILD_ARCH=amd64 I need to do some testing before choosing ARCH or CPU, I am not sure which one will have i386 and which will have i686 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Kouhei Sutou [ 2015-08-16 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Can we use "DEB_HOST_*" variables? I can get the following variables with "dpkg-architecture -a i386": % dpkg-architecture -a i386 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2015-08-16 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Yes we can use those and we already do use, see e.g. https://github.com/ottok/mariadb-10.0/blob/master/debian/rules#L101 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Kouhei Sutou [ 2015-08-17 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Thanks for the information. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2015-08-27 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Log Mroonga enabled and CMAKE_SYSTEM_PROCESSOR defined: https://launchpadlibrarian.net/215657064/buildlog_ubuntu-vivid-i386.mariadb-10.0_10.0.21-2~vivid1~1440623752.15e94d8_BUILDING.txt.gz Failing test parts.partition_exch_qa_10 is probably not Mroonga related? Please check the log, the Mroonga parts do emit some warnings. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2015-08-27 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
kou The test failure seemed random, with the exact same codebase a new build was successful: https://launchpadlibrarian.net/215684241/buildlog_ubuntu-vivid-i386.mariadb-10.0_10.0.21-2~vivid1~1440655723.15e94d8_BUILDING.txt.gz The relevant Mroonga changes before this was: Does everything seem OK to you? Do you think Mroonga will build on most Debian platforms (https://buildd.debian.org/status/package.php?p=mariadb-10.0) or just LInux i386 and amd64? There is the option that we limit the platforms that try to build Mroonga using code similar to what was removed in https://github.com/ottok/mariadb-10.0/commit/7634d3d0fbae2ec114fb035f9ea0df4e88d95220 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Kouhei Sutou [ 2015-08-27 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Thanks for trying it. > Failing test parts.partition_exch_qa_10 is probably not Mroonga related? It's not related to Mroonga. > Please check the log, the Mroonga parts do emit some warnings. These warnings aren't problem. They just say that optimization is disabled. > The relevant Mroonga changes before this was: It looks good to me. > Does everything seem OK to you? Yes. > Do you think Mroonga will build on most Debian platforms (https://buildd.debian.org/status/package.php?p=mariadb-10.0) or just LInux i386 and amd64? Mroonga can't be built on some platforms. But I don't know these platforms because I don't have all platforms. I'm developing Mroonga on Debian GNU/Linux sid amd64. Mroonga must work on the platform well. How about trying to build on all platforms and then we remove failed platforms from Mroonga support platforms? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2015-08-28 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
kou Ok, I uploaded 10.0.21-2 to Debian experimental. See the build logs at https://buildd.debian.org/status/package.php?p=mariadb-10.0&suite=experimental Click on the text "Build-Attempted" to view full logs. Mroonga issues now seemed to have broken arm64, armel, armhf, mips and mipsel. Please also click on the text "Old" to view previous build logs from 10.0.21-1 for comparison. 1. The ideal is that you would fix any build errors in Mroonga so that it would build on all platforms. If you do so, please send me link to commits so that I can backport them as patches on 10.0.21 and do a new upload to Debian experimental. 2. If you cannot fix something, then please tell me what platforms you want to skip, and we'll copy back code from https://github.com/ottok/mariadb-10.0/commit/7634d3d0fbae2ec114fb035f9ea0df4e88d95220 and disable Mroonga builds and test on the platforms you declare as impossible to fix. Thanks for you help! | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Kouhei Sutou [ 2015-08-28 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Thanks! The following platforms don't have any Mroonga problems:
Mroonga is already disabled (*1) on the following platforms because they are big-endian:
(*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.) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2015-08-30 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
kou 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
Some of the fail parts:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Kouhei Sutou [ 2015-09-04 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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'" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2015-09-04 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
kou 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:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Kouhei Sutou [ 2015-09-04 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I wanted to confirm these CMake options are really applied in MariaDB layer... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2015-12-21 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
As of 10.0.22 these 64-bit Mroonga tests are correctly skipped on i386 builds:
Closing issue. |