You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-commits@hadoop.apache.org by ac...@apache.org on 2012/09/30 04:00:44 UTC
svn commit: r1391937 - in
/hadoop/common/branches/branch-2.0.2-alpha/hadoop-yarn-project: ./
hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/
hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/
Author: acmurthy
Date: Sun Sep 30 02:00:43 2012
New Revision: 1391937
URL: http://svn.apache.org/viewvc?rev=1391937&view=rev
Log:
Merge -c 1386838 from trunk to branch-2.0.2-alpha to fix YARN-108. FSDownload can create cache directories with the wrong permissions. Contributed by Jason Lowe.
Modified:
hadoop/common/branches/branch-2.0.2-alpha/hadoop-yarn-project/CHANGES.txt
hadoop/common/branches/branch-2.0.2-alpha/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/FSDownload.java
hadoop/common/branches/branch-2.0.2-alpha/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestFSDownload.java
Modified: hadoop/common/branches/branch-2.0.2-alpha/hadoop-yarn-project/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.0.2-alpha/hadoop-yarn-project/CHANGES.txt?rev=1391937&r1=1391936&r2=1391937&view=diff
==============================================================================
--- hadoop/common/branches/branch-2.0.2-alpha/hadoop-yarn-project/CHANGES.txt (original)
+++ hadoop/common/branches/branch-2.0.2-alpha/hadoop-yarn-project/CHANGES.txt Sun Sep 30 02:00:43 2012
@@ -58,7 +58,10 @@ Release 0.23.4 - UNRELEASED
IMPROVEMENTS
- Change package of YarnClient to org.apache.hadoop. (Bikas Saha via vinodkv)
+ Change package of YarnClient to org.apache.hadoop. (Bikas Saha via vinodkv)
+
+ YARN-108. FSDownload can create cache directories with the wrong
+ permissions (Jason Lowe via bobby)
OPTIMIZATIONS
Modified: hadoop/common/branches/branch-2.0.2-alpha/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/FSDownload.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.0.2-alpha/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/FSDownload.java?rev=1391937&r1=1391936&r2=1391937&view=diff
==============================================================================
--- hadoop/common/branches/branch-2.0.2-alpha/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/FSDownload.java (original)
+++ hadoop/common/branches/branch-2.0.2-alpha/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/FSDownload.java Sun Sep 30 02:00:43 2012
@@ -83,6 +83,13 @@ public class FSDownload implements Calla
return resource;
}
+ private void createDir(Path path, FsPermission perm) throws IOException {
+ files.mkdir(path, perm, false);
+ if (!perm.equals(files.getUMask().applyUMask(perm))) {
+ files.setPermission(path, perm);
+ }
+ }
+
private Path copy(Path sCopy, Path dstdir) throws IOException {
FileSystem sourceFs = sCopy.getFileSystem(conf);
Path dCopy = new Path(dstdir, sCopy.getName() + ".tmp");
@@ -177,9 +184,9 @@ public class FSDownload implements Calla
} while (files.util().exists(tmp));
destDirPath = tmp;
- files.mkdir(destDirPath, cachePerms, false);
+ createDir(destDirPath, cachePerms);
final Path dst_work = new Path(destDirPath + "_tmp");
- files.mkdir(dst_work, cachePerms, false);
+ createDir(dst_work, cachePerms);
Path dFinal = files.makeQualified(new Path(dst_work, sCopy.getName()));
try {
Modified: hadoop/common/branches/branch-2.0.2-alpha/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestFSDownload.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.0.2-alpha/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestFSDownload.java?rev=1391937&r1=1391936&r2=1391937&view=diff
==============================================================================
--- hadoop/common/branches/branch-2.0.2-alpha/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestFSDownload.java (original)
+++ hadoop/common/branches/branch-2.0.2-alpha/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestFSDownload.java Sun Sep 30 02:00:43 2012
@@ -42,6 +42,7 @@ import junit.framework.Assert;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.CommonConfigurationKeys;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileContext;
import org.apache.hadoop.fs.FileStatus;
@@ -116,6 +117,7 @@ public class TestFSDownload {
public void testDownload() throws IOException, URISyntaxException,
InterruptedException {
Configuration conf = new Configuration();
+ conf.set(CommonConfigurationKeys.FS_PERMISSIONS_UMASK_KEY, "077");
FileContext files = FileContext.getLocalFSFileContext(conf);
final Path basedir = files.makeQualified(new Path("target",
TestFSDownload.class.getSimpleName()));
@@ -163,8 +165,14 @@ public class TestFSDownload {
Path localized = p.getValue().get();
assertEquals(sizes[Integer.valueOf(localized.getName())], p.getKey()
.getSize());
- FileStatus status = files.getFileStatus(localized);
+
+ FileStatus status = files.getFileStatus(localized.getParent());
FsPermission perm = status.getPermission();
+ assertEquals("Cache directory permissions are incorrect",
+ new FsPermission((short)0755), perm);
+
+ status = files.getFileStatus(localized);
+ perm = status.getPermission();
System.out.println("File permission " + perm +
" for rsrc vis " + p.getKey().getVisibility().name());
assert(rsrcVis.containsKey(p.getKey()));