You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-dev@hadoop.apache.org by "Hong Tang (JIRA)" <ji...@apache.org> on 2008/09/17 23:07:44 UTC

[jira] Commented: (HADOOP-4195) SequenceFile.Writer close() uses compressor after returning it to CodecPool.

    [ https://issues.apache.org/jira/browse/HADOOP-4195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12631950#action_12631950 ] 

Hong Tang commented on HADOOP-4195:
-----------------------------------

Patch verified to work.

> SequenceFile.Writer close() uses compressor after returning it to CodecPool.
> ----------------------------------------------------------------------------
>
>                 Key: HADOOP-4195
>                 URL: https://issues.apache.org/jira/browse/HADOOP-4195
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: io
>    Affects Versions: 0.18.0
>            Reporter: Hong Tang
>            Assignee: Arun C Murthy
>             Fix For: 0.19.0
>
>         Attachments: HADOOP-4195_0_20080917.patch
>
>
> In function SequenceFile.Writer.close() (line 946): The first marked line returns the compressor while the second marked line will use the compressor again. This will lead to a race condition if another thread checks out the compressor between these two marked statements.
> {code:title=SequenceFile.java|borderStyle=solid}
>     public synchronized void close() throws IOException {
>       CodecPool.returnCompressor(compressor); // <==== compressor returned
>       
>       keySerializer.close();
>       uncompressedValSerializer.close();
>       if (compressedValSerializer != null) {
>         compressedValSerializer.close(); // <===== compressor used
>       }
>       if (out != null) {
>         
>         // Close the underlying stream iff we own it...
>         if (ownOutputStream) {
>           out.close();
>         } else {
>           out.flush();
>         }
>         out = null;
>       }
>     }
> {code} 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.