diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt index e02a4d301..8e439bcab 100644 --- a/src/server/CMakeLists.txt +++ b/src/server/CMakeLists.txt @@ -61,6 +61,10 @@ if (PRINT_STACKTRACES_ON_SIGNAL) target_compile_definitions(dragonfly_lib PRIVATE PRINT_STACKTRACES_ON_SIGNAL) endif() +if (WITH_ASAN OR WITH_USAN) + target_compile_definitions(dfly_transaction PRIVATE SANITIZERS) +endif() + find_library(ZSTD_LIB NAMES libzstd.a libzstdstatic.a zstd NAMES_PER_DIR REQUIRED) cxx_link(dfly_transaction dfly_core strings_lib TRDP::fast_float) diff --git a/src/server/server_state.cc b/src/server/server_state.cc index 6fd71629d..2b40249fd 100644 --- a/src/server/server_state.cc +++ b/src/server/server_state.cc @@ -166,7 +166,11 @@ void ServerState::DecommitMemory(uint8_t flags) { // trims the memory (reduces RSS usage) from the malloc allocator. Does not present in // MUSL lib. #ifdef __GLIBC__ +// There is an issue with malloc_trim and sanitizers because the asan replace malloc but is not +// aware of malloc_trim which causes malloc_trim to segfault because it's not initialized properly +#ifndef SANITIZERS malloc_trim(0); +#endif #endif } }