[
https://issues.apache.org/jira/browse/HADOOP-14467?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aaron Fabbri updated HADOOP-14467:
----------------------------------
Attachment: HADOOP-14467-HADOOP-13345.001.patch
Attaching v1 patch that just adds a simple integration test that exercises this.
Also created debugging page on confluence wiki
[here|https://cwiki.apache.org/confluence/display/HADOOP/S3A%3A+FileNotFound+Exception+on+Read].
Next steps: (1) Change exception message. (2) Link to cwiki from other hadoop
wiki, and site docs.
Current stack trace (for google)
{noformat}
java.io.FileNotFoundException: Reopen at position 0 on
s3a://bucket-name/test/some-file:
com.amazonaws.services.s3.model.AmazonS3Exception: The specified key does not
exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey; Request
ID: 58552EC03A3499D7), S3 Extended Request ID:
thYjg0cDPGceq5M3n5T2nLmRDfFnoAeyiVMx8rOvYv/IHDPZiBnL5oAOPjdw44rQgzngDk4wELY=
at
com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1588)
at
com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1258)
at
com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1030)
at
com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:742)
at
com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:716)
at
com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699)
at
com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667)
at
com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649)
at
com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513)
at
com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4221)
at
com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4168)
at
com.amazonaws.services.s3.AmazonS3Client.getObject(AmazonS3Client.java:1378)
at
org.apache.hadoop.fs.s3a.S3AInputStream.reopen(S3AInputStream.java:160)
at
org.apache.hadoop.fs.s3a.S3AInputStream.onReadFailure(S3AInputStream.java:350)
at org.apache.hadoop.fs.s3a.S3AInputStream.read(S3AInputStream.java:323)
at java.io.FilterInputStream.read(FilterInputStream.java:83)
{noformat}
> S3Guard: Improve FNFE message when opening a stream
> ---------------------------------------------------
>
> Key: HADOOP-14467
> URL: https://issues.apache.org/jira/browse/HADOOP-14467
> Project: Hadoop Common
> Issue Type: Sub-task
> Components: fs/s3
> Reporter: Aaron Fabbri
> Assignee: Aaron Fabbri
> Priority: Minor
> Attachments: HADOOP-14467-HADOOP-13345.001.patch
>
>
> Following up on the [discussion on
> HADOOP-13345|https://issues.apache.org/jira/browse/HADOOP-13345?focusedCommentId=16030050&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16030050],
> because S3Guard can serve getFileStatus() from the MetadataStore without
> doing a HEAD on S3, a FileNotFound error on a file due to S3 GET
> inconsistency does not happen on open(), but on the first read of the stream.
> We may add retries to the S3 client in the future, but for now we should
> have an exception message that indicates this may be due to inconsistency
> (assuming it isn't a more straightforward case like someone deleting the
> object out from under you).
> This is expected to be a rare case, since the S3 service is now mostly
> consistent for GET.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]