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/[email protected] 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(-)
