Improve comments about USE_VALGRIND in pg_config_manual.h.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 9 May 2021 23:33:24 +0000 (19:33 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 9 May 2021 23:33:24 +0000 (19:33 -0400)
These comments left the impression that USE_VALGRIND isn't really
essential for valgrind testing.  But that's wrong, as I learned
the hard way today.

Discussion: https://postgr.es/m/512778.1620588546@sss.pgh.pa.us

src/include/pg_config_manual.h

index e28c9903823b8965b4f039341f70310b64339435..42ee43f0aa7ef3fb79727c784a82f7da99ea74b1 100644 (file)
  * enables detection of buffer accesses that take place without holding a
  * buffer pin (or without holding a buffer lock in the case of index access
  * methods that superimpose their own custom client requests on top of the
- * generic bufmgr.c requests).  See also src/tools/valgrind.supp.
+ * generic bufmgr.c requests).
  *
  * "make installcheck" is significantly slower under Valgrind.  The client
  * requests fall in hot code paths, so USE_VALGRIND slows execution by a few
  * percentage points even when not run under Valgrind.
  *
+ * Do not try to test the server under Valgrind without having built the
+ * server with USE_VALGRIND; else you will get false positives from sinval
+ * messaging (see comments in AddCatcacheInvalidationMessage).  It's also
+ * important to use the suppression file src/tools/valgrind.supp to
+ * exclude other known false positives.
+ *
  * You should normally use MEMORY_CONTEXT_CHECKING with USE_VALGRIND;
  * instrumentation of repalloc() is inferior without it.
  */