hadoop-mapreduce-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sunil G (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (MAPREDUCE-2631) Potential resource leaks in BinaryProtocol$TeeOutputStream.java and TaskLogServlet.java
Date Fri, 08 May 2015 08:58:02 GMT

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

Sunil G updated MAPREDUCE-2631:
-------------------------------
    Description: 
{code:title=BinaryProtocol$TeeOutputStream.java|borderStyle=solid}

public void close() throws IOException {
      flush();
      file.close();
      out.close();
    }
{code} 

In the above code, if the file.close() throws any exception out will not be closed.
 


  was:
{code:title=TaskLogServlet.java|borderStyle=solid}

private void printTaskLog(HttpServletResponse response,
                            OutputStream out, TaskAttemptID taskId, 
                            long start, long end, boolean plainText, 
                            TaskLog.LogName filter, boolean isCleanup) 
  throws IOException {
    if (!plainText) {
      out.write(("<br><b><u>" + filter + " logs</u></b><br>\n"
+
                 "<pre>\n").getBytes());
    }

    try {
      InputStream taskLogReader = 
        new TaskLog.Reader(taskId, filter, start, end, isCleanup);
      byte[] b = new byte[65536];
      int result;
      while (true) {
        result = taskLogReader.read(b);
        if (result > 0) {
          if (plainText) {
            out.write(b, 0, result); 
          } else {
            HtmlQuoting.quoteHtmlChars(out, b, 0, result);
          }
        } else {
          break;
        }
      }
      taskLogReader.close();

{code} 

In the above code, if any exception thrown while reading (taskLogReader.read(b)), taskLogReader
will not be closed.

{code:title=BinaryProtocol$TeeOutputStream.java|borderStyle=solid}

public void close() throws IOException {
      flush();
      file.close();
      out.close();
    }
{code} 

In the above code, if the file.close() throws any exception out will not be closed.
 



> Potential resource leaks in BinaryProtocol$TeeOutputStream.java and TaskLogServlet.java
> ---------------------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-2631
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-2631
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: jobtracker
>    Affects Versions: 0.23.0
>            Reporter: Ravi Teja Ch N V
>            Assignee: Sunil G
>              Labels: BB2015-05-RFC
>         Attachments: 0001-MAPREDUCE-2631.patch, MAPREDUCE-2631.1.patch, MAPREDUCE-2631.2.patch,
MAPREDUCE-2631.3.patch, MAPREDUCE-2631.patch
>
>
> {code:title=BinaryProtocol$TeeOutputStream.java|borderStyle=solid}
> public void close() throws IOException {
>       flush();
>       file.close();
>       out.close();
>     }
> {code} 
> In the above code, if the file.close() throws any exception out will not be closed.
>  



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

Mime
View raw message