Re: Errors from http-fetch
From: Nick Hengeveld <hidden>
Date: 2016-06-15 22:42:09
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.