Tom Lane wrote:
> Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> > Tom Lane wrote:
> >> I think changing the outer "for(;;)" to "while (!got_SIGTERM)" would
> >> be a much safer fix.
>
> > Ah, yeah. I was thinking in changing PG_exception_stack once shutdown
> > was requested, but this is much simpler.
>
> Your proposed patch seems to be doing both of those, which is probably
> unnecessary. I don't object to the SIGHUP test and goto in the error
> path, but I'd put it a lot further down, like after the existing
> RESUME_INTERRUPTS. I doubt it's a good idea to skip the transaction
> cleanup steps.
Ah, of course. See attached patch.
We could keep the "for (;;)" instead of having it conditional on
got_SIGTERM, but I don't think there's any harm in the change.
This is backpatchable to 9.0.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services