On Thu, Sep 11, 2014 at 6:59 PM, Andres Freund <and...@2ndquadrant.com> wrote: > > > > We really need a more centralized way to handle error cleanup in > > > auxiliary processes. The current state of affairs is really pretty > > > helter-skelter. But for this patch, I think we should aim to mimic > > > the existing style, as ugly as it is. I'm not sure whether Amit's got > > > the logic correct, though: I'd agree LWLockReleaseAll(), at a minimum, > > > is probably a good idea. > > > > Code related to bgreclaimer logic itself doesn't take any LWLock, do > > you suspect the same might be required due to some Signal/Interrupt > > handling? > > I suspect it might creep in at some point at some unrelated place. Which > will only ever break in production scenarios. Say, a lwlock in in config > file processing.
Yeah, I suspected the same and checked that path, but couldn't find but may be in some path it is there as the code has many flows. > I seem to recall somebody seing a version of a patching > adding a lwlock there... :). Or a logging hook. Or ... > > The savings from not doing LWLockReleaseAll() are nonexistant, so ... Okay, I shall add it in next version of patch and mention in comments the reasons quoted by you. With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com