Uh oh!
There was an error while loading. Please reload this page.
Re-enable debug and LLVM assertions - #75199
Conversation
Mark-Simulacrum
commented
Aug 5, 2020
3ddbbb2 to
bbc35ebComparecuviper
commented
Aug 5, 2020
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:
|
emilyalbini
commented
Aug 9, 2020
@Mark-Simulacrum what about disabling assertions in PR |
004bdbc to
0fa6748CompareMark-Simulacrum
commented
Aug 9, 2020
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. |
nikic
commented
Aug 9, 2020
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. |
Mark-Simulacrum
commented
Aug 12, 2020
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. |
bors
commented
Aug 14, 2020
☔ The latest upstream changes (presumably #73383) made this pull request unmergeable. Please resolve the merge conflicts. |
emilyalbini
commented
Sep 3, 2020
I'm ok with the current changes, I agree that testing assertions on |
f6827fe to
2ca5d0dCompareMark-Simulacrum
commented
Sep 3, 2020
@bors r=pietroalbini |
bors
commented
Sep 3, 2020
📌 Commit 2ca5d0d150d9da70b57c279a72255812d3ef6d2b has been approved by |
bors
commented
Sep 4, 2020
⌛ Testing commit 2ca5d0d150d9da70b57c279a72255812d3ef6d2b with merge eaccf682adaf879b494c8bee7363b5b83fcb1ffb... |
bors
commented
Sep 4, 2020
💔 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
3ca8829CompareMark-Simulacrum
commented
Nov 6, 2020
bors
commented
Nov 6, 2020
📌 Commit 3ca8829 has been approved by |
bors
commented
Nov 6, 2020
⌛ Testing commit 3ca8829 with merge 8e20c1e26dd4438a133e5a99acc7b4ef0c5cb958... |
bors
commented
Nov 7, 2020
💥 Test timed out |
Mark-Simulacrum
commented
Nov 7, 2020
@bors retry AFAICT, the powerpc dist builder is still running, but this PR doesn't touch it to my knowledge. |
bors
commented
Nov 7, 2020
⌛ Testing commit 3ca8829 with merge d6f4abe8ca3ed385639ed9bbe6c10e56b688f0d9... |
bors
commented
Nov 7, 2020
💔 Test failed - checks-actions |
Mark-Simulacrum
commented
Nov 7, 2020
Seems spurious, @bors retry |
bors
commented
Nov 7, 2020
bors
commented
Nov 7, 2020
☀️ 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