Closed kennytm closed 6 years ago
I wonder if this is something like a concurrency related bug in clang? Like maybe a linker script is generated into a temporary location and just happens to collide, causing this to fail sometimes and succeed other times?
Other than that though I have no idea :(
For reference, the code related to the VERSION script:
The invocation: https://github.com/rust-lang/compiler-rt/blob/54d95ca0bd603c322601a61255898e2b8d2a3cae/lib/asan/CMakeLists.txt#L173-L177
The cmake macro: https://github.com/rust-lang/compiler-rt/blob/54d95ca0bd603c322601a61255898e2b8d2a3cae/cmake/Modules/SanitizerUtils.cmake#L60-L81
The Python script generating the file: https://github.com/rust-lang/compiler-rt/blob/54d95ca0bd603c322601a61255898e2b8d2a3cae/lib/sanitizer_common/scripts/gen_dynamic_list.py
Hm looking again, on the x86_64 builder we shouldn't even be building i386 versions of the library, so we can probably also just stop building those versions and that may fix it
The content of the *.vers file should look like:
The first 30 lines of the version script in #50205 are:
It doesn't look like there's syntax error at line 1 🤔
We've got the complete file content in https://github.com/rust-lang/rust/pull/52326#issuecomment-405030619. It does not looks like anything corrupted?
This is likely a race condition so it could be the case that when the linker is invoked it's invalid but then by the time we read the file it is finished writing so it's vaild. No idea how to track it down though :(
I'm hoping this is either mitigated or fixed with https://github.com/rust-lang/rust/pull/52487
I haven't seen this in quite some time, so closing.
Symptom:
The
dist-x86_64-linux-alt
job failed when running the build script forrustc_asan
in thestage1-std
phase.Sample of the log
``` [00:30:15] travis_fold:start:stage1-std travis_time:start:stage1-std Building stage1 std artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu) [00:30:15] Compiling cc v1.0.15 [00:30:15] Compiling core v0.0.0 (file:///checkout/src/libcore) [00:30:15] Compiling build_helper v0.1.0 (file:///checkout/src/build_helper) [00:30:15] Compiling unwind v0.0.0 (file:///checkout/src/libunwind) [00:30:19] Compiling std v0.0.0 (file:///checkout/src/libstd) [00:30:23] Compiling compiler_builtins v0.0.0 (file:///checkout/src/rustc/compiler_builtins_shim) [00:30:23] Compiling cmake v0.1.30 [00:30:23] Compiling alloc_jemalloc v0.0.0 (file:///checkout/src/liballoc_jemalloc) [00:30:28] Compiling profiler_builtins v0.0.0 (file:///checkout/src/libprofiler_builtins) [00:30:28] Compiling rustc_asan v0.0.0 (file:///checkout/src/librustc_asan) [00:30:28] Compiling rustc_msan v0.0.0 (file:///checkout/src/librustc_msan) [00:30:29] Compiling rustc_lsan v0.0.0 (file:///checkout/src/librustc_lsan) [00:30:30] Compiling rustc_tsan v0.0.0 (file:///checkout/src/librustc_tsan) [00:30:38] warning: ../libcompiler_builtins/compiler-rt/lib/profile/InstrProfilingMerge.c:86:48: warning: unused parameter 'ProfileSize' [-Wunused-parameter] [00:30:38] warning: uint64_t ProfileSize) { [00:30:38] warning: ^ [00:30:38] warning: 1 warning generated. [00:30:38] warning: ../libcompiler_builtins/compiler-rt/lib/profile/InstrProfilingUtil.c:119:3: warning: implicit declaration of function 'flock' is invalid in C99 [-Wimplicit-function-declaration] [00:30:38] warning: flock(fd, LOCK_EX); [00:30:38] warning: ^ [00:30:38] warning: ../libcompiler_builtins/compiler-rt/lib/profile/InstrProfilingUtil.c:144:3: warning: implicit declaration of function 'flock' is invalid in C99 [-Wimplicit-function-declaration] [00:30:38] warning: flock(fd, LOCK_UN); [00:30:38] warning: ^ [00:30:38] warning: 2 warnings generated. [00:30:38] warning: ../libcompiler_builtins/compiler-rt/lib/profile/InstrProfilingValue.c:108:60: warning: unused parameter 'Data' [-Wunused-parameter] [00:30:38] warning: static ValueProfNode *allocateOneNode(__llvm_profile_data *Data, uint32_t Index, [00:30:38] warning: ^ [00:30:38] warning: ../libcompiler_builtins/compiler-rt/lib/profile/InstrProfilingValue.c:108:75: warning: unused parameter 'Index' [-Wunused-parameter] [00:30:38] warning: static ValueProfNode *allocateOneNode(__llvm_profile_data *Data, uint32_t Index, [00:30:38] warning: ^ [00:30:38] warning: ../libcompiler_builtins/compiler-rt/lib/profile/InstrProfilingValue.c:109:48: warning: unused parameter 'Value' [-Wunused-parameter] [00:30:38] warning: uint64_t Value) { [00:30:38] warning: ^ [00:30:38] warning: 3 warnings generated. [00:31:40] error: failed to run custom build command for `rustc_asan v0.0.0 (file:///checkout/src/librustc_asan)` [00:31:40] process didn't exit successfully: `/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/release/build/rustc_asan-e947cddfbde6b9fa/build-script-build` (exit code: 101) [00:31:40] --- stdout [00:31:40] cargo:rerun-if-changed=/checkout/src/librustc_asan/../libcompiler_builtins/compiler-rt/CODE_OWNERS.TXT [00:31:40] cargo:rerun-if-changed=/checkout/src/librustc_asan/../libcompiler_builtins/compiler-rt/CREDITS.TXT ...Previous instances: