Thomas Munro <thomas.mu...@enterprisedb.com> writes:
> On Wed, Nov 28, 2018 at 6:47 PM Tom Lane <t...@sss.pgh.pa.us> wrote:
>> Is it possible that unlink() on APFS is not atomic?

> I think you might be right.
> https://github.com/macdice/unlinktest

Bleah.  But you can do better than ask whether it's a bug: you can
quote POSIX:

    The unlink() function shall remove a link to a file. If path names a
    symbolic link, unlink() shall remove the symbolic link named by path
    and shall not affect any file or directory named by the contents of
    the symbolic link. Otherwise, unlink() shall remove the link named by
    the pathname pointed to by path and shall decrement the link count of
    the file referenced by the link.

    When the file's link count becomes 0 and no process has the file open,
    the space occupied by the file shall be freed and the file shall no
    longer be accessible. If one or more processes have the file open when
    the last link is removed, the link shall be removed before unlink()
    returns, but the removal of the file contents shall be postponed until
    all references to the file are closed.

Not a lot of wiggle room there.

                        regards, tom lane

Reply via email to