Narendra Kumar created KAFKA-5145:
-------------------------------------
Summary: Remove task close() call from
closeNonAssignedSuspendedTasks method
Key: KAFKA-5145
URL: https://issues.apache.org/jira/browse/KAFKA-5145
Project: Kafka
Issue Type: Bug
Components: streams
Affects Versions: 0.10.2.0
Reporter: Narendra Kumar
Attachments: BugTest.java, DebugTransformer.java, logs.txt
While rebalancing ProcessorNode.close() can be called twice, once from
StreamThread.suspendTasksAndState() and once from
StreamThread.closeNonAssignedSuspendedTasks(). If ProcessorNode.close() throws
some exception because of calling close() multiple times( i.e.
IllegalStateException from some KafkaConsumer instance being used by some
processor for some lookup), we fail to close the task's state manager ( i.e.
call to task.closeStateManager(true); fails). After rebalance, if the same
task id is launched on same application instance but in different thread then
the task get stuck because it fails to get lock to the task's state directory.
Since processor close() is already called from
StreamThread.suspendTasksAndState() we don't need to call again from
StreamThread.closeNonAssignedSuspendedTasks().
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)