Subject: Re: Errors from http-fetch

From: Nick Hengeveld <[email-masked]>
Date: Wed, 19 Oct 2005 15:37:08 -0700

On Wed, Oct 19, 2005 at 06:10:52PM -0400, Daniel Barkalow wrote:

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

Something similar was reported yesterday, and when I investigated I
found that one of the kernel.org servers was returning a 404 for the
object in question and the other wasn't.  Vger bounced my reply because
it contained Content-type: headers...

> 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.

I could see that happen if the pack appeared on the repo after #1 404ed
and subsequently decided there were no packs, and before #2 404ed.  Or,
as was the case I saw yesterday, servers with the same DNS name aren't
in sync.  However, the pack download for #2 should never start in that
case because fetch() for #1 would fail and exit.

> 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.

I'm not sure how that could happen - once a pack download request
starts, it has to finish before any fetch() calls can fail.  However,
there could certainly be other object requests in process when one
fails, and it would be polite to let them finish.

-- 
For a successful technology, reality must take precedence over public
relations, for nature cannot be fooled.