-
Notifications
You must be signed in to change notification settings - Fork 9.1k
HADOOP-19027. S3A: S3AInputStream doesn't recover from channel exceptions #8003
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: branch-3.3
Are you sure you want to change the base?
HADOOP-19027. S3A: S3AInputStream doesn't recover from channel exceptions #8003
Conversation
…xceptions This is a fraction of apache#6425 backported to the V1 SDK, which does a lot of V2-specific translation/unwinding. 416 responses are mapped to RangeNotSatisfiableEOFException, whose retry policy is: fail. Classic EOFException is now retried as connection failure. calls to read() and lazyseek all retry on this with full retry policy, including handling of socket errors.
S3 London. All good with updated tests. Failure in [ERROR] ITestAssumeRole.testAssumeRoleBadInnerAuth:263->expectFileSystemCreateFailure:137 Expected to find 'not a valid key=value pair (missing equal-sign) in Authorization header' but got unexpected exception: org.apache.hadoop.fs.s3a.AWSBadRequestException: Instantiate org.apache.hadoop.fs.s3a.auth.AssumedRoleCredentialProvider: com.amazonaws.services.securitytoken.model.AWSSecurityTokenServiceException: Invalid key=value pair (missing equal-sign) in Authorization header (hashed with SHA-256 and encoded with Base64): 'hvHJSzfhtkBgtrEOkT9w/UT3So5LWUnDLLsTKYln5vE='. (Service: AWSSecurityTokenService; Status Code: 400; Error Code: IncompleteSignature; Request ID: 4f76f95a-3933-4312-858b-3f1d123bf14f; Proxy: null):IncompleteSignature: Invalid key=value pair (missing equal-sign) in Authorization header (hashed with SHA-256 and encoded with Base64): 'hvHJSzfhtkBgtrEOkT9w/UT3So5LWUnDLLsTKYln5vE='. (Service: AWSSecurityTokenService; Status Code: 400; Error Code: IncompleteSignature; Request ID: 4f76f95a-3933-4312-858b-3f1d123bf14f; Proxy: null) |
💔 -1 overall
This message was automatically generated. |
💔 -1 overall
This message was automatically generated. |
checkstyles are because I added the new SC_ constants, (which deprecates some old ones) but didn't change the uses of those old ones. Which I don't intend to do. test failure is legit failure of |
💔 -1 overall
This message was automatically generated. |
This is a fraction of #6425 backported to the V1 SDK, which does a lot of V2-specific translation/unwinding.
416 responses are mapped to RangeNotSatisfiableEOFException, whose retry policy is: fail.
Classic EOFException is now retried as connection failure. calls to read() and lazyseek all retry on this with full retry policy, including handling of socket errors.
Everything related to new sdk, its complex http channel stuff: omitted.
This means that the following will be handled
Out of range GET is mappped to RangeNotSatisfiableEOFException so it is not retried,
this is critical. Without it ITestS3AOpenCost.testReadPastEOF() will time out as it is continually retrying.
How was this patch tested?
Cherrypick of new ITestS3AOpenCost.
For code changes:
LICENSE
,LICENSE-binary
,NOTICE-binary
files?