Mark Martinec:
> A freshly installed postfix 2.8.0 from FreeBSD ports on FreeBSD 8.2-RC3,
> with a file system on ZFS (zpool v15, zfs v4) shows an interesting warning
> when smtpd_proxy_options=speed_adjust is enabled on a smtpd service
> which uses a proxy filter:
> 
> Feb 18 20:25:39 xxx postfix/smtpd[3620]:
>   warning: truncate before-queue filter speed-adjust log: Permission denied
> 
> Other than that, everything looks normal. There are no leftover files
> in the spool area, and mail is delivered normally.
> 
> I took a liberty to let smtpd_proxy.c log a path of the log stream,
> added a printout of the path just after a file creation, and commented out
> the unlink, so that the temporary file remains in place for observation.
> 
> Seems to me like the problem might be a temporary file
> created with *no* permission bits, and perhaps ftruncate chokes on that
> even though the file has been unlinked by now:

Please file a ZFS bug reportug. As per POSIX, when the O_CREAT is
specified to open(),

    The third argument does not affect whether the file is open
    for reading, writing or for both.

In other words, read/write access is controlled with the O_RDWR flags,
not the read/write permissions argument.

When the above error happens, Postfix discards the file. Consequently,
Postfix performance will be reduced, because it creates one extra file
per MAIL transaction, instead of one extra file over the process
lifetime.

        Wietse

> 
> # ll -d /var/spool/postfix/incoming/243E8171
> ----------  1 postfix  wheel  596 Feb 18 20:46 
> /var/spool/postfix/incoming/243E8171
> 
> # ll -d /var/spool/postfix/incoming         
> drwx------  2 postfix  wheel  4 Feb 18 20:46 /var/spool/postfix/incoming
> 
> # ll -d /var/spool/postfix         
> drwxr-xr-x  16 root  wheel  16 Feb 10 12:18 /var/spool/postfix
> 
> # ll -d /var/spool        
> drwxr-xr-x  9 root  wheel  9 Feb 10 12:18 /var/spool
> 
> # ll -d /var      
> drwxr-xr-x  28 root  wheel  28 Feb 11 03:37 /var
> 
> # ll -d /   
> drwxr-xr-x  47 root  wheel  55 Feb 13 18:41 /
> 
> 
> Feb 18 20:46:16 xxx postfix/smtpd[12704]:
>   connect from localhost[127.0.0.1]
> Feb 18 20:46:16 xxx postfix/smtpd[12704]:
>   warning: CREATED before-queue filter speed-adjust log:
>   incoming/243E8171
>   =================
> Feb 18 20:46:16 xxx postfix/smtpd[12704]:
>   NOQUEUE: client=localhost[127.0.0.1]
> Feb 18 20:46:23 xxx postfix/smtpd[12709]:
>   connect from localhost[127.0.0.1]
> Feb 18 20:46:23 xxx postfix/smtpd[12709]:
>   D7A31172: client=localhost[127.0.0.1], orig_client=localhost[127.0.0.1]
> Feb 18 20:46:23 xxx postfix/cleanup[12711]:
>   D7A31172: message-id=<201102181946.p1ijkgaw012...@xxx.ijs.si>
> Feb 18 20:46:23 xxx postfix/qmgr[12698]:
>   D7A31172: from=<t...@xxx.ijs.si>, size=968, nrcpt=1 (queue active)
> Feb 18 20:46:23 xxx postfix/smtpd[12704]:
>   proxy-accept: END-OF-MESSAGE: 250 2.0.0 from MTA(smtp:[127.0.0.1]:10025):
>   250 2.0.0 Ok: queued as D7A31172; from=<t...@xxx.ijs.si> to=<t...@ijs.si>
>   proto=ESMTP helo=<xxx.ijs.si>
> Feb 18 20:46:23 xxx postfix/smtpd[12704]:
>   warning: truncate before-queue filter speed-adjust
>   log incoming/243E8171: Permission denied
>       =================
> Feb 18 20:46:23 xxx sendmail[12703]:
>   p1IJkGaW012703: to=t...@ijs.si, ctladdr=test (401/401), delay=00:00:07,
>   xdelay=00:00:07, mailer=relay, pri=30049, relay=[127.0.0.1] [127.0.0.1],
>   dsn=2.0.0, stat=Sent (from MTA(smtp:[127.0.0.1]:10025):
>   250 2.0.0 Ok: queued as D7A31172)
> Feb 18 20:46:23 xxx postfix/smtpd[12704]:
>   disconnect from localhost[127.0.0.1]
> Feb 18 20:46:25 xxx postfix/smtp[12712]:
>   D7A31172: to=<t...@ijs.si>, relay=mail.ijs.si[193.2.4.66]:25,
>   delay=1.4, delays=0.02/0/0.03/1.3, dsn=2.0.0, status=sent
>   (250 2.0.0 from MTA(smtp:[::0001]:10011):
>   250 2.0.0 Ok: queued as 0A4611D1E4E)
> Feb 18 20:46:25 xxx postfix/qmgr[12698]:
>   D7A31172: removed
> Feb 18 20:47:17 xxx postfix/smtpd[12709]:
>   disconnect from localhost[127.0.0.1]
> 
> 
> Mark
> 
> 

Reply via email to