On Mon, May 04, 2026 at 12:35:43PM -0400, Michael Greenberg wrote:
> The offending code is in `src/global/mail_queue.c`:
>
> ```C
> for (;;) {
> GETTIMEOFDAY(tp);
> vstring_sprintf(temp_path, "%s/%d.%d", queue_name,
> (int) tp->tv_usec, pid);
> if ((fd = open(STR(temp_path), O_RDWR | O_CREAT | O_EXCL, mode)) >= 0)
> break;
> if (errno == EEXIST || errno == EISDIR)
> continue;
> msg_warn("%s: create file %s: %m", myname, STR(temp_path));
> sleep(10);
> }
> ```
>
> It must be the case that `open` is returning `EROFS`, which causes `%m`
> to generate that message. Others online (e.g.,
> <https://unix.stackexchange.com/questions/670080/postfix-thinks-its-on-a-read-only-filesystem>)
> seem to point to systemd as well---something about the system protection
> level causes the postfix process to see a read-only filesystem.Learn to live. Yes, it seems systemd does protection by playing mount tricks. Thanks for the clarification. Cheers -- t
signature.asc
Description: PGP signature

