-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Debug builds under clang/llvm sanitizers #443
Comments
Per gitter discussion, this sounds good to me. The main issue right now is travis is terrible, and we already do 4 builds. We should probably get crisp about how many builds we want to do and define the optimal matrix. |
@htuch just dropping note here per our private discussion. We need to reconcile what version of clang we can reasonably use since google internal clang != public clang without some work. Needs investigation. |
MSAN isn't going to be easy, and probably not worth doing in our current CI environment. You basically need to rebuild lib[std]c++ and all external deps, see https://github.com/google/sanitizers/wiki/MemorySanitizerLibcxxHowTo. I tried it without this and I see false positives such as:
TSAN/ASAN work fine though with clang-5.0. |
* Add --config={clang-asan,clang-tsan} configuration option to Bazel CLI for when building with clang-5.0. * Add clang-asan, which also checks some static initialization order stuff. * Add ubsan to asan/clang-asan configs, the two play nicely together. * Switch bazel.asan from gcc-4.9+asan to clang-5.0+clang-asan. * Add bazel.tsan CI target, enabled in .travis.yml. MSAN is not included due to the issue discussed at envoyproxy#443.
* Add --config={clang-asan,clang-tsan} configuration option to Bazel CLI for when building with clang-5.0. * Add clang-asan, which also checks some static initialization order stuff. * Add ubsan to asan/clang-asan configs, the two play nicely together. * Switch bazel.asan from gcc-4.9+asan to clang-5.0+clang-asan. * Add bazel.tsan CI target, enabled in .travis.yml. MSAN is not included due to the issue discussed at #443.
The remaining work on MSAN is now tracked in #918. |
missed from code review request in envoyproxy#404
Description: Consumes OS network preference signals to classify connections based on when they're created. New streams will be opened on connections grouped under the current network indication. Note that sockets are still opened by syscalls and so it is simply assumed they are attached to the appropriate network interface. Risk Level: Moderate Testing: Local testing Co-authored-by: Jose Nino <[email protected]> Signed-off-by: Mike Schore <[email protected]> Signed-off-by: JP Simard <[email protected]>
Description: Consumes OS network preference signals to classify connections based on when they're created. New streams will be opened on connections grouped under the current network indication. Note that sockets are still opened by syscalls and so it is simply assumed they are attached to the appropriate network interface. Risk Level: Moderate Testing: Local testing Co-authored-by: Jose Nino <[email protected]> Signed-off-by: Mike Schore <[email protected]> Signed-off-by: JP Simard <[email protected]>
Currently Envoy builds under g++ and can optionally be run under AddressSanitizer via do_ci.sh. There are other sanitizers provided by LLVM such as msan and tsan (see https://github.com/google/sanitizers) that could be automatically applied and run during presubmits to increase confidence in code correctness if we could perform a clang/llvm debug build.
The text was updated successfully, but these errors were encountered: