Better handle error #14

Closed
coreyhahn opened this Issue Aug 31, 2012 · 5 comments

Comments

Projects
None yet
4 participants
Exception in thread "main" Status Code: 403, AWS Service: AmazonGlacier, AWS Request ID: XXX, AWS Error Code: InvalidSignatureException, AWS Error Message: Signature expired: 20120831T062211Z is now earlier than 20120831T063133Z (20120831T063633Z - 5 min.)
    at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:583)
    at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:317)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:167)
    at com.amazonaws.services.glacier.AmazonGlacierClient.invoke(AmazonGlacierClient.java:1949)
    at com.amazonaws.services.glacier.AmazonGlacierClient.uploadMultipartPart(AmazonGlacierClient.java:1581)
    at com.amazonaws.services.glacier.transfer.ArchiveTransferManager.uploadInMultipleParts(ArchiveTransferManager.java:441)
    at com.amazonaws.services.glacier.transfer.ArchiveTransferManager.upload(ArchiveTransferManager.java:249)
    at com.amazonaws.services.glacier.transfer.ArchiveTransferManager.upload(ArchiveTransferManager.java:210)
    at de.kopis.glacier.CommandLineGlacierUploader.upload(CommandLineGlacierUploader.java:46)
    at de.kopis.glacier.GlacierUploader.main(GlacierUploader.java:48)

Can this be handled gracefully?

Owner

MoriTanosuke commented Sep 1, 2012

What's the reason for this error? Time difference between AWS and your local clock? Or did it happen while uploading an archive?

It happens in the middle of an upload. it is also part of the reason I would like to see some way of continuing a large archive upload when it fails in the middle.

Owner

MoriTanosuke commented Sep 1, 2012

Ah, ok. I talked about this with a colleague on Friday. I think I have to catch the proper exception when the upload fails and restart the upload. Maybe a graceful retry (3 times probably) would be the right way to go. I think I was facing the same issue when uploading several 2GB archives and my DSL line got disconnected. A few of those archives are now missing in my vault.

I agree, this should be handled by the uploader. I have to read up in the SDK docs about how the multipart upload is handled by the SDK. I don't like the thought of doing multipart splitting all by myself... :-/ Maybe there is a way to tell the SDK to retry to upload on failures.

@jqdoumen jqdoumen referenced this issue in uskudnik/amazon-glacier-cmd-interface Nov 9, 2012

Open

Setting signature expiration #103

ehrmann commented Dec 17, 2012

I've been getting this issue at a slightly different line number (probably just a different version of the code--I'm using uploader-0.0.6-jar). It looks like Amazon's Java AWS implementation doesn't have very robust error recovery.

Contributor

nitriques commented Jan 11, 2013

uploading several 2GB

Multipart upload is the way to go for files larger than 100 Mb. I will pull request soon as I have implemented this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment