Files
selfpost/docs/plans/logrotate-mode.md
T
mix b87baa6dd6
test / test (push) Has been cancelled
fix: pin logrotate config mode in image and fail loud on bad permissions
COPY --chmod makes /etc/logrotate.d/mail 0644 regardless of build context
file modes (Windows tar sync). logrotate-loop preflight exits non-zero when
logrotate would ignore the config. E2e covers mode, forced rotation, and a
group-writable context build.

Co-Authored-By: Composer 2.5 <noreply@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 00:51:37 +03:00

1.1 KiB

Plan: logrotate-mode (mail.log stops rotating in some images)

Status: done
Version: patch; no schema, no configuration surface.


Summary

mail.log stopped rotating when /etc/logrotate.d/mail landed in the image with group/other write permission (e.g. build context from a Windows tar sync). logrotate ignores such configs but exits 0, so the loop looked healthy while the log grew without bound.

What shipped

  • build/Dockerfile: COPY --chmod pins config (0644) and script (0755) modes so the image no longer depends on checkout file modes.
  • build/logrotate-loop.sh: preflight and per-iteration checks refuse group/other-writable configs; logrotate stderr mentioning Ignoring is fatal.
  • test/e2e/logrotate_check.go: asserts mode 644, forced logrotate -f, and that a group-writable context file still produces 644 in the image.

create 0640 postfix selfpost in build/logrotate-mail.conf is unchanged — required for panel readability after rotation.