pgsql: Use TransactionXmin instead of RecentGlobalXmin in heap_abort_sp - Mailing list pgsql-committers

From Andres Freund
Subject pgsql: Use TransactionXmin instead of RecentGlobalXmin in heap_abort_sp
Date
Msg-id E1jLGET-0002HC-4n@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Use TransactionXmin instead of RecentGlobalXmin in heap_abort_speculative().

There's a very low risk that RecentGlobalXmin could be far enough in
the past to be older than relfrozenxid, or even wrapped
around. Luckily the consequences of that having happened wouldn't be
too bad - the page wouldn't be pruned for a while.

Avoid that risk by using TransactionXmin instead. As that's announced
via MyPgXact->xmin, it is protected against wrapping around (see code
comments for details around relfrozenxid).

Author: Andres Freund
Discussion: https://postgr.es/m/20200328213023.s4eyijhdosuc4vcj@alap3.anarazel.de
Backpatch: 9.5-

Branch
------
REL9_5_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/a850063ee0bc6c2c703117395a51eb3154e907db

Modified Files
--------------
src/backend/access/heap/heapam.c | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)


pgsql-committers by date:

Previous
From: Andres Freund
Date:
Subject: pgsql: Use TransactionXmin instead of RecentGlobalXmin in heap_abort_sp
Next
From: Andres Freund
Date:
Subject: pgsql: Recompute stack base in forked postmaster children.