xuanflyer created HIVE-12737:
--------------------------------
Summary: orc Instream.java CompressedStream.readHeader() can meet
error when read double.
Key: HIVE-12737
URL: https://issues.apache.org/jira/browse/HIVE-12737
Project: Hive
Issue Type: Bug
Components: ORC
Affects Versions: 1.0.1
Reporter: xuanflyer
Priority: Minor
private void readHeader() throws IOException {
....
ByteBuffer slice = this.slice(chunkLength);
if (isOriginal) {
uncompressed = slice;
isUncompressedOriginal = true;
} else {
if (isUncompressedOriginal) {
uncompressed = allocateBuffer(bufferSize);
isUncompressedOriginal = false;
} else if (uncompressed == null) {
uncompressed = allocateBuffer(bufferSize);
} else {
uncompressed.clear();
}
codec.decompress(slice, uncompressed);
}
} else {
throw new IllegalStateException("Can't read header at " + this);
}
}
when reading the 2nd chunk, uncompressed didn't check the data left in itself.
chunkSize is set by hive.exec.orc.default.buffer.size, if user set a number
that can't mod 8, when read double, error occurs.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)