aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/error/elog.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/error/elog.c')
-rw-r--r--src/backend/utils/error/elog.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
index 96366333f06..e6f191d5df3 100644
--- a/src/backend/utils/error/elog.c
+++ b/src/backend/utils/error/elog.c
@@ -37,7 +37,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.132 2004/04/05 03:02:06 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.133 2004/04/11 00:54:45 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -72,6 +72,8 @@ PGErrorVerbosity Log_error_verbosity = PGERROR_VERBOSE;
char *Log_line_prefix = NULL; /* format for extra log line info */
unsigned int Log_destination;
+bool in_fatal_exit = false;
+
#ifdef HAVE_SYSLOG
char *Syslog_facility; /* openlog() parameters */
char *Syslog_ident;
@@ -442,7 +444,12 @@ errfinish(int dummy,...)
*/
fflush(stdout);
fflush(stderr);
- proc_exit(proc_exit_inprogress || !IsUnderPostmaster);
+
+ if (in_fatal_exit)
+ ereport(PANIC, (errmsg("fatal error during fatal exit, giving up")));
+
+ /* We will exit the backend by simulating a client EOF */
+ in_fatal_exit = true;
}
/*