On 2014-05-10 00:59:59 -0400, Noah Misch wrote:
> On Fri, May 09, 2014 at 04:58:54PM +0200, Andres Freund wrote:
> > On 2014-05-09 10:49:09 -0400, Robert Haas wrote:
> > > > Patch 03: Add valgrind suppression for writing out padding bytes. That's
> > > > better than zeroing the data from the get go because unitialized
> > > > accesses are still detected.
> > >
> > > I have no understanding of valgrind suppressions. I can commit this
> > > blindly if nobody else wants to pick it up.
> >
> > I think the only committer with previous experience in that area is
> > Noah. Noah?
>
> I can pick up that patch.
Cool.
> Static functions having only one call site are especially vulnerable to
> inlining, so avoid naming them in the suppressions file. I do see
> ReorderBufferSerializeChange() inlined away at -O2 and higher. Is it fair to
> tie the suppression to ReorderBufferSerializeTXN() instead?
Hm. That's a good point. If you're talking about tying it to
ReorderBufferSerializeTXN() you mean to list it below the write, as part
of the callstack?
{padding_reorderbuffer_serializeMemcheck:Paramwrite(buf)
...fun:ReorderBufferSerializeTXN
}
If so, yes, that should be fine. Since there's no other writes it
shouldn't make a difference.
> Do you happen to have a self-contained procedure for causing the server to
> reach the code in question?
(cd contrib/test_decoding && make -s installcheck-force)
against a server running with
valgrind \--quiet --trace-children=yes --leak-check=no --track-origins=yes \--read-var-info=yes run-pg-dev-master -c
logging_collector=on\--suppressions=/home/andres/src/postgresql/src/tools/valgrind.supp <path/to/postgres> \
-c wal_level=logical -c max_replication_slots=3
Does the trick here. Valgrind warns in the first (ddl) test run.
the -force is needed because it needs a server running with -c
wal_level=logical -c max_replication_slots=3.
Note that you'll possibly get a spurious regression test failure because
autovacuum ran inbetween and it's transaction is visible in the test
output like: BEGIN
+ COMMIT
+ BEGIN...
Greetings,
Andres Freund
-- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services