aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndres Freund <andres@anarazel.de>2016-03-08 17:34:09 -0800
committerAndres Freund <andres@anarazel.de>2016-03-08 19:40:59 -0800
commit7e31314c5fcf942a900cce4637a27594ee32a65b (patch)
tree69b0ec0854c3b161df4355bddf7ddedcef79d04c /src
parent6416b1d422e588b0064d09e6a201d184b70638c1 (diff)
downloadpostgresql-7e31314c5fcf942a900cce4637a27594ee32a65b.tar.gz
postgresql-7e31314c5fcf942a900cce4637a27594ee32a65b.zip
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
Diffstat (limited to 'src')
-rw-r--r--src/tools/valgrind.supp66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/tools/valgrind.supp b/src/tools/valgrind.supp
index 0e62782248f..5f15ac13afd 100644
--- a/src/tools/valgrind.supp
+++ b/src/tools/valgrind.supp
@@ -146,3 +146,69 @@
fun:IsBinaryCoercible
}
+
+
+# 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
+}