[MDEV-5591] Cannot build the package under Debian Wheezy Created: 2014-01-30 Updated: 2014-03-31 Resolved: 2014-02-05 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | 5.5.35 |
| Fix Version/s: | 10.0.8 |
| Type: | Bug | Priority: | Major |
| Reporter: | Szymon Juraszczyk | Assignee: | Elena Stepanova |
| Resolution: | Fixed | Votes: | 1 |
| Labels: | None | ||
| Environment: |
Debian Wheezy (7.3), amd64 |
||
| Description |
|
I'm trying to build MariaDB 5.5.35 packages under Debian Wheeze from the source package mariadb-5.5_5.5.35+maria-1~wheezy. Unfortunately the build process fails in the preparation to running tests. The error is shown below. MariaDB 5.5.34 builds fine on the very same system.
|
| Comments |
| Comment by Mihail Karp [ 2014-01-30 ] | ||||||||||||||||||||||
|
the same with on ubuntu 12.04:
| ||||||||||||||||||||||
| Comment by Elena Stepanova [ 2014-01-30 ] | ||||||||||||||||||||||
|
Also reported by Otto on IRC last night. | ||||||||||||||||||||||
| Comment by Elena Stepanova [ 2014-01-30 ] | ||||||||||||||||||||||
|
The reason of this failure (and why it is not reproducible with a manual out-of-source build) is that during package building some additional "magic" is performed, namely mysql-test datadir is copied into the builddir. It causes the glob_mysql_test_dir to be set to <basedir>/builddir/mysql-test rather than <basedir>/mysql-test as it should. | ||||||||||||||||||||||
| Comment by Sergei Golubchik [ 2014-01-30 ] | ||||||||||||||||||||||
|
And why, exactly, dpkg-buildpackage does this kind of a thing? | ||||||||||||||||||||||
| Comment by Elena Stepanova [ 2014-01-30 ] | ||||||||||||||||||||||
|
That's a very good question. The comment in the rules file says, and I quote:
I tried to remove cp -r mysql-test and it seemed at least start working, I will now try a clean build from scratch, but without this copy command. | ||||||||||||||||||||||
| Comment by Sergei Golubchik [ 2014-01-30 ] | ||||||||||||||||||||||
|
I see. I suspect that a long time ago in a galaxy far, far away, mtr couldn't work from out-of-source builds. And this rule was added. Perhaps even in pre-cmake era. I don't think any of this copying is needed, please, try to remove as much of that as possible. | ||||||||||||||||||||||
| Comment by Elena Stepanova [ 2014-01-30 ] | ||||||||||||||||||||||
|
I removed all 4 and didn't have a problem with the build, at least on my machine. I'm not sure that it won't backfire, so sent a email to maria-developers list asking for public opinion: https://lists.launchpad.net/maria-developers/msg06728.html. It looks like there is also a cowardly solution:
| ||||||||||||||||||||||
| Comment by Szymon Juraszczyk [ 2014-01-30 ] | ||||||||||||||||||||||
|
How come 5.5.34 built fine while debian/rules was identical to that from 5.5.35? It seems that the changes to lib/mtr_cases.pm are the primary cause of the problem. | ||||||||||||||||||||||
| Comment by Elena Stepanova [ 2014-01-30 ] | ||||||||||||||||||||||
|
>> It seems that the changes to lib/mtr_cases.pm are the primary cause of the problem. They are not the cause of the problem per se, they just made the problem surface. | ||||||||||||||||||||||
| Comment by Mihail Karp [ 2014-01-31 ] | ||||||||||||||||||||||
|
hint with "+ [ @plugin_suitedirs ], '*', NOT_REQUIRED);" | ||||||||||||||||||||||
| Comment by Szymon Juraszczyk [ 2014-02-02 ] | ||||||||||||||||||||||
|
It passes the tests after removing the four lines under "# Don't know why the following is necessary..." as well for me. It's worth mentioning that they were indeed necessary in 5.5.34, but apparently they aren't any longer. By the way is it only me that gets "MTR's internal check of the test case 'rpl.rpl_ddl' failed." ? It does not make the test fail, but still it's something abnormal. | ||||||||||||||||||||||
| Comment by Sergei Golubchik [ 2014-02-03 ] | ||||||||||||||||||||||
|
not only you. In 5.5.35 MTR's internal check started to take into account temporary tables on the slave — that's why this warning started to appear. But as it doesn't fail the test and doesn't mean any real problem (temporary tables are dropped automatically anyway), it wasn't a priority for 5.5.35 release. (hint: you can always check http://buildbot.askmonty.org/buildbot/ to see whether a problem is universally repeatable to specific to your environment) | ||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2014-02-04 ] | ||||||||||||||||||||||
|
I applied the patch by elenst in https://github.com/ottok/mariadb-5.5/commit/73eea9f but unfortunately the tests still fail with Build log at http://labs.seravo.fi/~otto/mariadb-repo/precise-amd64/mariadb-5.5_5.5.35-1_amd64.build-73eea9f-pbuilder.log | ||||||||||||||||||||||
| Comment by Elena Stepanova [ 2014-02-04 ] | ||||||||||||||||||||||
|
Right, this is a totally different problem from the one that https://github.com/ottok/mariadb-5.5/commit/73eea9f was solving. | ||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2014-02-05 ] | ||||||||||||||||||||||
|
Maybe the tile for this bug report should be "Debian builds of 5.5.35 failing due to test failures". About the original '** ERROR: Could not find '*' in at lib/mtr_cases.pm line 339' issue: It was visible in all previous builds before https://github.com/ottok/mariadb-5.5/commit/73eea9f and hasn't been visible since. If you don't see any regressions in the build logs (many links below) then the issue is fixed. About the replace_result and $USER issue: All tests now pass on my laptop in the latest run: http://labs.seravo.fi/~otto/mariadb-repo/logs/mariadb-5.5_5.5.35-1_amd64.build-a82d59a-laptop.log About the unix_socket issue: When disabling tests I was able to build binary packages at http://labs.seravo.fi/~otto/mariadb-repo/?C=M;O=D for amd64: precise, trusty, wheezy, sid and for i386: precise. The other i386 fails due to TokuDB which does not build under i386 and pbuilder environment where the cmake if CMAKE_SYSTEM_PROCESSOR=amd64 does not detect pbuilder target processor correctly. I will now relaunch all of these to confirm that unix_socket issue is consistent (and not sporadic). If it helps, at least there are now binaries for the same revision which you can download and run the mariadb-test suite for binaries. About TokuDB tests: At https://launchpad.net/~mysql-ubuntu/+archive/mariadb/+packages (all builds at https://launchpad.net/~mysql-ubuntu/+archive/mariadb/+builds?build_text=&build_state=all) I have built successfully binary packages for precise and trusty when tests where disabled. When tests are enabled and I submitted saucy version for building, the i386 passes all tests and is successfull but the amd64 version fails in tokudb tests: https://launchpadlibrarian.net/164958444/buildlog_ubuntu-saucy-amd64.mariadb-5.5_5.5.35-1~saucy1~ppa2_FAILEDTOBUILD.txt.gz This seems consistent for Launchpad (buildd) and is visible in a previous trusty/amd64 build too but not in my plain laptop or in pbuilder. | ||||||||||||||||||||||
| Comment by Elena Stepanova [ 2014-02-05 ] | ||||||||||||||||||||||
This bug report was created by its author specifically about "** ERROR: Could not find '*' in" failure, and will stay as such.
No, the failure "ERROR: Could not find '*' in" has nothing to do with the change in unix_socket file. Maybe you pasted a wrong link.
This failure was fixed by the change https://github.com/ottok/mariadb-5.5/commit/73eea9f. | ||||||||||||||||||||||
| Comment by Elena Stepanova [ 2014-02-05 ] | ||||||||||||||||||||||
|
The fix with removal of cp lines was pushed to 10.0 tree: 5.5 tree should be fixed separately by upcoming Otto's changes. | ||||||||||||||||||||||
| Comment by Mihail Karp [ 2014-03-31 ] | ||||||||||||||||||||||
|
same on 5.5.36 | ||||||||||||||||||||||
| Comment by Elena Stepanova [ 2014-03-31 ] | ||||||||||||||||||||||
|
That's expected, as said in the comment (and in the Fix Versions field), the fix was only pushed in 10.0, while 5.5 is awaiting package refactoring which is currently being performed. |