pgsql: Perform a lot more sanity checks when freezing tuples. - Mailing list pgsql-committers

From Andres Freund
Subject pgsql: Perform a lot more sanity checks when freezing tuples.
Date
Msg-id E1ePfk3-0005PZ-KO@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Perform a lot more sanity checks when freezing tuples.

The previous commit has shown that the sanity checks around freezing
aren't strong enough. Strengthening them seems especially important
because the existance of the bug has caused corruption that we don't
want to make even worse during future vacuum cycles.

The errors are emitted with ereport rather than elog, despite being
"should never happen" messages, so a proper error code is emitted. To
avoid superflous translations, mark messages as internal.

Author: Andres Freund and Alvaro Herrera
Reviewed-By: Alvaro Herrera, Michael Paquier
Discussion: https://postgr.es/m/20171102112019.33wb7g5wp4zpjelu@alap3.anarazel.de
Backpatch: 9.3-

Branch
------
REL9_5_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/94d1c88103ff17fde7da20b98446ed6150170487

Modified Files
--------------
src/backend/access/heap/heapam.c      | 128 +++++++++++++++++++++++++++-------
src/backend/access/heap/rewriteheap.c |   5 +-
src/backend/commands/vacuumlazy.c     |  15 +++-
src/include/access/heapam.h           |   5 +-
src/include/access/heapam_xlog.h      |   2 +
5 files changed, 123 insertions(+), 32 deletions(-)


pgsql-committers by date:

Previous
From: Andres Freund
Date:
Subject: pgsql: Perform a lot more sanity checks when freezing tuples.
Next
From: Andres Freund
Date:
Subject: pgsql: Fix pruning of locked and updated tuples.