pgsql: Prevent interrupts while reporting non-ERROR elog messages. - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Prevent interrupts while reporting non-ERROR elog messages.
Date
Msg-id E1WOGU8-0003io-2y@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Prevent interrupts while reporting non-ERROR elog messages.

This should eliminate the risk of recursive entry to syslog(3), which
appears to be the cause of the hang reported in bug #9551 from James
Morton.

Arguably, the real problem here is auth.c's willingness to turn on
ImmediateInterruptOK while executing fairly wide swaths of backend code.
We may well need to work at narrowing the code ranges in which the
authentication_timeout interrupt is enabled.  For the moment, though,
this is a cheap and reasonably noninvasive fix for a field-reported
failure; the other approach would be complex and not necessarily
bug-free itself.

Back-patch to all supported branches.

Branch
------
REL9_2_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/7a289bb6d7f68393a9a4d7cde47e4440835d8dd5

Modified Files
--------------
src/backend/utils/error/elog.c |   38 +++++++++++++++++++++++++-------------
1 file changed, 25 insertions(+), 13 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Allow psql to print COPY command status in more cases.
Next
From: Tom Lane
Date:
Subject: pgsql: Prevent interrupts while reporting non-ERROR elog messages.