Re: Unexpected behavior after OOM errors - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: Unexpected behavior after OOM errors
Date
Msg-id ajR_Py8uB9Vn56W6@paquier.xyz
Whole thread
Responses Re: Unexpected behavior after OOM errors
List pgsql-hackers
On Thu, Jun 18, 2026 at 05:27:57PM +0200, Matthias van de Meent wrote:
> By moving StandbyAcquireAccessExclusiveLock's LockAcquire ahead of
> when it links the lock to the transaction, the local data structure
> doesn't know to clean up the lock until after it's acquired, so
> failure in that process won't make error cleanup try to clean up the
> lock.

Yep, reordering these two actions would take care of the list
inconsistency where the startup process goes down following the ERROR
promoted to a FATAL.

I have been fingering the idea of backpatching this fix for a few
minutes, actually, but discarded the idea at the end.  It does not
require a random pattern to cause the failure, being actionable
through a combination of GUCs as Alexander has proved.  Still, the
only consequence is an extra LOG entry telling that the lock is not
being tracked for non-assert builds.  Confusing, OK, but not really
critical.

Comments?
--
Michael

Attachment

pgsql-hackers by date:

Previous
From: Jeff Davis
Date:
Subject: Re: Avoid orphaned objects dependencies, take 3
Next
From: Tom Lane
Date:
Subject: Re: PG20 Minimum Dependency Thread