Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Invalid
-
0.18.1, 0.18.2
-
None
-
None
-
None
Description
The problem is of the same nature as HADOOP-4195.
The compression codec is returned to the CodecPool, and later is finished in "out.close()".
IFile.java
public void close() throws IOException { // Close the serializers keySerializer.close(); valueSerializer.close(); // Write EOF_MARKER for key/value length WritableUtils.writeVInt(out, EOF_MARKER); WritableUtils.writeVInt(out, EOF_MARKER); decompressedBytesWritten += 2 * WritableUtils.getVIntSize(EOF_MARKER); if (compressOutput) { // Flush data from buffers into the compressor out.flush(); // Flush & return the compressor compressedOut.finish(); compressedOut.resetState(); CodecPool.returnCompressor(compressor); compressor = null; } // Close the stream rawOut.flush(); compressedBytesWritten = rawOut.getPos() - start; // Close the underlying stream iff we own it... if (ownOutputStream) { out.close(); } out = null; }