On Sun, Oct 17, 2021 at 04:43:15PM -0500, Justin Pryzby wrote:
> On Sun, Aug 15, 2021 at 09:44:55AM -0500, Justin Pryzby wrote:
> > On Sun, May 16, 2021 at 04:23:02PM -0400, Tom Lane wrote:
> > > 1. Fix FullXidRelativeTo to be a little less trusting. It'd
> > > probably be sane to make it return FirstNormalTransactionId
> > > when it'd otherwise produce a wrapped-around FullXid, but is
> > > there any situation where we'd want it to throw an error instead?
> > >
> > > 2. Change pg_resetwal to not do the above. It's not entirely
> > > apparent to me what business it has trying to force
> > > autovacuum-for-wraparound anyway, but if it does need to do that,
> > > can we devise a less klugy method?
> > >
> > > It also seems like some assertions in procarray.c would be a
> > > good idea. With the attached patch, we get through core
> > > regression just fine, but the pg_upgrade test fails immediately
> > > after the "Resetting WAL archives" step.
> >
> > #2 is done as of 74cf7d46a.
> >
> > Is there a plan to include Tom's procarray assertions ?
>
> I'm confused about the state of this patch/thread.
>
> make check causes autovacuum crashes (but then the regression tests succeed
> anyway).
Sorry, I was confused here. autovacuum is not crashing as I said; the
BACKTRACE lines from the LOG added by Tom's debugging patch:
+ if (trace_toast_visibility)
+ ereport(LOG,
+ errmsg("HeapTupleSatisfiesToast: xmin %u t_infomask 0x%04x",
+ HeapTupleHeaderGetXmin(tuple),
+ tuple->t_infomask),
+ debug_query_string ? 0 : errbacktrace());
2021-10-17 22:56:57.066 CDT autovacuum worker[19601] LOG: HeapTupleSatisfiesToast: xmin 2 t_infomask 0x0b02
2021-10-17 22:56:57.066 CDT autovacuum worker[19601] BACKTRACE:
...
I see that the pg_statistic problem can still occur on v14. I still don't have
a recipe to reproduce it, though, other than running VACUUM FULL in a loop.
Can I provide anything useful to debug it? xmin, infomask, core, and
log_autovacuum_min_duration=0 ??
--
Justin