[
https://issues.apache.org/jira/browse/HADOOP-12603?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15041776#comment-15041776
]
Chris Nauroth commented on HADOOP-12603:
----------------------------------------
bq. do we need to care about atime at all, given we explicitly recommend
turning atime off on filesystems used for mounting HDFS.
We also need to keep in mind that Hadoop code can trigger local file system
interactions on client machines, external to the Hadoop cluster itself. The
standard recommendation to disable atime is less relevant on these client
machines. In some environments, these machines might not be governed by the
same system administrators that operate the cluster nodes. It might not be
feasible for them to enforce a noatime policy everywhere.
One use case for setting atime on the local file system is {{hdfs dfs
-copyToLocal -p}}. The expected semantics are to retain the atime stored in
HDFS when the file lands on the local file system. Prior to HADOOP-12045, that
wouldn't have worked correctly.
bq. Or is it that hdfs itself does atimes, and we want filesystems to be
roughly consistent?
Yes, I do also think it's good to make the semantics consistent across our file
system implementations as much as possible, unless there are compelling
technical reasons that prevent it.
I admit that setting local file system atime through the Hadoop code probably
isn't a very critical thing. However, I see it as a nice-to-have based on the
copyToLocal use case and the consistency argument. It was enough to motivate
me to review and commit HADOOP-12045.
> TestSymlinkLocalFSFileContext#testSetTimesSymlinkToDir occasionally fail
> ------------------------------------------------------------------------
>
> Key: HADOOP-12603
> URL: https://issues.apache.org/jira/browse/HADOOP-12603
> Project: Hadoop Common
> Issue Type: Bug
> Reporter: Wei-Chiu Chuang
> Assignee: Wei-Chiu Chuang
> Labels: solaris, windows
> Attachments: HADOOP-12603.001.patch, HADOOP-12603.002.patch
>
>
> I have observed this test failure a few times in the past. When it fails, the
> expected access time (of the file link) is always 1000 less than the actual
> access time.
> Error Message
> {noformat}
> expected:<1448478654000> but was:<1448478655000>
> {noformat}
> Stacktrace
> {noformat}
> java.lang.AssertionError: expected:<1448478654000> but was:<1448478655000>
> at org.junit.Assert.fail(Assert.java:88)
> at org.junit.Assert.failNotEquals(Assert.java:743)
> at org.junit.Assert.assertEquals(Assert.java:118)
> at org.junit.Assert.assertEquals(Assert.java:555)
> at org.junit.Assert.assertEquals(Assert.java:542)
> at
> org.apache.hadoop.fs.SymlinkBaseTest.testSetTimesSymlinkToDir(SymlinkBaseTest.java:1391)
> at
> org.apache.hadoop.fs.TestSymlinkLocalFS.testSetTimesSymlinkToDir(TestSymlinkLocalFS.java:233)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at
> org.junit.internal.runners.statements.FailOnTimeout$StatementThread.run(FailOnTimeout.java:74)
> {noformat}
> Standard Output
> {noformat}
> 2015-11-25 19:10:55,231 WARN fs.FileUtil (FileUtil.java:symLink(813)) -
> Command 'ln -s
> /testptch/hadoop/hadoop-common-project/hadoop-common/target/test/data/4/vae1ng5t75/test1/file
>
> /testptch/hadoop/hadoop-common-project/hadoop-common/target/test/data/4/vae1ng5t75/test2/linkToFile'
> failed 1 with: ln: failed to create symbolic link
> '/testptch/hadoop/hadoop-common-project/hadoop-common/target/test/data/4/vae1ng5t75/test2/linkToFile':
> No such file or directory
> 2015-11-25 19:10:56,212 WARN fs.FileUtil (FileUtil.java:symLink(813)) -
> Command 'ln -s
> /testptch/hadoop/hadoop-common-project/hadoop-common/target/test/data/4/vae1ng5t75/test1/file
>
> /testptch/hadoop/hadoop-common-project/hadoop-common/target/test/data/4/vae1ng5t75/test1/linkToFile'
> failed 1 with: ln: failed to create symbolic link
> '/testptch/hadoop/hadoop-common-project/hadoop-common/target/test/data/4/vae1ng5t75/test1/linkToFile':
> File exists
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)