localbuf: Add Valgrind buffer access instrumentation
authorAndres Freund <andres@anarazel.de>
Mon, 7 Apr 2025 19:20:30 +0000 (15:20 -0400)
committerAndres Freund <andres@anarazel.de>
Mon, 7 Apr 2025 19:20:30 +0000 (15:20 -0400)
commit8ab4241b9f4f73f2168bcaebc990f8b0a6b7bc81
tree5a7bed3f3ca0c8ef6df4b9c1b4b0ef10eeab3404
parenta13d49014dea39bbe436fd6c28fc65f927038ed7
localbuf: Add Valgrind buffer access instrumentation

This mirrors 1e0dfd166b3 (+ 46ef520b9566), for temporary table buffers. This
is mainly interesting right now because the AIO work currently triggers
spurious valgrind errors, and the fix for that is cleaner if temp buffers
behave the same as shared buffers.

This requires one change beyond the annotations themselves, namely to pin
local buffers while writing them out in FlushRelationBuffers().

Reviewed-by: Noah Misch <noah@leadboat.com>
Co-authored-by: Noah Misch <noah@leadboat.com>
Discussion: https://postgr.es/m/3pd4322mogfmdd5nln3zphdwhtmq3rzdldqjwb2sfqzcgs22lf@ok2gletdaoe6
src/backend/storage/buffer/bufmgr.c
src/backend/storage/buffer/localbuf.c