2013-06-27 02:00:08 +02:00
|
|
|
# This is a suppression file for use with Valgrind tools. File format
|
|
|
|
# documentation:
|
|
|
|
# http://valgrind.org/docs/manual/mc-manual.html#mc-manual.suppfiles
|
|
|
|
|
|
|
|
# The libc symbol that implements a particular standard interface is
|
|
|
|
# implementation-dependent. For example, strncpy() shows up as "__GI_strncpy"
|
|
|
|
# on some platforms. Use wildcards to avoid mentioning such specific names.
|
2014-05-13 05:03:49 +02:00
|
|
|
# Avoid mentioning functions that are good candidates for inlining,
|
|
|
|
# particularly single-caller static functions. Suppressions mentioning them
|
|
|
|
# would be ineffective at higher optimization levels.
|
2013-06-27 02:00:08 +02:00
|
|
|
|
|
|
|
|
|
|
|
# We have occasion to write raw binary structures to disk or to the network.
|
|
|
|
# These may contain uninitialized padding bytes. Since recipients also ignore
|
|
|
|
# those bytes as padding, this is harmless.
|
|
|
|
|
|
|
|
{
|
|
|
|
padding_pgstat_send
|
|
|
|
Memcheck:Param
|
|
|
|
socketcall.send(msg)
|
|
|
|
|
|
|
|
fun:*send*
|
|
|
|
fun:pgstat_send
|
|
|
|
}
|
|
|
|
|
|
|
|
{
|
|
|
|
padding_pgstat_sendto
|
|
|
|
Memcheck:Param
|
|
|
|
socketcall.sendto(msg)
|
|
|
|
|
|
|
|
fun:*send*
|
|
|
|
fun:pgstat_send
|
|
|
|
}
|
|
|
|
|
|
|
|
{
|
|
|
|
padding_pgstat_write
|
|
|
|
Memcheck:Param
|
|
|
|
write(buf)
|
|
|
|
|
|
|
|
...
|
|
|
|
fun:pgstat_write_statsfiles
|
|
|
|
}
|
|
|
|
|
|
|
|
{
|
|
|
|
padding_XLogRecData_CRC
|
|
|
|
Memcheck:Value8
|
|
|
|
|
2015-03-15 17:37:07 +01:00
|
|
|
fun:pg_comp_crc32c
|
2014-12-18 10:31:59 +01:00
|
|
|
fun:XLogRecordAssemble
|
2013-06-27 02:00:08 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
{
|
|
|
|
padding_XLogRecData_write
|
|
|
|
Memcheck:Param
|
|
|
|
write(buf)
|
|
|
|
|
|
|
|
...
|
|
|
|
fun:XLogWrite
|
|
|
|
}
|
|
|
|
|
|
|
|
{
|
|
|
|
padding_relcache
|
|
|
|
Memcheck:Param
|
|
|
|
write(buf)
|
|
|
|
|
|
|
|
...
|
|
|
|
fun:write_relcache_init_file
|
|
|
|
}
|
|
|
|
|
2014-05-13 05:03:49 +02:00
|
|
|
{
|
|
|
|
padding_reorderbuffer_serialize
|
|
|
|
Memcheck:Param
|
|
|
|
write(buf)
|
|
|
|
|
|
|
|
...
|
|
|
|
fun:ReorderBufferSerializeTXN
|
|
|
|
}
|
|
|
|
|
2014-09-01 12:19:00 +02:00
|
|
|
{
|
|
|
|
padding_twophase_prepare
|
|
|
|
Memcheck:Param
|
|
|
|
write(buf)
|
|
|
|
|
|
|
|
...
|
|
|
|
fun:EndPrepare
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
padding_twophase_CRC
|
|
|
|
Memcheck:Value8
|
2015-03-15 17:37:07 +01:00
|
|
|
fun:pg_comp_crc32c
|
2014-09-01 12:19:00 +02:00
|
|
|
fun:EndPrepare
|
|
|
|
}
|
|
|
|
|
2016-03-09 04:21:28 +01:00
|
|
|
{
|
|
|
|
padding_bootstrap_initial_xlog_write
|
|
|
|
Memcheck:Param
|
|
|
|
write(buf)
|
|
|
|
|
|
|
|
...
|
|
|
|
fun:BootStrapXLOG
|
|
|
|
}
|
|
|
|
|
|
|
|
{
|
|
|
|
padding_bootstrap_control_file_write
|
|
|
|
Memcheck:Param
|
|
|
|
write(buf)
|
|
|
|
|
|
|
|
...
|
|
|
|
fun:WriteControlFile
|
|
|
|
fun:BootStrapXLOG
|
|
|
|
}
|
|
|
|
|
|
|
|
{
|
|
|
|
bootstrap_write_relmap_overlap
|
|
|
|
Memcheck:Overlap
|
|
|
|
fun:memcpy*
|
|
|
|
fun:write_relmap_file
|
|
|
|
fun:RelationMapFinishBootstrap
|
|
|
|
}
|
|
|
|
|
2013-06-27 02:00:08 +02:00
|
|
|
|
|
|
|
# gcc on ppc64 can generate a four-byte read to fetch the final "char" fields
|
|
|
|
# of a FormData_pg_cast. This is valid compiler behavior, because a proper
|
|
|
|
# FormData_pg_cast has trailing padding. Tuples we treat as structures omit
|
|
|
|
# that padding, so Valgrind reports an invalid read. Practical trouble would
|
|
|
|
# entail the missing pad bytes falling in a different memory page. So long as
|
|
|
|
# the structure is aligned, that will not happen.
|
|
|
|
{
|
|
|
|
overread_tuplestruct_pg_cast
|
|
|
|
Memcheck:Addr4
|
|
|
|
|
|
|
|
fun:IsBinaryCoercible
|
|
|
|
}
|
2014-11-14 16:58:00 +01:00
|
|
|
|
|
|
|
# Atomic writes to 64bit atomic vars uses compare/exchange to
|
|
|
|
# guarantee atomic writes of 64bit variables. pg_atomic_write is used
|
2016-04-02 03:53:10 +02:00
|
|
|
# during initialization of the atomic variable; that leads to an
|
2014-11-14 16:58:00 +01:00
|
|
|
# initial read of the old, undefined, memory value. But that's just to
|
|
|
|
# make sure the swap works correctly.
|
|
|
|
{
|
|
|
|
uninitialized_atomic_init_u64
|
|
|
|
Memcheck:Cond
|
|
|
|
fun:pg_atomic_exchange_u64_impl
|
|
|
|
fun:pg_atomic_write_u64_impl
|
|
|
|
fun:pg_atomic_init_u64_impl
|
|
|
|
}
|
2016-03-09 02:34:09 +01:00
|
|
|
|
|
|
|
|
|
|
|
# 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
|
|
|
|
}
|