postgresql/src/backend
Tom Lane 2efc6dc256 Add HOLD/RESUME_INTERRUPTS in HandleCatchupInterrupt/HandleNotifyInterrupt.
This prevents a possible longjmp out of the signal handler if a timeout
or SIGINT occurs while something within the handler has transiently set
ImmediateInterruptOK.  For safety we must hold off the timeout or cancel
error until we're back in mainline, or at least till we reach the end of
the signal handler when ImmediateInterruptOK was true at entry.  This
syncs these functions with the logic now present in handle_sig_alarm.

AFAICT there is no live bug here in 9.0 and up, because I don't think we
currently can wait for any heavyweight lock inside these functions, and
there is no other code (except read-from-client) that will turn on
ImmediateInterruptOK.  However, that was not true pre-9.0: in older
branches ProcessIncomingNotify might block trying to lock pg_listener, and
then a SIGINT could lead to undesirable control flow.  It might be all
right anyway given the relatively narrow code ranges in which NOTIFY
interrupts are enabled, but for safety's sake I'm back-patching this.
2013-12-13 14:05:51 -05:00
..
access Fix more instances of "the the" in comments. 2013-12-13 20:02:01 +02:00
bootstrap Prevent memory leaks from accumulating across printtup() calls. 2013-11-03 11:33:05 -05:00
catalog Add new wal_level, logical, sufficient for logical decoding. 2013-12-10 19:01:40 -05:00
commands Add HOLD/RESUME_INTERRUPTS in HandleCatchupInterrupt/HandleNotifyInterrupt. 2013-12-13 14:05:51 -05:00
executor Support multi-argument UNNEST(), and TABLE() syntax for multiple functions. 2013-11-21 19:37:20 -05:00
foreign Arrange to cache FdwRoutine structs in foreign tables' relcache entries. 2013-03-06 23:48:09 -05:00
lib Use improved vsnprintf calling logic in more places. 2013-10-24 21:43:57 -04:00
libpq SSL: Support ECDH key exchange 2013-12-07 15:11:44 -05:00
main Renovate display of non-ASCII messages on Windows. 2013-06-26 11:17:33 -04:00
nodes Rename TABLE() to ROWS FROM(). 2013-12-10 09:34:37 -05:00
optimizer Fix possible crash with nested SubLinks. 2013-12-10 16:10:17 -05:00
parser Rename TABLE() to ROWS FROM(). 2013-12-10 09:34:37 -05:00
po Translation updates 2013-12-02 00:17:07 -05:00
port Remove IRIX port. 2013-10-18 08:14:21 -04:00
postmaster New autovacuum_work_mem parameter 2013-12-12 11:42:39 +00:00
regex Fix regex match failures for backrefs combined with non-greedy quantifiers. 2013-07-18 21:22:37 -04:00
replication Fix more instances of "the the" in comments. 2013-12-13 20:02:01 +02:00
rewrite Refine our definition of what constitutes a system relation. 2013-11-28 20:57:20 -05:00
snowball Update copyrights for 2013 2013-01-01 17:15:01 -05:00
storage Add HOLD/RESUME_INTERRUPTS in HandleCatchupInterrupt/HandleNotifyInterrupt. 2013-12-13 14:05:51 -05:00
tcop Fix assorted race conditions in the new timeout infrastructure. 2013-11-29 16:41:00 -05:00
tsearch pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
utils Fix more instances of "the the" in comments. 2013-12-13 20:02:01 +02:00
.gitignore Add gitignore for mingw/cygwin build outputs 2011-06-09 18:11:47 +02:00
Makefile Move relpath() to libpgcommon 2013-02-21 22:46:17 -03:00
common.mk Remove maintainer-check target, fold into normal build 2013-10-10 20:11:56 -04:00
nls.mk Add libpgcommon to backend gettext source files 2013-10-19 13:49:05 -04:00