Clang roll breaks WebRTC UBSan |
|||||||
Issue descriptionThe latest Clang roll [1] breaks WebRTC UBSan builders: Full logs at [2] [3341/3952] CXX obj/modules/audio_processing/audio_processing_unittests/main_filter_update_gain_unittest.o FAILED: obj/modules/audio_processing/audio_processing_unittests/main_filter_update_gain_unittest.o /b/c/goma_client/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/modules/audio_processing/audio_processing_unittests/main_filter_update_gain_unittest.o.d ... clang++: /b/build/slave/linux_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/SCCP.cpp:310: llvm::ValueLatticeElement (anonymous namespace)::SCCPSolver::getLatticeValueFor(llvm::Value *): Assertion `I != ValueState.end() && "V not found in ValueState nor Paramstate map!"' failed. #0 0x0000000001d95d84 (../../third_party/llvm-build/Release+Asserts/bin/clang+++0x1d95d84) #1 0x0000000001d960e6 (../../third_party/llvm-build/Release+Asserts/bin/clang+++0x1d960e6) #2 0x00007f34c60f1330 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x10330) #3 0x00007f34c4ce0c37 gsignal /build/eglibc-SvCtMH/eglibc-2.19/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:56:0 #4 0x00007f34c4ce4028 abort /build/eglibc-SvCtMH/eglibc-2.19/stdlib/abort.c:91:0 #5 0x00007f34c4cd9bf6 __assert_fail_base /build/eglibc-SvCtMH/eglibc-2.19/assert/assert.c:92:0 #6 0x00007f34c4cd9ca2 (/lib/x86_64-linux-gnu/libc.so.6+0x2fca2) #7 0x0000000001cbfff8 (../../third_party/llvm-build/Release+Asserts/bin/clang+++0x1cbfff8) #8 0x0000000001cb6b4f (../../third_party/llvm-build/Release+Asserts/bin/clang+++0x1cb6b4f) #9 0x00000000018de986 llvm::legacy::PassManagerImpl::run(llvm::Module&) (../../third_party/llvm-build/Release+Asserts/bin/clang+++0x18de986) #10 0x0000000001f2b3eb clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (../../third_party/llvm-build/Release+Asserts/bin/clang+++0x1f2b3eb) #11 0x00000000026821c0 (../../third_party/llvm-build/Release+Asserts/bin/clang+++0x26821c0) #12 0x0000000002b5ab66 clang::ParseAST(clang::Sema&, bool, bool) (../../third_party/llvm-build/Release+Asserts/bin/clang+++0x2b5ab66) #13 0x0000000002319210 clang::FrontendAction::Execute() (../../third_party/llvm-build/Release+Asserts/bin/clang+++0x2319210) #14 0x00000000022da9d1 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (../../third_party/llvm-build/Release+Asserts/bin/clang+++0x22da9d1) #15 0x00000000023adc0b clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (../../third_party/llvm-build/Release+Asserts/bin/clang+++0x23adc0b) #16 0x0000000000853399 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (../../third_party/llvm-build/Release+Asserts/bin/clang+++0x853399) #17 0x0000000000850ec6 main (../../third_party/llvm-build/Release+Asserts/bin/clang+++0x850ec6) #18 0x00007f34c4ccbf45 __libc_start_main /build/eglibc-SvCtMH/eglibc-2.19/csu/libc-start.c:321:0 #19 0x000000000084de42 _start (../../third_party/llvm-build/Release+Asserts/bin/clang+++0x84de42) Stack dump: 0. Program arguments: ../../third_party/llvm-build/Release+Asserts/bin/clang++ -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -disable-free -main-file-name main_filter_update_gain_unittest.cc -mrelocation-model pic ... 1. <eof> parser at end of file 2. Per-module optimization passes 3. Running pass 'Interprocedural Sparse Conditional Constant Propagation' on module '../../modules/audio_processing/aec3/main_filter_update_gain_unittest.cc'. clang++: error: unable to execute command: Aborted (core dumped) clang++: error: clang frontend command failed due to signal (use -v to see invocation) clang version 6.0.0 (trunk 315613) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: ../../third_party/llvm-build/Release+Asserts/bin clang++: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script. clang++: note: diagnostic msg: Error generating preprocessed source(s). [1] https://chromium.googlesource.com/chromium/src/tools/+/047ba10fb349f2c7d21da18bbed199d4505eeacb [2] https://build.chromium.org/p/tryserver.webrtc/builders/linux_ubsan/builds/16629/steps/compile/logs/stdio
,
Oct 16 2017
Attaching preprocessed source. Compiler invocation: ../../third_party/llvm-build/Release+Asserts/bin/clang++ -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -disable-free -main-file-name main_filter_update_gain_unittest.cc -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -relaxed-aliasing -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debug-info-kind=line-tables-only -dwarf-version=4 -debugger-tuning=gdb -momit-leaf-frame-pointer -ffunction-sections -fdata-sections -coverage-notes-file /usr/local/google/work/webrtc/src/out/release/obj/modules/audio_processing/audio_processing_unittests/main_filter_update_gain_unittest.gcno -nostdinc++ -resource-dir ../../third_party/llvm-build/Release+Asserts/lib/clang/6.0.0 -dependency-file obj/modules/audio_processing/audio_processing_unittests/main_filter_update_gain_unittest.o.d -MT obj/modules/audio_processing/audio_processing_unittests/main_filter_update_gain_unittest.o -isystem ../../buildtools/third_party/libc++/trunk/include -isystem ../../buildtools/third_party/libc++abi/trunk/include -D WEBRTC_APM_DEBUG_DUMP=0 -D WEBRTC_INTELLIGIBILITY_ENHANCER=0 -D WEBRTC_AUDIOPROC_FLOAT_PROFILE -D WEBRTC_AUDIOPROC_DEBUG_DUMP -D V8_DEPRECATION_WARNINGS -D DCHECK_ALWAYS_ON=1 -D USE_UDEV -D USE_AURA=1 -D USE_GLIB=1 -D USE_NSS_CERTS=1 -D USE_X11=1 -D UNDEFINED_SANITIZER -D FULL_SAFE_BROWSING -D SAFE_BROWSING_CSD -D SAFE_BROWSING_DB_LOCAL -D CHROMIUM_BUILD -D FIELDTRIAL_TESTING_ENABLED -D _FILE_OFFSET_BITS=64 -D _LARGEFILE_SOURCE -D _LARGEFILE64_SOURCE -D CR_CLANG_REVISION=315613-1 -D __STDC_CONSTANT_MACROS -D __STDC_FORMAT_MACROS -D NDEBUG -D NVALGRIND -D DYNAMIC_ANNOTATIONS_ENABLED=0 -D WEBRTC_ENABLE_PROTOBUF=1 -D WEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -D HAVE_SCTP -D WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=1 -D WEBRTC_POSIX -D WEBRTC_LINUX -D GTEST_API_= -D GTEST_HAS_POSIX_RE=0 -D GTEST_LANG_CXX11=1 -D GOOGLE_PROTOBUF_NO_RTTI -D GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -D HAVE_PTHREAD -D UNIT_TEST -I ../.. -I gen -I ../../third_party/googletest/src/googletest/include -I ../../common_audio/resampler/include -I ../../common_audio/signal_processing/include -I ../../common_audio/vad/include -I ../../third_party/protobuf/src -I ../../third_party/googletest/custom -I ../../third_party/googletest/src/googlemock/include -I ../../third_party/protobuf/src -I gen/protoc_out -D __DATE__= -D __TIME__= -D __TIMESTAMP__= -isysroot ../../build/linux/debian_jessie_amd64-sysroot -internal-isystem ../../build/linux/debian_jessie_amd64-sysroot/usr/local/include -internal-isystem ../../third_party/llvm-build/Release+Asserts/lib/clang/6.0.0/include -internal-externc-isystem ../../build/linux/debian_jessie_amd64-sysroot/usr/include/x86_64-linux-gnu -internal-externc-isystem ../../build/linux/debian_jessie_amd64-sysroot/include -internal-externc-isystem ../../build/linux/debian_jessie_amd64-sysroot/usr/include -O2 -Wno-builtin-macro-redefined -Wall -Werror -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-address-of-packed-member -Wno-unused-lambda-capture -Wno-user-defined-warnings -Wno-enum-compare-switch -Wno-tautological-unsigned-zero-compare -Wno-null-pointer-arithmetic -Wno-tautological-unsigned-enum-zero-compare -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-strict-overflow -Wc++11-narrowing -Wimplicit-fallthrough -Wthread-safety -Winconsistent-missing-override -Wundef -Wunused-lambda-capture -Wnon-virtual-dtor -Woverloaded-virtual -std=gnu++11 -fdeprecated-macro -fdebug-compilation-dir /usr/local/google/work/webrtc/src/out/release -ferror-limit 19 -fmessage-length 0 -fvisibility hidden -fvisibility-inlines-hidden -fsanitize=float-cast-overflow,float-divide-by-zero,integer-divide-by-zero,null,object-size,return,returns-nonnull-attribute,shift-exponent,signed-integer-overflow,unreachable,vla-bound -fsanitize-blacklist=../../tools_webrtc/ubsan/blacklist.txt -fdepfile-entry=../../tools_webrtc/ubsan/blacklist.txt -pthread -stack-protector 1 -stack-protector-buffer-size 4 -fno-rtti -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-slp -mllvm -instcombine-lower-dbg-declare=1 -mllvm -regalloc=pbqp -mllvm -pbqp-coalescing -o obj/modules/audio_processing/audio_processing_unittests/main_filter_update_gain_unittest.o -x c++ /tmp/a.ii
,
Oct 16 2017
This was reported upstream and should be fixed after r315618 (see http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20171009/494698.html)
,
Oct 16 2017
Ok, so we should just wait for the next Clang roll?
,
Oct 16 2017
,
Oct 16 2017
Yes. I've filed a tracking bug for that.
,
Oct 16 2017
(removing general Infra component as part of trooper triage)
,
Oct 16 2017
(and trooper label)
,
Oct 26 2017
When can we expect the clang roll to happen? Otherwise we're being forced to drop UBSan for a while. Is there any way to avoid being affected by this clang change?
,
Oct 27 2017
The following revision refers to this bug: https://webrtc.googlesource.com/src.git/+/fd9149f842472751ac5f373acb3f5a5c17fd47c7 commit fd9149f842472751ac5f373acb3f5a5c17fd47c7 Author: Oleh Prypin <oprypin@webrtc.org> Date: Fri Oct 27 09:49:17 2017 Temporarily remove linux_ubsan from commit queue DEPS roll is blocked on it because it pins a broken clang version, but Chromium has no commitment to fixing it. Bug: chromium:774973 Change-Id: Id04fadde599293bca7b6c25faa2e9926c1265dc7 No-Try: true Reviewed-on: https://webrtc-review.googlesource.com/16423 Reviewed-by: Patrik Höglund <phoglund@webrtc.org> Commit-Queue: Oleh Prypin <oprypin@webrtc.org> Cr-Commit-Position: refs/heads/master@{#20460} [modify] https://crrev.com/fd9149f842472751ac5f373acb3f5a5c17fd47c7/infra/config/cq.cfg
,
Oct 27 2017
We're absolutely committed to rolling clang. Usually we do so roughly every 2 weeks; the last roll was 11 days ago iirc. Right now we just turned on clang-by-default on windows, so we're a bit busy dealing with the fallout, so it might be a bit longer this time.
,
Oct 27 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/tools/build/+/30c82a0f0c9683c51f66630b362d6f917ae3b19f commit 30c82a0f0c9683c51f66630b362d6f917ae3b19f Author: Edward Lemur <ehmaldonado@chromium.org> Date: Fri Oct 27 18:42:59 2017 WebRTC: Temporarily disable Linux UBSan bot TBR=phoglund@chromium.org Bug: 774973 Change-Id: I095b20b1aab0a5b76c9bcdccf34c8c6ad3f89bc6 Reviewed-on: https://chromium-review.googlesource.com/741622 Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org> [modify] https://crrev.com/30c82a0f0c9683c51f66630b362d6f917ae3b19f/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_linux_ubsan.json [modify] https://crrev.com/30c82a0f0c9683c51f66630b362d6f917ae3b19f/scripts/slave/recipes/webrtc/standalone.py
,
Nov 7 2017
The Clang roll has landed, and I confirmed that buliding in the config used by https://build.chromium.org/p/tryserver.webrtc/builders/linux_ubsan/ works. I noticed that WebRTC hasn't picked up the roll yet, but after that it should be possible to enable these bots again.
,
Nov 15 2017
The following revision refers to this bug: https://webrtc.googlesource.com/src.git/+/676ab606664ea6ead3e9142cdb401600eb3d9d65 commit 676ab606664ea6ead3e9142cdb401600eb3d9d65 Author: Edward Lemur <ehmaldonado@webrtc.org> Date: Wed Nov 15 12:13:20 2017 Re-enable linux_ubsan TBR=phoglund@webrtc.org Bug: chromium:774973 No-Try: true Change-Id: I4b89413c9ad266a73f84567765d6c9c87bc65147 Reviewed-on: https://webrtc-review.googlesource.com/22240 Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org> Reviewed-by: Oleh Prypin <oprypin@webrtc.org> Reviewed-by: Edward Lemur <ehmaldonado@webrtc.org> Cr-Commit-Position: refs/heads/master@{#20685} [modify] https://crrev.com/676ab606664ea6ead3e9142cdb401600eb3d9d65/infra/config/cq.cfg
,
Nov 17 2017
,
Nov 17 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/tools/build/+/419728f5f59b9f5e7d4254c879abdfaf612a82f7 commit 419728f5f59b9f5e7d4254c879abdfaf612a82f7 Author: Oleh Prypin <oprypin@webrtc.org> Date: Fri Nov 17 14:54:14 2017 Revert "WebRTC: Temporarily disable Linux UBSan bot" This reverts commit 30c82a0f0c9683c51f66630b362d6f917ae3b19f. Reason for revert: UBSan config fixed Original change's description: > WebRTC: Temporarily disable Linux UBSan bot > > TBR=phoglund@chromium.org > > Bug: 774973 > Change-Id: I095b20b1aab0a5b76c9bcdccf34c8c6ad3f89bc6 > Reviewed-on: https://chromium-review.googlesource.com/741622 > Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org> > Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org> TBR=phoglund@chromium.org,ehmaldonado@chromium.org,mbonadei@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: 774973 Change-Id: I982369f7ebfc8aeb813ecfd9783caaeeedd544cb Reviewed-on: https://chromium-review.googlesource.com/776767 Commit-Queue: Oleh Prypin <oprypin@chromium.org> Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org> Reviewed-by: Patrik Höglund <phoglund@chromium.org> [modify] https://crrev.com/419728f5f59b9f5e7d4254c879abdfaf612a82f7/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_linux_ubsan.json [modify] https://crrev.com/419728f5f59b9f5e7d4254c879abdfaf612a82f7/scripts/slave/recipes/webrtc/standalone.py |
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by h...@chromium.org
, Oct 16 2017