Uh oh!
There was an error while loading. Please reload this page.
Disable LLVM assertions on Nightly, enable them in "alt" builds. - #45810
Conversation
rust-highfive
commented
Nov 6, 2017
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @nikomatsakis (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see the contribution instructions for more information. |
aturon
commented
Nov 6, 2017
@bors r+ |
bors
commented
Nov 6, 2017
📌 Commit eac34c9 has been approved by |
aturon
commented
Nov 6, 2017
cc @rust-lang/infra, just to keep everyone in the loop on this change. |
kennytm
commented
Nov 7, 2017
I think we also need to update |
SimonSapin
commented
Nov 7, 2017
@kennytm I’ve pushed another commit. How does it look? Though I don’t know if perf should have LLVM assertions, since that produces timings different from what everyone will use. |
kennytm
commented
Nov 7, 2017
@SimonSapin Unfortunately, unless we have two @bors r=aturon |
bors
commented
Nov 7, 2017
📌 Commit dfb08b6 has been approved by |
michaelwoerister
commented
Nov 7, 2017
@Mark-Simulacrum@alexcrichton Will we back-collect perf.rlo data after this (e.g. by compiling with the former "alt builds" for older nightlies)? |
Mark-Simulacrum
commented
Nov 7, 2017
Since this will require changes to perf.rlo anyway, I should be able to make it so that we properly collect non-alt before and alt now. Ideally, we'd add something like |
It would be nice if perf.rlo tested with debug assertions disabled too since that is closer to how stable releases perform. Also, I'm quite liberal with debug assertions |
nikomatsakis
commented
Nov 8, 2017
by this do you mean running with assertions both enable and disabled and comparing the results? |
Mark-Simulacrum
commented
Nov 8, 2017
Yes, exactly. |
@SimonSapin if you happen to push another commit, can you fix the typo "Nigthly"? It |
oyvindln
commented
Nov 10, 2017
Is it a good idea to merge this as long as #45220 isn't solved, given that it may result in that ending up accessing out-of-bounds memory rather than panicking? |
bors
commented
Nov 11, 2017
Disable LLVM assertions on Nightly, enable them in "alt" builds. Per IRC discussion https://mozilla.logbot.info/rust-infra/20171106#c13812170-c13812204 Background: https://internals.rust-lang.org/t/disabling-llvm-assertions-in-nightly-builds/5388/14
bors
commented
Nov 11, 2017
💔 Test failed - status-travis |
I’m trying to reproduce locally. |
:( |
SimonSapin
commented
Nov 11, 2017
Ah, this test is entirely inside [ 90%] BuilttargetRTAsan_dynamic.x86_64CMakeFiles/Makefile2:1636: recipefortarget'lib/asan/CMakeFiles/asan.dir/rule'failedMakefile:632: recipefortarget'asan'failed---stderr
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/ubsan/ubsan_handlers_cxx.cc: Infunction ‘void__ubsan::HandleCFIBadType(__ubsan::CFICheckFailData*, __ubsan::ValueHandle, bool, __ubsan::ReportOptions)’:
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/ubsan/ubsan_handlers_cxx.cc:111:15: warning: ‘CheckKindStr’ maybeuseduninitializedinthisfunction [-Wmaybe-uninitialized]
constchar*CheckKindStr;
^~~~~~~~~~~~
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc: Infunction ‘int__sanitizer::TracerThread(void*)’:
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc:278:22: error: aggregate ‘sigaltstackhandler_stack’ hasincompletetypeandcannotbedefinedstructsigaltstackhandler_stack;
^~~~~~~~~~~~~
make[3]: *** [lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_stoptheworld_linux_libcdep.cc.o] Error1make[3]: ***Waitingforunfinishedjobs....
make[2]: *** [lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/all] Error2make[2]: ***Waitingforunfinishedjobs....
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc: Infunction ‘__sanitizer::fd_t__sanitizer::OpenFile(constchar*, __sanitizer::FileAccessMode, __sanitizer::error_t*)’:
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc:215:27: warning: ‘flags’ maybeuseduninitializedinthisfunction [-Wmaybe-uninitialized]
fd_tres=internal_open(filename, flags, 0660);
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
Infileincludedfrom /home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/asan/asan_interceptors.cc:265:0:
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc: Infunction ‘__sanitizer::uptr__interceptor_ptrace(int, int, void*, void*)’:
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:2810:21: warning: ‘local_iovec.__sanitizer::__sanitizer_iovec::iov_len’ maybeuseduninitializedinthisfunction [-Wmaybe-uninitialized]
__sanitizer_ioveclocal_iovec;
^~~~~~~~~~~
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/asan/asan_interceptors.cc:59:10: warning: ‘local_iovec.__sanitizer::__sanitizer_iovec::iov_base’ maybeuseduninitializedinthisfunction [-Wmaybe-uninitialized]
uptr__offset= (uptr)(offset); \
^~~~~~~~
Infileincludedfrom /home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/asan/asan_interceptors.cc:265:0:
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:2810:21: note: ‘local_iovec.__sanitizer::__sanitizer_iovec::iov_base’ wasdeclaredhere__sanitizer_ioveclocal_iovec;
^~~~~~~~~~~
Infileincludedfrom /home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/asan/asan_interceptors.cc:265:0:
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc: Infunction ‘__sanitizer::uptr__interceptor_ptrace(int, int, void*, void*)’:
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:2810:21: warning: ‘local_iovec.__sanitizer::__sanitizer_iovec::iov_len’ maybeuseduninitializedinthisfunction [-Wmaybe-uninitialized]
__sanitizer_ioveclocal_iovec;
^~~~~~~~~~~
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/asan/asan_interceptors.cc:59:10: warning: ‘local_iovec.__sanitizer::__sanitizer_iovec::iov_base’ maybeuseduninitializedinthisfunction [-Wmaybe-uninitialized]
uptr__offset= (uptr)(offset); \
^~~~~~~~
Infileincludedfrom /home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/asan/asan_interceptors.cc:265:0:
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:2810:21: note: ‘local_iovec.__sanitizer::__sanitizer_iovec::iov_base’ wasdeclaredhere__sanitizer_ioveclocal_iovec;
^~~~~~~~~~~
make[1]: *** [lib/asan/CMakeFiles/asan.dir/rule] Error2make: *** [asan] Error2thread'main'panickedat '
commanddidnotexecutesuccessfully, got: exitcode: 2buildscriptfailed, mustexitnow', /home/simon/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.26/src/lib.rs:599:4note: Runwith `RUST_BACKTRACE=1` forabacktrace.thread 'main' panicked at 'commanddidnotexecutesuccessfully: "/home/simon/rust/build/x86_64-unknown-linux-gnu/stage0/bin/cargo""build""--target""x86_64-unknown-linux-gnu""-j""8""--release""--features""panic-unwind jemalloc backtrace profiler""--manifest-path""/home/simon/rust/src/libstd/Cargo.toml""--message-format""json"expectedsuccess, got: exitcode: 101', src/bootstrap/compile.rs:882:8 |
gnzlbg
commented
Nov 27, 2017
The comment in |
kennytm
commented
Nov 27, 2017
@gnzlbg Well PRs welcomed 😅 |
SimonSapin
commented
Nov 28, 2017
michaelwoerister
commented
Nov 28, 2017
@SimonSapin that's a comment you have to dereference twice in order to get to the actual content |
gnzlbg
commented
Nov 28, 2017
@michaelwoerister dammit michael! I tried dereferencing it twice and now I am trapped in a loop! |
Introduced a new src/etc/cat-and-grep.sh script (called in run-make as $(CGREP)), which prints the input and do a grep simultaneously. This is mainly used to debug spurious failures in run-make, such as the sanitizer error in rust-lang#45810, as well as real errors such as rust-lang#46126.
Replace most call to grep in run-make by a script that cat the input. Introduced a new `src/etc/cat-and-grep.sh` script (called in run-make as `$(CGREP)`), which prints the input and do a grep simultaneously. This is mainly used to debug spurious failures in run-make, such as the spurious error in #45810, as well as real errors such as #46126. (cc #40713) Some `grep` still remains, mainly the `grep -c` calls that count the number of matches and print the result to stdout.
Update comment on alternate builds in .travis.yml rust-lang#45810 (comment)
…:nightly); r=nox With rust-lang/rust#45810, normal Nightly now has LLVM assertions disabled. This allows us to entirely stop relying on private/unstable Rust CI artifacts being and remaining available: https://internals.rust-lang.org/t/public-stable-rust-services/6072 Source-Repo: https://github.com/servo/servo Source-Revision: 856dc3c90ab920880e0bdca171720f37e40dd597 UltraBlame original commit: 6406e73a24bca7b3355ff438c283fe0bd20afdaf
…:nightly); r=nox With rust-lang/rust#45810, normal Nightly now has LLVM assertions disabled. This allows us to entirely stop relying on private/unstable Rust CI artifacts being and remaining available: https://internals.rust-lang.org/t/public-stable-rust-services/6072 Source-Repo: https://github.com/servo/servo Source-Revision: 856dc3c90ab920880e0bdca171720f37e40dd597 UltraBlame original commit: 6406e73a24bca7b3355ff438c283fe0bd20afdaf
…:nightly); r=nox With rust-lang/rust#45810, normal Nightly now has LLVM assertions disabled. This allows us to entirely stop relying on private/unstable Rust CI artifacts being and remaining available: https://internals.rust-lang.org/t/public-stable-rust-services/6072 Source-Repo: https://github.com/servo/servo Source-Revision: 856dc3c90ab920880e0bdca171720f37e40dd597 UltraBlame original commit: 6406e73a24bca7b3355ff438c283fe0bd20afdaf
…:nightly); r=nox With rust-lang/rust#45810, normal Nightly now has LLVM assertions disabled. This allows us to entirely stop relying on private/unstable Rust CI artifacts being and remaining available: https://internals.rust-lang.org/t/public-stable-rust-services/6072 Source-Repo: https://github.com/servo/servo Source-Revision: 856dc3c90ab920880e0bdca171720f37e40dd597
Per IRC discussion https://mozilla.logbot.info/rust-infra/20171106#c13812170-c13812204
Background: https://internals.rust-lang.org/t/disabling-llvm-assertions-in-nightly-builds/5388/14