Re: TRAP: FailedAssertion("HaveRegisteredOrActiveSnapshot()", File: "toast_internals.c", Line: 670, PID: 19403)

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Andres Freund <andres@anarazel.de>, Justin Pryzby <pryzby@telsasoft.com>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>, Erik Rijkers <er@xs4all.nl>, Matthias van de Meent <boekewurm+postgres@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-04-18T14:53:55Z
Lists: pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes:
> I still think it would be better to have GetOldestSnapshot() be
> smarter and refuse to return the catalog snapshot. For one thing, that
> way we'd be testing for the problem case in non-assert builds also.

I was wondering about that too.  On the other hand, given that
we know this area is squishy, transforming fails-in-assert-builds
to fails-everywhere is not necessarily desirable.

			regards, tom lane



Commits

  1. Fix incorrect logic in HaveRegisteredOrActiveSnapshot().

  2. Fix temporary object cleanup failing due to toast access without snapshot.

  3. Account for catalog snapshot in PGXACT->xmin updates.