Re: pgsql: Handle SIGTERM in pg_receivewal and pg_recvlogical

From: Daniel Gustafsson <dgustafsson(at)postgresql(dot)org>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Handle SIGTERM in pg_receivewal and pg_recvlogical
Date: 2022-09-14 15:21:06
Message-ID: 10F7C2B0-26D1-43E5-ACC5-2A05B2EF9CD7@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

> On 14 Sep 2022, at 17:06, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
> Daniel Gustafsson <dgustafsson(at)postgresql(dot)org> writes:
>> Since pg_recvlogical is also supposed to run as a daemon, teach it about
>> SIGTERM as well and update the documentation to match. While in there,
>> change pg_receivewal's time_to_stop to be sig_atomic_t like it is in
>> pg_recvlogical.
>
> While looking at this commit, I wondered why both of those programs
> are declaring their signal handlers like
>
> static void
> sigint_handler(int signum)
>
> rather than our standard convention
>
> static void
> pmdie(SIGNAL_ARGS)

Sorry, I had missed that convention.

> Evidently we don't (any longer?) have any platforms where SIGNAL_ARGS
> is non-default, but that still doesn't make this good coding. More
> than once I've grepped for SIGNAL_ARGS to locate signal handlers.
>
> Hmm, looks like same mistake in pg_waldump ...

pg_test_fsync seems to have the same error.

> barring objection,
> I'm going to run around and fix those.

No objections, unless you have better things to do and wan't me to clean up
then I'll take care of it.

> I also notice that port.h has
>
> typedef void (*pqsigfunc) (int signo);
> extern pqsigfunc pqsignal(int signo, pqsigfunc func);
>
> which is a bit inconsistent with the idea that SIGNAL_ARGS
> might be different from that. Shouldn't we declare it as
>
> typedef void (*pqsigfunc) (SIGNAL_ARGS);

Agreed, that makes sense.

--
Daniel Gustafsson https://vmware.com/

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2022-09-14 15:37:06 Re: pgsql: Handle SIGTERM in pg_receivewal and pg_recvlogical
Previous Message Tom Lane 2022-09-14 15:06:35 Re: pgsql: Handle SIGTERM in pg_receivewal and pg_recvlogical