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 worried about concurrent > truncation of clog entries causing I/O errors on SLRU lookup when performing > that check. The three strategies I had for dealing with that were taking the > XactTruncationLock (formerly known as CLogTruncationLock, for those reading > this thread from the beginning), locking out vacuum, and the idea upthread > from Andres about setting PROC_IN_VACUUM and 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