[
https://issues.apache.org/jira/browse/HDFS-11818?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jason Lowe updated HDFS-11818:
------------------------------
Affects Version/s: 2.8.2
> TestBlockManager.testSufficientlyReplBlocksUsesNewRack fails intermittently
> ---------------------------------------------------------------------------
>
> Key: HDFS-11818
> URL: https://issues.apache.org/jira/browse/HDFS-11818
> Project: Hadoop HDFS
> Issue Type: Bug
> Affects Versions: 2.8.2
> Reporter: Eric Badger
> Assignee: Nathan Roberts
>
> Saw a weird Mockito failure in last night's build with the following stack
> trace:
> {noformat}
> org.mockito.exceptions.misusing.WrongTypeOfReturnValue:
> INodeFile cannot be returned by isRunning()
> isRunning() should return boolean
> at
> org.apache.hadoop.hdfs.server.blockmanagement.TestBlockManager.addBlockOnNodes(TestBlockManager.java:555)
> at
> org.apache.hadoop.hdfs.server.blockmanagement.TestBlockManager.doTestSufficientlyReplBlocksUsesNewRack(TestBlockManager.java:404)
> at
> org.apache.hadoop.hdfs.server.blockmanagement.TestBlockManager.testSufficientlyReplBlocksUsesNewRack(TestBlockManager.java:397)
> {noformat}
> This is pretty confusing since we explicitly set isRunning() to return true
> in TestBlockManager's \@Before method
> {noformat}
> 154 Mockito.doReturn(true).when(fsn).isRunning();
> {noformat}
> Also saw the following exception in the logs:
> {noformat}
> 2017-05-12 05:42:27,903 ERROR blockmanagement.BlockManager
> (BlockManager.java:run(2796)) - Error while processing replication queues
> async
> org.mockito.exceptions.base.MockitoException:
> 'writeLockInterruptibly' is a *void method* and it *cannot* be stubbed with a
> *return value*!
> Voids are usually stubbed with Throwables:
> doThrow(exception).when(mock).someVoidMethod();
> If the method you are trying to stub is *overloaded* then make sure you are
> calling the right overloaded version.
> at
> org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.processMisReplicatesAsync(BlockManager.java:2841)
> at
> org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.access$100(BlockManager.java:120)
> at
> org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$1.run(BlockManager.java:2792)
> {noformat}
> This is also weird since we don't do any explicit mocking with
> {{writeLockInterruptibly}} via fsn in the test. It has to be something
> changing the mocks or non-thread safe access or something like that. I can't
> explain the failures otherwise.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]