[ https://issues.apache.org/jira/browse/HADOOP-12603?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15030814#comment-15030814 ]
Chris Nauroth commented on HADOOP-12603: ---------------------------------------- These tests were introduced in HADOOP-12045. I'm linking the issues. The failure on Solaris is the same as the way it fails on Windows (if you remove the {{assumeTrue}} that currently skips it on Windows). The root cause in this case is lack of a native {{stat}} implementation on the platform's Hadoop native library. This then causes the {{FileStatus}} to be populated with the atime from the target instead of the symlink. For more details, refer to this comment of mine from HADOOP-12045, where decided to skip these tests on Windows: https://issues.apache.org/jira/browse/HADOOP-12045?focusedCommentId=14606655&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14606655 The tests are intended to check the capability introduced in HADOOP-12045: changing atime on the local file system. Removing the tests would leave us in a state where that enhancement was no longer tested regularly. However, it seems as though the mere act of checking status of the symlink risks updating the atime, depending on timing. Instead of removing the tests, I suggest that we relax the assertion so that instead of strict equality, it checks that current atime is greater than or equal. This would still serve the intent of the test, which is to check that {{setTimes}} alters the target instead of the link. The previous line sets atime to 3000, which is way in the past, so we never expect to be anytime near that in the link's atime. > 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 > > 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)