[
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]