]> granicus.if.org Git - postgresql/commitdiff
Add valgrind suppressions for python code.
authorAndres Freund <andres@anarazel.de>
Wed, 9 Mar 2016 01:34:09 +0000 (17:34 -0800)
committerAndres Freund <andres@anarazel.de>
Wed, 9 Mar 2016 03:40:58 +0000 (19:40 -0800)
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

index 710ae25b671a32240b200914b4c27977fc75158b..f0436789275fffdfb1bddec1797fdf2c109375cc 100644 (file)
        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
+}