Author: jlowe Date: Fri Jan 24 15:45:28 2014 New Revision: 1561038 URL: http://svn.apache.org/r1561038 Log: Addendum patch for HADOOP-9652 to fix performance problems. Contributed by Andrew Wang
Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestSymlinkLocalFS.java Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1561038&r1=1561037&r2=1561038&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt (original) +++ hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt Fri Jan 24 15:45:28 2014 @@ -424,6 +424,9 @@ Release 2.4.0 - UNRELEASED HADOOP-10143 replace WritableFactories's hashmap with ConcurrentHashMap (Liang Xie via stack) + HADOOP-9652. Allow RawLocalFs#getFileLinkStatus to fill in the link owner + and mode if requested. (Andrew Wang via Colin Patrick McCabe) + OPTIMIZATIONS HADOOP-9748. Reduce blocking on UGI.ensureInitialized (daryn) @@ -450,9 +453,6 @@ Release 2.4.0 - UNRELEASED HADOOP-9817. FileSystem#globStatus and FileContext#globStatus need to work with symlinks. (Colin Patrick McCabe via Andrew Wang) - HADOOP-9652. RawLocalFs#getFileLinkStatus does not fill in the link owner - and mode. (Andrew Wang via Colin Patrick McCabe) - HADOOP-9875. TestDoAsEffectiveUser can fail on JDK 7. (Aaron T. Myers via Colin Patrick McCabe) Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java?rev=1561038&r1=1561037&r2=1561038&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java (original) +++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java Fri Jan 24 15:45:28 2014 @@ -16,8 +16,11 @@ * limitations under the License. */ + package org.apache.hadoop.fs; +import com.google.common.annotations.VisibleForTesting; + import java.io.BufferedOutputStream; import java.io.DataOutput; import java.io.File; @@ -51,7 +54,13 @@ import org.apache.hadoop.util.StringUtil public class RawLocalFileSystem extends FileSystem { static final URI NAME = URI.create("file:///"); private Path workingDir; - private static final boolean useDeprecatedFileStatus = !Stat.isAvailable(); + // Temporary workaround for HADOOP-9652. + private static boolean useDeprecatedFileStatus = true; + + @VisibleForTesting + public static void useStatIfAvailable() { + useDeprecatedFileStatus = !Stat.isAvailable(); + } public RawLocalFileSystem() { workingDir = getInitialWorkingDirectory(); Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestSymlinkLocalFS.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestSymlinkLocalFS.java?rev=1561038&r1=1561037&r2=1561038&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestSymlinkLocalFS.java (original) +++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestSymlinkLocalFS.java Fri Jan 24 15:45:28 2014 @@ -38,6 +38,11 @@ import org.junit.Test; * Test symbolic links using LocalFs. */ abstract public class TestSymlinkLocalFS extends SymlinkBaseTest { + + // Workaround for HADOOP-9652 + static { + RawLocalFileSystem.useStatIfAvailable(); + } @Override protected String getScheme() {