Subject: Re: checkout-index: unable to create file foo (File exists)

From: "Brian J. Murrell" <[email-masked]>
Date: Mon, 05 Nov 2012 10:25:16 -0500

On 12-11-04 05:10 PM, Pete Wyckoff wrote:
> 
> Fascinating problem and observations.

I thought so as well.

> We've been using NFS with git for quite a while and have never
> seen such an error.

Could be because NFS manages to operate more atomically given that it's
just the network exporting of local filesystem.

> man 7 signal (linux man-pages 3.42) describes open() as restartable.

Indeed.  The question is just what is to be assumed by the code that has
asked for the restartability.

> Which network filesystem and OS are you using?

The filesystem is Lustre.  So not only is it networked, it is
distributed where the namespace and data store are handled by different
nodes, to it's not at all as atomic as NFS-on-(say-)ext4.  Given that,
it's entirely possible to imagine a scenario where a namespace (MDT in
the Lustre nomenclature) operation could get interrupted after the
namespace entry has been created but before the open(2) completes.  So
the question here is who's responsibility is it to handle that situation?

> The third option is
> that there is a bug in the filesystem client.

Yep.  But before we can go on to determining a bug, the proper/expected
behavior needs to be determined.  I guess that's taking this a bit OT
for this list though.  I'm not really sure where else to go to determine
this though.  :-(

b.