Re: failures in t/031_recovery_conflict.pl on CI

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Robert Haas <robertmhaas@gmail.com>, pgsql-hackers@postgresql.org, Thomas Munro <thomas.munro@gmail.com>, Andrew Dunstan <andrew@dunslane.net>
Date: 2022-05-08T17:38:44Z
Lists: pgsql-hackers
Hi,

On 2022-05-08 11:28:34 -0400, Tom Lane wrote:
> Andres Freund <andres@anarazel.de> writes:
> > On 2022-05-05 23:57:28 -0400, Tom Lane wrote:
> >> Are you sure there's just one test that's failing?  I haven't checked
> >> the buildfarm history close enough to be sure of that.  But if it's
> >> true, disabling just that one would be fine (again, as a stopgap
> >> measure).
> 
> > I looked through all the failures I found and it's two kinds of failures, both
> > related to the deadlock test. So I'm thinking of skipping just that test as in
> > the attached.
> 
> Per lapwing's latest results [1], this wasn't enough.  I'm again thinking
> we should pull the whole test from the back branches.

That failure is different from the earlier failures though. I don't think it's
a timing issue in the test like the deadlock check one. I rather suspect it's
indicative of further problems in this area. Potentially the known problem
with RecoveryConflictInterrupt() running in the signal handler? I think Thomas
has a patch for that...

One failure in ~20 runs, on one animal doesn't seem worth disabling the test
for.

Greetings,

Andres Freund



Commits

  1. Disable 031_recovery_conflict.pl until after minor releases.

  2. Temporarily skip recovery deadlock test in back branches.

  3. Backpatch addition of pump_until() more completely.

  4. Fix timing issue in deadlock recovery conflict test.

  5. Backpatch 031_recovery_conflict.pl.

  6. Fix possibility of self-deadlock in ResolveRecoveryConflictWithBufferPin().

  7. Backpatch addition of wait_for_log(), pump_until().

  8. Add tests for recovery deadlock conflicts.

  9. Phase 3 of pgindent updates.