Details
Description
In WT-7885, A patch build with tcmalloc enabled caused a few address sanitiser errors to appear.
The ASAN leak errors are:
csuite-wt4156-metadata-salvage-test
[2021/10/01 00:17:19.647] ASAN_OPTIONS="detect_leaks=1:abort_on_error=1:disable_coredump=0" ASAN_SYMBOLIZER_PATH=/opt/mongodbtoolchain/v3/bin/llvm-symbolizer TESTUTIL_BYPASS_ASAN=1 LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libeatmydata.so PATH=/opt/mongodbtoolchain/v3/bin:$PATH LD_LIBRARY_PATH=$(pwd)/.libs:$(git rev-parse --show-toplevel)/TCMALLOC_LIB/lib top_srcdir=$(pwd)/.. top_builddir=$(pwd) $(pwd)/test/csuite/test_wt4156_metadata_salvage 2>&1
|
[2021/10/01 00:17:19.660] =================================================================
|
[2021/10/01 00:17:19.660] ==123169==ERROR: AddressSanitizer: attempting free on address which was not malloc()-ed: 0x000002b0e008 in thread T0
|
[2021/10/01 00:17:20.219] #0 0x4c52e2 in free /data/mci/2a834e5406da55eb2b59da6bbcfb3e78/toolchain-builder/tmp/build-llvm.sh-qkG/llvm/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:124:3
|
[2021/10/01 00:17:20.220] #1 0x4fb300 in testutil_is_flag_set /data/mci/bc3ffe86a1d6d4d5ad918cf20559ef22/wiredtiger/build_posix/test/utility/../../../test/utility/misc.c:330:5
|
[2021/10/01 00:17:20.220] #2 0x4f4ad9 in main /data/mci/bc3ffe86a1d6d4d5ad918cf20559ef22/wiredtiger/build_posix/test/csuite/../../../test/csuite/wt4156_metadata_salvage/main.c:447:9
|
[2021/10/01 00:17:20.226] #3 0x7f98995980b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)
|
[2021/10/01 00:17:20.226] #4 0x41d81d in _start (/data/mci/a0cfbad6727adcc2b03aaef77cc8663b/wiredtiger/build_posix/test/csuite/test_wt4156_metadata_salvage+0x41d81d)
|
[2021/10/01 00:17:20.226] Address 0x000002b0e008 is a wild pointer.
|
[2021/10/01 00:17:20.226] SUMMARY: AddressSanitizer: bad-free /data/mci/2a834e5406da55eb2b59da6bbcfb3e78/toolchain-builder/tmp/build-llvm.sh-qkG/llvm/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:124:3 in free
|
[2021/10/01 00:17:20.445] ==123169==ABORTING
|
[2021/10/01 00:17:20.445] Aborted (core dumped)
|
cppsuite-base-test-default
[2021/10/01 00:17:53.767] =================================================================
|
[2021/10/01 00:17:53.767] ==22634==ERROR: LeakSanitizer: detected memory leaks
|
[2021/10/01 00:17:53.768] Direct leak of 8 byte(s) in 1 object(s) allocated from:
|
[2021/10/01 00:17:53.768] #0 0x556452 in operator new(unsigned long) /data/mci/2a834e5406da55eb2b59da6bbcfb3e78/toolchain-builder/tmp/build-llvm.sh-qkG/llvm/projects/compiler-rt/lib/asan/asan_new_delete.cc:106:3
|
[2021/10/01 00:17:53.768] #1 0x7f97c2e2dedd in InitModule() (.part.0) /data/mci/afa8fdbfb065318fbea1329dcac62de0/wiredtiger/gperftools-2.9.1/src/malloc_extension.cc:212:26
|
[2021/10/01 00:17:56.071] SUMMARY: AddressSanitizer: 8 byte(s) leaked in 1 allocation(s).
|
[2021/10/01 00:17:56.071] Aborted (core dumped)
|
[2021/10/01 00:17:56.074] Command failed: command encountered problem: error waiting on process 'e508fa74-0dd8-47ca-b4e7-34aa9b5dfb7a': exit status 134
|
cppsuite-hs-cleanup-default
[2021/10/01 00:18:10.831] =================================================================
|
[2021/10/01 00:18:10.832] ==4696==ERROR: LeakSanitizer: detected memory leaks
|
[2021/10/01 00:18:10.832] Direct leak of 8 byte(s) in 1 object(s) allocated from:
|
[2021/10/01 00:18:10.832] #0 0x556452 in operator new(unsigned long) /data/mci/2a834e5406da55eb2b59da6bbcfb3e78/toolchain-builder/tmp/build-llvm.sh-qkG/llvm/projects/compiler-rt/lib/asan/asan_new_delete.cc:106:3
|
[2021/10/01 00:18:10.832] #1 0x7fd75bb0fedd in InitModule() (.part.0) /data/mci/afa8fdbfb065318fbea1329dcac62de0/wiredtiger/gperftools-2.9.1/src/malloc_extension.cc:212:26
|
[2021/10/01 00:18:23.730] SUMMARY: AddressSanitizer: 8 byte(s) leaked in 1 allocation(s).
|
[2021/10/01 00:18:23.730] Aborted (core dumped)
|
[2021/10/01 00:18:23.733] Command failed: command encountered problem: error waiting on process '21c8a557-f7df-44cc-9ae1-ca10a3c87996': exit status 134
|
Definition of done:
This ticket will need to fix the ASAN leaks when tcmalloc is enabled. After fixing the leaks, configure the evergreen yaml file to enable tcmalloc for ubuntu2004-asan variant task
This is the changes of enabling tcmalloc.
- name: ubuntu2004-asan
|
display_name: "! Ubuntu 20.04 ASAN" |
run_on:
|
- ubuntu2004-test
|
expansions:
|
configure_env_vars:
|
CC=/opt/mongodbtoolchain/v3/bin/clang
|
CXX=/opt/mongodbtoolchain/v3/bin/clang++
|
PATH=/opt/mongodbtoolchain/v3/bin:$PATH
|
CFLAGS="-fsanitize=address -fno-omit-frame-pointer -ggdb" |
CXXFLAGS="-fsanitize=address -fno-omit-frame-pointer -ggdb" |
posix_configure_flags:
|
--enable-silent-rules
|
--enable-strict
|
--enable-diagnostic
|
--disable-static |
--enable-tcmalloc
|
--prefix=$(pwd)/LOCAL_INSTALL
|
smp_command: -j $(grep -c ^processor /proc/cpuinfo)
|
make_command: PATH=/opt/mongodbtoolchain/v3/bin:$PATH make
|
test_env_vars:
|
ASAN_OPTIONS="detect_leaks=1:abort_on_error=1:disable_coredump=0" |
ASAN_SYMBOLIZER_PATH=/opt/mongodbtoolchain/v3/bin/llvm-symbolizer
|
TESTUTIL_BYPASS_ASAN=1 |
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libeatmydata.so
|
PATH=/opt/mongodbtoolchain/v3/bin:$PATH
|
LD_LIBRARY_PATH=$(pwd)/.libs:$(git rev-parse --show-toplevel)/TCMALLOC_LIB/lib
|
top_srcdir=$(pwd)/..
|
top_builddir=$(pwd)
|
tasks:
|
- name: ".pull_request !.windows_only !.pull_request_compilers !.python" |
- name: examples-c-test
|