The rollout of 0cceb54 to the test server (2026-10-16 04:44 UTC) logged
"postfix/postlog: fatal: the Postfix mail system is not running" and
"error running non-shared postrotate script": the day's rotation was due,
logrotate-loop.sh runs at once when the container starts, and the wrapper
starts Postfix only once the milter sockets are there. Nothing was lost -
no postlogd held the old file, and the one Postfix started a second later
opened the new - but logrotate reported a failure and the loop waited six
hours. The postrotate now runs "postfix reload" only when "postfix status"
says a master runs (Postfix 3.10.13, conf/postfix-script:297-307).
e2e TestStartsOnA27Data also starts on a mail.log whose rotation is due
(a state file of two days before) and wants it rotated with no postrotate
error in the container's log.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -15,7 +15,15 @@
|
||||
compress
|
||||
delaycompress
|
||||
create 0640 postfix selfpost
|
||||
# A rotation due when the container starts runs before Postfix does
|
||||
# (logrotate-loop.sh runs at once, the wrapper waits for the milter
|
||||
# sockets): no postlogd holds the old file then, the one Postfix starts
|
||||
# opens the new, and a reload would only fail - "fatal: the Postfix mail
|
||||
# system is not running", seen at the test server's rollout of
|
||||
# 2026-10-16. "postfix status" exits 1 while no master runs (Postfix
|
||||
# 3.10.13, conf/postfix-script:297-307), reload then nothing.
|
||||
postrotate
|
||||
/usr/sbin/postfix status >/dev/null 2>&1 || exit 0
|
||||
/usr/sbin/postfix reload
|
||||
endscript
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user