On Thu, Nov 29, 2018 at 3:30 AM Tom Lane <t...@sss.pgh.pa.us> wrote:
> 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.

Agreed.  Secret non-shareable bug report filed.  Fingers crossed.

-- 
Thomas Munro
http://www.enterprisedb.com

Reply via email to