From 30a0356db537085b023aff677428baad8b0fb49f Mon Sep 17 00:00:00 2001 From: Dmitri Dolguikh Date: Thu, 16 Jul 2020 22:24:30 -0700 Subject: [PATCH] Switch to a tsan-instrumented libc++ for tsan tests (#12134) This fixes https://github.com/envoyproxy/envoy/issues/9784 and re-enables vhds_integration_test Risk Level: Low, but will most likely increase memory usage Signed-off-by: Dmitri Dolguikh Signed-off-by: Kevin Baichoo --- .bazelrc | 8 ++++++++ ci/do_ci.sh | 2 +- source/common/filesystem/posix/filesystem_impl.cc | 2 -- test/integration/BUILD | 2 -- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.bazelrc b/.bazelrc index 17cd6008e399..5d29db5979fa 100644 --- a/.bazelrc +++ b/.bazelrc @@ -161,6 +161,10 @@ build:rbe-toolchain-msan --linkopt=-L/opt/libcxx_msan/lib build:rbe-toolchain-msan --linkopt=-Wl,-rpath,/opt/libcxx_msan/lib build:rbe-toolchain-msan --config=clang-msan +build:rbe-toolchain-tsan --linkopt=-L/opt/libcxx_tsan/lib +build:rbe-toolchain-tsan --linkopt=-Wl,-rpath,/opt/libcxx_tsan/lib +build:rbe-toolchain-tsan --config=clang-tsan + build:rbe-toolchain-gcc --config=rbe-toolchain build:rbe-toolchain-gcc --platforms=@rbe_ubuntu_gcc//config:platform build:rbe-toolchain-gcc --host_platform=@rbe_ubuntu_gcc//config:platform @@ -229,6 +233,10 @@ build:docker-msan --config=docker-sandbox build:docker-msan --config=rbe-toolchain-clang-libc++ build:docker-msan --config=rbe-toolchain-msan +build:docker-tsan --config=docker-sandbox +build:docker-tsan --config=rbe-toolchain-clang-libc++ +build:docker-tsan --config=rbe-toolchain-tsan + # CI configurations build:remote-ci --remote_cache=grpcs://remotebuildexecution.googleapis.com build:remote-ci --remote_executor=grpcs://remotebuildexecution.googleapis.com diff --git a/ci/do_ci.sh b/ci/do_ci.sh index d13c7be545bd..384433e2ccf1 100755 --- a/ci/do_ci.sh +++ b/ci/do_ci.sh @@ -181,7 +181,7 @@ elif [[ "$CI_TARGET" == "bazel.tsan" ]]; then setup_clang_toolchain echo "bazel TSAN debug build with tests" echo "Building and testing envoy tests ${TEST_TARGETS}" - bazel_with_collection test ${BAZEL_BUILD_OPTIONS} -c dbg --config=clang-tsan --build_tests_only ${TEST_TARGETS} + bazel_with_collection test --config=rbe-toolchain-tsan ${BAZEL_BUILD_OPTIONS} -c dbg --build_tests_only ${TEST_TARGETS} if [ "${ENVOY_BUILD_FILTER_EXAMPLE}" == "1" ]; then echo "Building and testing envoy-filter-example tests..." pushd "${ENVOY_FILTER_EXAMPLE_SRCDIR}" diff --git a/source/common/filesystem/posix/filesystem_impl.cc b/source/common/filesystem/posix/filesystem_impl.cc index 580e980273a9..e24814d0ca70 100644 --- a/source/common/filesystem/posix/filesystem_impl.cc +++ b/source/common/filesystem/posix/filesystem_impl.cc @@ -96,8 +96,6 @@ std::string InstanceImplPosix::fileReadToEnd(const std::string& path) { throw EnvoyException(absl::StrCat("Invalid path: ", path)); } - std::ios::sync_with_stdio(false); - std::ifstream file(path); if (file.fail()) { throw EnvoyException(absl::StrCat("unable to read file: ", path)); diff --git a/test/integration/BUILD b/test/integration/BUILD index 2efec82ce37b..b08549380079 100644 --- a/test/integration/BUILD +++ b/test/integration/BUILD @@ -219,8 +219,6 @@ envoy_cc_test( ], tags = [ "fails_on_windows", - # https://github.com/envoyproxy/envoy/issues/9784 - "no_tsan", ], deps = [ ":http_integration_lib",