From fd1cf9d8407589fae354e1a5b852f33eedc7f67f Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Tue, 8 Mar 2016 17:34:09 -0800 Subject: [PATCH] Add valgrind suppressions for python code. Python's allocator does some low-level tricks for efficiency; unfortunately they trigger valgrind errors. Those tricks can be disabled making instrumentation easier; but few people testing postgres will have such a build of python. So add broad suppressions of the resulting errors. See also https://svn.python.org/projects/python/trunk/Misc/README.valgrind This possibly will suppress valid errors, but without it it's basically impossible to use valgrind with plpython code. Author: Andres Freund Backpatch: 9.4, where we started to maintain valgrind suppressions --- src/tools/valgrind.supp | 66 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/src/tools/valgrind.supp b/src/tools/valgrind.supp index 710ae25b67..f043678927 100644 --- a/src/tools/valgrind.supp +++ b/src/tools/valgrind.supp @@ -146,3 +146,69 @@ fun:pg_atomic_write_u64_impl fun:pg_atomic_init_u64_impl } + + +# Python's allocator does some low-level tricks for efficiency. Those +# can be disabled for better instrumentation; but few people testing +# postgres will have such a build of python. So add broad +# suppressions of the resulting errors. +# See also https://svn.python.org/projects/python/trunk/Misc/README.valgrind +{ + python_clever_allocator + Memcheck:Addr4 + fun:PyObject_Free +} + +{ + python_clever_allocator + Memcheck:Addr8 + fun:PyObject_Free +} + +{ + python_clever_allocator + Memcheck:Value4 + fun:PyObject_Free +} + +{ + python_clever_allocator + Memcheck:Value8 + fun:PyObject_Free +} + +{ + python_clever_allocator + Memcheck:Cond + fun:PyObject_Free +} + +{ + python_clever_allocator + Memcheck:Addr4 + fun:PyObject_Realloc +} + +{ + python_clever_allocator + Memcheck:Addr8 + fun:PyObject_Realloc +} + +{ + python_clever_allocator + Memcheck:Value4 + fun:PyObject_Realloc +} + +{ + python_clever_allocator + Memcheck:Value8 + fun:PyObject_Realloc +} + +{ + python_clever_allocator + Memcheck:Cond + fun:PyObject_Realloc +}