1# This is a suppression file for use with Valgrind tools. File format 2# documentation: 3# http://valgrind.org/docs/manual/mc-manual.html#mc-manual.suppfiles 4 5# The libc symbol that implements a particular standard interface is 6# implementation-dependent. For example, strncpy() shows up as "__GI_strncpy" 7# on some platforms. Use wildcards to avoid mentioning such specific names. 8# Avoid mentioning functions that are good candidates for inlining, 9# particularly single-caller static functions. Suppressions mentioning them 10# would be ineffective at higher optimization levels. 11 12 13# We have occasion to write raw binary structures to disk or to the network. 14# These may contain uninitialized padding bytes. Since recipients also ignore 15# those bytes as padding, this is harmless. 16 17{ 18 padding_pgstat_send 19 Memcheck:Param 20 socketcall.send(msg) 21 22 fun:*send* 23 fun:pgstat_send 24} 25 26{ 27 padding_pgstat_sendto 28 Memcheck:Param 29 socketcall.sendto(msg) 30 31 fun:*send* 32 fun:pgstat_send 33} 34 35{ 36 padding_pgstat_write 37 Memcheck:Param 38 write(buf) 39 40 ... 41 fun:pgstat_write_statsfiles 42} 43 44{ 45 padding_XLogRecData_CRC 46 Memcheck:Value8 47 48 fun:pg_comp_crc32c* 49 fun:XLogRecordAssemble 50} 51 52{ 53 padding_XLogRecData_write 54 Memcheck:Param 55 write(buf) 56 57 ... 58 fun:XLogWrite 59} 60 61{ 62 padding_relcache 63 Memcheck:Param 64 write(buf) 65 66 ... 67 fun:write_relcache_init_file 68} 69 70{ 71 padding_reorderbuffer_serialize 72 Memcheck:Param 73 write(buf) 74 75 ... 76 fun:ReorderBufferSerializeTXN 77} 78 79{ 80 padding_twophase_prepare 81 Memcheck:Param 82 write(buf) 83 84 ... 85 fun:EndPrepare 86} 87 88 89{ 90 padding_twophase_CRC 91 Memcheck:Value8 92 fun:pg_comp_crc32c* 93 fun:EndPrepare 94} 95 96{ 97 padding_bootstrap_initial_xlog_write 98 Memcheck:Param 99 write(buf) 100 101 ... 102 fun:BootStrapXLOG 103} 104 105{ 106 padding_bootstrap_control_file_write 107 Memcheck:Param 108 write(buf) 109 110 ... 111 fun:WriteControlFile 112 fun:BootStrapXLOG 113} 114 115{ 116 bootstrap_write_relmap_overlap 117 Memcheck:Overlap 118 fun:memcpy* 119 fun:write_relmap_file 120 fun:RelationMapFinishBootstrap 121} 122 123 124# gcc on ppc64 can generate a four-byte read to fetch the final "char" fields 125# of a FormData_pg_cast. This is valid compiler behavior, because a proper 126# FormData_pg_cast has trailing padding. Tuples we treat as structures omit 127# that padding, so Valgrind reports an invalid read. Practical trouble would 128# entail the missing pad bytes falling in a different memory page. So long as 129# the structure is aligned, that will not happen. 130{ 131 overread_tuplestruct_pg_cast 132 Memcheck:Addr4 133 134 fun:IsBinaryCoercible 135} 136 137# Python's allocator does some low-level tricks for efficiency. Those 138# can be disabled for better instrumentation; but few people testing 139# postgres will have such a build of python. So add broad 140# suppressions of the resulting errors. 141# See also https://svn.python.org/projects/python/trunk/Misc/README.valgrind 142{ 143 python_clever_allocator 144 Memcheck:Addr4 145 fun:PyObject_Free 146} 147 148{ 149 python_clever_allocator 150 Memcheck:Addr8 151 fun:PyObject_Free 152} 153 154{ 155 python_clever_allocator 156 Memcheck:Value4 157 fun:PyObject_Free 158} 159 160{ 161 python_clever_allocator 162 Memcheck:Value8 163 fun:PyObject_Free 164} 165 166{ 167 python_clever_allocator 168 Memcheck:Cond 169 fun:PyObject_Free 170} 171 172{ 173 python_clever_allocator 174 Memcheck:Addr4 175 fun:PyObject_Realloc 176} 177 178{ 179 python_clever_allocator 180 Memcheck:Addr8 181 fun:PyObject_Realloc 182} 183 184{ 185 python_clever_allocator 186 Memcheck:Value4 187 fun:PyObject_Realloc 188} 189 190{ 191 python_clever_allocator 192 Memcheck:Value8 193 fun:PyObject_Realloc 194} 195 196{ 197 python_clever_allocator 198 Memcheck:Cond 199 fun:PyObject_Realloc 200} 201