You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ra...@apache.org on 2008/05/15 01:44:34 UTC
svn commit: r656467 - in /hadoop/core/branches/branch-0.17: CHANGES.txt
src/java/org/apache/hadoop/dfs/FSNamesystem.java
Author: rangadi
Date: Wed May 14 16:44:34 2008
New Revision: 656467
URL: http://svn.apache.org/viewvc?rev=656467&view=rev
Log:
HADOOP-3382. Fix memory leak when files are not cleanly closed (rangadi)
Modified:
hadoop/core/branches/branch-0.17/CHANGES.txt
hadoop/core/branches/branch-0.17/src/java/org/apache/hadoop/dfs/FSNamesystem.java
Modified: hadoop/core/branches/branch-0.17/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.17/CHANGES.txt?rev=656467&r1=656466&r2=656467&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.17/CHANGES.txt (original)
+++ hadoop/core/branches/branch-0.17/CHANGES.txt Wed May 14 16:44:34 2008
@@ -584,6 +584,8 @@
HADOOP-3031. Fix javac warnings in test classes. (cdouglas)
+ HADOOP-3382. Fix memory leak when files are not cleanly closed (rangadi)
+
Release 0.16.4 - 2008-05-05
BUG FIXES
Modified: hadoop/core/branches/branch-0.17/src/java/org/apache/hadoop/dfs/FSNamesystem.java
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.17/src/java/org/apache/hadoop/dfs/FSNamesystem.java?rev=656467&r1=656466&r2=656467&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.17/src/java/org/apache/hadoop/dfs/FSNamesystem.java (original)
+++ hadoop/core/branches/branch-0.17/src/java/org/apache/hadoop/dfs/FSNamesystem.java Wed May 14 16:44:34 2008
@@ -1845,6 +1845,17 @@
Block last = blocks[blocks.length - 1];
if (last.getNumBytes() == 0) {
pendingFile.removeBlock(last);
+ blocksMap.removeINode(last);
+ for (Iterator<DatanodeDescriptor> it =
+ blocksMap.nodeIterator(last); it.hasNext();) {
+ DatanodeDescriptor node = it.next();
+ addToInvalidates(last, node);
+ }
+ /* What else do we need to do?
+ * removeStoredBlock()? we do different things when a block is
+ * removed in different contexts. Mostly these should be
+ * same and/or should be in one place.
+ */
}
}
@@ -1859,9 +1870,9 @@
// replicate blocks of this file.
checkReplicationFactor(newFile);
- NameNode.stateChangeLog.debug("DIR* NameSystem.internalReleaseCreate: " +
- src + " is no longer written to by " +
- holder);
+ NameNode.stateChangeLog.info("DIR* NameSystem.internalReleaseCreate: " +
+ src + " is no longer written to by " +
+ holder);
}
/**