[racket-dev] atomic file update by write & rename... not!

From: Eli Barzilay (eli at barzilay.org)
Date: Fri Jan 14 13:50:42 EST 2011

Yesterday, Matthew Flatt wrote:
> At Thu, 13 Jan 2011 16:30:08 -0500, Eli Barzilay wrote:
> > 15 minutes ago, Matthew Flatt wrote:
> > > Is there anything else in the main distribution that is uses
> > > `rename-file-or-directory' for atomic update?
> > 
> > Is the handin-server's use kosher?  There are three uses of it,
> > and the only one that looks suspicious is the last one, where
> > "ATTEMPT" is renamed to "SUCCESS-0".
> 
> Those are directories, and you can't move to an existing directory
> name on any platform, right?
> 
> I think the handin server probably depends on non-concurrent handins
> for a given account, though, since it shuffles many files and
> directories around. Probably it should use some sort of lock to
> enforce non-concurrency.

I think that it does, but I don't remember...  In any case, it sounds
like if some locking is necessary it will be made obvious by an
exception.


Yesterday, Robby Findler wrote:
> 
> In general, it seems like the handin server can safely make the
> assumption that there is only one sever running for a given
> directory and thus can do all of the syncronization at the Racket
> level (unlike the preferences file).

Yeah, the issue is not multiple servers, but the single server trying
to run two concurrent submissions.

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!


Posted on the dev mailing list.