[ 
https://issues.apache.org/jira/browse/HDFS-16932?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17692461#comment-17692461
 ] 

Steve Vaughan commented on HDFS-16932:
--------------------------------------

It looks like the problem is caused by Mockito Spy (doAnswer on getBlocks 
within TestBalancer) that then calls another handler of Mockito Spy.

> Mockito causing ClassCastException
> ----------------------------------
>
>                 Key: HDFS-16932
>                 URL: https://issues.apache.org/jira/browse/HDFS-16932
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: hdfs
>    Affects Versions: 3.4.0
>         Environment: Running in the Hadoop development environment in docker, 
> running mvn.
>            Reporter: Steve Vaughan
>            Priority: Major
>
> Running tests in TestBalancerRPCDelay fails because of ClassCastExceptions 
> introduced by Mockito.  As an example, in this stack trace note that the 
> RedundancyMonitor is calling "isRunning" but incorrectly ends up being routed 
> to getBlocks (which returns BlocksWithLocations) via TestBalancer and a 
> Mockito Spy.  This ultimately is reported as a failure during the shutdown 
> process.
> {{Exception in thread "RedundancyMonitor" java.lang.ClassCastException: 
> java.lang.Boolean cannot be cast to 
> org.apache.hadoop.hdfs.server.protocol.BlocksWithLocations}}{{        at 
> org.apache.hadoop.hdfs.server.balancer.TestBalancer$2.answer(TestBalancer.java:1865)}}{{
>         at 
> org.apache.hadoop.hdfs.server.balancer.TestBalancer$2.answer(TestBalancer.java:1858)}}{{
>         at 
> org.mockito.internal.stubbing.StubbedInvocationMatcher.answer(StubbedInvocationMatcher.java:39)}}{{
>         at 
> org.mockito.internal.handler.MockHandlerImpl.handle(MockHandlerImpl.java:96)}}{{
>         at 
> org.mockito.internal.handler.NullResultGuardian.handle(NullResultGuardian.java:29)}}{{
>         at 
> org.mockito.internal.handler.InvocationNotifierHandler.handle(InvocationNotifierHandler.java:35)}}{{
>         at 
> org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.doIntercept(MockMethodInterceptor.java:61)}}{{
>         at 
> org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.doIntercept(MockMethodInterceptor.java:49)}}{{
>         at 
> org.mockito.internal.creation.bytebuddy.MockMethodInterceptor$DispatcherDefaultingToRealMethod.interceptSuperCallable(MockMethodInterceptor.java:108)}}{{
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem$MockitoMock$1070381809.isRunning(Unknown
>  Source)}}{{        at 
> org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$RedundancyMonitor.run(BlockManager.java:5155)}}{{
>         at java.lang.Thread.run(Thread.java:750)}}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to