git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
BMBrian J. Murrell <brian@interlinx.bc.ca>
Date
Nov 5, 2012, 15:25 UTC
Message-ID
<5097DA5C.9020603@interlinx.bc.ca>
In-Reply-To
<20121104221018.GB9160@padd.com>
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.
Previous: Pete WyckoffNext: Pete Wyckoff
Message 3 of 4 in “checkout-index: unable to create file foo (File exists)”
  1. Brian J. MurrellNov 1, 2012
  2. Pete WyckoffNov 4, 2012
  3. Brian J. MurrellNov 5, 2012
  4. Pete WyckoffNov 5, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.