-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Re-enable debug and LLVM assertions #75199
Conversation
3ddbbb2
to
bbc35eb
Compare
Well, you already know that external LLVM support is important to me for distro needs. I think this builder is useful as a sanity check, both that external LLVM works and that the stated minimum is explicitly maintained. That's true even without full testing -- just the fact that it bootstraps successfully will catch a lot. The setting for LLVM assertions is irrelevant there, since it's not building LLVM. Rust debug assertions are debatable, but I agree it's nice to keep this fast for first-line pull request CI. Do you know how much that would slow it down? |
That's certainly true. I didn't intend to imply that external LLVM support isn't needed, more so that super recent LLVM is what is guaranteed to work -- we've had soundness fixes and such I think by way of LLVM patches, upstreamed. Maybe I'm misremembering that though. It's a good point though that since we're not building LLVM the assertions setting doesn't matter. I don't know how much of a slow down debug assertions would be on the PR builder -- I can try and test that a bit, I guess, just rerunning the builder on this PR a few times after pushing up an amendment. I'll do that soon. Using as a record of timings so far:
|
@Mark-Simulacrum what about disabling assertions in PR |
004bdbc
to
0fa6748
Compare
Yeah I'd rather not diverge the builders like that -- makes it even more annoying to debug auto builder failures if we have differing behaviors between PR and not PR. |
FWIW I don't think debug assertions are particularly useful for the LLVM 8 builder -- having LLVM assertions there would be useful, but not really possible with distro packages. Having debug assertions there would only catch the pretty narrow case of an older LLVM version miscompiling code inside a debug assertion specifically... |
It's not useful for LLVM's sake, but debug assertions may still catch if a pull request introduces a bug in general, and it's nice if we can do that before the review and full CI. The LLVM 8 builder is chosen for this just because it runs automatically, since it's faster without building LLVM itself. |
So adding debug assertions to the PR builder seems like a 6-8 minute hit (roughly 33 to 40m). I don't really care much either way. |
☔ The latest upstream changes (presumably #73383) made this pull request unmergeable. Please resolve the merge conflicts. |
I'm ok with the current changes, I agree that testing assertions on |
f6827fe
to
2ca5d0d
Compare
@bors r=pietroalbini |
📌 Commit 2ca5d0d150d9da70b57c279a72255812d3ef6d2b has been approved by |
⌛ Testing commit 2ca5d0d150d9da70b57c279a72255812d3ef6d2b with merge eaccf682adaf879b494c8bee7363b5b83fcb1ffb... |
💔 Test failed - checks-actions |
Historically we've disabled these assertions on a number of platforms with the goal of speeding up CI. Now, though, having migrated to GitHub actions, CI is already pretty fast, and these debug assertions do bring us some value. This does leave in some debug assertions that are performance-related: macOS currently hovers at just under 2 hours. There are also some other builders which have debug and LLVM assertions disabled: llvm-8, PR builder: In one view, this builder tests our support for older LLVMs. But in reality, a lot of our tests already disable themselves on older LLVMs, and I think our general stance is that we really only support the in-tree LLVM. Plus, we really want CI times on this builder to be really low, as it's run on *every* PR -- that's a lot of CI time. test-various: This disables debug asserts still -- as noted in the Dockerfile, we test code size, and we need debug asserts off for that to work well.
This is helpful to catch slightly more bugs before things hit main CI, and doesn't cost too much extra CI time.
2ca5d0d
to
3ca8829
Compare
📌 Commit 3ca8829 has been approved by |
⌛ Testing commit 3ca8829 with merge 8e20c1e26dd4438a133e5a99acc7b4ef0c5cb958... |
💥 Test timed out |
@bors retry AFAICT, the powerpc dist builder is still running, but this PR doesn't touch it to my knowledge. |
⌛ Testing commit 3ca8829 with merge d6f4abe8ca3ed385639ed9bbe6c10e56b688f0d9... |
💔 Test failed - checks-actions |
Seems spurious, @bors retry |
☀️ Test successful - checks-actions |
Historically we've disabled these assertions on a number of platforms with the
goal of speeding up CI. Now, though, having migrated to GitHub actions, CI is
already pretty fast, and these debug assertions do bring us some value.
This does leave in some debug assertions that are performance-related: macOS
currently hovers at just under 2 hours.
There are also some other builders which have debug and LLVM assertions
disabled:
llvm-8, PR builder:
In one view, this builder tests our support for older LLVMs. But in reality, a
lot of our tests already disable themselves on older LLVMs, and I think our
general stance is that we really only support the in-tree LLVM. Plus, we really
want CI times on this builder to be really low, as it's run on every PR --
that's a lot of CI time.
test-various:
This disables debug asserts still -- as noted in the Dockerfile, we test code
size, and we need debug asserts off for that to work well.
Helps with #59637 -- but doesn't close it, macOS still has asserts off.
r? @pietroalbini