Tsuyoshi OZAWA created YARN-2484:
------------------------------------

             Summary: 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


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.2#6252)

Reply via email to