I wrote:
> ... but having said that, I see Peter's commit
> d6de43099ac0bddb4b1da40088487616da892164 only touched postgres.c's
> quickdie(), and not all the *other* background processes with identical
> coding. That seems a clear oversight, so I will go fix it. Doesn't
> explain why the archiver would get confused, though, since that file
> doesn't have any code that tries to re-enable signals after entering the
> signal handler.
... wait, scratch that. AFAICS, that commit was totally useless,
because BlockSig should always already contain SIGQUIT. I don't think
there's a need to propagate the same useless code elsewhere.
In the case of pgarch.c, there might be some reason to add
PG_SETMASK(&BlockSig) to its SIGQUIT handler, just to be sure that
*other* signals are blocked before we go into the exit(1) code.
I'm still having a hard time believing that that's Jeff's issue, though.
regards, tom lane