diff --git a/src/backend/postmaster/syslogger.c b/src/backend/postmaster/syslogger.c index 1c62bfe03a2058512f39ddee5f8ea6e8e909587d..534d69ec140516f31b9e275b18355f290149b9bc 100644 --- a/src/backend/postmaster/syslogger.c +++ b/src/backend/postmaster/syslogger.c @@ -1059,6 +1059,15 @@ pipeThread(void *arg) bytes_in_logbuffer += bytesRead; process_pipe_input(logbuffer, &bytes_in_logbuffer); } + + /* + * If we've filled the current logfile, nudge the main thread to do a + * log rotation. + */ + if (Log_RotationSize > 0 && + ftell(syslogFile) >= Log_RotationSize * 1024L) + SetLatch(&sysLoggerLatch); + LeaveCriticalSection(&sysloggerSection); }