[
https://issues.apache.org/jira/browse/HADOOP-9665?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13691681#comment-13691681
]
Hadoop QA commented on HADOOP-9665:
-----------------------------------
{color:green}+1 overall{color}. Here are the results of testing the latest
attachment
http://issues.apache.org/jira/secure/attachment/12589361/HADOOP-9665.2.patch
against trunk revision .
{color:green}+1 @author{color}. The patch does not contain any @author
tags.
{color:green}+1 tests included{color}. The patch appears to include 1 new
or modified test files.
{color:green}+1 javac{color}. The applied patch does not increase the
total number of javac compiler warnings.
{color:green}+1 javadoc{color}. The javadoc tool did not generate any
warning messages.
{color:green}+1 eclipse:eclipse{color}. The patch built with
eclipse:eclipse.
{color:green}+1 findbugs{color}. The patch does not introduce any new
Findbugs (version 1.3.9) warnings.
{color:green}+1 release audit{color}. The applied patch does not increase
the total number of release audit warnings.
{color:green}+1 core tests{color}. The patch passed unit tests in
hadoop-common-project/hadoop-common.
{color:green}+1 contrib tests{color}. The patch passed contrib unit tests.
Test results:
https://builds.apache.org/job/PreCommit-HADOOP-Build/2699//testReport/
Console output:
https://builds.apache.org/job/PreCommit-HADOOP-Build/2699//console
This message is automatically generated.
> BlockDecompressorStream#decompress will throw EOFException instead of return
> -1 when EOF
> ----------------------------------------------------------------------------------------
>
> Key: HADOOP-9665
> URL: https://issues.apache.org/jira/browse/HADOOP-9665
> Project: Hadoop Common
> Issue Type: Bug
> Affects Versions: 1.1.2, 2.1.0-beta, 2.2.0
> Reporter: Zhijie Shen
> Assignee: Zhijie Shen
> Priority: Critical
> Attachments: HADOOP-9665.1.patch, HADOOP-9665.2.patch
>
>
> BlockDecompressorStream#decompress ultimately calls rawReadInt, which will
> throw EOFException instead of return -1 when encountering end of a stream.
> Then, decompress will be called by read. However, InputStream#read is
> supposed to return -1 instead of throwing EOFException to indicate the end of
> a stream. This explains why in LineReader,
> {code}
> if (bufferPosn >= bufferLength) {
> startPosn = bufferPosn = 0;
> if (prevCharCR)
> ++bytesConsumed; //account for CR from previous read
> bufferLength = in.read(buffer);
> if (bufferLength <= 0)
> break; // EOF
> }
> {code}
> -1 is checked instead of catching EOFException.
> Now the problem will occur with SnappyCodec. If an input file is compressed
> with SnappyCodec, it needs to be decompressed through BlockDecompressorStream
> when it is read. Then, if it empty, EOFException will been thrown from
> rawReadInt and break LineReader.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira