From 7d093460f0dfc9ace1681daf5645eaa019f8de20 Mon Sep 17 00:00:00 2001 From: Kostas Kyrimis Date: Sat, 30 Mar 2024 21:52:43 +0200 Subject: [PATCH] fix(ci): malloc trim on sanitizers workflow (#2794) * remove malloc_trim from sanitizers build --- src/server/CMakeLists.txt | 4 ++++ src/server/server_state.cc | 4 ++++ 2 files changed, 8 insertions(+) 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 } }