Skip Menu |

This queue is for tickets about the Net-Amazon-Glacier CPAN distribution.

Report information
The Basics
Id: 85841
Status: new
Priority: 0/
Queue: Net-Amazon-Glacier

People
Owner: Nobody in particular
Requestors: victor [...] vsespb.ru
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Allow retry requests and better detection of errors
Hello. According to source code, seems the API return success and failure, for any call. However there should be another state: "request should be retried". Or you should implement request retry by yourself. Some facts: 1. Amazon can return HTTP 500 any time. This mean request should be retried. Proof https://forums.aws.amazon.com/thread.jspa?messageID=387762&#387762 2. Sometimes upload/download with huge files fail, it's not possible to download huge files sometimes (with any clients, from any locations including Amazon EC2). proof - https://forums.aws.amazon.com/thread.jspa?threadID=125571&tstart=0 My testing shows that for pretty often Amazon drop connection for smaller files, it's by design. 3. There are special error codes and exception codes http://docs.aws.amazon.com/amazonglacier/latest/dev/api-error-responses.html HTTP 408 - timeout and HTTP 400, code ThrottlingException which mean request should be retried. Also errors from LWP::UserAgent should be better handled. A. When Amazon server break connection (example is (2)) (and this is valid and only possible behaviour to abort request after headers send), LWP::UserAgent does not detect it I don't have proof but I reported bug with proof-of-concept code https://rt.cpan.org/Public/Bug/Display.html?id=85759 and I saw this in the wild (yes, with Amazon servers) B. When socket timeout happen, LWP::UserAgent reports X-Died header but does not change HTTP status code, so response HTTP 200 (ans is_success == TRUE) with X-Died can actually mean networking issue.