You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@bookkeeper.apache.org by GitBox <gi...@apache.org> on 2018/02/09 09:34:18 UTC
[GitHub] ivankelly opened a new pull request #1132: Fix shutdown race which left ZK session open
ivankelly opened a new pull request #1132: Fix shutdown race which left ZK session open
URL: https://github.com/apache/bookkeeper/pull/1132
There was a race when shutting down a bookie, where both the main
thread and the shutdown hook thread would try to close the bookie
service. This would result in them racing to set the lifecycle state
and neither would end up cleaning up properly. Specifically, the
starter latch would be counted down, so the main thread would start to
close, then the shutdown hook would run, try to close, and get an
exception when it tried to change the state. Once the all shutdown
hooks end, the process exits, even if main hasn't completed. This
leaves the zookeeper session open.
The fix has 3 parts.
1. I've removed the close from main(). The shutdown hook will
always run on a graceful shutdown, so that's the place to do the
cleanup.
2. I've removed the latch and replaced it with a CompletableFuture,
so that errors in shutdown can be propogated to the main thread.
3. Changes in lifecycle state are now atomic, so that only one thread
will perform the actions for state transitions.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services