Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upDisable LLVM assertions on Nightly, enable them in "alt" builds. #45810
Conversation
rust-highfive
assigned
nikomatsakis
Nov 6, 2017
This comment has been minimized.
This comment has been minimized.
|
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. |
This comment has been minimized.
This comment has been minimized.
|
@bors r+ |
This comment has been minimized.
This comment has been minimized.
|
|
This comment has been minimized.
This comment has been minimized.
|
cc @rust-lang/infra, just to keep everyone in the loop on this change. |
kennytm
added
the
S-waiting-on-bors
label
Nov 7, 2017
This comment has been minimized.
This comment has been minimized.
|
I think we also need to update |
frewsxcv
referenced this pull request
Nov 7, 2017
Closed
Compiling with -Z sanitizer=address aborts #45220
This comment has been minimized.
This comment has been minimized.
|
@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. |
This comment has been minimized.
This comment has been minimized.
|
@SimonSapin Unfortunately, unless we have two @bors r=aturon |
This comment has been minimized.
This comment has been minimized.
|
|
This was referenced Nov 7, 2017
This comment has been minimized.
This comment has been minimized.
|
@Mark-Simulacrum @alexcrichton Will we back-collect perf.rlo data after this (e.g. by compiling with the former "alt builds" for older nightlies)? |
This comment has been minimized.
This comment has been minimized.
|
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 |
This comment has been minimized.
This comment has been minimized.
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 |
This comment has been minimized.
This comment has been minimized.
by this do you mean running with assertions both enable and disabled and comparing the results? |
This comment has been minimized.
This comment has been minimized.
|
Yes, exactly. |
This comment has been minimized.
This comment has been minimized.
|
@SimonSapin if you happen to push another commit, can you fix the typo "Nigthly"? It |
SimonSapin
changed the title
Disable LLVM assertions on Nigthly, enable them in "alt" builds.
Disable LLVM assertions on Nightly, enable them in "alt" builds.
Nov 8, 2017
This comment has been minimized.
This comment has been minimized.
|
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? |
This comment has been minimized.
This comment has been minimized.
bors
added a commit
that referenced
this pull request
Nov 11, 2017
This comment has been minimized.
This comment has been minimized.
|
|
This comment has been minimized.
This comment has been minimized.
I’m trying to reproduce locally. |
kennytm
added
S-waiting-on-author
and removed
S-waiting-on-bors
labels
Nov 11, 2017
This comment has been minimized.
This comment has been minimized.
|
:(
|
This comment has been minimized.
This comment has been minimized.
|
Ah, this test is entirely inside [ 90%] Built target RTAsan_dynamic.x86_64
CMakeFiles/Makefile2:1636: recipe for target 'lib/asan/CMakeFiles/asan.dir/rule' failed
Makefile:632: recipe for target 'asan' failed
--- stderr
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/ubsan/ubsan_handlers_cxx.cc: In function ‘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’ may be used uninitialized in this function [-Wmaybe-uninitialized]
const char *CheckKindStr;
^~~~~~~~~~~~
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc: In function ‘int __sanitizer::TracerThread(void*)’:
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc:278:22: error: aggregate ‘sigaltstack handler_stack’ has incomplete type and cannot be defined
struct sigaltstack handler_stack;
^~~~~~~~~~~~~
make[3]: *** [lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_stoptheworld_linux_libcdep.cc.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc: In function ‘__sanitizer::fd_t __sanitizer::OpenFile(const char*, __sanitizer::FileAccessMode, __sanitizer::error_t*)’:
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc:215:27: warning: ‘flags’ may be used uninitialized in this function [-Wmaybe-uninitialized]
fd_t res = internal_open(filename, flags, 0660);
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /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: In function ‘__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’ may be used uninitialized in this function [-Wmaybe-uninitialized]
__sanitizer_iovec local_iovec;
^~~~~~~~~~~
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/asan/asan_interceptors.cc:59:10: warning: ‘local_iovec.__sanitizer::__sanitizer_iovec::iov_base’ may be used uninitialized in this function [-Wmaybe-uninitialized]
uptr __offset = (uptr)(offset); \
^~~~~~~~
In file included from /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’ was declared here
__sanitizer_iovec local_iovec;
^~~~~~~~~~~
In file included from /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: In function ‘__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’ may be used uninitialized in this function [-Wmaybe-uninitialized]
__sanitizer_iovec local_iovec;
^~~~~~~~~~~
/home/simon/rust/src/libcompiler_builtins/compiler-rt/lib/asan/asan_interceptors.cc:59:10: warning: ‘local_iovec.__sanitizer::__sanitizer_iovec::iov_base’ may be used uninitialized in this function [-Wmaybe-uninitialized]
uptr __offset = (uptr)(offset); \
^~~~~~~~
In file included from /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’ was declared here
__sanitizer_iovec local_iovec;
^~~~~~~~~~~
make[1]: *** [lib/asan/CMakeFiles/asan.dir/rule] Error 2
make: *** [asan] Error 2
thread 'main' panicked at '
command did not execute successfully, got: exit code: 2
build script failed, must exit now', /home/simon/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.26/src/lib.rs:599:4
note: Run with `RUST_BACKTRACE=1` for a backtrace.
thread 'main' panicked at 'command did not execute successfully: "/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"
expected success, got: exit code: 101', src/bootstrap/compile.rs:882:8 |
aethanyc
pushed a commit
to aethanyc/gecko-dev
that referenced
this pull request
Nov 16, 2017
petrochenkov
referenced this pull request
Nov 19, 2017
Open
compiler abort in LLVM code when using a newtype-wrapper as an argument #15402
rkruppe
referenced this pull request
Nov 21, 2017
Open
ThinLTO for libstd breaks the leak sanitizer #46126
kennytm
added a commit
to kennytm/rust
that referenced
this pull request
Nov 23, 2017
kennytm
added a commit
to kennytm/rust
that referenced
this pull request
Nov 23, 2017
kennytm
referenced this pull request
Nov 23, 2017
Merged
Replace most call to grep in run-make by a script that cat the input. #46207
kennytm
added a commit
to kennytm/rust
that referenced
this pull request
Nov 24, 2017
kennytm
added a commit
to kennytm/rust
that referenced
this pull request
Nov 25, 2017
kennytm
added a commit
to kennytm/rust
that referenced
this pull request
Nov 25, 2017
kennytm
added a commit
to kennytm/rust
that referenced
this pull request
Nov 26, 2017
kennytm
added a commit
to kennytm/rust
that referenced
this pull request
Nov 26, 2017
bors
added a commit
that referenced
this pull request
Nov 27, 2017
kennytm
added a commit
to kennytm/rust
that referenced
this pull request
Nov 27, 2017
bors
added a commit
that referenced
this pull request
Nov 27, 2017
This comment has been minimized.
This comment has been minimized.
|
The comment in |
This comment has been minimized.
This comment has been minimized.
|
@gnzlbg Well PRs welcomed |
kennytm
referenced this pull request
Nov 27, 2017
Open
Spurious failure in run-make/sanitizer-memory #46313
bors
added a commit
that referenced
this pull request
Nov 28, 2017
SimonSapin
added a commit
to SimonSapin/rust
that referenced
this pull request
Nov 28, 2017
SimonSapin
referenced this pull request
Nov 28, 2017
Merged
Update comment on alternate builds in .travis.yml #46330
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
@SimonSapin that's a comment you have to dereference twice in order to get to the actual content |
This comment has been minimized.
This comment has been minimized.
|
@michaelwoerister dammit michael! I tried dereferencing it twice and now I am trapped in a loop! |
SimonSapin commentedNov 6, 2017
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