Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Anyone interested in implementing O_NOCLOBBER ?
On Sat, Apr 18, 2020 at 12:01:37AM +0700, Robert Elz wrote:
> Date: Fri, 17 Apr 2020 18:15:01 +0200
> From: Joerg Sonnenberger <joerg%bec.de@localhost>
> Message-ID: <20200417161501.GB72370%bec.de@localhost>
>
> | I'm talking about the difference between this new clobber flag and
> | O_EXCL.
>
> OK.
>
> | As in: why doesn't the noclobber flag just set O_EXCL and done.
>
> That's largely what it does these days, but it doesn't work.
>
> | As in: it seems reasonable to me to just do the
> | device check afterwards,
>
> That's exactly what is generally done. But that leaves race
> conditions, and is possible to defeat.
>
> If all that matters is noclobber mode as originally intended, there
> is no genuine problem, and no-one would have ever considered any of this,
>
> The problem is that the world (or some section of it) has apparently
> decided that noclobber mode ought to work for reliably doing sh
> level locking primitives (as in, critical regions, etc). For that,
> race conditions such that things sometimes fail are unacceptable.
> And "generally not" doesn't work at the level that matters.
I don't understand this argument. I would invert the logic in /bin/sh,
e.g. try to open with O_CREAT|O_EXCL first and only do the open dance if
it fails with EEXIST. That would give it reasonable behavior even for
lock files?
Joerg
Home |
Main Index |
Thread Index |
Old Index