summaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/access/transam/xlogarchive.c2
-rw-r--r--src/backend/postmaster/fork_process.c7
-rw-r--r--src/backend/postmaster/shell_archive.c1
-rw-r--r--src/backend/storage/file/fd.c3
-rw-r--r--src/backend/utils/error/elog.c6
5 files changed, 7 insertions, 12 deletions
diff --git a/src/backend/access/transam/xlogarchive.c b/src/backend/access/transam/xlogarchive.c
index 4101a30e374..e2b7176f2f6 100644
--- a/src/backend/access/transam/xlogarchive.c
+++ b/src/backend/access/transam/xlogarchive.c
@@ -169,6 +169,7 @@ RestoreArchivedFile(char *path, const char *xlogfname,
/*
* Copy xlog from archival storage to XLOGDIR
*/
+ fflush(NULL);
pgstat_report_wait_start(WAIT_EVENT_RESTORE_COMMAND);
rc = system(xlogRestoreCmd);
pgstat_report_wait_end();
@@ -358,6 +359,7 @@ ExecuteRecoveryCommand(const char *command, const char *commandName,
/*
* execute the constructed command
*/
+ fflush(NULL);
pgstat_report_wait_start(wait_event_info);
rc = system(xlogRecoveryCmd);
pgstat_report_wait_end();
diff --git a/src/backend/postmaster/fork_process.c b/src/backend/postmaster/fork_process.c
index c75be03d2c3..ec677614870 100644
--- a/src/backend/postmaster/fork_process.c
+++ b/src/backend/postmaster/fork_process.c
@@ -37,13 +37,8 @@ fork_process(void)
/*
* Flush stdio channels just before fork, to avoid double-output problems.
- * Ideally we'd use fflush(NULL) here, but there are still a few non-ANSI
- * stdio libraries out there (like SunOS 4.1.x) that coredump if we do.
- * Presently stdout and stderr are the only stdio output channels used by
- * the postmaster, so fflush'ing them should be sufficient.
*/
- fflush(stdout);
- fflush(stderr);
+ fflush(NULL);
#ifdef LINUX_PROFILE
diff --git a/src/backend/postmaster/shell_archive.c b/src/backend/postmaster/shell_archive.c
index 19e240c2053..8a54d02e7bb 100644
--- a/src/backend/postmaster/shell_archive.c
+++ b/src/backend/postmaster/shell_archive.c
@@ -99,6 +99,7 @@ shell_archive_file(const char *file, const char *path)
(errmsg_internal("executing archive command \"%s\"",
xlogarchcmd)));
+ fflush(NULL);
pgstat_report_wait_start(WAIT_EVENT_ARCHIVE_COMMAND);
rc = system(xlogarchcmd);
pgstat_report_wait_end();
diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c
index e3b19ca1ed4..1aaab6c5542 100644
--- a/src/backend/storage/file/fd.c
+++ b/src/backend/storage/file/fd.c
@@ -2503,8 +2503,7 @@ OpenPipeStream(const char *command, const char *mode)
ReleaseLruFiles();
TryAgain:
- fflush(stdout);
- fflush(stderr);
+ fflush(NULL);
pqsignal(SIGPIPE, SIG_DFL);
errno = 0;
file = popen(command, mode);
diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
index 95f32de4e29..cb3c2898898 100644
--- a/src/backend/utils/error/elog.c
+++ b/src/backend/utils/error/elog.c
@@ -643,8 +643,7 @@ errfinish(const char *filename, int lineno, const char *funcname)
* Any other code you might be tempted to add here should probably be
* in an on_proc_exit or on_shmem_exit callback instead.
*/
- fflush(stdout);
- fflush(stderr);
+ fflush(NULL);
/*
* Let the cumulative stats system know. Only mark the session as
@@ -670,8 +669,7 @@ errfinish(const char *filename, int lineno, const char *funcname)
* XXX: what if we are *in* the postmaster? abort() won't kill our
* children...
*/
- fflush(stdout);
- fflush(stderr);
+ fflush(NULL);
abort();
}