pgsql: Use TransactionXmin instead of RecentGlobalXmin in heap_abort_sp

From: Andres Freund <andres(at)anarazel(dot)de>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Use TransactionXmin instead of RecentGlobalXmin in heap_abort_sp
Date: 2020-04-06 01:07:14
Message-ID: E1jLGEM-0002GK-03@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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
------
REL_10_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/0e708d3115958ffcd8e91123f405dc482871abf6

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

Browse pgsql-committers by date

  From Date Subject
Next Message Andres Freund 2020-04-06 01:07:17 pgsql: Use TransactionXmin instead of RecentGlobalXmin in heap_abort_sp
Previous Message Andres Freund 2020-04-06 01:07:10 pgsql: Use TransactionXmin instead of RecentGlobalXmin in heap_abort_sp