Обсуждение: BUG #19025: PostgreSQL log is not rotated

Поиск
Список
Период
Сортировка

BUG #19025: PostgreSQL log is not rotated

От
PG Bug reporting form
Дата:
The following bug has been logged on the website:

Bug reference:      19025
Logged by:          José Antonio Morcillo Valenciano
Email address:      jose.morcillo.valenciano@gmail.com
PostgreSQL version: 16.2
Operating system:   Red Hat Enterpr Linux 5.14.0-427.35.1.el9_4.x86_64
Description:

Hi folks!

We have configured our log rotating policy as follows:

logging_collector = on
log_destination = 'stderr'
log_directory = '/postgresql/16/log/cpdm-cluster86'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_rotation_age = 1d
log_rotation_size = 250MB
log_truncate_on_rotation = on

But the log is 16GB and no rotation has happened:

[PRO] $ ls -lh
total 16G
-rw-r--r-- 1 postgres postgres 16G Aug 19 12:16
postgresql-2025-07-12_001207.log


I have been searching any bug but I could not find it. Any ideas?

Thanks!!!

Regards,
José Antonio


Re: BUG #19025: PostgreSQL log is not rotated

От
"Euler Taveira"
Дата:
On Tue, Aug 19, 2025, at 7:21 AM, PG Bug reporting form wrote:
> We have configured our log rotating policy as follows:
>
> logging_collector = on
> log_destination = 'stderr'
> log_directory = '/postgresql/16/log/cpdm-cluster86'
> log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
> log_rotation_age = 1d
> log_rotation_size = 250MB
> log_truncate_on_rotation = on
>
> But the log is 16GB and no rotation has happened:
>
> [PRO] $ ls -lh
> total 16G
> -rw-r--r-- 1 postgres postgres 16G Aug 19 12:16
> postgresql-2025-07-12_001207.log
>

Did the log say something? I'm wondering if the log_directory has the right
permission.

Are you sure that you reload and/or restart the service after changing these
parameters? Most of them require a reload but logging_collector requires a
restart.

You enable log_truncate_on_rotation but there won't be another log file with
the same name. Hence, no truncate will occur. The truncation only occurs due to
time-based rotation.

You are using an outdated version (16.2). The current minor version is 16.10.
You are ignoring 1.5 year of fixes. A minor version doesn't add new features;
it only adds bug fixes and security fixes.


-- 
Euler Taveira
EDB   https://www.enterprisedb.com/



Re: BUG #19025: PostgreSQL log is not rotated

От
Rahila Syed
Дата:
Hi,
 
logging_collector = on
log_destination = 'stderr'
log_directory = '/postgresql/16/log/cpdm-cluster86'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_rotation_age = 1d
log_rotation_size = 250MB
log_truncate_on_rotation = on

But the log is 16GB and no rotation has happened:

[PRO] $ ls -lh
total 16G
-rw-r--r-- 1 postgres postgres 16G Aug 19 12:16
postgresql-2025-07-12_001207.log


I have been searching any bug but I could not find it. Any ideas?

 
I haven't attempted to reproduce this yet. However, after reviewing the code
and the comments in the postgresql.conf file,
it appears that this is possible when rotation is triggered by file size and
log_truncation_on_rotation is 'on'
i.e logs may be appended to an existing file with the same name
instead of truncating the existing file.
This happens because truncation only occurs during time-based rotation.

Are you observing this behaviour when log_truncate_on_rotation is 'false' ?

Thank you,
Rahila Syed

Re: BUG #19025: PostgreSQL log is not rotated

От
hubert depesz lubaczewski
Дата:
On Tue, Aug 19, 2025 at 10:21:28AM +0000, PG Bug reporting form wrote:
> The following bug has been logged on the website:
> 
> Bug reference:      19025
> Logged by:          José Antonio Morcillo Valenciano
> Email address:      jose.morcillo.valenciano@gmail.com
> PostgreSQL version: 16.2
> Operating system:   Red Hat Enterpr Linux 5.14.0-427.35.1.el9_4.x86_64
> Description:        
> 
> Hi folks!
> 
> We have configured our log rotating policy as follows:
> 
> logging_collector = on
> log_destination = 'stderr'
> log_directory = '/postgresql/16/log/cpdm-cluster86'
> log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
> log_rotation_age = 1d
> log_rotation_size = 250MB
> log_truncate_on_rotation = on
> 
> But the log is 16GB and no rotation has happened:

Please connect to the db, and check what are values of these settings
*inside* db.

You can do it by doing:

SELECT
    name,
    setting,
    source,
    sourcefile,
    sourceline
FROM
    pg_settings
WHERE
    name IN = ANY
('{logging_collector,log_destination,log_directory,log_filename,log_rotation_age,log_rotation_size,log_truncate_on_rotation}'::text[]);

Best regards,

depesz