```
Tests run: 64, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 24.667 sec <<< 
FAILURE! - in org.apache.druid.indexing.kafka.supervisor.KafkaSupervisorTest
testCheckpointForInactiveTaskGroup[numThreads = 
1](org.apache.druid.indexing.kafka.supervisor.KafkaSupervisorTest)  Time 
elapsed: 0.157 sec  <<< FAILURE!
java.lang.AssertionError: 
java.lang.AssertionError: 
  Unexpected method call TaskRunner.getRunningTasks():
        at 
org.easymock.internal.MockInvocationHandler.invoke(MockInvocationHandler.java:44)
        at 
org.easymock.internal.ObjectMethodsFilter.invoke(ObjectMethodsFilter.java:94)
        at com.sun.proxy.$Proxy44.getRunningTasks(Unknown Source)
        at 
org.apache.druid.indexing.kafka.supervisor.KafkaSupervisor$1.getTaskLocation(KafkaSupervisor.java:312)
        at 
org.apache.druid.indexing.kafka.supervisor.KafkaSupervisor.checkpointTaskGroup(KafkaSupervisor.java:1531)
        at 
org.apache.druid.indexing.kafka.supervisor.KafkaSupervisor.checkTaskDuration(KafkaSupervisor.java:1461)
        at 
org.apache.druid.indexing.kafka.supervisor.KafkaSupervisor.runInternal(KafkaSupervisor.java:898)
        at 
org.apache.druid.indexing.kafka.supervisor.KafkaSupervisor$RunNotice.handle(KafkaSupervisor.java:611)
        at 
org.apache.druid.indexing.kafka.supervisor.KafkaSupervisor$2.run(KafkaSupervisor.java:385)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
 expected null, but was:<java.lang.AssertionError: 
  Unexpected method call TaskRunner.getRunningTasks():
        at 
org.easymock.internal.MockInvocationHandler.invoke(MockInvocationHandler.java:44)
        at 
org.easymock.internal.ObjectMethodsFilter.invoke(ObjectMethodsFilter.java:94)
        at com.sun.proxy.$Proxy44.getRunningTasks(Unknown Source)
        at 
org.apache.druid.indexing.kafka.supervisor.KafkaSupervisor$1.getTaskLocation(KafkaSupervisor.java:312)
        at 
org.apache.druid.indexing.kafka.supervisor.KafkaSupervisor.checkpointTaskGroup(KafkaSupervisor.java:1531)
        at 
org.apache.druid.indexing.kafka.supervisor.KafkaSupervisor.checkTaskDuration(KafkaSupervisor.java:1461)
        at 
org.apache.druid.indexing.kafka.supervisor.KafkaSupervisor.runInternal(KafkaSupervisor.java:898)
        at 
org.apache.druid.indexing.kafka.supervisor.KafkaSupervisor$RunNotice.handle(KafkaSupervisor.java:611)
        at 
org.apache.druid.indexing.kafka.supervisor.KafkaSupervisor$2.run(KafkaSupervisor.java:385)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
>
        at 
org.apache.druid.indexing.kafka.supervisor.KafkaSupervisorTest.testCheckpointForInactiveTaskGroup(KafkaSupervisorTest.java:2126)
```

The problem is that the supervisor periodically executes runNotice and this can 
potentially call every method of the supervisor which in turn requires to mock 
everything using EasyMock.

I think it's better to refactor the whole KafkaSupervisorTest to be based on a 
sort of more controllable mockup environment by creating taskRunner, 
taskMaster, taskStorage, and taskClient for test purpose instead of making them 
using EasyMock.

[ Full content available at: 
https://github.com/apache/incubator-druid/issues/6296 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to