[ 
https://issues.apache.org/jira/browse/YARN-2484?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tsuyoshi OZAWA updated YARN-2484:
---------------------------------
    Attachment: YARN-2484.2.patch

Thanks for your review, Jason!

Updated:
1. In writeFile, updated to call close() method in try block not to obscure 
original error.
2. In readFile, updated to use IOUtils.cleanup() instead of close() because we 
don't need to care the error in close() at RM side.

> FileSystemRMStateStore#readFile/writeFile should close 
> FSData(In|Out)putStream in final block
> ---------------------------------------------------------------------------------------------
>
>                 Key: YARN-2484
>                 URL: https://issues.apache.org/jira/browse/YARN-2484
>             Project: Hadoop YARN
>          Issue Type: Bug
>            Reporter: Tsuyoshi OZAWA
>            Assignee: Tsuyoshi OZAWA
>            Priority: Trivial
>         Attachments: YARN-2484.1.patch, YARN-2484.2.patch
>
>
> File descriptors can leak if exceptions are thrown in these methods.
> {code}
>  private byte[] readFile(Path inputPath, long len) throws Exception {
>     FSDataInputStream fsIn = fs.open(inputPath);
>     // state data will not be that "long"
>     byte[] data = new byte[(int)len];
>     fsIn.readFully(data);
>     fsIn.close();
>     return data;
>   }
> {code}
> {code}
>   private void writeFile(Path outputPath, byte[] data) throws Exception {
>     Path tempPath =
>         new Path(outputPath.getParent(), outputPath.getName() + ".tmp");
>     FSDataOutputStream fsOut = null;
>     // This file will be overwritten when app/attempt finishes for saving the
>     // final status.
>     fsOut = fs.create(tempPath, true);
>     fsOut.write(data);
>     fsOut.close();
>     fs.rename(tempPath, outputPath);
>   }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to