[ https://issues.apache.org/jira/browse/KAFKA-5145?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16045676#comment-16045676 ]
Evgeny Veretennikov commented on KAFKA-5145: -------------------------------------------- It seems like ProcessorNode.close() method isn't actually called from StreamThread.suspendTasksAndState(). > 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 > Labels: newbie > 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)