Re: Checkpoint start logging is done inside critical section - Mailing list pgsql-hackers

From Amit Kapila
Subject Re: Checkpoint start logging is done inside critical section
Date
Msg-id CAA4eK1+T7mF=Dm2-NOJ_t3-=Aj26t9z3VSZouUy0Swqm_p3SAw@mail.gmail.com
Whole thread Raw
In response to Checkpoint start logging is done inside critical section  (Ants Aasma <ants.aasma@eesti.ee>)
Responses Re: Checkpoint start logging is done inside critical section  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
On Thu, Oct 18, 2018 at 4:44 AM Ants Aasma <ants.aasma@eesti.ee> wrote:
>
> The LogCheckpointStart() call inside CreateCheckPoint() is done while
> inside a critical section. The elog call could trigger errors due to
> memory allocations or from a logging hook, resulting in a panic.
>

Yeah, but we use logging hook inside LWLockAcquire as well which is
also called inside critical section in the nearby code, not sure if we
can do anything about it.

> It
> seems better to postpone the logging until after the critical section
> is done. It's only a few lwlock acquisitions away and shouldn't make
> any material difference. Patch to do so is attached.
>

+1.  I think we should backpatch this as well.  I can take it forward
unless people have objections to it.


-- 
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com


pgsql-hackers by date:

Previous
From: Amit Kapila
Date:
Subject: Re: DSM robustness failure (was Re: Peripatus/failures)
Next
From: Andres Freund
Date:
Subject: Re: Checkpoint start logging is done inside critical section