Opened 15 years ago
Last modified 15 years ago
#924 new Defect
Partial Transfer Fails
Reported by: | Kevin Reed | Owned by: | davea |
---|---|---|---|
Priority: | Major | Milestone: | Undetermined |
Component: | Client - Daemon | Version: | 6.6.31 |
Keywords: | Cc: |
Description
If a project compresses files and relies on libCurl to decompress the file during transfer, then in the event that a transfer is interrupted, BOINC relies on the decompressed file size to set the Request Range header. This will be invalid and therefore fail with:
416 Requested Range Not Satisfiable
this will repeat until the timeout limit for the download.
It would be great if in the event of the failure of a partial file download, the client would then attempt a full download.
Change History (8)
comment:1 Changed 15 years ago by
comment:2 Changed 15 years ago by
I am using the suffix gzb and setting the following header:
Content-Encoding: gzip
Note that this example will be deleted eventually.
comment:3 Changed 15 years ago by
Who is supposed to decompress that file, the science app, or are you relying on the BOINC client doing it?
comment:5 Changed 15 years ago by
We were using mod_deflate as outlined here: http://boinc.berkeley.edu/trac/wiki/FileCompression
Most of that page reflects what we had been doing.
We need to conserve storage on the server side, so we have started to 'pre-compress' the files for download and we are using the suffix .gzb to indicate this. We have added the following to our httpd.conf in order to add the header:
AddEncoding? gzip gzb
comment:6 Changed 15 years ago by
Older clients that don't support compression will fail; the server should give a compressed file only if the client says Accept-Encoding: gzip
; otherwise it should give the decompressed file. I just tested your URL, and I'm sure it's sending a gzipped response always.
comment:7 Changed 15 years ago by
Clients older than 5.4 no longer work with World Community Grid. We specify that in config.xml using the tags:
<min_core_client_version>
504
</min_core_client_version>
The 5.4 and more recent clients work with this correctly with the exception of partial file transfers. We have been using this for about 3 months.
comment:8 Changed 15 years ago by
That's not the point. Do servers have a giant database saying what versions of what web browsers support compression?
Is the server sending Transfer-Encoding: gzip, Content-Encoding: gzip, or is the file type actually a .gz, thus sending neither encoding header?