At 2012-12-29 14:23:45 -0500, sfr...@snowman.net wrote: > > Regarding the actual comment, here's the wording that I'd use:
Sorry for nitpicking, but "we can't long jumps" made me cringe. Here's a slightly more condensed version: /* * We can't use ereport(ERROR) here, because any longjmps * in DoingCommandRead state run the risk of violating our * protocol or the SSL protocol, by interrupting OpenSSL in * the middle of changing its internal state. * * Currently, the only option is to promote ERROR to FATAL * until we figure out a better way to handle errors in this * state. */ Patch along these lines attached, which also removes trailing whitespace from the original patch. -- Abhijit
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 407c548..5b952d4 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -2908,6 +2908,17 @@ ProcessInterrupts(void) DisableNotifyInterrupt(); DisableCatchupInterrupt(); pgstat_report_recovery_conflict(RecoveryConflictReason); + + /* + * We can't use ereport(ERROR) here, because any longjmps + * in DoingCommandRead state run the risk of violating our + * protocol or the SSL protocol, by interrupting OpenSSL in + * the middle of changing its internal state. + * + * Currently, the only option is to promote ERROR to FATAL + * until we figure out a better way to handle errors in this + * state. + */ if (DoingCommandRead) ereport(FATAL, (errcode(ERRCODE_T_R_SERIALIZATION_FAILURE),
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers