diff --git a/contrib/valgrind.supp b/contrib/valgrind.supp --- a/contrib/valgrind.supp +++ b/contrib/valgrind.supp @@ -111,13 +111,3 @@ ... fun:_ZN5BCLog6Logger12StartLoggingEv } -{ - Suppress glibc bug 24476 - Memcheck:Addr8 - ... - fun:__dlerror_main_freeres - fun:__libc_freeres - ... - fun:quick_exit* - fun:TestOtherProcess -} diff --git a/src/test/util_tests.cpp b/src/test/util_tests.cpp --- a/src/test/util_tests.cpp +++ b/src/test/util_tests.cpp @@ -1282,8 +1282,11 @@ // As an alternative to exit() which runs the exit handlers // (which seem to be flakey with Boost test suite with JUNIT // logging in a forked process), just vanish this process as - // fast as possible. - std::quick_exit(0); + // fast as possible. `quick_exit()` would also work, but it is + // not available on all non glibc platforms. + // Using exec also stops valgrind from thinking it needs to + // analyze the memory leaks in this forked process. + execlp("true", "true", (char *)NULL); default: assert(0); }