hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hudson (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HADOOP-4195) SequenceFile.Writer close() uses compressor after returning it to CodecPool.
Date Mon, 22 Sep 2008 15:20:47 GMT

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

Hudson commented on HADOOP-4195:
--------------------------------

Integrated in Hadoop-trunk #611 (See [http://hudson.zones.apache.org/hudson/job/Hadoop-trunk/611/])

> 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.


Mime
View raw message