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

Re: on Amazon EFS (NFS): "Reference directory conflict: refs/heads/" with status code 128

From
Jeff King <peff@peff.net>
Date
Aug 24, 2016, 21:39 UTC
Message-ID
<20160824213900.gcnwxu46zvgpjr5a@sigill.intra.peff.net>
In-Reply-To
<CAMQLHmAraXPL=8SmMG4X_424FAzx4q2Byk8pva5wEOg7vNSqLw@mail.gmail.com>
On Wed, Aug 24, 2016 at 04:52:33PM -0400, Alex Nauda wrote:
Show 11 quoted lines
> Elastic File System (EFS) is Amazon's scalable filesystem product that
> is exposed to the OS as an NFS mount. We're using EFS to host the
> filesystem used by a Jenkins CI server. Sometimes when Jenkins tries
> to git fetch, we get this error:
> $ git -c core.askpass=true fetch --tags --progress
> git@github.com:mediasilo/dodo.git
> +refs/pull/*:refs/remotes/origin/pr/*
> fatal: Reference directory conflict: refs/heads/
> $ echo $? 128
> 
> Has anyone seen anything like this before? Any tips on how to troubleshoot it?

No, I haven't seen it before. That's an internal assertion in the refs code that shouldn't ever happen. It looks like it happens when the loose refs end up with duplicate directory entries. While a bug in git is an obvious culprit, I wonder if it's possible that your filesystem might expose the same name twice in one set of readdir() results.

+cc Michael, who added this assertion long ago (and since this is the first report in all these years, it does make me suspect that the filesystem is a critical part of reproducing).

-Peff
Previous: Alex NaudaNext: Michael Haggerty
Message 2 of 5 in “on Amazon EFS (NFS): "Reference directory conflict: refs/heads/" with status code 128”
  1. Alex NaudaAug 24, 2016
  2. Jeff KingAug 24, 2016
  3. Michael HaggertyAug 25, 2016
  4. Alex NaudaAug 25, 2016
  5. Michael HaggertyAug 26, 2016

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.