Hi, On 2022-04-13 20:35:50 -0400, Tom Lane wrote: > Peter Geoghegan <p...@bowt.ie> writes: > > On Wed, Apr 13, 2022 at 4:51 PM Tom Lane <t...@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