Shanthoosh Venkataraman commented on SAMZA-1584:

One possible solution is to wait for TASK_SHUTDOWN_MS after invoking 
SamzaContainer.shutdown() and trigger the shutdown sequence of StreamProcessor 
and ZkJobCoordinator even if the shutdown is not completed.

> LocalApplicationRunner.waitForFinish blocks indefinitely.
> ---------------------------------------------------------
>                 Key: SAMZA-1584
>                 URL: https://issues.apache.org/jira/browse/SAMZA-1584
>             Project: Samza
>          Issue Type: Bug
>            Reporter: Shanthoosh Venkataraman
>            Assignee: Shanthoosh Venkataraman
>            Priority: Major
> Recommended solution to kill streamApplication in standalone is the following:
> {code:java}
> LocalApplicationRunner.kill(streamApp);
> LocalApplicationRunner.waitForFinish();{code}
> `LocalApplicationRunner.kill(streamApplication)` invokes 
> `StreamProcessor.stop()` and  `StreamProcessor.stop()` invokes 
> `SamzaContainer.shutdown()` to kill the samza-container. 
> `SamzaContainer.shutdown()` marks the shutdown flag of `AsyncRunLoop` and 
> shutdown flag will be taken into account by `AsyncRunLoop` when it chooses 
> the next operation to execute. 
> Actual shutdown sequence of StreamProcessor and ZkJobCoordinator is triggered 
> on SamzaContainerListener.onContainerStop() callback which is fired when the 
> SamzaContainer is completely shutdown. LocalApplication.awaitForFinish() will 
> block forever in following two scenarios:
>  - If any of the AsyncRunLoop operation(commit, window, process) is going on 
> indefinitely, then the marked shutdown flag will not be seen by the 
> AsyncRunLoop.
> - If any step in SamzaContainer shutdown sequence blocks indefinitely.

This message was sent by Atlassian JIRA

Reply via email to