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)

Reply via email to