Re: Review: Extra Daemons / bgworker - Mailing list pgsql-hackers

From Alvaro Herrera
Subject Re: Review: Extra Daemons / bgworker
Date
Msg-id 20121206045931.GK4673@alvh.no-ip.org
Whole thread Raw
In response to Re: Review: Extra Daemons / bgworker  (Andres Freund <andres@2ndquadrant.com>)
List pgsql-hackers
Andres Freund wrote:
> On 2012-12-05 18:42:42 -0300, Alvaro Herrera wrote:
> > >    <para>
> > >     <structfield>bgw_sighup</structfield> and <structfield>bgw_sigterm</> are
> > >     pointers to functions that will be installed as signal handlers for the new
> > > -   process.
> > > +   process. XXX: Can they be NULL?
> > >    </para>
> >
> > Hm.  The code doesn't check, so what happens is probably a bug anyhow.
> > I don't know whether sigaction crashes in this case; its manpage doesn't
> > say.  I guess the right thing to do is have RegisterBackgroundWorker
> > check for a NULL sighandler, and set it to something standard if so (say
> > SIG_IGN for SIGHUP and maybe quickdie() or similar for SIGTERM).
>
> Afair a NULL sigaction is used to query the current handler. Which
> indirectly might lead to problems due to the wrong handler being called.
>
> Setting up SIG_IGN and quickdie in that case seems to be sensible.

Here's v9.  It adds that change, the tweaked docs, a bug fix (postmaster
would kill itself if there's a process crash and a bgworker is stopped),
and some pgindent and code reordering.
github.com/alvherre/postgres/tree/bgworker contains this submission as
commit fa4731c.

I think we can get this committed as a useful starting point for this
feature.

--
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

Attachment

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: strange isolation test buildfarm failure on guaibasaurus
Next
From: Pavel Stehule
Date:
Subject: Re: why can't plpgsql return a row-expression?