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

Reply via email to