[
https://issues.apache.org/jira/browse/HDFS-16996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17717261#comment-17717261
]
Ayush Saxena commented on HDFS-16996:
-------------------------------------
Thanx [~umamaheswararao] for the report. Affect Version: 1.3.0 sounds like a
ozone thing :)
Regarding the test:
Two tests failed in the said class in first run and passed in the second run (I
changed it long back to run the failing test twice)
{noformat}
[WARNING]
org.apache.hadoop.hdfs.TestFileCreation.testFsCloseAfterClusterShutdown(org.apache.hadoop.hdfs.TestFileCreation)
[ERROR] Run 1: TestFileCreation.testFsCloseAfterClusterShutdown:1198 Test
resulted in an unexpected exit: 1: Block report processor encountered fatal
exception: java.lang.ClassCastException: org.apache.hadoop.fs.FsServerDefaults
cannot be cast to java.lang.Boolean
[INFO] Run 2: PASS
[INFO]
[WARNING]
org.apache.hadoop.hdfs.TestFileCreation.testServerDefaultsWithMinimalCaching(org.apache.hadoop.hdfs.TestFileCreation)
[ERROR] Run 1: TestFileCreation.testServerDefaultsWithMinimalCaching:277 »
Timeout Timed out ...
[INFO] Run 2: PASS{noformat}
The reason for failures:
The first test that ran was: *testServerDefaultsWithMinimalCaching*
{noformat}
ERROR]
testServerDefaultsWithMinimalCaching(org.apache.hadoop.hdfs.TestFileCreation)
Time elapsed: 8.833 s <<< ERROR!
java.util.concurrent.TimeoutException:
Timed out waiting for condition. {noformat}
It failed on timeout, may be now requires a higher timeout
The second one {*}testFsCloseAfterClusterShutdown{*}, for which the trace is
attached in the description, ran just after it
{noformat}
[ERROR]
testFsCloseAfterClusterShutdown(org.apache.hadoop.hdfs.TestFileCreation) Time
elapsed: 1.725 s <<< FAILURE!
java.lang.AssertionError: Test resulted in an unexpected exit: 1: Block report
processor encountered fatal exception: java.lang.ClassCastException:
org.apache.hadoop.fs.FsServerDefaults cannot be cast to java.lang.Boolean
at
org.apache.hadoop.hdfs.MiniDFSCluster.shutdown(MiniDFSCluster.java:2166){noformat}
That initially sounds crazy, but I tried to reproduce locally, it is mere
mockito thing
{noformat}
org.apache.hadoop.hdfs.server.namenode.FSNamesystem$MockitoMock$1733010162.isRunning(Unknown
Source)
org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$BlockReportProcessingThread.processQueue(BlockManager.java:5457)
org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$BlockReportProcessingThread.run(BlockManager.java:5447){noformat}
The first test does use Mockito on FsNamesystem to return a server default, and
guess that messed up the call on FsN in the subsequent test when the first test
failed.
May be doing
*Mockito.reset(spyNamesystem);* in the finally block of
*testServerDefaultsWithMinimalCaching* should solve your problem. there should
be more fancy ways as well, but this is what came into my mind at first, and it
did work for me
One easy way to reproduce the problem is just replace the GenericTestUtils.wait
for block in the test *testServerDefaultsWithMinimalCaching* with
testServerDefaultsWithMinimalCaching
*throw new IOException("ABC");* and run the entire test class, so
*testServerDefaultsWithMinimalCaching* will fail and subsequently the next test
*testFsCloseAfterClusterShutdown* will fail with the exception you attached in
the description.
Lemme know if it works, else I can try to find something more fancy during the
weekend. :)
> TestFileCreation failed with ClassCastException
> -----------------------------------------------
>
> Key: HDFS-16996
> URL: https://issues.apache.org/jira/browse/HDFS-16996
> Project: Hadoop HDFS
> Issue Type: Bug
> Reporter: Uma Maheswara Rao G
> Priority: Major
>
> {code:java}
> [ERROR]
> testFsCloseAfterClusterShutdown(org.apache.hadoop.hdfs.TestFileCreation) Time
> elapsed: 1.725 s <<< FAILURE! java.lang.AssertionError: Test resulted in an
> unexpected exit: 1: Block report processor encountered fatal exception:
> java.lang.ClassCastException: org.apache.hadoop.fs.FsServerDefaults cannot be
> cast to java.lang.Boolean at
> org.apache.hadoop.hdfs.MiniDFSCluster.shutdown(MiniDFSCluster.java:2166) at
> org.apache.hadoop.hdfs.MiniDFSCluster.shutdown(MiniDFSCluster.java:2152) at
> org.apache.hadoop.hdfs.MiniDFSCluster.shutdown(MiniDFSCluster.java:2145) at
> org.apache.hadoop.hdfs.TestFileCreation.testFsCloseAfterClusterShutdown(TestFileCreation.java:1198)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498) at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
> at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
> at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at
> org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
> at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at
> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at
> org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at
> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at
> org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at
> org.junit.runners.ParentRunner.run(ParentRunner.java:413) at
> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
> at
> org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
> at
> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
> at
> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
> at
> org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
> at
> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
> at
> org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
> at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
> Caused by: 1: Block report processor encountered fatal exception:
> java.lang.ClassCastException: org.apache.hadoop.fs.FsServerDefaults cannot be
> cast to java.lang.Boolean at
> org.apache.hadoop.util.ExitUtil.terminate(ExitUtil.java:381) at
> org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$BlockReportProcessingThread.run(BlockManager.java:5451){code}
> https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-5532/10/artifact/out/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]