Update TransactionXmin when MyProc->xmin is updated GetSnapshotData() set TransactionXmin = MyProc->xmin, but when SnapshotResetXmin() advanced MyProc->xmin, it did not advance TransactionXmin correspondingly. That meant that TransactionXmin could be older than MyProc->xmin, and XIDs between than TransactionXmin and the real MyProc->xmin could be vacuumed away. One known consequence is in pg_subtrans lookups: we might try to look up the status of an XID that was already truncated away.
Back-patch to all supported versions. Reviewed-by: Andres Freund Discussion: https://www.postgresql.org/message-id/d27a046d-a1e4-47d1-a95c-fbabe41de...@iki.fi Branch ------ REL_15_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/acd5c28db5d0cdb9446c5cb09996629f78287b82 Modified Files -------------- src/backend/utils/time/snapmgr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)