Reset lastOverflowedXid on standby when needed
authorAlexander Korotkov <[email protected]>
Sat, 6 Nov 2021 15:31:21 +0000 (18:31 +0300)
committerAlexander Korotkov <[email protected]>
Sat, 6 Nov 2021 15:34:26 +0000 (18:34 +0300)
commit774d00573966e40104337fd14153973a79abc5ce
treea24264200798aa20024fed750179086ca86f0fab
parent58b600f64bfb80ca6daf6d9f27af9c3105e13500
Reset lastOverflowedXid on standby when needed

Currently, lastOverflowedXid is never reset.  It's just adjusted on new
transactions known to be overflowed.  But if there are no overflowed
transactions for a long time, snapshots could be mistakenly marked as
suboverflowed due to wraparound.

This commit fixes this issue by resetting lastOverflowedXid when needed
altogether with KnownAssignedXids.

Backpatch to all supported versions.

Reported-by: Stan Hu
Discussion: https://postgr.es/m/CAMBWrQ%3DFp5UAsU_nATY7EMY7NHczG4-DTDU%3DmCvBQZAQ6wa2xQ%40mail.gmail.com
Author: Kyotaro Horiguchi, Alexander Korotkov
Reviewed-by: Stan Hu, Simon Riggs, Nikolay Samokhvalov, Andrey Borodin, Dmitry Dolgov
src/backend/storage/ipc/procarray.c