[ 
https://issues.apache.org/jira/browse/SAMZA-1584?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shanthoosh Venkataraman updated SAMZA-1584:
-------------------------------------------
    Description: 
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.

  was:
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.


> 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
(v7.6.3#76005)

Reply via email to