|
Bugzilla – Full Text Bug Listing |
| Summary: | zypp+curl chunked download produces corrupt files | ||
|---|---|---|---|
| Product: | [openSUSE] openSUSE 11.4 | Reporter: | Bernhard Wiedemann <bwiedemann> |
| Component: | libzypp | Assignee: | Michael Schröder <mls> |
| Status: | RESOLVED FIXED | QA Contact: | E-mail List <qa-bugs> |
| Severity: | Major | ||
| Priority: | P5 - None | CC: | lars.vogdt, Martin.Seidler |
| Version: | Factory | ||
| Target Milestone: | --- | ||
| Hardware: | i686 | ||
| OS: | Other | ||
| Whiteboard: | |||
| Found By: | --- | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Attachments: | zypper.log extract from corrupted download | ||
|
Description
Bernhard Wiedemann
2010-12-04 18:52:27 UTC
Created attachment 403478 [details]
zypper.log extract from corrupted download
notice the occurrence of the proxad mirror with a non-zero starting-offset.
workaround: export ZYPP_MULTICURL=0 zypp/media/MediaMultiCurl.cc:241 does not remember if a reply has a "Content-Range:" header. RFC2616 only specifies this as a SHOULD, so there are servers out there, returning data from offset 0 with "200 OK" instead of "206 Partial Content", which then gets written to the wrong offset. 3 of 4 samples of my corrupted rpm collection support this. I didn't implement a 206 check because metalinks normally contain block checksums, which allow the client to detect misbehaving servers. (I also don't know what ftp servers return.) There seems to be something wrong with our download infrastructure, because the metalink file doesn't contain any block checksums. That's why multicurl doesn't detect this error. So I think you're right, we should check for 206. This issue should be fixed with libzypp-8.10.2 as shipped with 11.4-MS5. If you are still having an older install, be sure to update libzypp first. |