Hi,
On 2020-07-30 13:18:01 -0700, Mark Dilger wrote:
> Per tuple, tuple_is_visible() potentially checks whether the xmin or xmax committed via TransactionIdDidCommit. I am
worriedabout concurrent truncation of clog entries causing I/O errors on SLRU lookup when performing that check. The
threestrategies I had for dealing with that were taking the XactTruncationLock (formerly known as CLogTruncationLock,
forthose reading this thread from the beginning), locking out vacuum, and the idea upthread from Andres about setting
PROC_IN_VACUUMand such. Maybe I'm being dense and don't need to worry about this. But I haven't convinced myself of
that,yet.
I think it's not at all ok to look in the procarray or clog for xids
that are older than what you're announcing you may read. IOW I don't
think it's OK to just ignore the problem, or try to work around it by
holding XactTruncationLock.
Greetings,
Andres Freund