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

Re: Errors from http-fetch

From
Daniel Barkalow <barkalow@iabervon.org>
Date
Oct 19, 2005, 22:10 UTC
Message-ID
<Pine.LNX.4.64.0510191755280.25300@iabervon.org>
In-Reply-To
<20051019212644.GB6160@reactrix.com>
On Wed, 19 Oct 2005, Nick Hengeveld wrote:
Show 10 quoted lines
> On Wed, Oct 19, 2005 at 03:46:10PM -0400, Daniel Barkalow wrote:
> 
> > I've now started getting errors from http-fetch; my guess for the output 
> > is that it has problems if an object is not available loose, and is only 
> > available in a pack file which is already being downloaded for a different 
> > object, possibly only if the first request to be made for the loose 
> > object is not the first one to fail.
> 
> Are you getting a curl return code of 52/CURLE_GOT_NOTHING?  Any chance
> you have access to the associated server logs?

I'm getting 404 for the object, which it reports. This was pulling from kernel.org.

> In the situation you describe, fetch() won't be called for the second
> object until fetch() for the first object is finished - at which point
> the pack will have been fully downloaded for the first object (or
> failed, causing fetch() for the first object to fail as well.)

My theory is that you have: prefetch(#2), prefetch(#1), (other stuff), #1 gives an error, start downloading the pack, fetch(#2), #2 gives an error, and there are no more packs to try.

That is, it was a later object that prompted getting the pack, because either the server decided to send that error message sooner, some packet got dropped and retransmitted, the connection got a lower-numbered file descriptor and they were ready at the same time, or something like that.

Another thing I noticed was that it was in the middle of downloading the pack when it suddenly exitted due to not being able to find the object; it would probably be worth having a call to finish up the active transfers after giving up on completing the whole thing, since we probably do actually want to finish downloading a big pack if we've started.

Consider the situation where you happen to catch the server in the middle of mirroring, and you're halfway through a big pack; restarting is nice, but it might as well let you finish downloading the pack, so you have less to do when you try again later.

	-Daniel
*This .sig left intentionally blank*
Previous: Nick HengeveldNext: Nick Hengeveld
Message 3 of 5 in “Errors from http-fetch”
  1. Daniel BarkalowOct 19, 2005
  2. Nick HengeveldOct 19, 2005
  3. Daniel BarkalowOct 19, 2005
  4. Nick HengeveldOct 19, 2005
  5. Daniel BarkalowOct 20, 2005

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.