Gabor Bota created HADOOP-16280:
-----------------------------------
Summary: S3Guard: Retry failed read with backoff in Authoritative
mode when file can be opened
Key: HADOOP-16280
URL: https://issues.apache.org/jira/browse/HADOOP-16280
Project: Hadoop Common
Issue Type: Sub-task
Components: fs/s3
Reporter: Gabor Bota
When using S3Guard in authoritative mode a file can be reported from AWS S3
that's missing like it is described in the following exception:
{noformat}
java.io.FileNotFoundException: re-open
s3a://cloudera-dev-gabor-ireland/test/TMCDOR-021df1ad-633f-47b8-97f5-6cd93f0b82d0
at 0 on
s3a://cloudera-dev-gabor-ireland/test/TMCDOR-021df1ad-633f-47b8-97f5-6cd93f0b82d0:
com.amazonaws.services.s3.model.AmazonS3Exception: The specified key does not
exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey; Request
ID: E1FF9EA9B5DBBD7E; S3 Extended Request ID:
NzNIL4+dyA89WTnfbcwuYQK+hCfx51TfavwgC3oEvQI0IQ9M/zAspbXOfBIis8/nTolc4tRB9ik=),
S3 Extended Request ID:
NzNIL4+dyA89WTnfbcwuYQK+hCfx51TfavwgC3oEvQI0IQ9M/zAspbXOfBIis8/nTolc4tRB9ik=:NoSuchKey
{noformat}
But the metadata in S3Guard (e.g dynamo db) is there, so it can be opened. The
operation will not fail when it's opened, it will fail when we try to read it,
so the call
{noformat}FSDataInputStream is = guardedFs.open(testFilePath);{noformat}}
won't fail, but the next call
{noformat}
byte[] firstRead = new byte[text.length()];
is.read(firstRead, 0, firstRead.length);
{noformat}
will fail with the exception message like what's above.
Once Authoritative mode is on, we assume that there is no out of band
operation, so the file will appear eventually. We should re-try in this case.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]