google turned up this which says:

Using a mail spool on a NFS mounted partition is not really safe, because locking (fcntl() and flock()) don't work over NFS without a lockd. That's why most systems also use dotlocking (mailbock.lock files). This works if the MTA and MUA use link() to lock the mailbox, since link() is guaranteed to be atomic, also over NFS.

However most systems use open(file, O_CREAT|O_WRONLY|O_EXCL, mode) to creat a lockfile. And NFS doesn't know about O_EXCL, so this still doesn't work.

I'm used to NFS with lockd (which was always broken when I started using NFS but was working great when I stopped using NFS several years ago).

I distinctly recall reading about how unlink() isn't atomic over NFS so I'm still surprised that link() is guaranteed to be atomic over NFS, but I guess I'll get over that eventually. (:

But our original querist should note that bit about NFS not knowing about O_EXCL!

        - tye (but my friends call me "Tye")

In reply to (tye)Re2: File locking on NFS by tye
in thread File locking on NFS by chb

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.