-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Travis: Rewrite config, build and test also on Alpine Linux (musl libc) #1255
Conversation
|
How much warnings are too much? Will halving their volume help? |
Jobs being killed because of overly long output has not been a problem with the existing travis setup as far as I know - is this some consequence of your build environment (different compiler version etc) or did you use additional CFLAGS ? BTW the oversight from #1252 would easily have been caught with a judiciuosly placed #undef __GLIBC_PREREQ, in my opinion the main problem was that a misunderstanding between xianyi and me led to it being merged right before the release when I wanted to have it on hold until later. |
Eh, any warnings? gcc doesn’t print them just for fun… But about Travis, it has limit 4 MiB for output on stdout+stderr per job. The right solution is to fix code, possible workaround is to turn off some of these warnings.
When you look at some of your past jobs, for example this one, you’re already on the edge of the limit:
Preparing Alpine environment adds some more text into the log
Of course, as all possible errors… It happened and got into the release without notice because you don’t regularly test against musl libc. That’s why I opened this PR to prevent such mistakes in future. |
From a quick look at the failed job, a big number of them appear to be the recently introduced gcc indentation warnings, complaints about potentially uninitialized variables that would need to be addressed in netlib lapack and a bunch of harmless pointer type issues that I believe may even be platform-specifc. Suggest to turn off at least the indentation warnings for now. |
"[...] harmless pointer [...]" — @martin-frbg Best joke ever. 🤣 Thanks for making my Friday mate. |
@7heo care to prove otherwise ? These superficially mismatching casts have been there forever but there are real problems elsewhere in the code that need fixing. |
@martin-frbg memory management is tricky and shouldn't be dealth with lightly. the least you can do is cast your stuff explicitely so it reads what it actually does. |
I was wrong, the failing job (musl, https://travis-ci.org/xianyi/OpenBLAS/jobs/258570695#L6743:
* Travis marks failed job with a cross when some command in script exited with non-zero status or with exclamation mark when some error occurred. Since the log output exceeded size for being displayed on web page (“This log is too long to be displayed.”), I just quickly assumed that it exceeded 4MiB limit. |
We set |
I'm gonna quote Natanael Copa's FOSDEM presentation (first slide):
|
Your existing job with I’ve also added job with The job building/testing OpenBLAS with I consider this PR finished and ready to merge. CI failure on this PR is not a problem of this PR, but existing problems. |
@jirutka - your finger-pointing does not help. It is your code and you are a developer by modifying source files. |
@brada4 What finger-pointing? What are you talking about? I'm not OpenBLAS developer, I've only contributed this PR, in a hope to prevent future breakages of compatibility with non-glibc systems. |
musl does not support complex numbers. Plese be so kind and generate backtrace with function labels or work around musl shortage yourself. |
@brada4 by all means let's look into that, but as far as I know OpenBLAS will work around lack of support for complex numbers by creating structs etc (which is where I believe the pointer warnings are from). However the ctrmm issue appears to be real and not limited to musl - will be interesting to learn if #1254 fixes it. |
Slightly worse - http://wiki.musl-libc.org/wiki/Mathematical_Library#Complex - probably needs some ifdef wrapper to force struct complex. |
Hi all, Because I access travis-ci very slow, I cannot see the full log in travis-ci. I see some error case in travis-ci. Is it expected? |
One is "ld" getting killed with an actual SIGKILL - this is probably what jirutka attributed to travis aborting when the log gets too big (tons of warnings about implicit float/double conversions in LAPACK etc). The next is "my" cgroups patch breakage (musl does not define __GLIBC_PREREQ) so should hopefully go away with #1257. Guess I should take the courage to merge that now, and re-basing this PR afterwards would probably be sufficient to trigger a re-run of the travis checks. (With the xBMV overrun fix already merged, there should be no test failures remaining) |
Hmm. Still getting segmentation faults in the run you had marked as "allowed to fail" despite #1254, wonder if it would be possible to generate a backtrace for that. |
@jirutka re-enable the "allow_failures" if you like - I'm not sure if the commit would end up getting credited to me if I was the last developer to meddle with it. It seems I botched at least parts of the xbmv fix anyway, introducing accuracy errors.Perhaps I need to stop coding for a while until things settle down for me. At least the GLIBC_PREREQ problem seems to be gone now. |
Travis is very slow in rendering very long build log. However, you can view it also in raw (as plain text), that’s fast. Just click on “Raw log” above the rendered log (on job page). If you can’t get there due to slow JS, you can also access it directly. On build page, look at link of particular job, e.g. |
Using APT addon has nice side-effect - you don't need sudo anymore, so it can run on Travis containers-based infrastructure that is much faster than their VMs infrastructure (used when sudo is needed). You've been still running on Ubuntu Presty builders, but new default is Trusty. Thus I've explicitly set `dist: presty` to let it stay on Presty, to not change build environment by this commit.
Alpine jobs needs sudo (for chroot), so they run on VMs infrastructure. That's why they are much slower than other jobs.
I’ve prepared you a VM with Alpine and prepared setup for building OpenBLAS, but GitHub doesn’t return any SSH keys for your account https://github.com/martin-frbg.keys. I don’t understand why, this should work for all accounts. o.O
I’ve removed your commit disabling BTW It didn’t make sense to disable it, the point of |
|
Key added now, thanks for setting up the VM. |
Hm, I can’t reproduce the error in |
Was it chroot inside Ubuntu LTS or ??? |
.travis.yml
to use Travis Build Stages. This allows to define jobs with very different configuration in more clean way.sudo apt-get
with APT addon. Since sudo is not needed anymore, it runs on Travis containers-based infrastructure that is much faster than their VMs infrastructure (used when sudo is needed).You’ve been still running on Ubuntu Presty builders, but new default is Trusty (read more). Thus I‘ve explicitly set
dist: presty
to let it stay on Presty, to not change build environment by this commit.Alpine jobs needs sudo (for chroot), so they run on VMs infrastructure. That’s why they are much slower than other jobs.