Re: Andres Freund > > Thanks. I realised that it's easy enough to test that theory about > > cleanup locks by hacking ConditionalLockBufferForCleanup() to return > > false randomly. Then the test occasionally fails as described. Seems > > like we'll need to fix that test, but it's not evidence of a server > > bug, and my signal handler refactoring patch is in the clear. Thanks > > for testing it! > > WRT fixing the test: I think just using VACUUM FREEZE ought to do the job? > After changing all the VACUUMs to VACUUM FREEZEs, 031_recovery_conflict.pl > passes even after I make ConditionalLockBufferForCleanup() fail 100%.
I have now applied the last two patches to postgresql-17 so see if the build is more stable. (So far I had only tried in manual tests.) Fwiw this is also causing pain on PostgreSQL 16: https://pgdgbuild.dus.dg-i.net/view/Snapshot/job/postgresql-16-binaries-snapshot/1011/architecture=s390x,distribution=sid/consoleText Most of the failing builds in https://pgdgbuild.dus.dg-i.net/view/Snapshot/job/postgresql-16-binaries-snapshot/ are on s390x and likely due to this problem. This should be fixed before the 16 release. Christoph