# Valgrind suppressions for stuff that we cannot control
-# Memory leak in dash
-# dash is actually used when checking the "mkfile" command in tesh
+# Memory leaks in standard tools (e.g. dash, tail, or sort)
{
- Memory leak in /bin/dash
+ Memory leak in /bin tools
Memcheck:Leak
...
- obj:/bin/dash
+ obj:/bin/*
}
-# There's a constant leak of 56 bytes in the depths of libc which
-# manifests, for example, when using backtrace()
{
- Memory leak in libc/dlopen with -pthread
+ Memory leak in /usr/bin tools
Memcheck:Leak
+ ...
+ obj:/usr/bin/*
+}
+
+{
+ Memory leak in cmake
+ Memcheck:Leak
+ match-leak-kinds:reachable
+ ...
+ fun:_ZN4Json5Value13nullSingletonEv
+ obj:*/libjsoncpp.so*
+ ...
+ fun:_dl_init
+}
+
+# There's problem in glibc, where makecontext does not reset the EBP register,
+# and backtrace goes too far when walking up the stack frames
+{
+ Invalid read in backtrace, called after makecontext
+ Memcheck:Addr4
+ fun:backtrace
+ ...
+ fun:makecontext
+}
+
+#There seems to be an issue with libc using an uninitialized value somewhere in dlopen
+{
+ Invalid read in dl_start
+ Memcheck:Cond
+ fun:index
+ fun:expand_dynamic_string_token
+ ...
+ fun:_dl_start
+}
+
+# There are memory leaks when using dlopen
+{
+ Memory leak in libc/dlopen
+ Memcheck:Leak
+ ...
+ fun:_dlerror_run
+}
+
+# 72704 bytes leak from GCC >5.1 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64535
+{
+ Memory leak in dl_init
+ Memcheck:Leak
+ match-leak-kinds:reachable
+ fun:malloc
+ obj:/usr/lib/*/libstdc++.so.*
+ fun:call_init.part.0
+ ...
+ fun:_dl_init
+}
+
+{
+ Leaks in test-help-version and test-help-logs (early call to exit())
+ Memcheck:Leak
+ match-leak-kinds: reachable
+ fun:_Znwm
+ fun:_ZN7simgrid3s4u6EngineC1EPiPPc
+ fun:main
+ ...
+ obj:*/basic-parsing-test
+}
+
+#Ignore leaks in SMPI sample codes
+{
+ Leaks in SMPI sample codes
+ Memcheck:Leak
+ match-leak-kinds: all
fun:malloc
- fun:_dl_map_object_deps
- fun:dl_open_worker
- fun:_dl_catch_error
- fun:_dl_open
- fun:do_dlopen
- fun:_dl_catch_error
- fun:dlerror_run
- fun:__libc_dlopen_mode
+ fun:smpi_simulated_main_
+}
+
+#This test has an intentional leak
+{
+ Intentional leak in SMPI sample codes
+ Memcheck:Leak
+ match-leak-kinds: all
+ fun:MPI_Comm_dup
+ obj:coll-allreduce-with-leaks*
}
-# Memory leaks appearing to be in libcgraph. They can be seen with the
+#Memory leaks appearing to be in libcgraph. They can be seen with the
# following simple program:
# ,----
# | #include <stdio.h>
Memory leak in libcgraph (1/3)
Memcheck:Leak
fun:malloc
- obj:/usr/lib/libcgraph.so*
+ ...
fun:aaglex
fun:aagparse
fun:agconcat
{
Memory leak in libcgraph (2/3)
Memcheck:Leak
- fun:malloc
- obj:/usr/lib/libcgraph.so*
- fun:agalloc
- obj:/usr/lib/libcgraph.so*
- fun:agnode
- obj:/usr/lib/libcgraph.so*
+ fun:calloc
+ ...
+ obj:*/libcgraph.so*
fun:aagparse
fun:agconcat
}
Memory leak in libcgraph (3/3)
Memcheck:Leak
fun:malloc
- fun:dtopen
- fun:agdtopen
- obj:/usr/lib/libcgraph.so*
- fun:agstrdup
- fun:aaglex
+ ...
+ fun:agnode
+ obj:*/libcgraph.so*
fun:aagparse
fun:agconcat
}
+
+# libunwind seems to be using msync poorly, thus triggering these
+# https://github.com/JuliaLang/julia/issues/4533
+{
+ msync unwind
+ Memcheck:Param
+ msync(start)
+ ...
+ obj:*/libpthread*.so
+ ...
+}
+
+{
+ ignore unwind cruft
+ Memcheck:Param
+ rt_sigprocmask(set)
+ ...
+ obj:/usr/lib/x86_64-linux-gnu/libunwind.so.*
+ ...
+}
+{
+ ignore unwind cruft
+ Memcheck:Param
+ msync(start)
+ ...
+ obj:/usr/lib/x86_64-linux-gnu/libunwind.so.*
+ ...
+}
+{
+ ignore unwind cruft
+ Memcheck:Param
+ write(buf)
+ ...
+ fun:_ULx86_64_step
+ obj:/usr/lib/x86_64-linux-gnu/libunwind.so.*
+}
+
+{
+ ignore unwind invalid reads
+ Memcheck:Addr8
+ fun:_Ux86_64_setcontext
+}
+
+# Java cruft
+{
+ JavaCruft 1
+ Memcheck:Addr4
+ ...
+ fun:_ZN9JavaCalls11call_helperEP9JavaValueP12methodHandleP17JavaCallArgumentsP6Thread
+ fun:JVM_DoPrivileged
+ ...
+}
+{
+ JavaCruft 2
+ Memcheck:Cond
+ ...
+ fun:_ZN13CompileBroker25invoke_compiler_on_methodEP11CompileTask
+ ...
+}
+
+{
+ Somewhere within the Java conditions and monitors
+ Memcheck:Cond
+ fun:MarsagliaXORV
+ ...
+}
+
+#ignore python cruft
+{
+ ignore python cruft 1
+ Memcheck:Cond
+ ...
+ obj:/usr/bin/python*
+}
+
+{
+ ignore python cruft 2
+ Memcheck:Addr4
+ ...
+ obj:/usr/bin/python*
+}
+
+{
+ ignore python cruft 3
+ Memcheck:Value8
+ ...
+ obj:/usr/bin/python*
+}