IFile.Writer close() uses compressor after returning it to CodecPool. ----------------------------------------------------------------------
Key: HADOOP-4673 URL: https://issues.apache.org/jira/browse/HADOOP-4673 Project: Hadoop Core Issue Type: Bug Affects Versions: 0.18.2, 0.18.1 Reporter: Hong Tang 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()". {code:title=IFile.java|borderStyle=solid} 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; } {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.