Cluster thread is deleted while running #315
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
After the recent shutdown changes of the client, it is now possible that LifecycleService.shutdown is being called from within the cluster thread and this in turn calls ClusterService.shutdown and this call deletes the cluster thread object. The thread join to the calling thread always succeeds without waiting to avoid deadlocks, and this was one of the changes in recent PRs (#285), hence even though there is a join call in the ClusterService.shutdown, it actually will not wait since the calling thread was the cluster thread itself. It is really dangerous to delete the current running thread object. Solution: Shutdown the thread but do not delete the cluster thread on shutdown.