Comment 14 for bug 987182

Revision history for this message
Ben Howard (darkmuggle-deactivatedaccount) wrote :

For the S3 mirrors, there were three distinct issues at play.

Background: S3 is deals with "+" in backwards ways. The short version is that if you have a "+" in the name, you have to upload it three times to deal with character encoding problems -- once with "+", and then once with "%2B" and " " replacing any "+".

1. Amazon is now enforcing exact URL fetching. It used to be that if you requested "foo%2Bbar" and there was a file of "foo+bar", as long as your request was using utf-8 encoding you would get the file "foo+bar". Now, if you request "foo%2Bbar", even though the request is interpetted as "foo+bar" in ascii, you must have "foo%2Bbar" in the bucket.

2. My code had a bug where it was not properly syncronizing and checking the different encodings of "+". The result was that some "+" files were not getting pushed up.

3. My code had a second bug which was caused by archive.ubuntu.com not returning content-type in the http headers. Previously I was using the content-type header from archive.ubuntu.com to set the content type header for S3. However, recently that changed, which was causing syncronization problems.

The issue was fixed late last on 2012-05-23. After looking at the logs, the problems seems to have been fixed.

Marking fixed released.