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

Re: git-daemon shallow checkout fail

From
Jeff King <peff@peff.net>
Date
Jan 30, 2017, 17:27 UTC
Message-ID
<20170130172730.x5guphyqf5fsfi7m@sigill.intra.peff.net>
In-Reply-To
<20170129002932.GA19359@dismay.proulx.com>
On Sat, Jan 28, 2017 at 05:29:32PM -0700, Bob Proulx wrote:
Show 10 quoted lines
> However the problem driving me crazy is that this only fails this way
> on one machine.  Unfortunately failing on the machine I need to use.
> If I try this same setup on any other machine I try then there is no
> failure and it works okay.  Therefore I conclude that in the failing
> case it is trying to write a shallow_XXXXXX file in the repository but
> in all of the passing cases it does not.  I browsed through the
> git-daemon source but couldn't deduce the flow yet.
> 
> Does anyone know why one system would try to create shallow_XXXXXX
> files in the repository while another one would not?

It depends on the git version on the server. The interesting code is in upload-pack.c, which is spawned by git-daemon to serve a fetch or clone request.

See commit b790e0f67 (upload-pack: send shallow info over stdin to pack-objects, 2014-03-11), which lays out the history. Since that commit (in git v2.0.0), there should be no tmpfile needed.

Show 7 quoted lines
> Of course git-daemon running as nobody can't create a temporary file
> shallow_XXXXXX in the /srv/git/test-project.git because it has no
> permissions by design.  But why does this work on other systems and
> not work on my target system?
> 
>   git --version  # from today's git clone build
>   git version 2.11.0.485.g4e59582

This shouldn't be happening with git v2.11. Are you sure that the "git daemon" invocation is running that same version? I notice you set up a restricted PATH. Is it possible that /usr/local/bin or /usr/bin has an older version of git?

-Peff
Previous: Bob ProulxNext: Duy Nguyen
Message 4 of 9 in “git-daemon shallow checkout fail”
  1. Bob ProulxJan 29, 2017
  2. Johannes SchindelinJan 30, 2017
  3. Bob ProulxFeb 7, 2017
  4. Jeff KingJan 30, 2017
  5. Duy NguyenFeb 2, 2017
  6. Bob ProulxFeb 7, 2017
  7. Bob ProulxFeb 7, 2017
  8. Duy NguyenFeb 7, 2017
  9. Bob ProulxFeb 7, 2017

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.