GitHub user shanthoosh opened a pull request:
https://github.com/apache/samza/pull/416
SAMZA-1568: Handle ZkInterruptedException in zkclient.close.
When zookeeper session failures occur in a stream processor, leaves the
group(zkClient is closed) and joins the group again.
The last step in that shutdown sequence is zkClient.close(). In some
scenarios, it throws the following exception,
org.I0Itec.zkclient.exception.ZkInterruptedException:
java.lang.InterruptedException
at org.I0Itec.zkclient.ZkClient.close(ZkClient.java:1278)
at org.apache.samza.zk.ZkControllerImpl.stop(ZkControllerImpl.java:92)
at org.apache.samza.zk.ZkJobCoordinator.stop(ZkJobCoordinator.java:141)
In existing implementation this is not handled, there by killing the stream
processor. The following codepath triggers this exception:
`StreamProcessor.stop -> ZkJobCoordinator.stop() -> zkController.stop() ->
zkUtils.close`
This exception causes the integration test to fail occasionally and can
cause LocalApplicationRunner.waitForFinish method call to block
indefinitely(since this callback event success, updates the latch state
required for waitForFinish to end).
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/shanthoosh/samza zk_utils_close
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/samza/pull/416.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #416
----
commit 2542a0ad1bee19927761eaf0171a6f637f21ac3a
Author: Shanthoosh Venkataraman <svenkataraman@...>
Date: 2018-01-25T19:44:55Z
SAMZA-1568: Handle ZkInterruptedException in zkclient.close.
----
---