Parcourir la source

HADOOP-4635. Fix a memory leak in fuse dfs. (pete wyckoff via mahadev)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/core/trunk@722570 13f79535-47bb-0310-9956-ffa450edef68
Mahadev Konar il y a 16 ans
Parent
commit
190732af84

+ 2 - 0
CHANGES.txt

@@ -1280,6 +1280,8 @@ Release 0.18.3 - Unreleased
     HADOOP-4713. Fix librecordio to handle records larger than 64k. (Christian
     Kunz via cdouglas)
 
+    HADOOP-4635. Fix a memory leak in fuse dfs. (pete wyckoff via mahadev)
+
 Release 0.18.2 - 2008-11-03
 
   BUG FIXES

+ 3 - 1
src/contrib/fuse-dfs/src/fuse_dfs.c

@@ -618,6 +618,8 @@ static char ** getGroups(uid_t uid, int *num_groups)
   assert(user != NULL);
   groupnames[i] = user;
 
+  // increment num_groups to include the user being added to the group list
+  *num_groups = *num_groups + 1;
 #else
 
   int i = 0;
@@ -1000,7 +1002,7 @@ static int dfs_statfs(const char *path, struct statvfs *st)
   st->f_blocks  =  cap/bsize;
 
   st->f_bfree   =  (cap-used)/bsize;
-  st->f_bavail  =  cap/bsize;
+  st->f_bavail  =  (cap-used)/bsize;
 
   st->f_files   =  1000;
   st->f_ffree   =  500;

+ 0 - 14
src/contrib/fuse-dfs/src/test/TestFuseDFS.java

@@ -271,23 +271,9 @@ public class TestFuseDFS extends TestCase {
 
       DistributedFileSystem.DiskStatus d = fileSys.getDiskStatus();
 
-      System.err.println("DEBUG:f.total=" + f.getTotalSpace());
-      System.err.println("DEBUG:d.capacity=" + d.getCapacity());
-
-      System.err.println("DEBUG:f.usable=" + f.getUsableSpace());
-
-      System.err.println("DEBUG:f.free=" + f.getFreeSpace());
-      System.err.println("DEBUG:d.remaining = " + d.getRemaining());
-
-      System.err.println("DEBUG:d.used = " + d.getDfsUsed());
-      System.err.println("DEBUG:f.total - f.free = " + (f.getTotalSpace() - f.getFreeSpace()));
-
       long fileUsedBlocks =  (f.getTotalSpace() - f.getFreeSpace())/(64 * 1024 * 1024);
       long dfsUsedBlocks = (long)Math.ceil((double)d.getDfsUsed()/(64 * 1024 * 1024));
-      System.err.println("DEBUG: fileUsedBlocks = " + fileUsedBlocks);
-      System.err.println("DEBUG: dfsUsedBlocks =  " + dfsUsedBlocks);
 
-      assertTrue(f.getTotalSpace() == f.getUsableSpace());
       assertTrue(fileUsedBlocks == dfsUsedBlocks);
       assertTrue(d.getCapacity() == f.getTotalSpace());