When use NonBlockedDecompressorStream which call:
SnappyDecompressor.setInput
publicsynchronizedvoidsetInput(byte[] buffer, intoff, intlen) {
SnappyUtilpublicsynchronizedvoidsetInput(byte[] buffer, intoff, intlen) {
SnappyUtil.validateBuffer(buffer, off, len);
if (inputBuffer.capacity() - inputBuffer.position() < len) {
ByteBuffernewBuffer = ByteBuffer.allocateDirect(inputBuffer.position() + len);
inputBuffer.rewind();
newBuffer.put(inputBuffer);
inputBuffer = newBuffer; } else {
inputBuffer.limit(inputBuffer.position() + len);
}
inputBuffer.put(buffer, off, len);
}
.validateBuffer(buffer, off, len);
if (inputBuffer.capacity() - inputBuffer.position() < len) {
ByteBuffernewBuffer = ByteBuffer.allocateDirect(inputBuffer.position() + len);
inputBuffer.rewind();
newBuffer.put(inputBuffer);
inputBuffer = newBuffer; } else {
inputBuffer.limit(inputBuffer.position() + len);
}
inputBuffer.put(buffer, off, len);
}If we do not get any full gc for old gen.we may failed by off-heap memory leak
Reporter: zhoukang
Related issues:
PRs and other links:
Note: This issue was originally created as PARQUET-1320. Please see the migration documentation for further details.
When use NonBlockedDecompressorStream which call:
SnappyDecompressor.setInput
If we do not get any full gc for old gen.we may failed by off-heap memory leak
Reporter: zhoukang
Related issues:
PRs and other links:
Note: This issue was originally created as PARQUET-1320. Please see the migration documentation for further details.