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)

Reply via email to