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)