Hi Heikki,

On Mon, Mar 9, 2026 at 7:17 PM Heikki Linnakangas <[email protected]> wrote:
>
> On 07/03/2026 13:00, Alexander Lakhin wrote:
> > Hello Xuneng and Heikki,
> >
> > 04.03.2026 07:33, Xuneng Zhou wrote:
> >>> 03.03.2026 17:39, Heikki Linnakangas wrote:
> >>>> On 24/02/2026 10:00, Alexander Lakhin wrote:
> >>>>> The "terminating process ..." message doesn't appear when the test 
> >>>>> passes
> >>>>> successfully.
> >>>> Hmm, right, looks like something wrong in signaling the recovery 
> >>>> conflict. I can't tell if the signal is being sent,
> >>>> or it's not processed correctly. Looking at the code, I don't see 
> >>>> anything wrong.
> >>>>
> >> I was unable to reproduce the issue on an x86_64 Linux machine using
> >> the provided script. All test runs completed successfully without any
> >> failures.
> >
> > I've added debug logging (see attached) and saw the following:
> > !!!SignalRecoveryConflict[282363]
> > !!!ProcArrayEndTransaction| pendingRecoveryConflicts = 0
> > !!!ProcessInterrupts[283863]| MyProc->pendingRecoveryConflicts: 0
> > !!!ProcessInterrupts[283863]| MyProc->pendingRecoveryConflicts: 0
> > 2026-03-07 12:21:24.544 EET walreceiver[282421] FATAL:  could not
> > receive data from WAL stream: server closed the connection unexpectedly
> >          This probably means the server terminated abnormally
> >          before or while processing the request.
> > 2026-03-07 12:21:24.645 EET postmaster[282355] LOG:  received immediate
> > shutdown request
> > 2026-03-07 12:21:24.647 EET postmaster[282355] LOG:  database system is
> > shut down
>
> A-ha! So MyProc->pendingRecoveryConflicts is being cleared by
> ProcArrayEndTransaction(). If I add a small pg_usleep() to the top of
> ProcArrayEndTransaction(), I can readily reproduce this.
>
> Thanks for narrowing this down. The attached patch fixes it.
>
> - Heikki

Did you use Alexander’s reproducer script? I tried reproducing with a
1 ms pg_usleep() added to all three functions that clear
MyProc->pendingRecoveryConflicts, but I still couldn’t reproduce the
issue.

-- 
Best,
Xuneng


Reply via email to