Skip to content

build-std compatible sanitizer support#65241

Merged
bors merged 5 commits intorust-lang:masterfrom
tmiasko:no-std-san
Jan 11, 2020
Merged

build-std compatible sanitizer support#65241
bors merged 5 commits intorust-lang:masterfrom
tmiasko:no-std-san

Conversation

@tmiasko
Copy link
Contributor

@tmiasko tmiasko commented Oct 9, 2019

Motivation

When using -Z sanitizer=* feature it is essential that both user code and
standard library is instrumented. Otherwise the utility of sanitizer will be
limited, or its use will be impractical like in the case of memory sanitizer.

The recently introduced cargo feature build-std makes it possible to rebuild
standard library with arbitrary rustc flags. Unfortunately, those changes alone
do not make it easy to rebuild standard library with sanitizers, since runtimes
are dependencies of std that have to be build in specific environment,
generally not available outside rustbuild process. Additionally rebuilding them
requires presence of llvm-config and compiler-rt sources.

The goal of changes proposed here is to make it possible to avoid rebuilding
sanitizer runtimes when rebuilding the std, thus making it possible to
instrument standard library for use with sanitizer with simple, although
verbose command:

env CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS=-Zsanitizer=thread cargo test -Zbuild-std --target x86_64-unknown-linux-gnu

Implementation

  • Sanitizer runtimes are no long packed into crates. Instead, libraries build
    from compiler-rt are used as is, after renaming them into librusc_rt.*.
  • rustc obtains runtimes from target libdir for default sysroot, so that
    they are not required in custom build sysroots created with build-std.
  • The runtimes are only linked-in into executables to address issue Rust should not link sanitizer runtimes unconditionally #64629.
    (in previous design it was hard to avoid linking runtimes into static
    libraries produced by rustc as demonstrated by sanitizer-staticlib-link
    test, which still passes despite changes made in Only add sanitizer runtimes when linking an executable (#64629). #64780).

cc @kennytm, @japaric, @Firstyear, @choller

@rust-highfive
Copy link
Contributor

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.

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Oct 9, 2019
@jonas-schievink jonas-schievink added the A-sanitizers Area: Sanitizers for correctness and code quality label Oct 9, 2019
@Firstyear
Copy link
Contributor

I have OSX but I'm not sure what a suitable test plan or steps would be here?

Otherwise I think everything reads pretty reasonably, but I'd want other better people to put their input into the matter :)

@tmiasko
Copy link
Contributor Author

tmiasko commented Oct 10, 2019

  1. The src/test/run-make-fulldeps contains basic sanitizer tests.
    I would suggest starting with those. Some of them are gated to be run
    on Linux only, so I would check if this is still required.
  2. Following that, I would create a small cargo project with tests that include
    issues that should be reported by given sanitizer, and then test it with
    -Zsanitize=*, and then again with -Zsanitize=* and -Zbuild-std.
  3. Repeat above for some real world project. For a thread sanitizer, test
    suites & benchmarks from crossbeam or tokio crates would be great. I would
    expect to get reports from either of those, so it should be clear if things
    are working on not.

Concrete steps for step 3 suitable for x86_64-unknown-linux-gnu:

~/rust $ ./x.py build --stage 1
~/rust $ mkdir -p build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/src
~/rust $ ln -sT $PWD build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/src/rust
~/rust $ rustup toolchain link stage1 build/x86_64-unknown-linux-gnu/stage1

# Testing on tokio: 
~/tokio $ cargo clean
~/tokio $ env CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS=-Zsanitizer=thread cargo +stage1 test --target x86_64-unknown-linux-gnu
~/tokio $ cargo clean
~/tokio $ env CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS=-Zsanitizer=thread cargo +stage1 -Zbuild-std test --target x86_64-unknown-linux-gnu

@nikomatsakis
Copy link
Contributor

Is there any documentation for how sanitizers work today? I think that before we make any major changes to the setup, I'd like to see that rectified, so that the new design can be described as an update to the documentation. The rustc-guide would be a suitable place for such a thing. We could also hold a design meeting, but I don't think that's necessarily required, since sanitizers are still experimental.

@Firstyear
Copy link
Contributor

Honestly, because they are a -Z flag, and thus nightly only, I think that documentation has not emerged because people don't know they exist, can't access them when they need stable, or have developed other work arounds. For example, I'm required to setup RUSTC_BOOTSTRAP=1 in my makefiles to use stable compilers + -Z with sanitizers and FFI.

I also think that because their major value is with FFI, and that requires the C components to always work with sanitizers, there are not many projects currently using them broadly.

So this all led to the sanitizers being a super niche feature, wildly useful for people like me who has a C code base that is sanitized and able to develop the tricks to use them with Rust FFI, but most people don't have that set of overlapping scenarios to bring this into peoples minds.

I think that if the first line of the documentation was "you need nightly to use sanitizers" that's already a major barrier to getting this used more broadly. So I think we need to seriously discuss how we get features like this out from behind nightly only.

@bors
Copy link
Collaborator

bors commented Oct 13, 2019

☔ The latest upstream changes (presumably #65388) made this pull request unmergeable. Please resolve the merge conflicts.

@tmiasko
Copy link
Contributor Author

tmiasko commented Oct 14, 2019

@nikomatsakis japaric published user oriented documentation at https://github.com/japaric/rust-san.

Substantial part of it is dedicated to answering the question how to rebuild
and instrument the std, and how to ignore false positives generated when
previous step wasn't followed. Those parts should now be unnecessary thanks to
-Zbuild-std in cargo and changes proposed here.

I don't think there was any documentation for implementation in rustc, apart
from description on the pull requests and as a part of discussions therein.

Related documentation changes in rustc-guide rust-lang/rustc-dev-guide#466.

@tmiasko tmiasko marked this pull request as ready for review October 14, 2019 22:28
@bors
Copy link
Collaborator

bors commented Oct 15, 2019

☔ The latest upstream changes (presumably #65422) made this pull request unmergeable. Please resolve the merge conflicts.

@choller
Copy link
Contributor

choller commented Oct 15, 2019

Thanks for working on this. After some discussions in Discord it seems that this PR is the right way to move forward. As you have noticed, my fix for #64629 was not comprehensive. I am still facing issues where sanitizer runtimes are linked to libraries and we still cannot build Firefox with TSan for that reason.

@nikomatsakis
Copy link
Contributor

nikomatsakis commented Oct 15, 2019

@tmiasko first off, thanks a ton for the rustc-guide PR! As I wrote in my review, I suspect that the 'how to use sanitizer' material would be better off in the src/doc/rustc directory, as part of the "rustc book". Do you think you could leave a few notes in the rustc-guide describing how sanitizer integration works? (like, it seems like we have to link some LLVM libraries somewhere, and we are copying some files around, why are we doing that?)

My motivation here is that, particularly for these "little used, perenially unstable" features, I'd like to have some notes on how things work so that if we have to fix bugs we have some idea where to start. (Although this sparks an idea for me that maybe, for features like these, we should also have people kind of "sign up" as maintainers that can be pinged if problems arise... right now, we don't have any notion of who those people might be. I presume you'd be up for that?)

To be clear: if there were some docs on how -Zsanitizer is used (like the ones you already wrote) and how it is implemented (I think those don't quite exist yet), I'd be very happy to r+ the PR. Also, to be clear: I realize I'm asking you to do a bit more than we sometimes do -- I'm just trying to bootstrap an effort to get rustc better documented, one PR at a time. Nothing personal. :)

@ehuss
Copy link
Contributor

ehuss commented Oct 16, 2019

I just wanted to note that adding unstable documentation to the rustc book is a little unusual, as it doesn't contain any unstable docs right now. Normally the unstable documentation goes in the Unstable Book. I personally don't care too much in this case, but thought I would point it out.

EDIT: It may want to at least mention that the chapter is about an unstable feature.

@tmiasko
Copy link
Contributor Author

tmiasko commented Oct 16, 2019

@ehuss thanks for suggestion, the unstable-book seems more appropriate. The
-Zsanitizer feature itself is unstable, moreover I think it is best
combined with -Zbuild-std which is also unstable.

I moved the user oriented parts to unstable-book (new commit here). The
high-level overview of the implementation was left in rustc-guide with
additional details about building runtimes, copying, and linking them.

@nikomatsakis sure, you cc me on issues related to sanitizers.

@nikomatsakis
Copy link
Contributor

@ehuss

I just wanted to note that adding unstable documentation to the rustc book is a little unusual, as it doesn't contain any unstable docs right now

Hmm, I'm ok with the unstable book too. I tend to think that means nobody will ever find it there, but maybe that's the point.

@nikomatsakis
Copy link
Contributor

To elaborate on my previous comment, by "maybe that's the point" I meant:

  • we don't want people to come across unstable content too easily
  • and if they ask questions, we can point them at the right place

That said, maybe it'd be useful to extend the rustc book with a pointer to the unstable guide to say something like "you can find documentation on unstable options here". I do appreciate the idea of making it extra clear when things are unstable. The same could apply to the self-profile options.

@nikomatsakis
Copy link
Contributor

I'm quite satisfied. Thanks again @tmiasko for going to the extra mile to document what's going on, it made reading the PR much easier.

@bors r+

@bors
Copy link
Collaborator

bors commented Oct 18, 2019

📌 Commit dd4d6a9 has been approved by nikomatsakis

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 18, 2019
Centril added a commit to Centril/rust that referenced this pull request Oct 19, 2019
build-std compatible sanitizer support

### Motivation

When using `-Z sanitizer=*` feature it is essential that both user code and
standard library is instrumented. Otherwise the utility of sanitizer will be
limited, or its use will be impractical like in the case of memory sanitizer.

The recently introduced cargo feature build-std makes it possible to rebuild
standard library with arbitrary rustc flags. Unfortunately, those changes alone
do not make it easy to rebuild standard library with sanitizers, since runtimes
are dependencies of std that have to be build in specific environment,
generally not available outside rustbuild process. Additionally rebuilding them
requires presence of llvm-config and compiler-rt sources.

The goal of changes proposed here is to make it possible to avoid rebuilding
sanitizer runtimes when rebuilding the std, thus making it possible to
instrument standard library for use with sanitizer with simple, although
verbose command:

```
env CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS=-Zsanitizer=thread cargo test -Zbuild-std --target x86_64-unknown-linux-gnu
```

### Implementation

* Sanitizer runtimes are no long packed into crates. Instead, libraries build
  from compiler-rt are used as is, after renaming them into `librusc_rt.*`.
* rustc obtains runtimes from target libdir for default sysroot, so that
  they are not required in custom build sysroots created with build-std.
* The runtimes are only linked-in into executables to address issue rust-lang#64629.
  (in previous design it was hard to avoid linking runtimes into static
  libraries produced by rustc as demonstrated by sanitizer-staticlib-link
  test, which still passes despite changes made in rust-lang#64780).
* When custom llvm-config is specified during build process, the sanitizer
  runtimes will be obtained from there instead of begin rebuilding from sources
  in src/llvm-project/compiler-rt. This should be preferable since runtimes
  used should match instrumentation passes. For example there have been nine
  version of address sanitizer ABI.

Note this marked as a draft PR, because it is currently untested on OS X (I
would appreciate any help there).

cc @kennytm, @japaric, @Firstyear, @choller
Centril added a commit to Centril/rust that referenced this pull request Oct 19, 2019
build-std compatible sanitizer support

### Motivation

When using `-Z sanitizer=*` feature it is essential that both user code and
standard library is instrumented. Otherwise the utility of sanitizer will be
limited, or its use will be impractical like in the case of memory sanitizer.

The recently introduced cargo feature build-std makes it possible to rebuild
standard library with arbitrary rustc flags. Unfortunately, those changes alone
do not make it easy to rebuild standard library with sanitizers, since runtimes
are dependencies of std that have to be build in specific environment,
generally not available outside rustbuild process. Additionally rebuilding them
requires presence of llvm-config and compiler-rt sources.

The goal of changes proposed here is to make it possible to avoid rebuilding
sanitizer runtimes when rebuilding the std, thus making it possible to
instrument standard library for use with sanitizer with simple, although
verbose command:

```
env CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS=-Zsanitizer=thread cargo test -Zbuild-std --target x86_64-unknown-linux-gnu
```

### Implementation

* Sanitizer runtimes are no long packed into crates. Instead, libraries build
  from compiler-rt are used as is, after renaming them into `librusc_rt.*`.
* rustc obtains runtimes from target libdir for default sysroot, so that
  they are not required in custom build sysroots created with build-std.
* The runtimes are only linked-in into executables to address issue rust-lang#64629.
  (in previous design it was hard to avoid linking runtimes into static
  libraries produced by rustc as demonstrated by sanitizer-staticlib-link
  test, which still passes despite changes made in rust-lang#64780).
* When custom llvm-config is specified during build process, the sanitizer
  runtimes will be obtained from there instead of begin rebuilding from sources
  in src/llvm-project/compiler-rt. This should be preferable since runtimes
  used should match instrumentation passes. For example there have been nine
  version of address sanitizer ABI.

Note this marked as a draft PR, because it is currently untested on OS X (I
would appreciate any help there).

cc @kennytm, @japaric, @Firstyear, @choller
@bors
Copy link
Collaborator

bors commented Dec 30, 2019

☔ The latest upstream changes (presumably #67707) made this pull request unmergeable. Please resolve the merge conflicts.

@tmiasko
Copy link
Contributor Author

tmiasko commented Dec 31, 2019

Rebased

@bors
Copy link
Collaborator

bors commented Dec 31, 2019

☔ The latest upstream changes (presumably #67764) made this pull request unmergeable. Please resolve the merge conflicts.

@tmiasko
Copy link
Contributor Author

tmiasko commented Jan 8, 2020

r? @alexcrichton

@alexcrichton
Copy link
Member

@bors: r+

@bors
Copy link
Collaborator

bors commented Jan 8, 2020

📌 Commit 582c9dacdbcb76076dcc7f8305fd58017304d162 has been approved by alexcrichton

@bors
Copy link
Collaborator

bors commented Jan 8, 2020

⌛ Testing commit 582c9dacdbcb76076dcc7f8305fd58017304d162 with merge e2b729baf8a182e7ea40675c29170a933d48e5b3...

@rust-highfive
Copy link
Contributor

The job x86_64-gnu of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2020-01-08T23:36:12.0207565Z [TIMING] Rustc { target: "x86_64-unknown-linux-gnu", compiler: Compiler { stage: 0, host: "x86_64-unknown-linux-gnu" } } -- 1408.834
2020-01-08T23:36:12.0209039Z Assembling stage1 compiler (x86_64-unknown-linux-gnu)
2020-01-08T23:36:12.1718772Z [TIMING] Assemble { target_compiler: Compiler { stage: 1, host: "x86_64-unknown-linux-gnu" } } -- 0.149
2020-01-08T23:36:12.1719260Z Building sanitizers for x86_64-unknown-linux-gnu
2020-01-08T23:36:12.1730208Z running: "cmake" "cmake" "/checkout/src/llvm-project/compiler-rt" "-DCMAKE_C_COMPILER_TARGET=x86_64-unknown-linux-gnu" "-DCOMPILER_RT_BUILD_BUILTINS=OFF" "-DCOMPILER_RT_BUILD_CRT=OFF" "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" "-DCOMPILER_RT_BUILD_PROFILE=OFF" "-DCOMPILER_RT_BUILD_SANITIZERS=ON" "-DCOMPILER_RT_BUILD_XRAY=OFF" "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCOMPILER_RT_USE_LIBCXX=OFF" "-DLLVM_CONFIG_PATH=/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-config" "-DCMAKE_INSTALL_PREFIX=/checkout/obj/build/x86_64-unknown-linux-gnu/native/sanitizers" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_BUILD_TYPE=Release"
2020-01-08T23:36:13.4590058Z -- The CXX compiler identification is GNU 8.3.0
2020-01-08T23:36:13.4753380Z -- The ASM compiler identification is GNU
2020-01-08T23:36:13.4761616Z -- Found assembler: /usr/bin/cc
2020-01-08T23:36:13.4808087Z -- Check for working C compiler: /usr/bin/cc
---
2020-01-08T23:36:24.3423525Z [ 27%] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_platform_limits_openbsd.cc.o
2020-01-08T23:36:24.3673659Z [ 27%] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_platform_limits_posix.cc.o
2020-01-08T23:36:24.6048422Z [ 27%] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_platform_limits_solaris.cc.o
2020-01-08T23:36:24.6299568Z [ 27%] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_posix.cc.o
2020-01-08T23:36:24.7343452Z /checkout/src/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc: In function '__sanitizer::fd_t __sanitizer::OpenFile(const char*, __sanitizer::FileAccessMode, __sanitizer::error_t*)':
2020-01-08T23:36:24.7344640Z /checkout/src/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc:162:27: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
2020-01-08T23:36:24.7344990Z    fd_t res = internal_open(filename, flags, 0660);
2020-01-08T23:36:24.9285015Z [ 31%] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_printf.cc.o
2020-01-08T23:36:25.1602153Z [ 31%] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_procmaps_common.cc.o
2020-01-08T23:36:25.3724312Z [ 31%] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_procmaps_bsd.cc.o
2020-01-08T23:36:25.3966042Z [ 31%] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_procmaps_linux.cc.o
---
2020-01-08T23:36:38.1168606Z [ 77%] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_fuchsia.cc.o
2020-01-08T23:36:38.1431066Z [ 81%] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_globals.cc.o
2020-01-08T23:36:38.6393403Z [ 81%] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_globals_win.cc.o
2020-01-08T23:36:38.6693333Z [ 81%] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_interceptors.cc.o
2020-01-08T23:36:41.8590937Z In file included from /checkout/src/llvm-project/compiler-rt/lib/asan/asan_interceptors.h:17,
2020-01-08T23:36:41.8592054Z                  from /checkout/src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cc:14:
2020-01-08T23:36:41.8592793Z /checkout/src/llvm-project/compiler-rt/lib/asan/asan_interceptors_memintrinsics.h: In function '__sanitizer::uptr __interceptor_ptrace(int, int, void*, void*)':
2020-01-08T23:36:41.8593616Z /checkout/src/llvm-project/compiler-rt/lib/asan/asan_interceptors_memintrinsics.h:56:29: warning: 'local_iovec.__sanitizer::__sanitizer_iovec::iov_len' may be used uninitialized in this function [-Wmaybe-uninitialized]
2020-01-08T23:36:41.8594191Z      if (__offset > __offset + __size) {                                 \
2020-01-08T23:36:41.8595121Z In file included from /checkout/src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cc:167:
2020-01-08T23:36:41.8595121Z In file included from /checkout/src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cc:167:
2020-01-08T23:36:41.8596057Z /checkout/src/llvm-project/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:3206:21: note: 'local_iovec.__sanitizer::__sanitizer_iovec::iov_len' was declared here
2020-01-08T23:36:41.8596364Z    __sanitizer_iovec local_iovec;
2020-01-08T23:36:41.8597143Z In file included from /checkout/src/llvm-project/compiler-rt/lib/asan/asan_interceptors.h:17,
2020-01-08T23:36:41.8597986Z                  from /checkout/src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cc:14:
2020-01-08T23:36:41.8597986Z                  from /checkout/src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cc:14:
2020-01-08T23:36:41.8598755Z /checkout/src/llvm-project/compiler-rt/lib/asan/asan_interceptors_memintrinsics.h:53:10: warning: 'local_iovec.__sanitizer::__sanitizer_iovec::iov_base' may be used uninitialized in this function [-Wmaybe-uninitialized]
2020-01-08T23:36:41.8599095Z      uptr __offset = (uptr)(offset);                                     \
2020-01-08T23:36:41.8599822Z In file included from /checkout/src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cc:167:
2020-01-08T23:36:41.8599822Z In file included from /checkout/src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cc:167:
2020-01-08T23:36:41.8600525Z /checkout/src/llvm-project/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:3206:21: note: 'local_iovec.__sanitizer::__sanitizer_iovec::iov_base' was declared here
2020-01-08T23:36:41.8600834Z    __sanitizer_iovec local_iovec;
2020-01-08T23:37:01.4475733Z [ 81%] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_interceptors_memintrinsics.cc.o
2020-01-08T23:37:01.7088916Z [ 81%] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_linux.cc.o
2020-01-08T23:37:01.9075721Z [ 86%] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_mac.cc.o
2020-01-08T23:37:01.9351957Z [ 86%] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_malloc_linux.cc.o
---
2020-01-08T23:37:06.2252459Z [100%] Built target RTAsan.x86_64
2020-01-08T23:37:06.2395941Z Scanning dependencies of target clang_rt.asan-x86_64
2020-01-08T23:37:06.2544124Z [100%] Linking CXX static library ../linux/libclang_rt.asan-x86_64.a
2020-01-08T23:37:06.9467715Z [100%] Built target clang_rt.asan-x86_64
2020-01-08T23:37:06.9609208Z cargo:root=/checkout/obj/build/x86_64-unknown-linux-gnu/native/sanitizers
2020-01-08T23:37:06.9631265Z running: "cmake" "cmake" "/checkout/src/llvm-project/compiler-rt" "-DCMAKE_C_COMPILER_TARGET=x86_64-unknown-linux-gnu" "-DCOMPILER_RT_BUILD_BUILTINS=OFF" "-DCOMPILER_RT_BUILD_CRT=OFF" "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" "-DCOMPILER_RT_BUILD_PROFILE=OFF" "-DCOMPILER_RT_BUILD_SANITIZERS=ON" "-DCOMPILER_RT_BUILD_XRAY=OFF" "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCOMPILER_RT_USE_LIBCXX=OFF" "-DLLVM_CONFIG_PATH=/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-config" "-DCMAKE_INSTALL_PREFIX=/checkout/obj/build/x86_64-unknown-linux-gnu/native/sanitizers" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_BUILD_TYPE=Release"
2020-01-08T23:37:07.1704849Z -- Configuring done
2020-01-08T23:37:07.5374315Z -- Generating done
2020-01-08T23:37:07.5746699Z -- Build files have been written to: /checkout/obj/build/x86_64-unknown-linux-gnu/native/sanitizers/build
2020-01-08T23:37:07.5847309Z running: "cmake" "cmake" "--build" "." "--target" "clang_rt.lsan-x86_64" "--config" "Release" "--"
---
2020-01-08T23:37:09.9283425Z [ 94%] Building CXX object lib/lsan/CMakeFiles/clang_rt.lsan-x86_64.dir/lsan_preinit.cc.o
2020-01-08T23:37:09.9824296Z [100%] Building CXX object lib/lsan/CMakeFiles/clang_rt.lsan-x86_64.dir/lsan_thread.cc.o
2020-01-08T23:37:10.1556349Z [100%] Linking CXX static library ../linux/libclang_rt.lsan-x86_64.a
2020-01-08T23:37:10.5264861Z [100%] Built target clang_rt.lsan-x86_64
2020-01-08T23:37:10.5424822Z cargo:root=/checkout/obj/build/x86_64-unknown-linux-gnu/native/sanitizers
2020-01-08T23:37:10.5440298Z running: "cmake" "cmake" "/checkout/src/llvm-project/compiler-rt" "-DCMAKE_C_COMPILER_TARGET=x86_64-unknown-linux-gnu" "-DCOMPILER_RT_BUILD_BUILTINS=OFF" "-DCOMPILER_RT_BUILD_CRT=OFF" "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" "-DCOMPILER_RT_BUILD_PROFILE=OFF" "-DCOMPILER_RT_BUILD_SANITIZERS=ON" "-DCOMPILER_RT_BUILD_XRAY=OFF" "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCOMPILER_RT_USE_LIBCXX=OFF" "-DLLVM_CONFIG_PATH=/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-config" "-DCMAKE_INSTALL_PREFIX=/checkout/obj/build/x86_64-unknown-linux-gnu/native/sanitizers" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_BUILD_TYPE=Release"
2020-01-08T23:37:10.7763960Z -- Configuring done
2020-01-08T23:37:11.1124409Z -- Generating done
2020-01-08T23:37:11.1490394Z -- Build files have been written to: /checkout/obj/build/x86_64-unknown-linux-gnu/native/sanitizers/build
2020-01-08T23:37:11.1580288Z running: "cmake" "cmake" "--build" "." "--target" "clang_rt.msan-x86_64" "--config" "Release" "--"
---
2020-01-08T23:37:11.4080984Z [ 83%] Built target RTSanitizerCommonLibc.x86_64
2020-01-08T23:37:11.4358827Z [ 88%] Built target RTInterception.x86_64
2020-01-08T23:37:11.4718337Z Scanning dependencies of target clang_rt.msan-x86_64
2020-01-08T23:37:11.4894736Z [ 88%] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan.cc.o
2020-01-08T23:37:11.5698424Z /checkout/src/llvm-project/compiler-rt/lib/msan/msan.cc: In function '__sanitizer::u16 __sanitizer_unaligned_load16(const uu16*)':
2020-01-08T23:37:11.5698983Z /checkout/src/llvm-project/compiler-rt/lib/msan/msan.cc:616:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
2020-01-08T23:37:11.5699353Z    *(uu16 *)&__msan_retval_tls[0] = *(uu16 *)MEM_TO_SHADOW((uptr)p);
2020-01-08T23:37:11.5699439Z     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-08T23:37:11.5700074Z /checkout/src/llvm-project/compiler-rt/lib/msan/msan.cc: In function '__sanitizer::u32 __sanitizer_unaligned_load32(const uu32*)':
2020-01-08T23:37:11.5700512Z /checkout/src/llvm-project/compiler-rt/lib/msan/msan.cc:622:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
2020-01-08T23:37:11.5700661Z    *(uu32 *)&__msan_retval_tls[0] = *(uu32 *)MEM_TO_SHADOW((uptr)p);
2020-01-08T23:37:11.5700744Z     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-08T23:37:11.5707514Z /checkout/src/llvm-project/compiler-rt/lib/msan/msan.cc: In function 'void __sanitizer_unaligned_store16(__sanitizer::uu16*, __sanitizer::u16)':
2020-01-08T23:37:11.5708016Z /checkout/src/llvm-project/compiler-rt/lib/msan/msan.cc:634:12: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
2020-01-08T23:37:11.5708132Z    u16 s = *(uu16 *)&__msan_param_tls[1];
2020-01-08T23:37:11.5708221Z             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-08T23:37:11.5713414Z /checkout/src/llvm-project/compiler-rt/lib/msan/msan.cc: In function 'void __sanitizer_unaligned_store32(__sanitizer::uu32*, __sanitizer::u32)':
2020-01-08T23:37:11.5714113Z /checkout/src/llvm-project/compiler-rt/lib/msan/msan.cc:642:12: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
2020-01-08T23:37:11.5714249Z    u32 s = *(uu32 *)&__msan_param_tls[1];
2020-01-08T23:37:12.8289961Z [ 88%] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_allocator.cc.o
2020-01-08T23:37:12.8620045Z [ 88%] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_chained_origin_depot.cc.o
2020-01-08T23:37:13.0270874Z [ 94%] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_interceptors.cc.o
2020-01-08T23:37:13.0270874Z [ 94%] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_interceptors.cc.o
2020-01-08T23:37:20.1546020Z /checkout/src/llvm-project/compiler-rt/lib/msan/msan_interceptors.cc: In function '__sanitizer::uptr __interceptor_ptrace(int, int, void*, void*)':
2020-01-08T23:37:20.1547617Z /checkout/src/llvm-project/compiler-rt/lib/msan/msan_interceptors.cc:1533:12: warning: 'local_iovec.__sanitizer::__sanitizer_iovec::iov_len' may be used uninitialized in this function [-Wmaybe-uninitialized]
2020-01-08T23:37:20.1548119Z    SetShadow(a, size, 0);
2020-01-08T23:37:20.1549759Z In file included from /checkout/src/llvm-project/compiler-rt/lib/msan/msan_interceptors.cc:1346:
2020-01-08T23:37:20.1549759Z In file included from /checkout/src/llvm-project/compiler-rt/lib/msan/msan_interceptors.cc:1346:
2020-01-08T23:37:20.1553603Z /checkout/src/llvm-project/compiler-rt/lib/msan/../sanitizer_common/sanitizer_common_interceptors.inc:3206:21: note: 'local_iovec.__sanitizer::__sanitizer_iovec::iov_len' was declared here
2020-01-08T23:37:20.1554436Z    __sanitizer_iovec local_iovec;
2020-01-08T23:37:20.1555823Z In file included from /checkout/src/llvm-project/compiler-rt/lib/msan/msan_interceptors.cc:18:
2020-01-08T23:37:20.1555823Z In file included from /checkout/src/llvm-project/compiler-rt/lib/msan/msan_interceptors.cc:18:
2020-01-08T23:37:20.1556724Z /checkout/src/llvm-project/compiler-rt/lib/msan/msan.h:266:37: warning: 'local_iovec.__sanitizer::__sanitizer_iovec::iov_base' may be used uninitialized in this function [-Wmaybe-uninitialized]
2020-01-08T23:37:20.1557401Z  #define MEM_IS_APP(mem) addr_is_type((uptr)(mem), MappingDesc::APP)
2020-01-08T23:37:20.1558407Z In file included from /checkout/src/llvm-project/compiler-rt/lib/msan/msan_interceptors.cc:1346:
2020-01-08T23:37:20.1558407Z In file included from /checkout/src/llvm-project/compiler-rt/lib/msan/msan_interceptors.cc:1346:
2020-01-08T23:37:20.1559264Z /checkout/src/llvm-project/compiler-rt/lib/msan/../sanitizer_common/sanitizer_common_interceptors.inc:3206:21: note: 'local_iovec.__sanitizer::__sanitizer_iovec::iov_base' was declared here
2020-01-08T23:37:20.1559719Z    __sanitizer_iovec local_iovec;
2020-01-08T23:37:32.7359259Z [ 94%] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_linux.cc.o
2020-01-08T23:37:32.9755431Z [ 94%] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_report.cc.o
2020-01-08T23:37:32.9755431Z [ 94%] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_report.cc.o
2020-01-08T23:37:33.1265012Z /checkout/src/llvm-project/compiler-rt/lib/msan/msan_report.cc: In function 'void __msan::DescribeMemoryRange(const void*, __sanitizer::uptr)':
2020-01-08T23:37:33.1266345Z /checkout/src/llvm-project/compiler-rt/lib/msan/msan_report.cc:228:7: warning: 'last_quad_poisoned' may be used uninitialized in this function [-Wmaybe-uninitialized]
2020-01-08T23:37:33.1266887Z        if (last_quad_poisoned) {
2020-01-08T23:37:33.1901492Z [ 94%] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_thread.cc.o
2020-01-08T23:37:33.3005528Z [ 94%] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_poisoning.cc.o
2020-01-08T23:37:33.4659624Z [100%] Linking CXX static library ../linux/libclang_rt.msan-x86_64.a
2020-01-08T23:37:33.9184682Z [100%] Built target clang_rt.msan-x86_64
2020-01-08T23:37:33.9184682Z [100%] Built target clang_rt.msan-x86_64
2020-01-08T23:37:34.0137999Z cargo:root=/checkout/obj/build/x86_64-unknown-linux-gnu/native/sanitizers
2020-01-08T23:37:34.0149429Z running: "cmake" "cmake" "/checkout/src/llvm-project/compiler-rt" "-DCMAKE_C_COMPILER_TARGET=x86_64-unknown-linux-gnu" "-DCOMPILER_RT_BUILD_BUILTINS=OFF" "-DCOMPILER_RT_BUILD_CRT=OFF" "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" "-DCOMPILER_RT_BUILD_PROFILE=OFF" "-DCOMPILER_RT_BUILD_SANITIZERS=ON" "-DCOMPILER_RT_BUILD_XRAY=OFF" "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCOMPILER_RT_USE_LIBCXX=OFF" "-DLLVM_CONFIG_PATH=/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-config" "-DCMAKE_INSTALL_PREFIX=/checkout/obj/build/x86_64-unknown-linux-gnu/native/sanitizers" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_BUILD_TYPE=Release"
2020-01-08T23:37:34.2371170Z -- Configuring done
2020-01-08T23:37:34.5682898Z -- Generating done
2020-01-08T23:37:34.6058638Z -- Build files have been written to: /checkout/obj/build/x86_64-unknown-linux-gnu/native/sanitizers/build
2020-01-08T23:37:34.6138681Z running: "cmake" "cmake" "--build" "." "--target" "clang_rt.tsan-x86_64" "--config" "Release" "--"
---
2020-01-08T23:37:36.4209959Z [ 73%] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_fd.cc.o
2020-01-08T23:37:36.8091485Z [ 73%] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_flags.cc.o
2020-01-08T23:37:37.0365590Z [ 73%] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_ignoreset.cc.o
2020-01-08T23:37:37.0915537Z [ 73%] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_interceptors.cc.o
2020-01-08T23:37:40.1565042Z /checkout/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc: In function '__sanitizer::uptr __interceptor_ptrace(int, int, void*, void*)':
2020-01-08T23:37:40.1566410Z /checkout/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:2222:20: warning: 'local_iovec.__sanitizer::__sanitizer_iovec::iov_len' may be used uninitialized in this function [-Wmaybe-uninitialized]
2020-01-08T23:37:40.1567056Z    MemoryAccessRange(((TsanInterceptorContext *)ctx)->thr,                 \
2020-01-08T23:37:40.1569000Z In file included from /checkout/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:2342:
2020-01-08T23:37:40.1569000Z In file included from /checkout/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:2342:
2020-01-08T23:37:40.1570405Z /checkout/src/llvm-project/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:3206:21: note: 'local_iovec.__sanitizer::__sanitizer_iovec::iov_len' was declared here
2020-01-08T23:37:40.1570796Z    __sanitizer_iovec local_iovec;
2020-01-08T23:37:40.1570943Z                      ^~~~~~~~~~~
2020-01-08T23:37:40.1571550Z /checkout/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:2222:20: warning: 'local_iovec.__sanitizer::__sanitizer_iovec::iov_base' may be used uninitialized in this function [-Wmaybe-uninitialized]
2020-01-08T23:37:40.1571972Z    MemoryAccessRange(((TsanInterceptorContext *)ctx)->thr,                 \
2020-01-08T23:37:40.1572691Z In file included from /checkout/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:2342:
2020-01-08T23:37:40.1572691Z In file included from /checkout/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:2342:
2020-01-08T23:37:40.1573420Z /checkout/src/llvm-project/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:3206:21: note: 'local_iovec.__sanitizer::__sanitizer_iovec::iov_base' was declared here
2020-01-08T23:37:40.1573740Z    __sanitizer_iovec local_iovec;
2020-01-08T23:37:50.1685485Z [ 78%] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_interface.cc.o
2020-01-08T23:37:50.3966910Z [ 78%] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_interface_ann.cc.o
2020-01-08T23:37:50.8796180Z [ 78%] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_interface_atomic.cc.o
2020-01-08T23:37:52.6270261Z [ 78%] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_interface_java.cc.o
---
2020-01-09T01:32:47.1955239Z status: exit code: 2
2020-01-09T01:32:47.1955511Z command: "make" "make"
2020-01-09T01:32:47.1955612Z stdout:
2020-01-09T01:32:47.1955988Z ------------------------------------------
2020-01-09T01:32:47.1958789Z LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/sanitizer-leak/sanitizer-leak:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib" '/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc' --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/sanitizer-leak/sanitizer-leak -L /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/sanitizer-leak/sanitizer-leak  -C opt-level=1 -g -Z sanitizer=leak -Z print-link-args leak.rs | "/checkout/src/etc/cat-and-grep.sh" rustc_rt.lsan
2020-01-09T01:32:47.1959129Z [[[ begin stdout ]]]
2020-01-09T01:32:47.1964704Z "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-Wl,-Bstatic" "-Wl,--whole-archive" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_rt.lsan.a" "-Wl,--no-whole-archive" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/sanitizer-leak/sanitizer-leak/leak.leak.7rcbfp3g-cgu.0.rcgu.o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/sanitizer-leak/sanitizer-leak/leak.leak.7rcbfp3g-cgu.1.rcgu.o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/sanitizer-leak/sanitizer-leak/leak.leak.7rcbfp3g-cgu.2.rcgu.o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/sanitizer-leak/sanitizer-leak/leak.leak.7rcbfp3g-cgu.3.rcgu.o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/sanitizer-leak/sanitizer-leak/leak.leak.7rcbfp3g-cgu.4.rcgu.o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/sanitizer-leak/sanitizer-leak/leak.leak.7rcbfp3g-cgu.5.rcgu.o" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/sanitizer-leak/sanitizer-leak/leak" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/sanitizer-leak/sanitizer-leak/leak.1yog5r0z2j6o3aag.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/sanitizer-leak/sanitizer-leak" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,--start-group" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-1a3cd52c00db8209.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-0df50b570e00090b.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-bcf592c1fbaaaedf.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-aa937f832deb9c70.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace-47bcce602d5ff8fb.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-4430b085d2ea7362.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2831d4ecce0b67c7.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-19005735569d5102.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-b9b8df33ec5e1af8.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-1f64e6cc04c987e3.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-93648b5389244af8.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-d38d17c703845358.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-4c1582316f2bb79b.rlib" "-Wl,--end-group" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-1f76f1b185834588.rlib" "-Wl,-Bdynamic" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil"
2020-01-09T01:32:47.1968499Z 
2020-01-09T01:32:47.1968600Z [[[ end stdout ]]]
2020-01-09T01:32:47.1969022Z /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/sanitizer-leak/sanitizer-leak/leak 2>&1 | "/checkout/src/etc/cat-and-grep.sh" 'detected memory leaks'
2020-01-09T01:32:47.1969161Z [[[ begin stdout ]]]
2020-01-09T01:32:47.1969612Z 
2020-01-09T01:32:47.1969688Z [[[ end stdout ]]]
2020-01-09T01:32:47.1970013Z Error: cannot match: detected memory leaks
2020-01-09T01:32:47.1970325Z ------------------------------------------
2020-01-09T01:32:47.1970415Z stderr:
2020-01-09T01:32:47.1970664Z ------------------------------------------
2020-01-09T01:32:47.1970664Z ------------------------------------------
2020-01-09T01:32:47.1970741Z make: *** [Makefile:9: all] Error 1
2020-01-09T01:32:47.1971370Z ------------------------------------------
2020-01-09T01:32:47.1971994Z 
2020-01-09T01:32:47.1972259Z 
2020-01-09T01:32:47.1972296Z 
---
2020-01-09T01:32:47.1973479Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:384:22
2020-01-09T01:32:47.1973582Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
2020-01-09T01:32:47.1973638Z 
2020-01-09T01:32:47.1973691Z 
2020-01-09T01:32:47.1981766Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--rustdoc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "--src-base" "/checkout/src/test/run-make-fulldeps" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "run-make" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--llvm-version" "9.0.0-rust-1.42.0-nightly\n" "--cc" "cc" "--cxx" "c++" "--cflags" "-ffunction-sections -fdata-sections -fPIC -m64" "--llvm-components" "aarch64 aarch64asmparser aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils aggressiveinstcombine all all-targets analysis arm armasmparser armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter binaryformat bitreader bitstreamreader bitwriter codegen core coroutines coverage debuginfocodeview debuginfodwarf debuginfogsym debuginfomsf debuginfopdb demangle dlltooldriver engine executionengine fuzzmutate globalisel gtest gtest_main hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo instcombine instrumentation interpreter ipo irreader jitlink libdriver lineeditor linker lto mc mca mcdisassembler mcjit mcparser mips mipsasmparser mipscodegen mipsdesc mipsdisassembler mipsinfo mirparser msp430 msp430asmparser msp430codegen msp430desc msp430disassembler msp430info native nativecodegen nvptx nvptxcodegen nvptxdesc nvptxinfo objcarcopts object objectyaml option orcjit passes powerpc powerpcasmparser powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata remarks riscv riscvasmparser riscvcodegen riscvdesc riscvdisassembler riscvinfo riscvutils runtimedyld scalaropts selectiondag sparc sparcasmparser sparccodegen sparcdesc sparcdisassembler sparcinfo support symbolize systemz systemzasmparser systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target testingsupport textapi transformutils vectorize webassembly webassemblyasmparser webassemblycodegen webassemblydesc webassemblydisassembler webassemblyinfo windowsmanifest x86 x86asmparser x86codegen x86desc x86disassembler x86info x86utils xray" "--llvm-cxxflags" "-I/checkout/src/llvm-project/llvm/include -I/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/include -std=c++11   -fno-exceptions -fno-rtti -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS" "--ar" "ar" "--llvm-bin-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
2020-01-09T01:32:47.1983666Z 
2020-01-09T01:32:47.1983705Z 
2020-01-09T01:32:47.1983795Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2020-01-09T01:32:47.1983877Z Build completed unsuccessfully in 2:30:50
2020-01-09T01:32:47.1983877Z Build completed unsuccessfully in 2:30:50
2020-01-09T01:32:47.2058836Z == clock drift check ==
2020-01-09T01:32:47.2080204Z   local time: Thu Jan  9 01:32:47 UTC 2020
2020-01-09T01:32:47.4875798Z   network time: Thu, 09 Jan 2020 01:32:47 GMT
2020-01-09T01:32:47.4877002Z == end clock drift check ==
2020-01-09T01:32:51.8847164Z 
2020-01-09T01:32:51.8962930Z ##[error]Bash exited with code '1'.
2020-01-09T01:32:51.9006612Z ##[section]Starting: Checkout
2020-01-09T01:32:51.9008748Z ==============================================================================
2020-01-09T01:32:51.9008852Z Task         : Get sources
2020-01-09T01:32:51.9008965Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@bors
Copy link
Collaborator

bors commented Jan 9, 2020

💔 Test failed - checks-azure

@tmiasko
Copy link
Contributor Author

tmiasko commented Jan 9, 2020

Rebased without commit that attempted to reenable leak sanitizer testcase.

@alexcrichton
Copy link
Member

@bors: r+

@bors
Copy link
Collaborator

bors commented Jan 9, 2020

📌 Commit e88f071 has been approved by alexcrichton

@bors
Copy link
Collaborator

bors commented Jan 9, 2020

⌛ Testing commit e88f071 with merge 41925383b20cd7361be8ef3e8b7a22b61f272611...

@bors
Copy link
Collaborator

bors commented Jan 10, 2020

💔 Test failed - checks-azure

@Centril
Copy link
Contributor

Centril commented Jan 10, 2020

@bors p=0

@kennytm
Copy link
Member

kennytm commented Jan 10, 2020

@bors retry

macOS dist-x86_64-apple timed out (?) without any logs.

@bors
Copy link
Collaborator

bors commented Jan 10, 2020

⌛ Testing commit e88f071 with merge e621797...

@bors
Copy link
Collaborator

bors commented Jan 11, 2020

☀️ Test successful - checks-azure
Approved by: alexcrichton
Pushing e621797 to master...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-sanitizers Area: Sanitizers for correctness and code quality merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.

Projects

None yet

Development

Successfully merging this pull request may close these issues.