[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: ext3 and chattr +S on postfix spools



On Mon, Feb 04, 2002 at 10:34:02PM +0000, Stephen C. Tweedie wrote:
> On Mon, Feb 04, 2002 at 05:34:52PM +0800, Yusuf Goolamabbas wrote:
> > Postfix <http://www.postfix.org> does a chattr +S on its spool directory
> > when it is installed on Linux.
> > 
> > Is this still required on ext3 ?
> 
> I'm not sure --- it depends on what Postfix's assumptions are.  If it
> expects all directory operations to be synchronous then the flag is
> still needed.  If it is satisfied with fsync flushing dir information,
> then no it is not needed.

I don't say that I know postfix better. Beside for calling fsync()
to ensure that message safely stored on the disk, postfix also
use rename(2) to move message accross queue dirs. It's okay because
postfix's queue-id use inode as it's name.

If I understand correctly, link(2) and unlink(2) implementation
on ext3fs will be done asynchronously. This is use by postfix
(unlink()) to remove messages that already delivered (by calling
remove()).

So, in case of power outage for example, no message will get lost,
but possibly be delivered twice. Note that postfix also mark all
of recipients which are already delivered as done (but without calling
fsync()).

Then *I think* it's save to get rid chattr +S on ext3fs.

On other issue, postfix also support local delivery using maildir
format (http://cr.yp.to/proto/maildir.html) which is use link(2)
and unlink(2). If there is power outage, it is possible that
linking file from tmp to new get failed. This is the same with
losing message as there is no MUA or other mail retreival agent
use that files which still stay on tmp directory.

Regards,

P.Y. Adi Prasaja





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]