[
https://issues.apache.org/jira/browse/GEODE-8286?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
John Blum updated GEODE-8286:
-----------------------------
Priority: Critical (was: Minor)
> The Geode JVM Shutdown Hook should not be enabled by default
> ------------------------------------------------------------
>
> Key: GEODE-8286
> URL: https://issues.apache.org/jira/browse/GEODE-8286
> Project: Geode
> Issue Type: Improvement
> Components: configuration, general, management
> Reporter: John Blum
> Priority: Critical
> Labels: JSON-PDX
>
> Apache Geode registers a JVM Shutdown Hook in
> [InternalDistributedSystem|https://github.com/apache/geode/blob/rel/v1.12.0/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java#L2190-L2222]
> that ensures the Apache Geode Cache and associated DistributedSystem are
> shutdown properly when the JVM exits.
> However, this JVM Shutdown Hook and interfere with Frameworks and Tooling
> that have their own Lifecycle Management capabilities. The Spring Framework
> and Container is one such example.
> Any managed environment, be that Micronaut, Quarkus, Pivotal Platform
> (PCF/TAS), Kubernetes, AWS, Azure, GCP, etc, etc, are going to have lifecycle
> management capabilities.
> It is very important that the environment manage the lifecycle of all actors
> in the fully "integrated" system.
> In Spring's case, it must coordinate the lifecycle of application components
> along with integrated systems, like Geode, in an effort to shut all
> components down in a coordinated, correct fashion.
> If Geode's JVM Shutdown Hook is permitted to do as it pleases, then this can
> circumvent the Framework/Container, Tool, or other's lifecycle management
> capabilities, leaving the system or application in an inconsistent/incorrect
> state.
> To make matters worse, the [JVM System
> Property|https://github.com/apache/geode/blob/rel/v1.12.0/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java#L2191]
> (and specifically,
> [this|https://github.com/apache/geode/blob/rel/v1.12.0/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java#L391-L392])
> controlling the enablement of the JVM Shutdown Hook, is non-public and [not
> documented|https://geode.apache.org/docs/guide/112/reference/topics/gemfire_properties.html].
--
This message was sent by Atlassian Jira
(v8.3.4#803005)