-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Add Clang Linux build to CI pipeline #10767
base: main
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for meta-velox canceled.
|
984a9e0
to
245f3a3
Compare
The workflow isn't triggered. Maybe a chicken and egg problem? @majetideepak FYI. |
@czentgr the job was triggerd but failed during parsing which means it doesn't show up in the check list (not a great choice on gh's part...) https://github.com/facebookincubator/velox/actions/runs/10411698998/workflow#L53 |
245f3a3
to
195045f
Compare
@assignUser Thank you! I fixed the path. I overlooked the part with the path in the doc. |
a45f534
to
f12993e
Compare
@assignUser I hope it is nothing bad but got two odd issues in my recent run: linux-adapter with clang (the one most interested in) failed with network issue (artifact read timed out).
And MacOS14 failed during upload with
I will retry later. |
f12993e
to
a5a4c98
Compare
I have deleted all active caches for the mac 14 build (on main), that should fix this issue. |
The build issue for ubuntu-clang Linux with adapters is fixed in PR #10800. |
It seems the macos14 issues is related to a bug in the artifacts action, looking into it. |
eee46a1
to
3ead727
Compare
The release build with clang15 causes one of the tests in
A SEGV at signal address 0x8. So a nullptr that tries to access at offset 0x8. The issue occurs when calling the constructor of a static object
Further investigation shows that the VTT InlineExecutor symbol for a release build is not linked. It has no address:
while for a debug build it shows:
The symbol not having an address would result in the SEGV as it results in a NULL pointer access. I don't know why this is compiled like by Clang15 and not linked properly. It seems the symbol is optimized away. It could also have something to do with the fact that it is a "cold" symbol. Because this is a test executable I've added a workaround to compile this file with no optimizations which resolves the issue. We can revisit this later - perhaps open a new issue to investigate this further at a later point in time. |
3566ec6
to
d0a535e
Compare
d0a535e
to
e35ac65
Compare
e35ac65
to
745e7ea
Compare
The current fuzzer failures are a known issue for which an issue is already open:
|
745e7ea
to
8553f1e
Compare
@assignUser @majetideepak FYI. I believe this is ready for review. We want this merged so we can also automatically get the C++20 PR run with Clang 15 (I've done this manually but would be nice to confirm in the pipeline). |
# been optimized away by Clang15 and may be some kind of bug. Changing the | ||
# optimization level to 0 results in proper creation/linkage and successful | ||
# execution of the test. Review if this is still necessary when upgrading Clang. | ||
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will we still need this after the folly update being made?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That I will have to check.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since the folly upgrade is likely to be rolled back due to remote functions issues lets keep this for now and re-evaluate later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@czentgr Does this test fail with the new folly upgrade made?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it is still a problem. I re-ran to be sure (I did a fresh install etc).
8553f1e
to
57afc39
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interesting use of workflow_call! I agree that we should test both clang and gcc but want to note that this adds ~ 4 hours of ci time (cold cache). We do have other jobs that use gcc (like the benchmark job) so maybe we run on clang (for sanitizers) only in PRs and both on merge?
57afc39
to
8eb8dda
Compare
@assignUser Not sure you can help with this but there is a problem with the pipeline (Build and Push Adapters job) and accessing a container image
|
8eb8dda
to
7cf340a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CI is green, looks good to me I just want to repeat a comment from my last review about the additional CI time this brings (+4hs on cold cache!).
We do have other jobs that use gcc (like the benchmark job) so maybe we run on clang (for sanitizers) only in PRs and both on merge?
I agree. Should we run this as part of the nightly runs instead? |
88dbb9d
to
2a7505d
Compare
I've moved the Clang build job to the scheduled workflow file. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, this should be fine for now, once we focus more on clang we can switch things around.
The linux build is refactored to be able to switch between clang and gcc based builds of Velox. The gcc based linux build is run on pull and push. The clang based linux build is added to the scheduled jobs and executed on schedule only.
2a7505d
to
5fc50ea
Compare
I have one comment here #10767 (comment) |
The linux build is refactored to be able to switch between clang and gcc based builds of Velox.
The gcc based linux build is run on pull and push.
The clang based linux build is added to the scheduled jobs and executed on schedule
only.