Browse Source

HDFS-15868. Possible Resource Leak in EditLogFileOutputStream (#2736). Contributed by Narges Shadab.

Reviewed-by: He Xiaoqiao <hexiaoqiao@apache.org>
(cherry picked from commit f5f3fc6fe90e3bb2ee783f956432db11e655b9e3)
Narges Shadab 4 years ago
parent
commit
3a355282c9

+ 6 - 1
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/EditLogFileOutputStream.java

@@ -88,7 +88,12 @@ public class EditLogFileOutputStream extends EditLogOutputStream {
     } else {
     } else {
       rp = new RandomAccessFile(name, "rw");
       rp = new RandomAccessFile(name, "rw");
     }
     }
-    fp = new FileOutputStream(rp.getFD()); // open for append
+    try {
+      fp = new FileOutputStream(rp.getFD()); // open for append
+    } catch (IOException e) {
+      IOUtils.closeStream(rp);
+      throw e;
+    }
     fc = rp.getChannel();
     fc = rp.getChannel();
     fc.position(fc.size());
     fc.position(fc.size());
   }
   }