[ 
https://issues.apache.org/jira/browse/HADOOP-12994?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15224736#comment-15224736
 ] 

Chris Nauroth commented on HADOOP-12994:
----------------------------------------

Hello [[email protected]].  This looks good overall.  Thank you for expanding 
the test coverage.

I ran live Azure testing with the new tests, and one of them failed, as 
described below.  I'm in the middle of a full test run now, which might take up 
to an hour to complete.  I'm not expecting any other impacts, but I'll confirm 
later after the test run finishes.

Here are a few comments.

# Regarding this {{ChecksumFileSystem}} change:
{code}
-  public ChecksumFileSystem(FileSystem fs) {
+  protected ChecksumFileSystem(FileSystem fs) {
     super(fs);
   }
{code}
I think this is backwards-compatible, but it took me some time to convince 
myself.  I think the reasoning is that since the class is abstract, it cannot 
be instantiated, so therefore a {{public}} constructor doesn't make sense.  
Anonymous inner classes are not a concern, because they rely on the default 
no-args constructor.  Do I have it right?  I'm not asking for any changes here, 
just trying to confirm my own thinking and calling it out in case others want 
to comment.
# I don't see anything that checks if the {{supports-positioned-readable}} 
contract option is enabled.  There should be corresponding 
{{skipIfUnsupported}} calls, right?
# {{FSDataInputStream}} has a typo in the JavaDocs:
{code}
   * @param buffer    buffer into which data is readT
{code}
# After I applied the patch, {{TestAzureNativeContractSeek#testReadSmallFile}} 
failed with an unexpected {{EOFException}}.  I think the problem is that it 
doesn't override {{NativeAzureFileSystem#NativeAzureFsInputStream#read}} to map 
{{EOFException}} to -1.  I tried applying a similar change to what you did for 
{{S3AInputStream}}, and then the test passed.


> Specify PositionedReadable, add contract tests, fix problems
> ------------------------------------------------------------
>
>                 Key: HADOOP-12994
>                 URL: https://issues.apache.org/jira/browse/HADOOP-12994
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: fs
>    Affects Versions: 2.8.0
>            Reporter: Steve Loughran
>            Assignee: Steve Loughran
>         Attachments: HADOOP-12994-001.patch, HADOOP-12994-002.patch
>
>
> Some work on S3a has shown up that there aren't tests catching regressions in 
> readFully, reviewing the documentation shows that its specification could be 
> improved.
> # review the spec
> # review the implementations
> # add tests (proposed: to the seek contract; streams which support seek 
> should support positioned readable)
> # fix code, where it differs significantly from HDFS or LocalFS



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to