diff --git a/test/blobfs/rocksdb/lsan_suppressions.txt b/test/blobfs/rocksdb/lsan_suppressions.txt new file mode 100644 index 0000000000..593879226d --- /dev/null +++ b/test/blobfs/rocksdb/lsan_suppressions.txt @@ -0,0 +1 @@ +leak:spdk_fs_alloc_thread_ctx diff --git a/test/blobfs/rocksdb/rocksdb.sh b/test/blobfs/rocksdb/rocksdb.sh index 6510ae0fd2..dcd71ab742 100755 --- a/test/blobfs/rocksdb/rocksdb.sh +++ b/test/blobfs/rocksdb/rocksdb.sh @@ -13,6 +13,11 @@ run_step() { echo "--spdk_cache_size=$CACHE_SIZE" >> "$1"_flags.txt echo -n Start $1 test phase... + # ASAN has some bugs around thread_local variables. We have a destructor in place + # to free the thread contexts, but ASAN complains about the leak before those + # destructors have a chance to run. So suppress this one specific leak using + # LSAN_OPTIONS. + export LSAN_OPTIONS="suppressions=$testdir/lsan_suppressions.txt" /usr/bin/time taskset 0xFF $DB_BENCH --flagfile="$1"_flags.txt &> "$1"_db_bench.txt echo done. }