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

Steve Loughran commented on HADOOP-15651:
-----------------------------------------

[~fabbri]: any thoughts? We could add an assert in the read(), but that 
wouldn't fix the problem

I've rerun the test from the IDE a few times and couldn't trigger it; in those 
runs the fault injection count got > 50, rather than the 30+ it was in the log 
of the failed run.

I can't see the obvious codepath which leads to this. That said: the lazyseek 
code could be moved into the invocation loop, with the abort code in the two 
catch clauses relying on that for the reopen, and simply closing(forced=true | 
false) the stream

> NPE in S3AInputStream.read() in ITestS3AInconsistency.testOpenFailOnRead
> ------------------------------------------------------------------------
>
>                 Key: HADOOP-15651
>                 URL: https://issues.apache.org/jira/browse/HADOOP-15651
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: fs/s3, test
>    Affects Versions: 3.2.0
>            Reporter: Steve Loughran
>            Priority: Major
>         Attachments: org.apache.hadoop.fs.s3a.ITestS3AInconsistency-output.txt
>
>
> Test {{ITestS3AInconsistency.testOpenFailOnRead()}} raise an NPE in read(); 
> could only happen on that line if {{wrappedStream==null}}, which implies that 
> previous attempts to re-open the closed stream failed and that this didn't 
> trigger anything.
> Not seen this before, but given that the fault injection is random, it may be 
> that so far test runs have been *unlucky* and missed this.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to