diff --git a/contrib/valgrind.supp b/contrib/valgrind.supp --- a/contrib/valgrind.supp +++ b/contrib/valgrind.supp @@ -41,3 +41,13 @@ ... fun:_ZN7leveldbL14InitDefaultEnvEv } +{ + 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 @@ -1279,7 +1279,11 @@ break; case ExitCommand: close(fd); - exit(0); + // 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); default: assert(0); }