You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@samza.apache.org by "Shanthoosh Venkataraman (JIRA)" <ji...@apache.org> on 2018/02/13 00:24:00 UTC
[jira] [Created] (SAMZA-1584) Unbounded wait in
StreamProcessor.stop().
Shanthoosh Venkataraman created SAMZA-1584:
----------------------------------------------
Summary: Unbounded wait in StreamProcessor.stop().
Key: SAMZA-1584
URL: https://issues.apache.org/jira/browse/SAMZA-1584
Project: Samza
Issue Type: Bug
Reporter: Shanthoosh Venkataraman
Assignee: Shanthoosh Venkataraman
Recommended solution to kill streamApplication in standalone is the following:
LocalApplicationRunner.kill(streamApp);
LocalApplicationRunner.waitForFinish(streamApp);
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)