Skip to content
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

FreeBSD CI #20585

Closed
iblislin opened this issue Feb 12, 2017 · 69 comments
Closed

FreeBSD CI #20585

iblislin opened this issue Feb 12, 2017 · 69 comments
Labels
building Build system, or building Julia or its dependencies system:freebsd Affects only FreeBSD

Comments

@iblislin
Copy link
Member

iblislin commented Feb 12, 2017

Hi,
I build a freebsd ci: https://julia.iblis.cnmc.tw
I need someone help me to

and the checking will available like this: iblislin#3

@tkelman tkelman added the system:freebsd Affects only FreeBSD label Feb 12, 2017
@tkelman
Copy link
Contributor

tkelman commented Feb 12, 2017

Does it pass?

@JeffBezanson JeffBezanson added the building Build system, or building Julia or its dependencies label Feb 12, 2017
@JeffBezanson
Copy link
Member

@iblis17 Thanks for working on this! It would be great to get this working. What sort of resources is this running on?

@iblislin
Copy link
Member Author

@tkelman No... tons of test cases failed. please check out this https://julia.iblis.cnmc.tw/#/builders/1/builds/3

@JeffBezanson It is an old rack server, Dell R710, in my compus lab... I can use it until I finish my master degree (about one year later

@ararslan
Copy link
Member

I can't connect to the URLs you've posted. Not sure why. Is that happening for anyone else?

@iblis17 What options have you enabled for building? Is this FreeBSD 11.0-RELEASE?

@iblislin
Copy link
Member Author

iblislin commented Feb 13, 2017

I can't connect to the URLs you've posted. Not sure why. Is that happening for anyone else?

hmm, DNS issue (i use this domain for github webhook and works fine) ? or you can try this https://140.113.31.207/
I use the letsencrypt's SSL certificate, will it cause connection problem?

What options have you enabled for building? Is this FreeBSD 11.0-RELEASE?

Make.user : https://gist.github.com/iblis17/b4dca8221dcb96efcccde24f9cc2fa8d
OS: FreeBSD ionic 12.0-CURRENT FreeBSD 12.0-CURRENT #0 r313193: Sat Feb 4 17:46:46 CST 2017 root@ionic:/usr/obj/usr/src/sys/GENERIC amd64

@ararslan
Copy link
Member

Are the build logs publicly accessible as they are for Travis and AppVeyor, our other CI services?

@iblislin
Copy link
Member Author

iblislin commented Feb 13, 2017

Yes, it's public.

The web ui of buildbot 0.9 requires websocket. Any error message on your browser's js console?

@tkelman
Copy link
Contributor

tkelman commented Feb 13, 2017

freebsd has an ilp64 system openblas? that's surprising and likely to cause problems unless its internal symbols have been renamed

@ararslan
Copy link
Member

Any error message on your browser's js console?

Nope, just doesn't connect.

freebsd has an ilp64 system openblas?

Where did you see that? OpenBLAS has to be installed from a port, and it doesn't look like the OpenBLAS build flag INTERFACE64 (which enables ILP64) is enabled by default.

@iblislin
Copy link
Member Author

On this system, openblas INTERFACE64 flag is enabled.

$ pkg info openblas-0.2.19,1
openblas-0.2.19,1
Name           : openblas
Version        : 0.2.19,1
Installed on   : Mon Feb 13 10:43:43 2017 CST
Origin         : math/openblas
Architecture   : freebsd:12:x86:64
Prefix         : /usr/local
Categories     : math
Licenses       : BSD3CLAUSE
Maintainer     : [email protected]
WWW            : https://github.com/xianyi/OpenBLAS
Comment        : Optimized BLAS library based on GotoBLAS2
Options        :
        AVX            : on
        AVX2           : on
        DYNAMIC_ARCH   : off
        INTERFACE64    : on
        OPENMP         : off
Shared Libs required:
        libquadmath.so.0
        libgfortran.so.3
Shared Libs provided:
        libopenblas.so.0
        libopenblasp.so.0
Annotations    :
Flat size      : 78.5MiB
Description    :
OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.
OpenBLAS is an open source project supported by
Lab of Parallel Software and Computational Science, ISCAS.

NOTE: If you want to specify your CPU microarchitecture manually,
please use TARGET_CPU_ARCH knob, e.g., "make TARGET_CPU_ARCH=NEHALEM".
This value is set TARGET build flag.

WWW: https://github.com/xianyi/OpenBLAS

@iblislin
Copy link
Member Author

Any error message on your browser's js console?

Nope, just doesn't connect.

@ararslan hmm ... may traceroute julia.iblis.cnmc.tw give you an idea?

@tkelman
Copy link
Contributor

tkelman commented Feb 13, 2017

If you do that without renaming the symbols, numpy and most other programs that use blas aren't going to work properly.

@iblislin
Copy link
Member Author

Seems openblas in ports do not rename the symbols?
I will disable INTERFACE64 and build julia again.

@tkelman
Copy link
Contributor

tkelman commented Feb 13, 2017

Julia can handle it, but a lot of other software can't. Just a warning about that option.

@iblislin
Copy link
Member Author

I add the missing arpack-ng and rebuilded: https://julia.iblis.cnmc.tw/#/builders/1/builds/9
One of test failures related to file still exists: #8078

@ararslan
Copy link
Member

traceroute shows that the connection gets to TWGate, gets forwarded around a bit, then stalls for a long time before quitting.

@iblislin
Copy link
Member Author

iblislin commented Feb 16, 2017

hmm TWGate is my ISP's ISP...
I built a reverse proxy: https://julia1.iblis.cnmc.tw/
Please give it a try.

@ararslan
Copy link
Member

The owner of julia1.iblis.cnmc.tw has configured their website improperly. To protect your information from being stolen, Firefox has not connected to this website.

@iblislin
Copy link
Member Author

@ararslan (Y) I use my self-signed ssl certificate on julia1.iblis.cnmc.tw. so... seems it does connect? I will migrate nginx setting from julia.iblis.cnmc.tw to julia1.iblis.cnmc.tw and change the DNS record later.

@iblislin
Copy link
Member Author

@ararslan the DNS record changed. Please try again: https://julia.iblis.cnmc.tw

@ararslan
Copy link
Member

Thanks, now it works for me.

@tkelman
Copy link
Contributor

tkelman commented Mar 30, 2017

Looks like #20798 and one of the recently added libgit2 tests are problematic?

@iblislin
Copy link
Member Author

@tkelman seems libgit2 tests are fine after build 510 now.

@tkelman
Copy link
Contributor

tkelman commented Mar 30, 2017

Ah okay, maybe I was looking at something from right before #21220

@iblislin
Copy link
Member Author

iblislin commented Mar 30, 2017

Oops! build 514 (6659b59) popup the libgit2 error again.....

The CI worker is using system libgit2 -- libgit2-0.24.0

@iblislin
Copy link
Member Author

@tkelman I guess I hit this problem: libgit2/libgit2#4169
My personal ~/.gitconfig is a symbolic link...

I replace it with a normal file, and gmake test-libgit2 passes now.

@iblislin
Copy link
Member Author

Now, the build pass, thanks to @ararslan 's fabulous work. :)

Time to consider to turn on a webhook?

There are two worker for the build task, one owns both buildbot master and a worker on it, it's the faster one.
And the other one is an old IBM x3650 machine (10 years-old :p), it takes about 3 hr to finish a build. Is 3 hr acceptable for PR build?

@iblislin
Copy link
Member Author

@ararslan Could you confirm that?

@ararslan
Copy link
Member

Sorry, haven't had time to look at that much. Will take a closer look soon.

@iblislin
Copy link
Member Author

Ready to enable webhook?
All recent builds passed.

@ararslan
Copy link
Member

Which tests do you run? In particular, libgit2-online and pkg should both be failing after the libgit2 upgrade. For reference, Travis and AppVeyor test all, download, libgit2-online, and pkg.

@iblislin
Copy link
Member Author

I run gmake testall (in line 3 of
https://julia.iblis.cnmc.tw/#/builders/1/builds/34/steps/5/logs/stdio)
I will add the orther testing... maybe i misunderstand testall

@ararslan
Copy link
Member

Ah, I see. I recommend taking a look at how Travis and AppVeyor run the tests. In particular, they do the equivalent of

julia test/runtests.jl all download libgit2-online pkg

I don't believe that download et al. are part of the testall Make target.

@iblislin
Copy link
Member Author

I reconfigure my buildbot with: ['env', 'JULIA_CPU_CORES=6', 'gmake', 'testall', 'test-download', 'test-pkg', 'test-libgit2-online']
Now the test-pkg failed as expected.

https://julia.iblis.cnmc.tw/#/builders/1/builds/38/steps/5/logs/stdio

@iblislin
Copy link
Member Author

good enough now?

@tkelman
Copy link
Contributor

tkelman commented Jul 13, 2017

We can try it unless anyone has any reasons not to - if it proves unreliable, slow, or burdensome to keep it working then maybe we can re-evaluate after a while, but worth getting more checks I think. How long should the server it's hosted on remain available for this purpose?

@iblislin
Copy link
Member Author

How long should the server it's hosted on remain available for this purpose?

You meaning how long we can have this service enabled? maybe 1 year ... (until I finish my master's degree

@ararslan
Copy link
Member

How long does it take to do an incremental build and test at this point? (You set it up to do incremental rather than fresh builds, right?)

@iblislin
Copy link
Member Author

About 40-50 mins on an increamental build.
I have 2 workers, the max len of running queue is 2.

@ararslan
Copy link
Member

Okay, that sounds great. +1 from me for turning on the webhook now.

@iblislin
Copy link
Member Author

iblislin commented Jul 13, 2017

hmm, just found that if one do rebase again before previous build finish, the old build will not be canceled. Is this the limitation of webhook? I'm curious about travis can handle this situation or not?

@tkelman
Copy link
Contributor

tkelman commented Jul 13, 2017

travis has a special feature for it. buildbot might have something you could turn on? otherwise we have a code snippet for fast-failing that queries the travis or appveyor api to see if any newer builds are queued for the same PR

@iblislin
Copy link
Member Author

Ok, I will investigate on it

@iblislin
Copy link
Member Author

(For reference, the build queue is here: https://julia.iblis.cnmc.tw/#/builders/1

@ararslan
Copy link
Member

Another feature that would be great is if you could implement build skipping. Currently someone can add [ci skip] to a commit message and that will keep Travis and AppVeyor from running on that commit. Would it be possible to detect that and skip running the FreeBSD CI if [ci skip] is given?

@ararslan
Copy link
Member

ararslan commented Jul 14, 2017

Akin to that, another useful feature would be to be able to skip just the FreeBSD build, just as we can currently skip the Windows build with [av skip] (though unfortunately Travis provides no equivalent for skipping macOS and/or Linux). Maybe something like [bsd skip].

@iblislin
Copy link
Member Author

Now ci skipping should work, I just implemented it:

  • [ci skip]
  • [skip ci]
  • [bsd skip]
  • [skip bsd]

@ararslan
Copy link
Member

Wonderful, thanks!

@tkelman
Copy link
Contributor

tkelman commented Jul 15, 2017

I tried it in #22821 but it didn't seem to work. Does buildbot have a built-in feature for that already?

@iblislin
Copy link
Member Author

@tkelman I am checking my code again...
No, it's not a built-in feature. PR is here: buildbot/buildbot#3443

@tkelman
Copy link
Contributor

tkelman commented Aug 16, 2017

I think everyone's pretty happy with this, so closing.

@tkelman tkelman closed this as completed Aug 16, 2017
@ararslan
Copy link
Member

Thanks again for this, Iblis! It's fantastic to have better support for FreeBSD, plus CI that runs way faster than any of the others.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
building Build system, or building Julia or its dependencies system:freebsd Affects only FreeBSD
Projects
None yet
Development

No branches or pull requests

4 participants