Loading ...
Sorry, an error occurred while loading the content.

191569Re: Best file system

Expand Messages
  • Wietse Venema
    Feb 1, 2006
    • 0 Attachment
      Postfix uses the file system to store its queue, and it can be
      broken in many ways by non-standard file system semantics. The
      following list is incomplete because I have not considered all the
      possible ways in which people can break file systems.

      Postfix uses fsync() on the queue file to avoid loss of mail after
      a system crash. This breaks when write caching is not turned off
      on the disk drive, or when fsync() does not update the parent
      directory (example: ext2fs). In the former case you lose mail and
      probably much more, in the latter case it ends up in lost+found.

      Postfix uses atime (last read/execute) time stamps to decide when
      to update its "fast flush" logs, which are used by ETRN clients.
      When this breaks, Postfix will attempt to deliver all deferred mail
      that is listed in "fast flush" logs, whenever the flush daemon scans
      its logs. By default, this happens every 1000s.

      Postfix sets the execute bit to indicate that a queue file is
      complete. On file systems that don't allow users to set the execute
      bit on a file, Postfix will never deliver mail.

      Postfix uses mtime (last update) time stamps to decide when to
      deliver deferred mail. When they manage to break this, Postfix will
      attempt to deliver all deferred mail whenever the queue manager
      scans the queue, which is every 500s by default.

      The fsync() issue also affects deliveries to mailbox/maildir files.
      As far as Postfix is concerned, mtimes and atimes don't matter with
      mailbox/maildir files but other software may need it.

      Wietse
    • Show all 20 messages in this topic