On Sat, Aug 7, 2021 at 11:40 AM Andres Freund <and...@anarazel.de> wrote:
> Hi, > > On 2021-07-12 17:28:15 +0530, Ashutosh Bapat wrote: > > On Mon, Jul 12, 2021 at 8:39 AM Amit Kapila <amit.kapil...@gmail.com> > wrote: > > > > > On Mon, Jul 5, 2021 at 12:54 PM Masahiko Sawada <sawada.m...@gmail.com > > > > > Today, again looking at this patch, I don't think doing elog inside > > > spinlock is a good idea. We can either release spinlock before it or > > > use some variable to remember that we need to write such an elog and > > > do it after releasing the lock. What do you think? > > > > > > The elog will be effective only under DEBUG1, otherwise it will be > almost a > > NOOP. I am wondering whether it's worth adding a bool assignment and move > > the elog out only for DEBUG1. Anyway, will defer it to you. > > It's *definitely* not ok to do an elog() while holding a spinlock. Consider > what happens if the elog tries to format the message and runs out of > memory. Or if elog detects the stack depth is too deep. An ERROR would be > thrown, and we'd loose track of the held spinlock. > Thanks for the clarification. Amit, I will provide the patch changed accordingly. -- Best Wishes, Ashutosh