Hi Roger, On Mon, Mar 08, 2010 at 06:15:01 +0100, Roger Oberholtzer wrote:
On Mon, 2010-03-08 at 18:02 +0100, Peter Pöml wrote:
aria2c http://download.opensuse.org/repositories/Virtualization:/Appliances/openSUS...
This fails consistently. I attached the listing. I am no0t sure if the list allows an attachment. I did it as one so the line breaks would be unmolested.
When it fails, it is very quick. The whole process takes less than a minute. All files are not failing. But many do, making updates impossible.
Could you please re-run the command with "--log=aria2c.log" and provide the resulting long log file? I need to see the full HTTP headers. For a short comparison, the range headers that are passed around normally look like this: % aria2c --log=- http://download.opensuse.org/repositories/Virtualization:/Appliances/openSUS... | grep Range Range: bytes=2883584- Range: bytes=8650752- Range: bytes=5767168- Accept-Ranges: bytes Accept-Ranges: bytes Content-Range: bytes 2883584-11498701/11498702 Accept-Ranges: bytes Content-Range: bytes 5767168-11498701/11498702 Range: bytes=1572864- Accept-Ranges: bytes Content-Range: bytes 1572864-11498701/11498702 Content-Range: bytes 8650752-11498701/11498702 Range: bytes=4718592- Accept-Ranges: bytes Content-Range: bytes 4718592-11498701/11498702 Range: bytes=2359296- Accept-Ranges: bytes Content-Range: bytes 2359296-11498701/11498702 Range: bytes=4194304- Accept-Ranges: bytes Content-Range: bytes 4194304-11498701/11498702 Range: bytes=2097152- Content-Range: bytes 2097152-11498701/11498702
-> [HttpResponse.cc:93] Invalid range header. Request: 3,145,728-0/11,498,702, Response: 0-11,498,701/11,498,702
From the aria2c output you attached, I have the impression that all responses come as if all mirrors don't support byte ranges. The 0-11,498,701 in aria2c's error message indicates that it receives "Content-Range: bytes 0-11498701/11498702" responses. While I _have_ seen this with an old corporate squid cache, it doesn't mean this is due to a squid cache. In fact, any proxy could elicit this effect, by not passing the partial GET request but prefetching the entire content and then passing it back in full. If the HTTP/1.1 protocol is followed correctly by the proxy, aria2c should be able to deal with this case, since support for byte ranges is not obligatory in HTTP/1.1. So the bug might be in several places, and we'd need to see the HTTP headers for details. The aria2c verbose log contains them. Which aria2c version is this? Peter