1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-26 12:21:12 +03:00

Remove obsolete restriction on the range of log_rotation_size.

When syslogger.c was first written, we didn't want to assume that
all platforms have 64-bit ftello.  But we've been assuming that
since v13 (cf commit 799d22461), so let's use that in syslogger.c
and allow log_rotation_size to range up to INT_MAX kilobytes.

The old code effectively limited log_rotation_size to 2GB regardless
of platform.  While nobody's complained, that doesn't seem too far
away from what might be thought reasonable these days.

I noticed this while searching for instances of "1024L" in connection
with commit 041e8b95b.  These were the last such instances.
(We still have instances of L-suffixed literals, but most of them
are associated with wait intervals for pg_usleep or similar functions.
I don't see any urgent reason to change that.)
This commit is contained in:
Tom Lane
2025-01-31 14:36:56 -05:00
parent 041e8b95b8
commit d4c3a6b8ad
2 changed files with 9 additions and 7 deletions

View File

@ -444,19 +444,19 @@ SysLoggerMain(char *startup_data, size_t startup_data_len)
if (!rotation_requested && Log_RotationSize > 0 && !rotation_disabled) if (!rotation_requested && Log_RotationSize > 0 && !rotation_disabled)
{ {
/* Do a rotation if file is too big */ /* Do a rotation if file is too big */
if (ftell(syslogFile) >= Log_RotationSize * 1024L) if (ftello(syslogFile) >= Log_RotationSize * (pgoff_t) 1024)
{ {
rotation_requested = true; rotation_requested = true;
size_rotation_for |= LOG_DESTINATION_STDERR; size_rotation_for |= LOG_DESTINATION_STDERR;
} }
if (csvlogFile != NULL && if (csvlogFile != NULL &&
ftell(csvlogFile) >= Log_RotationSize * 1024L) ftello(csvlogFile) >= Log_RotationSize * (pgoff_t) 1024)
{ {
rotation_requested = true; rotation_requested = true;
size_rotation_for |= LOG_DESTINATION_CSVLOG; size_rotation_for |= LOG_DESTINATION_CSVLOG;
} }
if (jsonlogFile != NULL && if (jsonlogFile != NULL &&
ftell(jsonlogFile) >= Log_RotationSize * 1024L) ftello(jsonlogFile) >= Log_RotationSize * (pgoff_t) 1024)
{ {
rotation_requested = true; rotation_requested = true;
size_rotation_for |= LOG_DESTINATION_JSONLOG; size_rotation_for |= LOG_DESTINATION_JSONLOG;
@ -1183,9 +1183,11 @@ pipeThread(void *arg)
*/ */
if (Log_RotationSize > 0) if (Log_RotationSize > 0)
{ {
if (ftell(syslogFile) >= Log_RotationSize * 1024L || if (ftello(syslogFile) >= Log_RotationSize * (pgoff_t) 1024 ||
(csvlogFile != NULL && ftell(csvlogFile) >= Log_RotationSize * 1024L) || (csvlogFile != NULL &&
(jsonlogFile != NULL && ftell(jsonlogFile) >= Log_RotationSize * 1024L)) ftello(csvlogFile) >= Log_RotationSize * (pgoff_t) 1024) ||
(jsonlogFile != NULL &&
ftello(jsonlogFile) >= Log_RotationSize * (pgoff_t) 1024))
SetLatch(MyLatch); SetLatch(MyLatch);
} }
LeaveCriticalSection(&sysloggerSection); LeaveCriticalSection(&sysloggerSection);

View File

@ -3299,7 +3299,7 @@ struct config_int ConfigureNamesInt[] =
GUC_UNIT_KB GUC_UNIT_KB
}, },
&Log_RotationSize, &Log_RotationSize,
10 * 1024, 0, INT_MAX / 1024, 10 * 1024, 0, INT_MAX,
NULL, NULL, NULL NULL, NULL, NULL
}, },