On 19/07/18 23:04, Nico Williams wrote:
On Thu, Jun 22, 2017 at 03:10:31PM -0400, Tom Lane wrote:
Andres Freund <and...@anarazel.de> writes:
Or, probably more robust: Simply _exit(2) without further ado, and rely
on postmaster to output an appropriate error message. Arguably it's not
actually useful to see hundreds of "WARNING: terminating connection because of
crash of another server process" messages in the log anyway.

At that point you might as well skip the entire mechanism and go straight
to SIGKILL.  IMO the only reason quickdie() exists at all is to try to
send a helpful message to the client.  And it is helpful --- your attempt
to claim that it isn't sounds very much like wishful thinking.

I dunno if it is or isn't helpful.  But I do know that this must be done
in an async-signal-safe way.

Besides making ereport() async-signal-safe, which is tricky, you could
write(2) the arguments to a pipe that another thread in the same process
is reading from and which will then call ereport() and exit(3).

I don't see how that helps. It still wouldn't be safe for the other thread to call ereport(), because the main thread might be in the middle of calling ereport() itself.

- Heikki

Reply via email to