Hi,
On 2022-04-13 20:35:50 -0400, Tom Lane wrote:
> Peter Geoghegan <pg@bowt.ie> writes:
> > On Wed, Apr 13, 2022 at 4:51 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> >> Yeah, we have band-aided around this type of problem repeatedly.
> >> Making a fix that's readily accessible from any test script
> >> seems like a good idea.
>
> > We might even be able to consistently rely on this new option, given
> > *any* problem involving test stability and VACUUM. Having a
> > one-size-fits-all solution to these kinds of stability problems would
> > be nice -- no more DISABLE_PAGE_SKIPPING bandaids.
>
> My guess is that you'd need both this new wait-for-horizon behavior
> *and* DISABLE_PAGE_SKIPPING. But the two together ought to make
> for pretty reproducible behavior. I noticed while scanning the
> commit log that some patches have tried adding a FREEZE option,
> which seems more like waving a dead chicken than anything that'd
> improve stability.
I think most of those we've ended up replacing by using temp tables in
those tests instead, since they're not affected by the global horizon
anymore.
> We'd not necessarily have to embed wait-for-horizon into VACUUM
> itself.
I'm not sure it'd be quite reliable outside of vacuum though, due to the
horizon potentially going backwards (in otherwise harmless ways)?
> It seems like a SQL-accessible function could be written
> and then called before any problematic VACUUM. I like this better
> for something we're thinking of jamming in post-feature-freeze;
> we'd not be committing to the feature quite as much as if we
> added a VACUUM option.
We could otherwise just disable IOS for that query, for now.
Greetings,
Andres Freund